Transformator


Google-Suche auf MEINE-SCHALTUNG.de :





Online Rechner

Chronik

Dauerkalender


Meine Mini-Wetterstation
Temperatur und Feuchtigkeit messen und anzeigen


Mit dem Sensor-Modul DHT11 lässt sich glatt eine kleine Mini-Wetterstation aufbauen. Der Sensor, der online problemlos unter 2 Euro zu bekommen ist, misst zwei Werte, die bei einer Wetterstation nicht fehlen dürfen: Temperatur und Luftfeuchtigkeit. Die Werte, die über nur eine Leitung geliefert werden, werden von Raspberry Pi in Empfang genommen und „verständlich“ gemacht. Mit einem LCD_Display machen wir anschließend die Werte sichtbar.

Display

LCD-Display

Das Display 4x20 kann Text in vier Zeilen, je 20 Zeichen pro Zeile, anzeigen. Solche Displays-Module sind für eine I2C-Kommunikation nicht ausgelegt. Hierzu verwenden wir ein Interface Modul FC-113.

I2C Interface

I2C Interface

Das Modul erspart uns viel Verdrahtungsarbeit. Darüber hinaus sparen wir mit dem Modul die GPIOs, die dann für andere Zwecke zur Verfügung stehen.
Das Display mit dem Modul arbeitet mit 5 V. Damit keine gefährlichen Kollisionen mit den Raspi-Ein- und Ausgängen entstehen, kommt zwischen dem Display–Duo und Raspberry Pi ein Pegel-Konverter ins Spiel.

Level Konverter

Level Konverter

Mit dem Konverter werden beide Seiten, 3,3V von Raspi und 5V vom Display gefahrlos zusammengebracht. Um das Display anzusteuern, wird die RPLCD-Bibliothek (https://pypi.org/project/RPLCD/) verwendet.

Eine Raspi-Schaltung mit 4x20-Display wurde u.a. hier vorgestellt:

Raspi-Intern (Datum, Uhrzeit, CPU-Temperatur auslesen und anzeigen)

Die Arbeit, die mit dem Auslesen, Umwandlung und Anzeige der Daten zusammenhängt, erledigt in dem Beispiel Raspberry Pi.

Raspberry Pi 3B

Raspberry Pi 3B

Der Sensor

Der Sensor

Der Sensor DHT11

Der Baustein, um den es hier geht, ist ein zweifacher Sensor, der die aktuelle Temperatur und Luftfeuchtigkeit liefert. Der Sensor trägt die Bezeichnung DHT11. Bei der gleichen Schaltung und Bibliothek könnte man noch die Sensoren DHT22 oder AM2302 einsetzen. Die Werte, die der Sensor erfasst, werden über das 1-Wire-Protokoll ausgegeben. DHT11 misst die Temperatur in einem Bereich von 0 °C bis +50 °C. Die Temperaturmessgenauigkeit beträgt dabei ± 2,0 °C. Sein Feuchtigkeit-Messbereich erstreckt sich von 20 % bis 90 %. Die Genauigkeit hier beträgt ±5%.
Die Arbeitsspannung des Sensors beträgt 3V bis 5V. Somit kann er problemlos an die 3,3V von Raspberry Pi angeschlossen werden.
Der Sensor DHT22 erfasst dagegen die Temperatur im Bereich von -40°C bis +80°C mit einer Genauigkeit von ± 0,5 °C. Er kann die Luftfeuchtigkeit von 0% bis 100% mit einem Toleranzwert von ± 2% erfassen. Der DHT11 hat somit kleinere Erfassungsbereiche und ist nicht so genau, für eine einfache „Mini-Wetterstation“ ist sein Können jedoch völlig ausreichend.
Der Sensor hat einen Daten-Pin, der an jeden freien GPIO-Pin angeschlossen werden kann. Es wird empfohlen, die Daten-Leitung mit einem Pull-up-Widerstand mit dem VCC-Anschluss zu verbinden.
Die Pinbelegung des Sensors von Frontansicht betrachtend (von links nach rechts):
1. VCC
2. Data
3. N.C.
4. GND
Die entsprechende Verschaltung aller Komponenten ist auf der folgenden Abbildung zu sehen:

Schaltplan

Schaltplan

Die fertig aufgebaute Testschaltung:

Testschaltung

Testschaltung

Das Programm

Neben der Bibliothek RPLCD, die für die Kommunikation mit dem Display zuständig ist, kommt in dem Versuch die Bibliothek Python_DHT zum Einsatz. Sie ist extra für die Sensoren DHT11, DHT22 und AM2302 entwickelt und funktioniert auch bei Python 3. Im Internet findet man sie unter der Adresse https://github.com/coding-world/Python_DHT. Mit folgenden Schritten im LXTerminal kann die Bibliothek installiert werden:

 
        # Aktualisieren 
$ sudo apt-get update                               
$ sudo apt-get install build-essential python3-dev
        # runterladen 
$ git clone https://github.com/coding-world/Python_DHT.git  
        # in das Verzeichnis Python_DHT wechseln 
$ cd Python_DHT            
        # Bibliothek installieren.                        
$ sudo python3 setup.py install                     
        

Das Python-Programm beinhaltet keine Geheimnisse. In einer Schleife werden in bestimmten Zeitabständen regelmäßig die Temperatur und Feuchtigkeitswerte abgefragt und auf dem Display angezeigt. Programmcode:


# ------------------------------------------------------------
# Mini Wetterstation
# mit DHT11 (DHT22/AM2302)
# Raspberry Pi 3B, Python 3
# ------------------------------------------------------------
from RPLCD.i2c import CharLCD
import time
import Python_DHT as dht

lcd=CharLCD('PCF8574',0x27)

Sensor = dht.DHT11              # Hier kann auch DHT22 oder 
                                # AM2302 angegeben werden 
Pin = 4                         # Pin (BCM), an dem der Sensor 
                                # angeschlossen wird 

while True:
    lcd.clear()                 # Begrüßung 
    lcd.cursor_pos =(1,7)
    lcd.write_string("Deine")
    lcd.cursor_pos =(2,1)
    lcd.write_string("Mini-Wetterstation")
    time.sleep(2)

    Feuchtigkeit, Temperatur = dht.read_retry(Sensor, Pin)    # Daten abrufen 
    lcd.clear()
    if Feuchtigkeit is not None and Temperatur is not None:   # Anzeige, bei OK 
        lcd.cursor_pos =(0,1)
        lcd.write_string("Temperatur:")
        lcd.cursor_pos =(1,12)
        lcd.write_string("%.1f *C" % Temperatur)
        lcd.cursor_pos =(2,1)
        lcd.write_string("Feuchtigkeit:")
        lcd.cursor_pos =(3,12)
        lcd.write_string("%.0f" % Feuchtigkeit)
        lcd.write_string(" %")
    else:
        lcd.cursor_pos =(1,0)                                 # Störung 
        lcd.write_string("----- Stoerung -----")
        lcd.cursor_pos =(2,1)
        lcd.write_string("Bitte")
        lcd.cursor_pos =(3,3)
        lcd.write_string("repariere mich!")
    time.sleep(5)
# ------------------------------------------------------------------
        

Kurzvideo

Kurzvideo


Weitere Themen:


Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz