Raspberry Pi 3 - Teil 3

Raspberry Pi 3 – Temperatur erfassen

Passend zur Sommerzeit, geht es jetzt weiter mit der Erfassung der Außentemperatur. Mich interessiert keine dauerhafte Sicherung des Temperaturverlaufs über die Jahre hinweg, sondern nur der aktuelle Wert. Daher fallen bei mir schon einmal so Projekte wie FHEM durch. Keep it simple und so reicht es mir die Temperatur und Datum in eine HTML Datei zu packen und auf ein Webspace ablegen. Am Android Device verpack ich das ganze mit MetaWidget und schon hab ich das was ich benötige.

Basierend auf diesen Blogeintrag (http://blog.exensio.de/2014/06/szenarien-fur-den-einsatz-von-iot-und_12.html), habe ich die für mich relevante Teile nur noch abgewandelt und dies schaut dann so aus.

Dieser Teil benötigt “socat“, damit die Empfangen Daten am USB weiter verwendet werden können. So wird socat installiert…

Auf der Suche nach dem Empfänger

Jetzt noch nachschauen mit “lsusb” ob auch der ELV Empfänger am USB vorhanden ist. Device 004 mit “CP210x” zeigt die USB UART Bridge an.

Nun wird die Schnittstelle benötigt, welche mit dem folgenden Befehl in der ersten Zeile angezeigt wird. In der vorletzten Zeile wird der Konverter auf die “ttyUSB0” Schnittstelle verbunden.

Da alles im grünen Bereich ist, reicht die nächste Befehlszeile aus, um die Verbindung zwischen Sender (Sensor) und Empfänger (USB-WDE1) zu testen. Der Sensor verschickt alle paar Minuten seine Werte. Zwischen Sensor und Empfänger bedarf es keine Kopplung der Verbindung. Der Sensor brüllt seine Werte einfach durch die Gegend und der Empfänger nimmt all das auf, was dieser so im Funk alles findet. Daher kann es ein paar Minuten dauern, bis der Empfänger auch etwas ausspuckt. Die zweite Zeile zeigt dann die Ausgabe des Empfängers, was der Sensor so mitteilt.

Empfange Daten verarbeiten

Die Ausgabe vom socat wird mit einem Script abgefangen und in eine Datei umgeleitet. Die erste Zeile startet den Editor nano und erstellt eine Datei “wetter.sh” im angegebenen Pfad. Danach mit Copy & Paste in den Editor und speichern.

Das Script muss jetzt nur noch ausführbar sein, das passiert mit der nächsten Zeile.

Nun noch die Zieldatei (messwerte.txt) mit dem Editor erstellen und drei Zeilen mit Dummyinhalt (1,2,3) versehen.

Jetzt noch die Berechtigung auf die Zieldatei anpassen, dann kann auch das Script die Zieldatei mit Inhalt befüllen.

Damit das Script bei jedem Neustart automatisch gestartet wird, kommt noch die zweite Zeile ins crontab.

Temperatur neu verpacken

Soweit so gut, doch die jetzigen Daten müssen noch weiter aufbereitet werden, damit die Ansicht u.a. im Browser auch optisch ein wenig mehr ist wie nur ein schwarzer Text. Erste Zeile öffnet den Editor nano und erstellt die Zieldatei “werteauslesenhtml.sh”, welche den Inhalt von den folgende Zeilen via Copy & Paste bekommt. Sollte die Seite mit einem Browser anschaut werden, ist nur noch die Zeile mit dem meta refresh anzupassen. Dann wird diese auomatisch nach 300 Sekunden neu geladen.

Wie gewohnt müssen noch die Berechtigung angepasst werden und die Erlaubnis zum ausführen, mit den nächsten zwei Zeilen.

Ob das ganze soweit dann auch klappt, wird jetzt mit dieser Befehlszeile ausprobiert.

FTP Upload

Nachdem die eingefangen Werte optisch aufbereitet werden, ist die ganze Vorarbeit für den Abschluss soweit fertig. Jetzt fehlt nur noch das hochladen auf den Ziel Webspace. Das wird via FTP mit “wput” erledigt. Damit das klappt muss es erst noch mit der nächsten Zeile installiert werden

Nun wird mit dem Editor noch ein Script erstellt. Dieses führt noch das Scripts aus, welches die HTML Datei erzeugt und dann mit wput auf den Zielserver transferiert. Anzupassen wäre in der ersten Zeile ggf die Zielpfade und Dateien und in der letzten Zeile die FTP Zugangsdaten und ebenso der Zielpfad mit Datei.

Ja wer hätte es gedacht… Neues Scripts neues Glück? Auch hier ist es wieder nötig die Berechtigung anzupassen und das das Script auch ausführbar ist.

Das Ende ist in Sicht und jetzt muss nur noch eine leere Datei erstellt werden (erste Zeile) und dazu dann wieder mal die Berechtigung anpassen.

Zum Schluß noch den Automatismus sicher stellen via crontab. Dazu am Ende des crontab, die zweite Zeile einfügen und ggf anpassen. Es wird in der Zeit von 5-23 Uhr, alle fünf Minuten das Script ausgeführt und ins entsprechende Log protokolliert.

… Fünf Minuten später … Der krönende Test ist jetzt nur noch die Webseite via Browser aufzurufen und wenn die Uhrzeit im HTML stimmt, wurde alles richtig gemacht was nur zu machen ist.

Series Navigation<< Raspberry Pi 3 – Die Basis für allesRaspberry Pi 3 – Bilder einfangen >>
Kategorie: Hardware, Software; Stichwort: , , , .

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.