Wetterstation
Template, muss noch geändert werden
Luftfeuchtigkeit und Raumtemperatur exakt messen, geht das?
- „Sag mal Bernhard, sind dein Augen auch so trocken?“
- „Ja, eigentlich schon! Ich glaube, das muss wohl am ständigen Heizen in der kalten Jahreszeit liegen. Was meinst du, Martina?“
- „Ja, genau. Das könnten wir doch gleich einmal messen. Meinst du das geht mit dem micro:bit?“
- „Martina, das geht schon. Einfach einen externen Sensor an den micro:bit anhängen und schon können wir Luftfeuchtigkeit und Temperatur messen. Mit ein paar Krokoklemmen-Kabeln ist das gleich erledigt.
- „Wenn das so einfach geht, dann lass uns das doch gleich ausprobieren, Bernhard. Einverstanden?“
Aufgabenstellung
- Der BBC micro:bit dient als Messgerät für die Luftfeuchtigkeit und Raumtemperatur ohne dabei die CPU Abwärme mit zu messen.
- Sobald der micro:bit mit Strom versorgt ist und sich an die Umgebungstemperatur angepasst hat, misst er dauerhaft und zeigt die Messwerte als Graph in der Konsole des Browsers.
- Wird die Taste A gedrückt, zeigt er den Wert der Temperatur als Zahl.
- Wird die Taste B gedrückt, zeigt er den Wert der Luftfeuchtigkeit als Zahl.
<spoiler>
- Zur Ermittlung der Luftfeuchtigkeit und Temperatur wird eine digitale Schaltung aufgebaut.
- Dazu wird ein Stromkreis mit Krokoklemmen und Sensoren (Bauteil DHT11/ DHT22) aufgebaut.
- Der Strom vom micro:bit gelangt über Kabel an die Sensoren im Bauteil und wieder zurück an einen Stromeingang des micro:bit.
- Es kann nun der Bauteil angesteuert werden und je nach Funktion die aktuelle Temperatur oder die gemessene Luftfeuchtigkeit angezeigt werden.
- Dieser Wert wird auch als Graph auf Konsole im Browserfenster angezeigt.
</spoiler>
Materialien
- BBC micro:bit
- 3 Krokodilklemmen-Kabel (unterschiedliche Farben) <spoiler>Einkaufsvorschlag: erhältlich bei Fa. Conrad</spoiler>
- 1 digitaler Sensor DHT11/ DHT22 <spoiler>
Einkaufsvorschlag: erhältlich bei Fa. Conrad
ACHTUNG, die Anschlüsse der drei PINs des Sensors können je nach Hersteller variieren!
Bitte achte darauf, dass die Anschlüsse Minus auf GND und Plus auf 3V angeklemmt werden. Der dritte PIN des Sensors gehört dann auf PIN 0 des micro:bits angelschossen.</spoiler> - etwas Zeit bei plötzlichem Temperaturwechsel zur Akklimatisierung
Zeitaufwand
- ca. 1 Schulstunde zur Erklärung und zum Aufbau und der digitalen Schaltung
- ca. 1-2 Schulstunden zum Entwickeln des Programmes und für erste Messungen <spoiler>Achtung! Jeweils ca. 5 - 10 Minuten zur Anpassung an die jeweilige Umgebungstemperatur mit einrechnen!</spoiler>
Schwierigkeitsgrad
Kompetenzen
Das solltest du bereits können:
- eine Variable erstellen und Werte zuweisen können
- Programmbefehle den Knöpfen A und B zuordnen können
- einen Text anzeigen können
- eine Anzeige der LEDs selbst zeichnen können
Du lernst
- das Formulieren und Kodieren von Abläufen in formalen Algorithmen (Informatik)
- das Arbeiten mit Pins und Krokoklemmen-Kabel (Technisches Werken)
- Sensordaten digital einzulesen und zu interpretieren
- Erweiterungen von Dritten in Makcode einzubinden und zu verwenden
- Daten in der Konsole des Browsers bei angeschlossenem micro:bit auszugeben
Unterrichtsfächer
INF, Physik, TW
Tipps und Hilfestellung
Ziel
Der micro:bit soll die Umgebungstemperatur und Luftfeuchtigkeit messen und dauerhaft in der Konsole als Graph darstellen.
Auf Knopfdruck A erscheint die Temperatur und auf Knopfdruck B die Luftfeuchtigkeit.
<spoiler>
- Zu Beginn wollen wir nur zwei Widerstandswerte und Temperaturen (innen/ außen) messen
- Dann berechnen wir die Steigung der Geraden und denn Nullpunkt, was durch diese zwei Messpunkte vordefiniert ist
- Nach Kalibrierung der Schaltung kann der micro:bit jede beliebige Temperatur messen und anzeigen
- Verschwende keine Energie und optimiere deinen Code, je weinger Zeilen desto besser</spoiler>
Erforderliche Programmierblöcke
- beim Start <spoiler text="Block *">
leer
* Der Block "leer" wird systembedingt mit angezeigt. </spoiler> - zeige LEDs <spoiler text="Block *">
basic.showLeds(`. . . . . . . . . . . . # . . . . . . . . . . . .`)
* Der Block "beim Start" wird systembedingt mit angezeigt. </spoiler> - pausiere <spoiler text="Block">
basic.pause()
* Der Block "beim Start" wird systembedingt mit angezeigt. </spoiler> - wenn Knopf A gedrückt <spoiler text="Block">
input.onButtonPressed(Button.A, function () {})
</spoiler> - digitale Werte von Sensor-Pin einlesen (Erweiterung) <spoiler text="Block *"> </spoiler>
- zeige Text<spoiler text="Block *">
basic.showString()
* Der Block "beim Start" wird systembedingt mit angezeigt. </spoiler>
Eckpfeiler zur Programmierung
- Durch Ansteuern des digitalen Sensors über einen Pin übergibt dieser die aktuellen Messwerte an den micro:bit.
- Wir lesen danach entweder die Temperatur oder die Luftfeuchtigkeit, und geben diese Werte jeweils auf Knopfdruck aus.
- Wenn der Knopf A gedrückt wird soll die Temperatur erscheinen. Und bei Drücken von Knopf B soll die Luftfeuchtigkeit angezeigt werden.
Schritt für Schritt zur Lösung
- Hinweise zur Lösungsfindung und die Lösung findest du auf der Lösungsseite zu diesem Beispiel.
Präsentation und Reflexion
- Stelle dein Ergebnis vor!
- Was kann dein Messgerät? Messen andere micro:bits und deren elektronische Temperaturschaltung (Thermistor + Widerstand) gleiche Werte?
- Vergleiche die Werte von unterschiedlichen Orten - innen, außen, Schatten, Sonne, Kühlschrank, etc.
- Hast du aussagekräftige Werte bekommen? Stimmen die micro:bit Werte mit denen des externen Thermometers halbwegs überein?
- Was hat dir bei der Entwicklung deines Produkts gefallen?
- Welche Schwierigkeiten hattest du? Wie konntest du sie lösen?
- Erläutere, wie dein Programm aussieht!
- Was war bei dieser Aufgabe interessant für dich?
Weiterentwicklung
- Audioalarm bei Unter- bzw. Überschreiten eines Schwellenwertes (Komfortzone)
- Smileys bei angenehmen Temperaturen, Eiszapfen und Kochtopf bei Überschreiten der "angenehmen Zone".
- Temperaturwerte zu anderen micro:bits senden - Außentemperatur, Kühlschranktemperatur, etc.