Archiv der Kategorie: Raspberry Pi

GY-NEO6MV2 GPS MODUL

Das GY-NEO6M in der Version 2 besitzt einen Neo 6 M Chip der die Positionsbestimmung via GPS erlaubt. Obwohl der Chip alle möglichen Schnittstellen bietet, habe ich leider nur die Version mit herausgeführter serieller Schnittstelle gefunden. Erworben habe ich dieses Modul vor geraumer Zeit beim schnellen Ali für rund ~4€ inclusive Antenne erstanden. Es sollte mittlerweile aber schon günstigere Module geben.

Ansichten

Verwendung

  • Positionsbestimmung
  • Bestimmung genauer Uhrzeit
  • Tracken von Positionen

Technische Daten

Anschlusspins4
Led1 -Blinkt (wenn Verbindung aufgebaut ist?)
Schnittstelleseriell
Boudrate 9600
Stromversorgung3V – 5V / +Akku on board für Speicher
SpeicherEEPROM für Configuration
AntenneKeramik
Größe 25 mm x 35 mm x3mm

Anschluss

VCCSpannungsversorgung 3V – 5V
RXEmpfangen – serielle Schnittstelle
TXSenden – serielle Schnittstelle
GNDMasse

Beschaltung

Beschaltung Neo 6M Modul an ESP32 Wroom

Biliotheken

https://github.com/mikalhart/TinyGPSPlus/blob/master/src/TinyGPS%2B%2B.h (Mein Favorit)

https://github.com/cristiansteib/GPS-neo-6m

Testprogramm

Das Testprogramm ist ein Stückwerk aus ein paar Beispielprogrammen, welche ich im Netz gefunden habe. die RX TX Pins müssen je nach Board angepasst werden. Für Arduino Boards, die nur einen seriellen Port besitzen, kann der SoftwareSerial verwendet werden (Hier ein Beispiel Link)

So sieht es auf der Console aus.

Consolen Ausgabe

Probleme

Das Modul braucht bis zu ein paar Minuten bis es genügend Satteliten für die Positionsbestimmung gefunden hat. Also am Anfang nicht wunderen dass keine Position bestimmt wird.

Ich dachte am Anfang die Position ist etwas ungenau. Dies scheint aber an der Java Api zu OpenStreetMap zu liegen unter Google stimmen die Koordinaten. Auf der Open StreetMap Webseite stimmt sie auch.

Fazit

Das Modul macht zuverlässig was es soll. Schade ist, dass die anderen Ports nicht rausgeführt sind, eine Ansteuerung über I2C wäre mir bei manchen Projekten lieber gewesen.

Raspberry PI mit SATA im Gehäuse

Ich habe mir mal wieder was zum Basteln bestellt. Einen Raspberry PI 3B, eine Zusatzplatinen mit einem SATA Anschluss und ein passendes Gehäuse.

Diese Kombi soll den PI im Keller ablösen, den ich als Entwicklungsserver verwende. 

Komponenten

Ich verwende folgende Komponenten:

  • Raspberry PI 3 B
  • MakerHawk Raspberry Pi X820 2.5 Inch SATA HDD/SSD USB3.0 Storage Expansion Board 
  • MakerHawk Upgrated Raspberry Pi Case
  • 120 GB SATA (Kingston)
  • 16GB SD Karte (Sandisc)

Zusammenbau

Board Zusammenschrauben

Es sind zwei Abstandshaltertypen im Set. Einmal kurz mit M2/M2,5 Schauben und einmal etwas länger mit M3 Schrauben. Die etwas längeren auf der Unterseite anbringen, wo auch später die Festplatte eingesteckt wird. 

Danach die kürzeren Abstandshalter auf der Oberseite anbringen.

Den Pi noch aufschrauben und die Blindkappe aus dem Breiten Steckplatz rechts unten ziehen. Dieser ist für den Schalter. Der daneben liegende 5 Voltanschluss kann für den Lüfter im Gehäuse verwendet werden.

Hdd einstecken und verschrauben. 

TIPP: Wer jetzt schlau ist probiert das Ganze schon mal aus, bevor es ganz zusammen geschraubt ist. Dann muss es später nicht wieder demontiert werden.

Das Gehäuse bestücken

Die 4 Schrauben auf der Rückseite des Gehäuses lösen, dann lässt sich der Deckel hochklappen.

Die Platine mit dem PI SD Karten Slot nach vorne einsetzen.

Auf der Unterseite verschrauben.

Gehäuse verschliessen und schon kann es los gehen.

Installation

Die Installation kann nach belieben durchgeführt werden, hier ein Beispiel dafür wie es klappen könnte.

http://fambach.net/wp-admin/post.php?post=359&action=edit
Headlessinstallation

Hier wird noch beschrieben wie die dynamischen Daten auf die SSD kommen.

http://fambach.net/wp-admin/post.php?post=1487&action=edit
Dynamische daten auf SSD verschieben.

Raspberry Pi Mirror OS

Kurzbeschreibung

Mirror OS ist ein Betriebssystem, entwicket für smarte Spiegel. Dies sind Spiegel die eine Art Handy Funktionaltität bieten.

Was wird gebraucht

Vorkenntnisse mit dem Raspberry Pi und Linux können nicht schaden ;). Auch hilft es sicherlich schon mal SSH verwendet zu haben.  Ansonsten braucht ihr folgendes.

Hardware

  • Ich habe noch einen Pi B+ V1.2 rumliegen der soll als erstes Versuchsobjekt dienen.
  • Eine 65GB Microsdkarte.
  • WiFi Adapter 😉

Software

  • Mirror OS hier downloaden.
  • SD Formater hier downloaden.
  • Etcher zum beschreieben der SD Karte hier.

Sonstiges

  • Windows PC

Installation

SD Vorbereiten

Die folgenden Aktionen passieren auf deinem Windows PC. Die Installation über Mac ist auch möglich, dafür bitte den original Link zum Mirror OS folgen.

Formatieren

Ich bin nicht sicher ob dieser Schritt wirklich nötig ist, aber ich habe es, wie auf der mirror OS Seite, beschrieben einfach mal gemacht.

SD Card formater installieren. Hier gibts ne Anleitung.
SD Karte mit „Quick format“ formatieren.

Danach kurz die SD Karte aus dem PC entfernen und wieder einstecken. Da der Formater ein Autoauswurf auslöst ;).

Falls noch nicht geschehen das mirror OS image downloaden.

Nun Etscher installieren, falls noch nicht getan.

Das image auf die SD karte schreiben. Hierfür Etscher starten

Image auswählen

Auf Flashen drücken …

und warten …

Und fertig … ab mit der SD Karte in den PI und starten.

Leider funktioniert mein Raspberry Pi 2B nicht richitig. Ich bekomme keine Verbindung, liegt wahrscheinlich an meine Wifi Adapter.

Somit habe ich mir schnell einen PI3 noch bestellt und siehe das ich bekomme nach einer Weile ein Bild. Jetzt nur noch den Anweisungen auf dem Bildschirm folgen.

  • Über das Handy mit dem angegebenen Netz verbinden
  • Webseite http://glancr.conf öffnen
  • Netzwerk einstellen und eine richtige E-Mail angeben
  • Wenn alles klappt bekommt ihr eine E-Mail in der links zur Konfiguration stehen.
  • Dann noch Module runter laden und installieren
  • Die Module anordnen …

und das wars. Die Bedienung ist einfach und intuitiv. Evtl in der Konfiguration noch das Bild drehen, hier steht wie es geht.

Der Fernsehertest

So kanns aussehen, die Temperatur stimmt wohl noch nicht ganz. Aber wie man sieht spiegelt mein Fernseher auch ;).

Fazit

Wenns mal geklappt hat das Mirror//OS zu installieren, ist es ein wirklich nettes System. Es gibt auch schon ein paar Module die von der Website heruntergeladen und einfach auf der Konfigurationsseite installiert werden können.

Das Arrangieren der einzelen Module ist sehr einfach gehalten. Es kann nur bestimmt werden ob das Modul über den halben oder den ganzen Bildschirm gehen soll und die Reihenfolger untereinander. Was durch dies Anordnung am Ende Rauskommt sieht dann überaschend gut aus ;). So scheinen die Halbbildschirmmodule nach ihrem Platzaufbedarf fliessend nebeneinander angeordnet zu werden.

Alles in allem ein gelungenes OS, gut zu Installieren und zu Konfigurieren.

Problem

Mit dem PI 2 hats bei mir nicht funktiniert, was aber eher den WIFI Adapter geschuldet ist.

Beim ersten Anlauf hat es auch nicht mit dem PI3 Funktioniert. Habe dann das Image nochmal neu auf die SD Karte geschrieben und von Vorne angefangen.

 

Quellen

https://www.sdcard.org/downloads/formatter_4/

https://etcher.io/

mirr.OS

FAQ https://glancr.de/hilfe/

MQTT Protokoll + Versuchsaufbau

Ich bin im Netz auf den Begriff MQTT gestossen und fand den Ansatz dahinter richtig gut. Deshalb habe ich mir mal einen kleinen Versuchsaufbau gegönnt, den ich im folgenden beschieben habe.

Vorab ein paar Details zu MQTT

Infos zu MQTT

Allgemeines

MQTT regelt die Kommunikation zwischen Datenquellen und Datensenken mittels eines Brokers.

Datenquelle

Quellen für Daten können ganz unterschiedliche Geräte sein, eines haben sie jedoch alle gemeinsam, sie können Netzwerkverbindungen aufbauen um Ihre Daten weiter zu geben und sie haben was, was sie mitteilen wollen.

In der IoT können dies Sensor-Knoten sein, welche ihre Daten an einen oder mehrere Empfänger senden wollen.  Die Liste der möglichen Daten ist hierbei nahe unendlich. Beispiele sind Temperaturwerte, Schaltzustände,  Helligkeitswerte usw.

Die Quelle meldet sich an einem (oder mehreren Brokern?) an. Ihre Daten sendet sie so lange bis diese vom Broker quittiert wurden.

Datensenken (Interessenten)

Senken für Daten sind bei MQTT die sog. Interessenten. Diese möchten bestimmte Informationen von Quellen erhalten und diese dann Auswerten (Berechnung) oder einfach nur Präsentieren (Bildschirmanzeige). Beispiele sind Handy Apps, eine Lampe die wissen will wann sie eingeschaltet wird usw.

Broker

Der Broker dient als Bindeglied zwischen den Quellen und den Senken. Er hat die Aufgabe, Daten von Quellen zu sammeln und diese an die Interessenten weiter zu reichen.  Eine Auswertung/ Aufbereitung der Daten ist ihm nicht gestattet, jedoch darf er die Daten zwischenspeichern, um zum Beispiel neuen Interessenten mit dem zuletzt empfangenen oder auch mit historischen Werten zu versorgen.

Die Idee hinter dem Protokoll ist, dass Leistungsschwache Sensorknoten nur eine Verbindung mit einem Broker (Empfänger Server) aufbauen und nur an diesen senden sie ihre Daten. Der leistungstärkere Broker verteilt die Informationen dann an die Interessenten.

Ein kleines Projekt

Ich habe ein kleines Projekt aufgesetzt, mit einem Sensorknoten als Quelle, einem Broker auf einem Raspberry Pi und meinem Handy als Senke.

Quelle

  • Board Node MCU ESP8266
  • Temperatursensor DHT11
  • Bibliothek pubsubclient

Der genaue Aufbau ist in einem anderen Beitrag bereits beschrieben, weshalb ich mich hier nur auf die MQTT basierten Fakten stürze.

http://fambach.net/dht10-mit-esp8266/

Die Bibliothek installieren:

Hier ist der nach MQTT angepasste Quellcode:

ESP8266TempSensorMQTT

Bitte die Netzwerkdaten und die Brokerdaten an eure Topologie anpassen. Achtung der DHT Sensor benötigt auch eine Bibliothek wie im gelinkten Beitrag beschrieben.

Broker

Raspberry nach belieben aufsetzten oder so wie hier:

http://fambach.net/raspberry-pi-zero-w-headless-installation/

Auf dem Pi dann die Mosquitto software installieren.

Software Download

Link: http://mosquitto.org/download

Die letzte Version holen, der Link kann von der obigen Seite kopiert werden. Die aktuelle Version kann mit wget direkt auf den PI geholt werden:

sudo wget <direkter link zum paket>

in meinem Fall war das

sudo wget http://mosquitto.org/files/source/mosquitto-1.5.tar.gz

Installation

Benötigte libs installieren mit

sudo apt-get install libwrap0-dev libcurl4-openssl-dev libmysqlclient-dev libssl-dev apt-get install uuid-dev 

Paket auspacken:

tar zxf ./mosquitto-1.5.tar.gz

In den ausgepackten Ordner springen und mosquitto …

cd mosquitto-1.5/

… bauen und Installieren …

make
sudo make install
sudo ldconfig

… noch starten

Den ESP8266 starten und die erste Verbindung sollte klappen:

Senke

Ich verwende mein Handy als Senke und einen MQTT Empfänger APP. Ich habe ein paar probiert, bin dann aber erstmal mal bei „IoT MQTT Panel“ hängen geblieben, weil sie auf Anhieb funtkionierte und auch Platzhalter unterstüzt.

Hier der Link

Folgende Einstellungen habe ich vorgenommen, ihr müsst diese natürlich an eure Applikation und Netzwerktopoligie anpassen.

Erstmal eine neue Verbindung erstellen mit den Verbindungsdaten des Mosquitto Servers.

Die Neue Verbindung öffnen

Fazit

Solch ein MQTT Projekt ist in wenigen Stunden aufgebaut und macht Spaß. Dabei hat es noch großes Potential, denn man kann leicht mehrere Knoten mit einem standard Server verbinden und sich die Daten z.B. auf dem Handy anzeigen lassen.

Quellen

https://de.wikipedia.org/wiki/MQTT

Java Client Phao

MQTT Git-hub Community Wiki
https://github.com/mqtt/mqtt.github.io/wiki

Github Seite mit MQTT libs
https://github.com/mqtt/mqtt.github.io/wiki/libraries

Lib für ESP8266 und Andere
https://github.com/knolleary/pubsubclient

Mosquitto Broker Konfigurationhilfe

Quick Guide to The Mosquitto.conf File With Examples

MQTT best practice

MQTT Essentials Part 5: MQTT Topics & Best Practices

 

Raspberry Pi 1

Raspberry Pi 1 Model B+

Übersicht

Name Raspberry Pi 1.0/A+/B+
Anzahl/CPU
ARM1176JZF-S
Takt (MHz)700
Kerne1
Digital IOs / Pins17 - 26
Analog inputs0
PWM2
SPI1
Flash Speicher micro SD Karte
SRam (KB)256/512
EEPROM (KB)-
WiFi-
Verschlüsselung-
Bluetooth-
UART1
I2C1
Ethernet10/100 MBit
Videonormal
Sound3,5 Klinke Stereo
USB1-2
Betriebsspannung [V]5
Eingangsspannung5
Strom (mA) / Standby (mA)80-160
Größe l x b x h93 x 63,5 x 17
Gewicht [g]31

Quellen

Raspberry Pi 1 Model B+

https://de.wikipedia.org/wiki/Raspberry_Pi

https://www.pidramble.com/wiki

Raspberry PI 2.0

Raspberry Pi 2 Model B

Übersicht

Name Raspberry Pi 2.0/B
Anzahl/CPU
ARM Cortex-A7 / ARM Cortex-A53
Takt (MHz)900
Kerne4
Digital IOs / Pins26
Analog inputs0
PWM2
SPI1
Flash Speicher micro SD Karte
SRam (KB)1024
EEPROM (KB)-
WiFi-
Verschlüsselung-
Bluetooth-
UART1
I2C1
Ethernet10/100 MBit
Videonormal
Sound3,5 Klinke Stereo
USB4
Betriebsspannung [V]5
Eingangsspannung5
Strom (mA) / Standby (mA)200-450
Größe l x b x h93 x 63,5 x 20
Gewicht [g]40

Quellen

Raspberry Pi 2 Model B

https://de.wikipedia.org/wiki/Raspberry_Pi

https://www.pidramble.com/wiki

Raspberry Pi Zero W

Der kleine Bruder des Raspberry kommt mit einer WLan Karte und reduzierten Schnittstellenumfang. Er bestitzt einen Mini-HDMI Anschluss und einen Micro USB Anschluss für Periferie wie Mouse, Tastatur, USB-Festplatten usw.. Die GPIO-Pins müssen beim Zero W selbst aufgelötet werden. Wie unten zu sehen ist, gibt es ein Standardgehäuse mit passenden Ausparungen.

 

Daten im Überblick

Name Raspberry Pi zero
Anzahl/CPU
ARM1176JZF-S
Takt (MHz)1000
Kerne1
Digital IOs / Pins26
Analog inputs0
PWM2
SPI1
Flash Speicher micro SD Karte
SRam (KB)512
EEPROM (KB)-
WiFi2,4 GHz, 802.11 b/g/n
VerschlüsselungWEB / WPA2 / TKIP /AES
Bluetooth4.1
UART1
I2C1
Ethernet-
VideoMicro
SoundHDMI digital
USB-
Betriebsspannung [V]5
Eingangsspannung5
Strom (mA) / Standby (mA)80-120
Größe l x b x h65 x 31 x 5
Gewicht [g]9

Pining

Das Pinning ist mit dem Raspberry Pi 2 B+ gleich.

Headless Installation

Raspberry Pi Zero W – Headless Installation

Quellen

https://raspberry.tips/raspberrypi-tutorials/raspberry-pi-modell-b-plus-gpio-pins-worksheet/

https://de.wikipedia.org/wiki/Raspberry_Pi

Raspberry Pi Zero W – Headless Installation

Hier findet ihr eine Anleitung zur Erstinstallation des Raspberry Pi Zero W ohne Monitor und Tastatur mit Hilfe eines Windows PCs. Der Vorteil den Pi Zero W „Kopflos“ (aus dem eng. Headless) zu betreiben ist, dass man die ganzen Adapter für HDMI und USB erstmal nicht braucht. Ausserdem muss man nicht einen extra Monitor besorgen oder den eigenen dauernd umschalten.

Es gibt viele ausführliche Berschreibungen im Netz, auch für andere Betriebssysteme wie Linux und MAC OS, weshalb ich mich hier nur auf die Esenz beschränke. Ich habe einige gute Anleitungen, auch für andere Betreibssystem unter den Quellen gelinkt.

Benötigt wird

Installation

Erst einmal das Raspbian Image downloaden hier.

Mit Hilfe des Programms Etscher wird das Raspbian Image dann an die richtigen Stellen auf der SD Karte geschrieben.
Etscher kann hier gedownloaded werden.
Nach dem Download das Installationsprogramm ausführen und  starten.

Schritte:

  1.  Image auswählen
  2. als Ziel die SD-Karte selektieren
  3.  den Knopf Flash! betätigen

Der eigentliche Schreibvorgang dauert eine Weile. Wenn Etscher fertig ist, die SD-Karte kurz aus dem Slot nehmen und wieder einstecken. Etscher wirft nach dem flashen die SD-Karte software- technisch aus.

Mit dem Explorer das boot Laufwerk öffnen. (Achtung der Rest der SD Karte ist nicht ohne weiteres unter Windows einsehbar.

Mit dem Editor eine Datei mit Namen wpa_supplicant.conf im boot Verzheichnis erstellen und darauf achten, dass Windows nicht die Endung .txt anhängt. In sie werden die WLAN Verbindungsdaten geschrieben:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="test"
    psk="mypassword"
    key_mgmt=WPA-PSK
}

Bitte die SSID und den Key durch die eigenen WLAN Daten ersetzen.

Für den automatischen Start des SSH-Servers, der eine spätere Netzwerkverbindung zum Pi ermöglicht, bedarf es nur einer einfachen Datei mit dem Namen ssh. (Auch hier darauf achten dass Windows kein .txt anhängt.

Das wars für den ersten Start. Die SD-Karte in den Raspberry stecken und einschalten. Es kann etwas dauern bis der Pi sich mit dem WLan verbunden hat, also etwas Geduld.

Um eine SSH Verbindung zum Raspberry aufzubauen, benötigt man seine Adresse oder den Namen unter dem er im Netzwerk angemeldet ist. Ich habe in meinem WLan Accesspoint (z.B. Fritzbox) nachgesehen wie die Adresse lautet.  (Es ist auch möglich den Namen zu verwenden „raspberrypi“. (Da ich aber noch einen Pi im Netz habe würde das bei mir nicht funktionieren).

Zur Verbindung muss das Programm Putty gestartet werden , der Namen oder die Adresse des Raspberry eingegeben werden und der Open Knopf gedrückt werden.

Der initiale Benutzer ist pi und das Passwort raspberry, beide in der geöffneten Konsole eingeben.

Nun kann der Raspberry nach Belieben angepasst werden. Als erstes sollte jedoch das pi Passwort geändert werden. Der Befehl hierfür lautet passwd.

Viel Spaß damit!

Quellen

https://core-electronics.com.au/tutorials/raspberry-pi-zerow-headless-wifi-setup.html
https://www.heise.de/make/meldung/Raspberry-Pi-Zero-W-Bluetooth-und-WLAN-Update-fuer-Mini-Himbeere-3637499.html
https://www.heise.de/ct/artikel/Raspberry-Pi-Das-richtige-Modell-und-Betriebssystem-die-schoensten-Projekte-3303489.html
https://www.raspberrypi.org/products/raspberry-pi-zero-w/

Raspberry PI 3

Der Raspberry Pi 3 ist im Februar 2016 erschienen und löst seinen Vorgänger mit neuen Komponenten ab. Neben einer integrierten WLan Karte besitzt er einen ARM Cortex-A53 Prozessor. Die vier Kerne werden mit 1200 MHz getaktet wird.  Der Arbeitsspeicher ist mit 1024 MB doppelt so groß.

Daten im Überblick

Name Raspberry Pi 3.0
Anzahl/CPU
ARM Cortex-A53
Takt (MHz)1200/1400
Kerne4
Digital IOs / Pins26
Analog inputs0
PWM2
SPI1
Flash Speicher micro SD Karte
SRam (KB)1024
EEPROM (KB)-
WiFi2,4 GHz 80.11, b/g/n
VerschlüsselungWEB / WPA2 / TKIP /AES
Bluetooth4.1/4.2
UART1
I2C1
Ethernet10/100/100 MBit
Videonormal
Sound3,5 Klinke Stereo
USB-
Betriebsspannung [V]5
Eingangsspannung5
Strom (mA) / Standby (mA)260-730
Größe l x b x h93 x 63,5 x 20
Gewicht [g]40

Headless setup

https://caffinc.github.io/2016/12/raspberry-pi-3-headless/

Aufbau der Platine und Pinout

Pinning für Programmiersprachen

Java

Quellen

Raspberry Pi 3 Model B

https://de.wikipedia.org/wiki/Raspberry_Pi

http://www.pi4j.com