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)