Home Projekte Builds Elektronik Programme Makes 3D-Druck About Me
MIMO-Technology MIMO-Technology

MIMO TECHNOLOGY

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.

1 Die Temperaturen werden in einer Grafik dargestellt

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

1 Die Temperaturen werden jede Minute gemessen

1 In einem Logfile abgespeichert

1 Der Temperatursensor

Zusammenbau

Material:

  • Raspberry Pi
  • 3x Temperatursensor DS18B20
  • Netzteil 5,1V 2A
  • Wasserdichte Strombox
Alle drei Temperatursensoren mit einem 1 KOhm pull-up Widerstand mit Pin 7(GPIO4) des Raspberry Pis verbinden. Die Stromversorgung für die Sensoren kann von Pin 1(+3,3V) und Pin 9(GND) bezogen werden.

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 Befehlt tmux 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.txt886 KB
(908.150 Bytes)
SHA256:
SourceCode
Python
temp.py1,55 KB
(1.593 Bytes)
SHA256:
SourceCode
Python
graph.py1,16 KB
(1.188 Bytes)
SHA256:
SourceCode
Python
log_shrinker.py(286 Bytes)SHA256: