Skip to main content

Der Code

Hier ist ein Beispielcode für eure Programmierung in Micropython in der IDE Thonny auf dem Raspberry Pi Pico.

# Bibliotheken laden
#---------------------------------------------------------------------
from machine import Pin, I2C
from time import sleep
import dht
from ssd1306 import SSD1306_I2C


# OLED Pixel Definieren (WxH) vom SSD1306 DIsplay
WIDTH  = 128 
HEIGHT = 32

# DHT22 Sensor an GP2
sensor = dht.DHT22(Pin(2))

# i2c Zweidraht an Pin GP5, GP4 definieren
SCL = 5
SDA = 4

# Initialize i2c
#---------------------------------------------------------------------
# wird auch als Inter-Integrated Circuit beschrieben
# und wird (Eng.) I-Squared-C ausgesprochen
# i2c ist eine zweidraht (z.B. scl und sda) Bus
# ein Bus bildet die elektronische Verbindung zwischen mehreren digitalen Bauteilen
# scl (Eng. Serial Clock) gibt dabei den haupt 'Talkt' der Signale an 
# sda (Eng. Serial Data) überträgt Die Daten
i2c = I2C(0, scl=Pin(SCL), sda=Pin(SDA), freq=200000)

# Initialize OLED
oled = SSD1306_I2C(WIDTH, HEIGHT, i2c)

# Gibt dem Display Zeit nach 250 ms zu reagieren, um Temperatur- und Luftfeuchtigkeits-Daten anzuzeigen.
time.sleep_ms(250)

# Wiederholung (Endlos-Schleife)
#---------------------------------------------------------------------
while True:
    # Abrufen der Messwerte vom DHT22-Sensor
    sensor.measure()
    # Das Display von alten Informationen befreien
    oled.fill(0)
    # Abrufen der Temp.- und Luftfeuchtigkeits Daten aus dem DHT22
    temp = sensor.temperature()
    hum = sensor.humidity()
    # Gibt dem Display vor die Temperatur-Daten anzuzeigen
    oled.text("Temp. {} C".format(temp),5,5)
    # Gibt dem Display vor die Luftfeuchtigkeit-Daten anzuzeigen
    oled.text("Feucht. {:.0f} % ".format(hum),5,15)
    # Display mit den Daten von temp. und hum. anzeigen
    oled.show()
    # Fünf Sekunden lang warten, danach werden neue Daten aus der Erfassung des DHT22 fortgesetzt und neue Sensormesswerte angezeigt.
    time.sleep_ms(5000)