micro:bit

Klimamessgerät (Temperatur und Luftfeuchtigkeit)

clock 120 min
user 7.-9. Klasse
Fortgeschritten
In dieser Lektion lernst du, wie man ein Klimamessgerät baut, das auf einem Temperatur- und Feuchtigkeitssensor vom Typ DHT11 und zwei NeoPixeln basiert. Das Klimamessgerät kann sowohl die Temperatur als auch die Luftfeuchtigkeit messen. Die zwei NeoPixel zeigen an, ob es warm oder kalt ist und ob die Luft eher trocken oder feucht ist. Das hilft zu entscheiden, ob man lüften sollte oder nicht.
Materialliste
Das brauchst du:

Einführung

Wenn du mit der Lektion fertig bist, wirst du dies können:

  • Einen micro:bit zusammen mit einem DragonTail verwenden
  • Die Funktionsweise der NeoPixel verstehen
  • Die Funktionsweise eines Temperatur- und Luftfeuchtigkeitssensors vom Typ DHT11 verstehen
  • Daten von einem Temperatur- und Luftfeuchtigkeitssensor vom Typ DHT11 auslesen
  • NeoPixel programmieren
  • Funktionen programmieren.

Hardware

DHT11 - Temperatur- und Luftffeuchtigkeitssensor

Ein Temperatur- und Luftfeuchtigkeitssensor vom Typ DHT11 kann die Temperatur und die Luftfeuchtigkeit in der Umgebung messen.

Das Bauteil enthält sowohl einen Luftfeuchtigkeitssensor als auch einen Thermistor zur Temperaturmessung. Das Bauteil kann an einen micro:bit angeschlossen werden, der vom Sensor auslesen kann, wie hoch die Temperatur und die Luftfeuchtigkeit sind.

Der DHT11 misst am genauesten, wenn die Luftfeuchtigkeitswerte zwischen 20 und 80 % und die Temperaturen zwischen 0 und 50 °C liegen.

Der DHT11 ist nachstehend abgebildet. Er besitzt vier Pins. Der erste Pin (VCC) ist der Pin für die Stromversorgung des Bauteils, der zweite Pin ist der Datenpin (Data), der Daten an den micro:bit sendet. Der dritte Pin (N/C) muss nicht angeschlossen werden, denn N/C steht für Englisch no connection, also "keine Verbindung". Der vierte Pin (GND) ist der Erdanschluss des Bauteils.

DHT11

 

Einbinden des DHT11-Sensors

Setze den DHT11 in das Steckbrett ein. Schließe den ersten Pin an den Pluspol der Stromversorgung an. Verbinde den zweiten Pin (Data) mit dem Pin P0 am Dragontail. Schließe den vierten Pin an den Minuspol der Stromversorgung am Steckbrett an.   dht11frit  

NeoPixel

Ein NeoPixel ist ein elektronisches Bauteil, das drei Leuchtdioden (LEDs) und einen Mikrocontroller enthält. NeoPixel können RGB-Farben anzeigen. Es ist möglich, mehrere Neopixel in Reihe zu schalten und über einen Pin auf dem micro:bit gleichzeitig anzusteuern.

Ein NeoPixel hat drei Anschlüsse (Beine) auf der linken und drei Anschlüsse auf der rechten Seite. Die Signale laufen von links nach rechts. In dieser Lektion arbeiten wir nicht mit einer Reihenschaltung, sondern wir verwenden zwei NeoPixel, die wir separat anschließen. Der erste NeoPixel dient zur Anzeige der Temperatur, und der zweite NeoPixel dient zur Anzeige der Luftfeuchtigkeit. Aus diesem Grund benötigen wir an jedem NeoPixel nur drei Anschlüsse:

Wir benutzen den VCC-Anschluss auf der linken Seite als Stromversorgung für den NeoPixel. Den IN-Anschluss links nutzen wir für die Dateneingabe vom micro:bit. Den GND-Anschluss auf der rechten Seite verbinden wir mit dem Minuspol der Stromversorgung. Skaermbillede 2022 11 20 115533  

Einrichten der NeoPixel

Setze den ersten NeoPixel ins Steckbrett und verbinde den linken VCC-(+)-Anschluss mit dem Pluspol der Stromversorgung des Steckbretts. Den IN-Anschluss verbindest du mit dem Pin P14 am Dragontail. Den rechten GND-Anschluss verbindest du mit dem Minuspol des Steckbretts.   1neo  

Kompletter Schaltkreis

Der DHT11 und der rechte NeoPixel werden genau so angeschlossen, wie oben dargestellt. Jetzt setzen wir einen weiteren NeoPixel in das Steckbrett ein. Verbinde den linken VCC-(+)-Anschluss mit dem Pluspol der Stromversorgung am Steckbrett. Den IN-Anschluss verbindest du mit dem Pin P13 am Dragontail. Den rechten GND-Anschluss verbindest du mit dem Minuspol des Steckbretts.

Hier das gesamte Hardware-Setup im Überblick: samlet  

Software

Einführung

Mit dieser Schritt-für-Schritt-Anleitung programmierst du ein Klimamessgerät.

Für die Programmierung verwendest du MakeCode.

Wenn du mit dem Programmieren fertig bis, sollte dein Programm so aussehen:

 

klima programm komplett 1

 

Anschließen des micro:bit

Bevor du mit dem Programmieren deines Klimamessgeräts beginnen kannst, musst du deinen micro:bit so eingerichtet haben, dass er dein Programm von deinem Computer übernehmen kann:

 

Schritt 1

Schließe den micro:bit mit dem USB-Kabel an deinem Computer an.

 

Schritt 2

Öffne den Google Chrome-Browser, um sicherzustellen, dass alles wie in dieser Anleitung funktioniert.

Öffne die MakeCode-Startseite.

Klicke auf "Neues Projekt" und gib ihm den Namen "Raumklima".

 

Schritt 3

Füge in den Codeblock "beim Start" den Befehl "zeige Symbol" ein und wähle dein eigenes Symbol oder das im Bild gezeigte Symbol aus.

 

Zeige Häkchensymbol

 

Schritt 4

Verbinde jetzt deinen micro:bit mit der Browser-Anwendung. Klicke dafür auf die Schaltfläche mit den drei Pünktchen:

 

Skaermbillede 2022 10 28 133739

 

Schritt 5

Klicke im Menü auf "Gerät verbinden".

Dein micro:bit wird nun angezeigt, siehe Bild unten. Zum Herstellen der Verbindung klickst du jetzt auf "BBC micro:bit" und dann auf "Verbinden". Skaermbillede 2022 10 28 134051 Skaermbillede 2022 10 28 134413

 

Schritt 6

Nun kannst du dein Programm aus MakeCode auf den micro:bit übertragen, indem du auf "Herunterladen" klickst:

Skaermbillede 2022 10 28 133739

 

Jetzt kannst du mit dem Programmieren loslegen.

 

 

Programmieren des Klimamessgeräts

Wir beginnen mit dem Code, der den DHT11-Sensor zum Laufen bringt. Um dieses Programm schreiben zu können, benötigst du eine zusätzliche Programmbibliothek.

Schritt 1

Klicke im Programmmenü links auf "Erweiterungen":

klima 1 menue

 

Schritt 2

Gib im Suchfeld "DHT11" ein und wähle dann aus den Suchergebnissen "DHT11_DHT22" aus:

klima 2 suche

 

Schritt 3

Die Hinzufügung wird jetzt im Programmmenü angezeigt:

klima 3 menue erweitert

 

Schritt 4

Jetzt entfernst du zunächst den Programmcode aus dem vorherigen Schritt ("Anschließen des micro:bit"). Auf der Arbeitsfläche befinden sich nun nur die beiden Programmierblöcke "beim Start" und "dauerhaft".

klima 4 bloecke leer

 

Schritt 5

Klicke auf die neue Bibliothek "DHT11/DHT22" und wähle dort den großen Block:

klima 5 1 dht11

 

Ziehe den Block auf die Arbeitsfläche und setze ihn in den Programmierblock "dauerhaft" ein:

klima 5 2 dauerhaft

 

Schritt 6

Klicke im Programmmenü unterhalb der neuen Bibliothek auf "... mehr" und wähle dort "Temperature type":

klima 6 1 mehr

Ziehe "Temperature type" in den Programmierblock "dauerhaft". Stelle die Maßeinheit auf "Celsius" ein, denn auf dieser Skala messen wir in Europa die Temperatur:

klima 6 2 typ

 

Schritt 7

Jetzt soll die Temperatur auf der Konsole angezeigt werden. Klicke auf "Fortgeschritten" und dann auf "Seriell":

klima 7 1 menue

 

Wähle den Block "seriell Zeile ausgeben":

klima 7 2 seriell zeile

 

Ziehe den Block in den Programmierblock "dauerhaft":

klima 7 3 seriell dauerhaft

 

Klicke jetzt im Menü auf die Bibliothek "DHT11/DHT22" und wähle den zweiten Block "Read":

klima 7 4 read

 

Setze den Block in die leere Stelle des Blocks "seriell Zeile ausgeben" und wähle als Anzeigeoption "temperature":

klima 7 5 temperatur dauerhaft

 

Schritt 8

Wähle in der Bibliothek "Grundlagen" den Block "pausiere" und füge ihn unten in deinem Programmierblock ein:

klima 8 dauerhaft komplett

 

Schritt 9

Ob der Sensor funktioniert, kannst du testen, indem du den Code in deinen micro:bit herunterlädst. Es ist eine gute Idee, die Bauteile und deinen Programmcode kontinuierlich zu testen, wenn du an einem größeren Projekt arbeitest. Wenn du hingegen erst am Schluss testest, nachdem du mit dem Programmieren fertig bist, kann es sehr schwierig sein, den Fehler zu finden.

Klicke auf "Herunterladen" und dann auf "Datengerät anzeigen". Jetzt wird die Temperatur in der Konsole angezeigt: Skaermbillede 2022 11 20 134121

Die gemessene Temperatur beträgt 22,06 Grad Celsius (°C).

 

Schritt 10

Wenn du möchtest, dass die Temperatur auf dem LED-Display des micro:bit angezeigt wird, wähle in der Bibliothek "Grundlagen" den Block "zeige Text" und setze ihn wie folgt in dein Programm ein:

klima 10 dauerhaft komplett

 

Schritt 11

Neben der Temperatur können wir auch die Luftfeuchtigkeit auf der Konsole darstellen. Gehe dazu auf die gleiche Weise vor:

Dupliziere die letzten drei Codeblöcke und füge sie nach der Pause in deinen Programmierblock ein. Unter "Read" wählst du statt der Temperatur jetzt "humidity", das englische Wort für Luftfeuchtigkeit.

klima 11 dauerhaft komplett

 

Jetzt kannst du auch die Luftfeuchtigkeit auf der Konsole ablesen.

Schritt 12

Nun wollen wir mit der Programmierung der NeoPixel beginnen. Dazu benötigst du eine neue Programmbibliothek. Klicke im Menü auf "Erweiterungen" und suche nach "neopixel". Klicke auf "NeoPixel", um die Bibliothek auszuwählen:

klima 12 1 suche

 

Die Hinzufügung wird jetzt im Menü angezeigt:

klima 12 2 menue

 

Schritt 13

Klicke auf "NeoPixel" und wähle den ersten Codeblock "setze strip auf":

klima 13 1

 

Ziehe den Block in den Programmierblock "beim Start", wähle die Pin-Nummer und trage für die Anzahl der Pixel eine 1 ein:

klima 13 2 start

 

Schritt 14

Die Farbe und die Leuchtstärke der NeoPixel lässt sich per Programmierung steuern. Zum Programmieren der Leuchtstärke brauchst du den Codeblock "setze Helligkeit". Klicke unterhalb des Menüeintrags "NeoPixel" auf "mehr":

klima 14 1

 

Ziehe den Block "setze Helligkeit" in dein Programm:

klima 14 2 start

 

Du legst selbst fest, wie hell die Diode leuchten soll. Bei Helligkeit 0 leuchtet der NeoPixel gar nicht. Bei Helligkeit 255 leuchtet der NeoPixel mit voller Stärke.

 

Schritt 15

Nun legst du fest, in welcher Farbe dein NeoPixel anfangs leuchten soll. Klicke unterhalb des Menüeintrags "NeoPixel" auf "mehr" und wähle den Block "setze Farbe von NeoPixel":

klima 15 1 strip

 

Ziehe den Block "setze Farbe von NeoPixel" in dein Programm:

klima 15 2 start

 

In den meisten Programmiersprachen beginnt man beim Zählen mit der 0, deshalb steht 0 hier für den ersten NeoPixel. Setze die Farbe von NeoPixel 0 auf weiß.

 

Schritt 16

Damit der NeoPixel die von dir gewählte Helligkeit und Farbe zeigt, musst du einen weiteren Schritt ausführen. Suche im Menü unter "NeoPixel" den Codeblock "anzeigen" und füge ihn in dein Programm ein:

klima 16 anzeigen

 

Dein erster NeoPixel wird jetzt beim Programmstart weiß leuchten.

 

Schritt 17

Jetzt programmierst du den zweiten NeoPixel auf gleiche Weise wie den ersten. Dupliziere die vier Codeblöcke und stelle sie anschließend so ein, dass sie "strip2" an Pin P14 ansteuern:

klima 17 start

 

Beide NeoPixel werden jetzt beim Programmstart weiß leuchten.

 

Schritt 18

Nun bist du mit deinem Programm soweit, dass du zwei Funktionen zur Klimamessung programmieren kannst. Funktionen sind freie Codeblöcke, deren Inhalt man selbst festlegen kann. Die Funktionen kannst du wie alle anderen Codeblöcke, mit denen wir bisher gearbeitet haben, in deine Programmierblöcke einbinden.

Die erste Funktion, mit der wir beginnen, soll den ersten NeoPixel mit dem Namen "strip" rot leuchten lassen, wenn die Raumtemperatur mehr als 24 Grad beträgt; andernfalls soll der NeoPixel blau leuchten.

Öffne das Untermenü "Fortgeschritten" und klicke dann auf "Funktionen":

klima 18 1 menue

 

Erstelle jetzt eine Funktion und gib ihr den Namen "Temperatur". Anschließend klickst du auf "Fertig":

klima 18 2 funktion temperatur

 

Schritt 19

Klicke im Codemenü auf "Logik" und wähle den Codeblock "wenn ... dann ... ansonsten" aus:

klima 19 1 logik

 

Füge den Codeblock in deine neue Temperatur-Funktion ein:

klima 19 2 funktion

 

Schritt 20

Klicke erneut auf "Logik" und wähle im Abschnitt "Vergleich" den ersten Codeblock aus:

klima 20 1 vergleich

 

Setze den Block dort in deiner Funktion ein, wo bislang "wahr" stand:

klima 20 2 funktion

 

Damit die Funktion erkennt, wie hoch die Temperatur am DHT11-Sensor ist, musst du einen Lesevorgang einbauen. Dazu verwendest du im Menü "DHT11/DHT12" den Codeblock "Read":

klima 20 3 read

 

Füge den Codeblock in deine Funktion nach dem "wenn" ein. Jetzt änderst du noch das "=" zu ">" und die die Zahl 0 im letzten Feld auf die Zahl 24:

klima 20 4 block

 

Deine Funktion macht bislang Folgendes: Wenn die Temperatur am Sensor größer als 24 ist, führt sie eine Aktion aus. Diese Aktion wollen wir im nächsten Schritt definieren.

 

Schritt 21

Wenn die Temperatur höher als 24 Grad ist, soll dein NeoPixel rot leuchten. Um die Farbe des NeoPixels zu verändern, musst du zunächst die aktuelle Leuchtfarbe löschen. Dazu verwendest du den Codeblock "ausschalten", den du im Menü "NeoPixel" findest. Anschließend klickst du unterhalb des Menüpunkts "NeoPixel" auf "mehr" und wählst dann den Codeblock "setze Farbe von NeoPixel 0 auf rot":

klima 21 funktion

 

Schritt 22

Wenn die Temperatur nicht über 24 Grad liegt, soll dein NeoPixel blau leuchten:

klima 22 funktion

 

Schritt 23

Deine Temperatur-Funktion ist jetzt fertig und soll vom Programmblock "dauerhaft" aus aufgerufen werden. In der Programmierung nennt man das Aktivieren einer Funktion "aufrufen".

Wähle im Menü "Funktionen" den Block "Aufruf Temperatur" aus und setze ihn in dein Programm ein:

klima 23 dauerhaft

 

Schritt 24

Als Nächstes programmieren wir die Funktion für das Auslesen der Luftfeuchtigkeit. Dupliziere die Funktion "Temperatur" und nenne sie "Feuchtigkeit". Diese Funktion soll je nach Luftfeuchtigkeit am Sensor verschiedene Aktionen ausführen. Zunächst änderst du im ersten Block der Funktion "temperature" in "humidity", das englische Wort für Luftfeuchtigkeit.

Wenn die Luftfeuchtigkeit über 60 liegt, möchten wir, dass dein zweiter NeoPixel, der die Bezeichnung "strip2" trägt, orange leuchtet. Liegt der Wert bei 60 oder darunter, soll er grün leuchten:

klima 24 funktion

 

Schritt 25

Jetzt ist auch die Funktion für die Luftfeuchtigkeit fertig und soll vom Programmblock "dauerhaft" aufgerufen werden. Wähle im Menü "Funktionen" den Block "Aufruf Feuchtigkeit" aus und setze ihn in dein Programm ein:

klima 25 dauerhaft komplett

 

Schritt 26

Klicke auf "Herunterladen". Jetzt bist du fertig und kannst dein neues Klimamessgerät ausprobieren.  

Anwenden des Klimamessgeräts

Einführung

Nachdem du dein Klimamessgerät aufgebaut und programmiert hast, ist es einsatzbereit. Ein Klimamessgerät in Innenräumen kann dich darauf aufmerksam machen, ob du die Heizung höher oder niedriger einstellen solltest oder ob es Zeit, die Räume auszulüften.

Schritt 1

Vergewissere dich, dass MakeCode in deinem Browser geöffnet ist und dass dein micro:bit korrekt angeschlossen ist, wie im Abschnitt Anschließen des micro:bit gezeigt.

Schritt 2

Jetzt bis du bereit, dein System zu testen.  

Aufgaben

Opgave 1

  1. Ändere deine Funktionen so ab, dass die beiden NeoPixel in anderen Farben leuchten.
  2. Verändere die Leuchtstärke (Helligkeit), indem du den Programmcode für die NeoPixel veränderst.
  3. Teste dein Klimamessgerät an verschiedenen Stellen im Raum, zum Beispiel direkt an einem Heizkörper oder am Kühlschrank.

Opgave 2

  1. Erweitere deine Temperaturfunktion so, dass der NeoPixel blau leuchtet, wenn die Temperatur 15 Grad oder weniger beträgt, dass er gelb leuchtet, wenn die Temperatur zwischen 16 und 22 Grad liegt, und dass er orange leuchtet, wenn die 23 Grad oder mehr beträgt.
  2. Erweitere deine Feuchtigkeits-Funktion so, dass bei einer Luftfeuchtigkeit unter 45 auf dem LED-Display des micro:bit ein Smiley angezeigt wird.
  3. Erweitere deine Feuchtigkeits-Funktion so, dass bei einer Luftfeuchtigkeit unter 45 auf dem LED-Display des micro:bit ein Smiley angezeigt wird.
  4. Erstelle eine neue Funktion, die bewirkt, dass der NeoPixel, der der Temperatur zugeordnet ist, jedes Mal blinkt, wenn die gemessene Temperatur von der Temperatur abweicht, die 2 Sekunden zuvor gemessen wurde.