Link

Lektion 14 - Temperatursensor DHT11 oder DHT22 und OLED

Hardware

MakeCode Erweiterung

In den vorherigen Lektionen hast Du bereits erfahren, wie Du den MakeCode-Editor für Micro:Bit mit Erweiterungen um noch mehr sinnvolle Funktionen erweitern kannst. In dieser Lektion ließt Du die Temperatur und Luftfeuchtigkeit von einem externen Temperatur- und Feuchtigkeitsensor (DHT11 oder DHT22) aus und stellst diese auf einem kleinen OLED dar.

MakeCode-Erweiterung

Um den Sensor mit dem Micro:Bit auslesen zu könnnen, musst Du die Environment-IoT-Erweiterung installieren. Diese Erweiterung gehört zu einem speziellen Starter-Set für den Micro:Bit und umfasst unterschiedliche Sensoren. Daher enthält die Environment-IoT-Erweiterung viele neuen Blöcke, mit denen Unterschiedliche Sensoren angesteuert werden können, u.a. auch der DHT11-Sensor.

Wähle unter dem Block Fortgeschritten den Punkt Erweiterungen und suche anschließend nach der Environment-IoT Bibliothek. Füge diese dem Makecode Editor hinzu. Dadurch erhälst Du folgende weiterer Blöcke.

Hardware (Sensoren)

Temperatur- und Feuchtigkeitssensor DHT11

Der hier verwendete Temperatursensor DHT11 verfügt lediglich über drei Anschlüsse und enthält bereits einen Pull-Up-Widerstand. Es gibt auch Modelle, die mit vier Anschlüssen und ohne Widerstand geliefert werden, dort bleibt dann ein PIN unbelegt und es muss zusätzlich ein Widerstand vorgeschaltet werden.

OLED 64x128 I2C 0,96’’ Monochrome Display

Das hier verwendete Display hat eine Größe von 0,96 Zoll, dies entspricht etwa 2,4 cm in der Diagonale. Das OLED kann 64x128 Bildpunkte (Pixel) in einer Farbe (monochrome) darstellen. Angeschlossen wird es über den I2C-Bus, eine Verbindungsart bei der bis zu 127 Geräte gleichzeitig über lediglich zwei Leitungen (SCL und SDA) gesteuert werden können.

Anschlüsse

Schließe den Temperatursensor DHT11 oder DHT22 und das OLED wie in folgendem Bild dargestellt an Deinen Micro:Bit an.

OLED  DHT11  Micro:bit  Beschreibung
VCC  3V 3V  Spannungsversorgung
 GND  GND GND Masseleitung
SCL   Pin 19 (SCL) Signal Clock
SDA    Pin 20 (SDA) Signal Data
   X  Pin 0  Analog In

Anleitung

Du benötigst aus dem Grundlagen_-Block die Blöcke beim Start und dauerhaft.

Im beim Start-Block musst Du zunächst Dein OLED korrekt initialisieren, d.h. Du musst dem Micro:Bit-Programm mitteilen, wieviele Pixel es in der Höhe und der Breite hat. Verwende initialize OLED... und setze den Wert height auf 64 und den Wert width auf 128, daraus ergibt sich die Auflösung des Displays. Zusätzlich kannst Du mit show loading screen ein Ladegrafik anzeigen.

Im dauerhaft-Block ließt Du jetzt als Endlosschleife die Werte für Temperatur und Luftfeuchtigkeit aus und stellst diese auf dem Display dar.

Gib zunächst die Zeichenkette (String) “Temperatur:” aus, verwende dazu den Block show string.

Zeige dann die Temperatur an. Verwede dabei den Block Show (without newline) number und ersetze den Wert mit value of dht11 temperature.

Dasselbe machst Du für die Luftfeuchtigkeit. Gib die Zeichenkette (String) “Luftfeucht.:” aus unter Verwendung des Blocks show string aus. Verwede dnn ebenfalls den Block Show (without newline) number und ersetze den Wert mit _alue of dht11 humidity.

Zum Abschluss füge noch eine Pause von 2 Sekunden hinzu und lösche das Display mit dem Block clear OLED display.

Es sollte nun alle 2 Sekunden die aktuelle Temperatur und Luftfeuchtigkeit auf dem OLED angezeigt werden. Hauche vorsichtig den Sensor ab, damit sich die Werte ändern.

Blocks

So könnte Dein Programm aussehen.

Javascript-Code

    
OLED.init(64, 128)
dht11_dht22.queryData(
  DHTtype.DHT11,
  DigitalPin.P13,
  true,
  false,
  true
)
basic.forever(function () {
    OLED.writeStringNewLine("Temperatur:")
    OLED.writeNum(dht11_dht22.readData(dataType.temperature))
    OLED.writeStringNewLine("Luftfeucht.:")
    OLED.writeNum(dht11_dht22.readData(dataType.humidity))
    basic.pause(2000)
    OLED.clear()
})

Makecode Projekt

Lektion 14 (Temperatursensor) als Makecode-Projekt