Hendrich.org

Temperatursensoren 1wire auslesen

Veröffentlicht: 01.04.2016

Hardware

Die 1-Wire-Sensoren vom Typ DS1820 können gemäß der Anleitung von Martin Kompf angeschlossen werden, hierbei handel es sich über den Betrieb mit zwei Leitungen im parasitären Modus, dabei kommt die Versorungsspannung über den GPIO Pin. Besser ist jedoch der Betrieb mit drei Leitungen, weil stabiler gegen Störungen, insbesondere bei langen Leitungen. Eine Anleitung findet man hier.

Software

Ist auf Raspbian wheezy bereits installiert, muss aber per modprobe noch aktiviert werden. Temporär bis zum nächsten Booten geht das mit:

sudo modprobe w1-gpio pullup=1
sudo modprobe w1-therm

Dies sollte sofort in der Datei /etc/modules fest eingetragen werden, so dass die Temperatursensoren nach Neustart direkt verfügbar sind. Nebenbei kann man gleich die Anzahl der zulässigen Slaves erhöhen:

w1-gpio pullup=1
w1-therm strong_pullup=2
wire max_slave_count=10

Neu ab Kernel 3.18 (Februar 2015): Aktivierung des Device Tree Overlay für 1-wire. In der Datei /boot/config.txt und die folgende Zeile hinzufügen und neu booten:

dtoverlay=w1-gpio,gpiopin=4,pullup=on

Werte

Die Werte der Sensoren werden in einzelne Unterverzeichnisse des Ordners /sys/bus/w1/devices abgelegt. Der Name des Unterverzeichnisses ist jeweils der Name der Sensoren, die Werte sind in Milli-°C angegeben (auch wenn die Sensoren wesentlich ungenauer sind). Die Werte kann man nun recht einfach mit einem Python-Script auswerten und per Cronjob irgendwo ablegen.