Der Einplatinencomputer RaspberrPi (bei mir der Pi Zero) ist mit dem Sensor DHT22 ideal ausgestattet für das Messen der Temperatur und der Luftfeuchtigkeit.

Als Sonsor verwende ich hoerzu den DHT22. Der DHT22 hat den vorteil gegenüber dem DHT11, dass die Messwerte wesentlich genauer sind.

Leider hat der Pi Zero die GPIO Pins noch nicht festverlötet, sodass man erst die GPIO Pins noch anlöten muss.
Hat man dies erledigt kann man mit dem Installation und dem Aufbau beginnen.

Raspberry Pi: Das große Handbuch. Über 1.000 Seiten in Farbe. Mit Einstieg in Linux, Python und Elektrotechnik. Aktuell zum Raspberry Pi 5, Pi-OS »Bookworm« und den GPIO-Bibliotheken (Gebundene Ausgabe)
by Kofler, Michael (Autor), Kühnast, Charly (Autor), Scherbeck, Christoph (Autor)

Price: 44,90 €
1 used & new available from 44,90 €

Installtion

Als Betriebssystem nutze ich inzwischen RASPBIAN JESSIE WITH PIXEL. (Download bei raspberrypi dot org unter Downloads)

Nachdem das Betriessystem installiert ist sollte man die neuesten Updates installieren:

sudo apt-get update

sudo apt-get upgrade

Für das auslesen des Sensors verwende ich adafruit. Die benötigten Komponenten werden durch folgende befehle installiert.

sudo apt-get install build-essential python-dev python-openssl

git clone https://github.com/adafruit/Adafruit_Python_DHT.git

cd Adafruit_Python_DHT

sudo python setup.py install

Im Ordner examples liegt das Script AdafruitDHT.py. Mit dem nachfolgendem Aufruf werden die Sensordaten Temperatur und Luftfeuchtigkeit ausgelesen und auf der Konsole ausgegeben. Der Wert 22 gibt an, dass es sich hier um den DHT22 handelt. Verwendet man den DHT11 wird die 22 durch die 11 ersetzt. Bei der 4 handelt es sich um die Angabe des GPIO Ports.

cd examples

sudo ./AdafruitDHT.py 22 4

Speichern der Messwerte in MySQL

Die gewonnenen Messdaten sollen eine MySQL Datenbank gespeichert.

Hierzu benötigen wir eine Tabelle:

CREATE TABLE IF NOT EXISTS `DHT22` (
`zeit` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`luftfeuchtigkeit` decimal(5,2) NOT NULL,
`temperatur` decimal(5,2) NOT NULL,
`standort` varchar(100) NOT NULL,
PRIMARY KEY (`zeit`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Da unter Umständen ja die Messwerte mehrere Sensoren in die Tabelle eingetragen werden sollen, wird als zusätzliche Spalte der Standort des Sensors der Tabelle hinzugefügt.

Bevor wir die Datenbank ansprechen können muss ein MySQL-Client installiert werden:

sudo apt-get install mysql-client

Von Michael

Schreibe einen Kommentar