Temperaturfühler DS18B20 per Shell auslesen

Kernemodule laden um den Temperatursensor anzusprechen:

# sudo modprobe w1-gpio
# sudo modprobe w1-therm

Alternativ die Datei /etc/modules mit den Kernelmodulen ergänzen:

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.
 
snd-bcm2835
w1-gpio
w1-therm

Temperatur auslesen und in eine Datenbank pipen:

#!/bin/bash
  
#TempMessung.sh
# Zwei parallel geschaltete Temperaturfühler abfragen und die Werte in eine MySQL Datenbank übertragen
 
SENSOR1=28-00000609c38f
SENSOR2=28-0000060a7b99
TEMP1=$(echo $(cat /sys/bus/w1/devices/$SENSOR1/w1_slave | grep "t=") | cut -d "=" -f2)
TEMP2=$(echo $(cat /sys/bus/w1/devices/$SENSOR2/w1_slave | grep "t=") | cut -d "=" -f2)
 
echo "INSERT INTO schema.table (sensorID, temp) VALUES ('$SENSOR1', $TEMP1);" | mysql -uYourLogin -pYourPassword -h 127.0.0.1;
echo "INSERT INTO schema.table (sensorID, temp) VALUES ('$SENSOR2', $TEMP2);" | mysql -uYourLogin -pYourPassword -h 127.0.0.1;
 
exit 0

Shell Skript über die Datei /etc/crontab automatisiert, minütlich starten:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
 
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 
# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
* *     * * *   root    /home/pi/TempMessung.sh
#

 

ERGÄNZUNG von 09/2015:

Seit dem Oktoberrelease 2014 von Debian Wheezy muss die Datei /boot/config.txt um folgende Zeile ergänzt werden damit der Pi den Sensor erkennt:

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