Temperature Monitoring
Um Pflanzen überwintern zu können, müssen sie vor Temperaturen unter dem Gefrierpunkt geschützt werden. Ein unbeheiztes Gewächshaus sollte die Temperatur nicht zu weit absinken lassen. Um die Temperatur im Gewächshaus zu kontrollieren, wurde eine Temperatur Überwachung erstellt. Sie schreibt in regelmässigen Abständen die gemessenen Temperaturen in eine Logdatei. Für eine bessere Auswertbarkeit wird die Logdatei in eine Grafik umgewandelt.
Die Temperaturen werden in einer Grafik dargestellt

Es werden drei Sensoren verwendet: Aussen-, Innen- und Erdentemperatur

Die Temperaturen werden jede Minute gemessen

In einem Logfile abgespeichert

Der Temperatursensor
Zusammenbau
Material:
- Raspberry Pi
- 3x Temperatursensor DS18B20
- Netzteil 5,1V 2A
- Wasserdichte Strombox

Bild Quelle
Das Raspberry Pi in eine Tupperware Box legen. Für die Sensoren und den Stromanschluss Löcher bohren und die Kabel durchführen. Die Löcher mit der Heissklebepistole verschliessen. Das Netzteil innerhalb der wasserdichten Strombox mit dem Stromnetz verbinden.
Installation
Betriebssystem:
Falls die SD-Karte noch leer ist, muss zuerst ein Betriebssystem für das Raspberry Pi installiert werden.Dazu ein aktuelles Image von der offiziellen Raspberry Pi Seite herunterladen.
Das Image mittels folgenden Befehl auf die SD-Karte schreiben.
Dabei unbedingt mittels
lsblk
den Pfad zur SD-Karte prüfen!
sudo dd if=<Image-Datei> of=<SD-Pfad> bs=4M conv=fsync status=progress
Für meinen Fall (SD-Karte als sdb eingebunden):
sudo dd if=2021-05-07-raspios-buster-armhf.img of=/dev/sdb bs=4M conv=fsync status=progress
Nun im Hauptordner der SD-Karte eine Datei "SSH" erstellen, um die SSH Funktion zu aktivieren.
> /dev/sdb1/ssh
Raspberrypi.com bietet mittlerweile einen Imager an, der das Image in einem Installationsprozess auf die SD-Karte schreibt. Dieser funktioniert sowohl auf Linux als auch auf Windows und Mac Systemen.
Raspberry Pi konfigurieren:
Den Raspberry Pi starten und mit dem Internet verbinden. Über SSH mit dem Raspberry Pi verbinden und das Betriebssystem Updaten.Eine WLAN-Verbindung einrichten:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
country=<ContryCode>
network={
ssid="<SSID>"
psk="<password>"
key_mgmt=WPA-PSK
}
Das One-Wire Protokoll kann über die raspi-config aktiviert werden:
sudo raspi-config
Danach "Interface Options" und dann "1-Wire" auswählen.
Mit Ja bestätigen und mit "sudo reboot" den Raspberry Pi neu starten.
Sensoren testen:
Die Sensoren sollten nun mit dem folgenden Befehlt aufgelistet werden können.
ls /sys/bus/w1/devices/

Die Namen der Sensoren kopieren und in temp.py eintragen.
Um die Sensoren zu testen kann die Datei w1_slave eines Sensors ausgelesen werden:
cat /sys/bus/w1/devices/<Sensor>/w1_slave

Software installieren:
Als erstes den Raspberry Pi aktualisieren:
sudo apt-get update
sudo apt-get upgrade
Um die Sensoren später auszulesen, wird eine Webseite generiert.
Damit diese im Netzwerk angezeigt werden kann, wird ein Webserver benötigt.
sudo apt-get install apache2
Die Python Dateien "temp.py" und "graph.py" in einen Ordner auf dem Raspberry Pi verschieben.
Mit dem Befehlt chmod +x den Skripten ausführungsrechte geben.
Im selben Ordner eine log.txt Datei anlegen mit dem Inhalt:"date;time;Sensor1;Sensor2;Sensor3;".
sudo chmod +x temp.py
sudo chmod +x grapyh.py
echo "date;time;Sensor1;Sensor2;Sensor3;" >log.txt
Das Skript "temp.py" liest jede Minute die drei angegebenen Sensoren aus und schreibt sie in die Datei log.txt.
Das Skript "graph.py" liest alle 15 Minuten die Logdatei ein und generiert eine HTML Datei mit der grafischen Darstellung. Diese wird auf dem Webserver "/var/www/html/temperature/index.html" abgespeichert.
Die Skripte benötigen die Python Bibliotheken Pandas und Plotly.
pip install pandas
pip install plotly
Software starten:
Mit SSH auf den Raspberry Pi zugreifen. Den Befehlttmux
eingeben und das Python Skript temp.py starten:
./temp.py
Mit ctrl + b
und danach d
die Session verlassen.
Nochmals den Befehlt
tmux
eingeben.
Nun das Python Skript graph.py starten:
./graph.py
Das SSH Fenster schliessen.
Mit dem Webbrowser auf die IP-Adresse des Raspberry Pi zugreifen. Die Domain mit
/temperature
ergänzen.
Die Webseite mit der Grafik öffnet sich.
http://192.168.1.158/temperature
Download
Demo HTML | index.html | - | SHA256: | |
Demo Log txt | log.txt | 886 KB (908.150 Bytes) | SHA256: | |
SourceCode Python | temp.py | 1,55 KB (1.593 Bytes) | SHA256: | |
SourceCode Python | graph.py | 1,16 KB (1.188 Bytes) | SHA256: | |
SourceCode Python | log_shrinker.py | (286 Bytes) | SHA256: | |