1-wire Temperatursensoren auslesen und verarbeiten

Was wir benötigen:

 

front_of_raspberry_pi 1x Raspberry (z.B. Modell B)
ds Für unseren Beispielsaufbau 3x DS18B20 Temperaturssensor

(Amazon: LINK)

4k7 1x 4,7k (4K7) Wiederstand

 

(Amazon: LINK)

 

 

Und so wird verkabelt:

1wire

(klicken zum Vergrößern)

a3123d8a-b8d1-4421-aebc-74df90dfaa86

Konfiguration auf dem Raspberry (OS Jessie): 

Nachdem wir den Raspberry erst einmal grundsätzlich konfiguriert haben (Partitionsgröße, Datum, Zeit und Netzwerk etc.) aktivieren wir zuerst den Device Tree Overlay für 1-wire.

Dies geschieht mittels:

Als nächstes muss der Rasperry neu gestartet werden.

Nach dem erfolgreichen Neustart müssen zunächst die Module für 1-wire geladen werden.

Dies machen wir mit:

Nun müssen wir den Raspberry ein weiteres mal neu starten und danach sollten wir unter „/sys/bus/w1/devices“ unsere Sensoren finden können (der Sensorname könnte z.B. 28-0316729893ff heißen).

Mit folgendem Befehl können wir nun einen Sensor auslesen:

 

Als nächstes installieren wir die Software die wir brauchen um die Temperaturen zu speichern und auszuwerten:

 

Aufzeichnung und Auswertung:

 

Zur Vorbereitung der Aufzeichnung legen wir ein Speicherverzeichnis auf dem Webserver an und löschen die Standarddateien des Webservers.

 

Jetzt erzeugen wir die rrd Datenbank in der unsere Messergebnisse gespeichert werden (im Beispiel werden Temperaturen von -30°C bis +70°C gespeichert):

 

Um die Sensoren nun auszulesen und besser abrufbar zu machen benutzen wir folgendes PHP-Script (/home/pi/1-wire/auswerte.php):

 

Und um das ganze dann in die rrd Datenbank zu packen benutzen wir das folgende Python-Script (/home/pi/1wire/indb.py):

 

Nun fehlen aber noch die Grafiken die wir möchten um uns die Temperaturen bequem anzeigen zu lassen.

Diese erzeugen wir mit einem Shell-Script das, wie in der „indb.py“ zu sehen ist, nach dem eintragen der Messwerte ausgeführt wird.

Das Shell-Script wird unter /home/pi/1-wire/grafik.sh erstellt (die Benennungen und Farben können hier natürlich angepasst werden) :

 

Was nun noch folgt sind einige Scripte die unsere erzeugten Bilder Täglich, Wöchentlich, Monatlich und Jährlich in den „back“ Ordner des Web-Servers sichern.

Alle Scripte werden im Ordner /home/pi/1-wire/ angelegt.

 

backday.sh:

 

backweek.sh:

 

backmonth.sh:

 

backjahr.sh:

 

Nun müssen wir sofern dies noch nicht passiert ist alle Scripte ausführbar machen:

 

Und zum guten Schluss erstellen wir die Crontabs um alle unsere Scripte zu den passenden Zeitpunkten ausführen zu lassen.

Hierbei ist zu beachten das man die Crontabs als root Benutzer erzeugen sollte (hier im Beispiel nur um es einfacher zu halten).

Nun sind folgende Crontabs zu erstellen:

 

Jetzt dürfte alles soweit fertig sein, wenn wir im Browser die IP unseres Raspberrys aufrufen, müssten wir die aktuell erstellten Bilder Sehen können.

Im Ordner „back“ werden, wie oben bereits erwähnt, unsere Grafiken zur späteren Betrachtung aufbewahrt.

Das Ergebnis sollte dann so ähnlich aussehen:

tempday