An meinem RaspberryPi habe ich ein Sende- und ein Empfangsmodul angeschlossen. Da es mehrere Module davon gibt, habe ich mich auf die Empfehlung von pilight verlassen, da ich diese Bibliothek bereits verwende, um Funksteckdosen zusteuern. Die Installation und die Module sind unter folgendem Link zu finden: http://wiki.pilight.org/doku.php/electronics .
Für die Temperatur-Außensensoren habe ich mich für PEARL Funk-Außensensor für Wetterstation entschieden.
Nun kommen wir zur Installation:
Nachdem die Hardware angeschlossen ist, kann die Software-Einrichtung beginnen.
Zunächst einmal benötige ich die pilight-Bibliothek. Hierfür muss man zunächst ein Repository hinzufügen, da pilight selbst nicht über die Standard-Repositorys zur Verfügung steht.
Hierfür öffnet man folgende Datei
sudo nano /etc/apt/sources.listund fügt am Ende der Datei die folgende Zeile:
deb mirror://apt.pilight.org/mirror.txt stable main
Den nano-Editor schließt man mit [CTRL]+X --> Y --> [ENTER]
Da dieses Repository signiert ist, benötigt man nun den Public-Key, da mit die Daten erfolgreich und verschlüsselt übertragen werden können.
Nun kann man ganz klassisch das pilight-package installieren:
sudo apt-get update
sudo apt-get install pilight
Nach hoffentlich erfolgreicher Installation kann der Pilight-Dienst über
sudo service pilight start / stop
starten und stoppen. Dieses Programm läuft nun im Hintergrund und steuert die GPIO-Schnittstelle und die da angeschlossenen Sende- und Empfangsmodule.
Damit man nun die Temperatursensoren auslesen kann, sollte zunächst einmal der Befehl
sudo pilight-receive
Dieser Befehl gibt alle Daten, welche das Empfangsmodul empfängt und pilight dekodieren kann aus. Es sollten nun Daten der form:
{
"code": {
"id": 1420,
"temperature": 152
},
"origin": "receiver",
"protocol": "alecto",
"repeats": 6
}
erscheinen. Dies sind die Daten der Außenthermometer. Hier ein paar Infos zu den Feldern.
- ID: ID des Sensor zur eindeutigen Identifikation bei der Verwendung mehrerer Sensoren.
- temperature: Die gemessene Temperatur. Der Wert muss noch durch 10 geteilt werden um die richtige Temperatur zu erhalten. ;-) Im Beispiel herrschen 15,2°C
- protocol: gibt an welches Protokoll pilight zur Dekodierung verwendet hat. "alecto" ist dabei das Protokoll der Wetterstationen. (zumindest der verwendeten)
- repeats: Die Sensoren senden ihre Daten 6x hintereinander, um eine fehlerhafte Übertragung zu verringern. So geht der Hersteller sicher, das die Daten auch an der Wetterstation ankommen. repeats listet den aktuellen Versuch der Übertragung.
Nun hat man eigentlich die Sensoren ausgelesen.Damit man die natürlich noch weiterverarbeiten kann, lasse ich diese Daten in eine Datei schreiben. Dies realisiere ich über ein BASH-Skript.
#!/bin/bash
Dadurch werden alle Messwerte in die Datei: /tmp/pilight.txt geschrieben. Somit kann dann mittels eines anderes Skripts die Dateien einfach verarbeitet werden.
Ich habe mir hierfür ein PERL-Skript geschrieben, was den Inhalt der Datei ausliest und mittels eines regulären Ausdrucks von jedem Sensor den ersten übertragenen Wert verwendet und diesen inkl. der zugehörigen Sensor-ID in eine Datenbank schreibt.
Das ist Großartig! Nachdem die Luft sowieso immer schlechte und schlechter wird, können solche Temperature- bzw. Humidity Sensoren zukunftsnahe sehr profitabel sein! Lg
AntwortenLöschenCool
AntwortenLöschenKannst Du das PEARL SCRIPT bereitstellen. Bitte ;:)
AntwortenLöschenDanke für die gute Anleitung.
AntwortenLöschenDie Installation endete jedoch mit der Fehlermeldung:
"Die folgenden Pakete haben unerfüllte Abhängigkeiten:
pilight : Hängt ab von: libmbedcrypto0 soll aber nicht installiert werden
Hängt ab von: libmbedtls10 ist aber nicht installierbar
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete."
Muss ich zuvor noch andere installieren?
Danke schon mal mit den besten Grüßen
Karlheinz