Hallo liebe Leserinnen und Leser,

wie im vorangegangenen Tutorial erwähnt, möchte ich euch noch zeigen, wie ihr die Temperatur- und Luftfeuchtigskeitswerte vom DHT11 auf eurem Banana Pi speichern und über ein Webinterface darstellen könnt. Für die Darstellung verwende ich das bereits für die Funkthermometer am Raspberry Pi von mir erstellte Webinterface.

 

1. Erweiterung des Codes zum Auslesen des DHT11 um eine Speicherfunktion

Zuerst müssen wir den im vorangegangenen Beitrag enthaltenen Code um eine Speicherfunktion für die Temperatur- und Luftfeuchtigkeitswerte erweitern. Konkret werden 3 .csv-Dateien erzeugt und die Werte darin gespeichert. Der aktuelle Temperatur- und Luftfeuchtigkeitswert wird in einer jeweils eigenen Datei gespeichert. Diese beiden Dateien werden bei jedem neuen Auslesen des Sensors überschrieben. Zusätzlich wird noch eine weitere Datei angelegt, in der alle Werte des Tages gespeichert werden mit dem Datum des Tages im Dateinamen. In der Datei gibt es 3 Spalten, wobei die erste einen Zeitstempel darstellt, die zweite den Temperaturwert in °C *10 und die letzte den Luftfeuchtigkeitswert in %.

Der erweiterte Code sieht so aus:

Im Unterschied zum Code aus dem letzten Tutorial wird hier das Programm nach einem erfolgreichen Abruf der Daten vom Sensor beendet. Dadurch lässt es sich optimal in cronjobs einbinden, um die Werte automatisiert regelmäßig abzufragen.

Um das Programm zu kompilieren, speichert ihr es z.B. unter dem Namen „sensor.c“ auf eurem Banana Pi und kompiliert es via gcc -o sensor sensor.c -L/usr/local/lib lwiringPi . Anschließend könnt ihr es mit „sudo ./sensor.c“ aufrufen.

2 Anmerkungen noch dazu: Da ich C-Anfänger bin, schmeißt der Compiler mir hier noch eine Warnung. Trotzdem funktioniert das Programm in der gewünschten Weise. Zudem werden die Log-Dateien im Standard-Apache-Verzeichnis für Webseiten abgelegt. Habt ihr noch keinen Webserver eingerichtet (kommt im nächsten Schritt), kann es hier Probleme bei der Speicherung geben.

 

2. Darstellung der Werte über ein Webinterface

Wie bereits erwähnt, nutze ich als Webinterface das bereits von mir für die Funkthermometer am Raspberry Pi geschriebene Interface. Dieses sieht so aus:Screenshot Webinterface DHT11Um es zu installieren, müsst ihr erst einen Webserver aufsetzen. Ich nutze dazu Apache. Dieser wird wie folgt installiert:

Anschließend müsst ihr euch noch mein Webinterface herunterladen, das ich euch hier gepackt habe.

Dieses müsst ihr nur noch auf eurem BPi entpacken und in das Verzeichnis „/var/www/“ schieben. Wenn ihr jetzt dht11 aufruft, sollten die aktuellen Werte im Browser unter der IP-Adresse des Banana Pi dargestellt werden wie im obigen Screenshot.

Solltet ihr einen anderen Ordner für das Webinterface auswählen, müsst ihr diesen auch in dem Programm „dht11.c“ anpassen und das Programm neu kompilieren.

Und nun: Viel Erfolg und Spaß bei der Umsetzung!

Bei Fragen, Problemen, Anregungen etc. könnt ihr wie immer das Kommentarfeld unten benutzen.