Hardware: Man benötigt, wie schon oben erwähnt, den Temperatursensor DS 18B20 (amazon.de: 10 × DS18B20 Digital Temperature Sensor Thermperatursensor TO92 – 55°C – +125°C
) und einen ohmschen Widerstand mit 4,7 kOhm. Ich habe leider nur 1 kOhm zur Hand gehabt, klappt aber auch. Ebenfalls benötigt man ein mindestens 3-adriges Kabel, welches eine Zuleitung zum Temperatursensor darstellt, solange man nicht auf der Platine des Raspberry Pi die Temperatur messen möchte.
Die Schaltung:
Installation und Testen des Sensors
Wenn man alles verschaltet hat, kommt man zum Testen. Hier gibt man über die Kommandozeilenoberfläche
modprobe w1-gpio
modprobe w1-therm
Im Ordner
/sys/bus/w1/devices
sollte nun ein Ordner mit ID des Temperaturmoduls vorhanden sein. Hier steht neben dem CRC auch die Temperatur, bei mir 21,562 Grad.Damit der Sensor auch nach einem Neustart wieder gefunden wird (die obigen Kommandos gelten nur bis zu einem Reboot), sollte auch sofort softwaremäßig der Sack zu gemacht werden.
Hierzu gibt man auf der Kommandozeilenoberfläche ein:
sudo vi /etc/modules
und fügt folgende Zeilen hinzu
wire
w1_gpio
w1_therm
Ihr könnte anstatt vi auch jeden anderen Editor benutzen. Ich nutze beispielsweise den Midnight Commander mit dem Editor nano.
Ein Reboot tut anschließend gut.
Das wäre es schon mal von der Hardware-Software-Seite:
Fassen wir zusammen:
- Der Temperatursensor wurde installiert und funktioniert auch nach einem Reboot.
- Die Hardware liefert fortwährend Temperatur-Daten.
One-Wire DS18B20 in Fhem.
Hierzu geht man in den /fhem/contrib Ordner und kopiert die Datei 58_GPIO4.pm in den Fhem-Ordner.
Anschließend editiert man die in den Fhem-Ordner liegende Datei 98_autocreate.pm und fügt folgenden Code hinzu
# GPIO
"GPIO4_(DS18B20|DS1820).*"
=> { GPLOT => "temp4:Temp,", FILTER => "%NAME" },
anschließend mit shutdown restart fhem neu starten, oder RPi neu Booten.
In der File-Config-Datei noch folgende Zeile einfügen, damit der Temperatur-Sensor von Fhem erkannt wird.
define Temperatursensor1 GPIO4 BUSMASTER
Nun sollte das Modul auch im Plot die gemessenen Temperaturen anzeigen.
Tipp: Standardmäßig nimmt der Sensor jede Minute (60s) eine Messung vor. Ihr könnt mit dem Attribut pollingInterval die Messintervalle einstellen. Bei einem Eintrag von 320 wird jede 5min gemessen.
[asa]B008XVAUPI[/asa]
Fazit:
Die One-Wire-Messung ist eine preiswerte Methode zum Messen von Temperaturen. Ihr könnt mehrere Sensoren parallelschalten. Der Sensor selber kostet bei Conrad ungefähr 2 bis 3 Euro. Vorteil ist der Preis, nachteilig natürlich die Verkabelung.
Möchte man drahtlos die Temperatur und Luftfeuchtigkeit seiner Räume überwachen, empfehle ich die LaCrosse Temperatur- und Luftfeuchtigkeitssensoren mit einem JeeLink-Transceiver. Bitte dazu auch meinen Blogbeitrag über diese günstigen Sensoren lesen.