>> Artikelansicht

Temperatur und Luftfeuchtigkeit messen

Sensoren DS18B20 und DHT11 mit Adapter am Raspberry Pi Zu Beginn einer Messung ist es meist erforderlich, die Temperatur und ggf. die Luftfeuchtigkeit der Umgebung zu protokollieren. Da der Raspberri Pi keine eingebauten Sensoren dafür besitzt, kommt ein externer Sensor zum Einsatz.Um das Rad nicht neu zu erfinden, wird auf bestehende Lösungen zurückgegriffen.Hier bietet sich der Temperatursensor "DS18B20", der über einen "1-Wire" Bus angesteuert wird, an. Der "DS18B20" ist in unterschiedlichen Ausführungen einfach über das Internet zu beziehen. Wenn man auch noch die Luftfeuchtigkeit messen möchte, bietet sich ein Sensor vom Typ "DHT11/DHT22" an. Der eine Kombination aus Temperatur- und Luftfeuchtigkeitssensor beinhaltet. Dieser Sensor-Typ kommt, wie der "DS18B20", mit nur einer Datenleitung aus, über diese jedoch mittels eines anderen(Manchester-Code-ähnlichen)Protokolls mit dem Sensor kommuniziert wird. Siehe: [http://de.wikipedia.org/wiki/Manchester-Code]Der "DHT11" Sensor unterscheidet sich vom "DHT22" in einer geringeren Mess-/Auslesegeschwindigkeit von max. 2 Sekunden/Messung.Angeschlossen werden die Sensoren über den Expansion Port(GPIO) des Raspberry Pi. Es bietet sich an, eine kleine Adapterplatine zu fertigen, da die Sensoren trotz ihrer unterschiedlichen Technologie 1:1 ausgetauscht werden können.
Alle Sensor-Typen werden über den

  • Expansion Port(P1)
    • Pin-1_+3.3V:Sensor_VCC
    • Pin-7_GPIO4:Sensor_Data
    • Pin-6_GND:Sensor_GND

angeschlossen.
Zwischen VCC und Data muss noch ein Widerstand in der Größe von 4.7 .. 10 kOhm eingebaut werden.
Anschlussbelegung - Raspberry Pi Expansion Port(P1) [http://elinux.org/Rpi_Low-level_peripherals]

Die passende Software

console output DS18B20 Für den "DS18B20" Temperatursensor sind die Kernel-Module w1-gpio und w1-therm zuständig.Es ist sonst keine weitere Software notwendig.

  • Kernel-Module laden
    • sudo modprobe w1-gpio
    • sudo modprobe w1-therm
  • Ausgabe der Temperatur:
    • cat /sys/bus/w1/devices/28-*/w1_slave


console output DHT11 Für die Sensoren "DHT11/DHT22" gibt es derzeit keine Kernel-Module. Um sie trotzdem verwenden zu können, wird die "Broadcom BCM 2835 - C library" verwendet.
Quelle: [http://www.open.com.au/mikem/bcm2835]

  • Vorbereitung
    • wget http://www.open.com.au/mikem/bcm2835/bcm2835-1.17.tar.gz
    • tar zxvf bcm2835-1.17.tar.gz
    • cd ./bcm2835-1.17
    • ./configure
    • make
    • sudo make install
  • Sensor Software
    • git clone https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code
    • cd ./Adafruit-Raspberry-Pi-Python-Code
    • cd ./Adafruit_DHT_Driver
    • make

Um einen "DHT11" Sensor an GPIO_4 auszulesen verwendet man den Befehl:
> sudo ./Adafruit_DHT 11 4
Der Syntax lautet ./Adafruit_DHT {SensorType: 11,22} {GPIO_PIN_NUMBER}

Informationen zur "DHT11/DHT22" Sensor Software siehe: [http://learn.adafruit.com/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging/overview]

Alle Sensoren werden von der aktuellen Socketserver Library unterstützt.

Alternative

Wem der Aufwand zu groß ist, kann auch ein fertiges RS-232/DS18B20 Thermometer verwenden, das meist zu moderaten Preisen bei bekannten Internetauktionshäusern angeboten wird.Da sich das Thermometer wie ein RS-232 Messgerät verhält, wird es von der Socketserver Library "nativ" unterstützt.

  • Schnellstart
    • sudo apt-get install digitemp
    • digitemp_DS9097 -i -s /dev/ttyS0
    • digitemp_DS9097 -q -t 0 -c .digitemprc


Ausführliche Informationen zu "Digitemp": [http://www.digitemp.com/]