### 3.3.9 Micro:bit Multi-Sensor OLED-Überwachungsplattform #### 3.3.9.1 Überblick ![Img](./media/top1.png) In diesem Projekt verwenden wir das micro:bit-Board als zentrale Verarbeitungseinheit, um die Werte seiner eingebauten Sensoren (einschließlich Lichtsensor, Temperatursensor, Mikrofon) sowie externer Sensoren (wie PM2.5-Staubsensor, Dampfsensor und Solar-Ultraviolett-Sensor) auszulesen. Diese Werte werden dann in Echtzeit über die I2C-Schnittstelle auf dem OLED angezeigt. Gleichzeitig kann die Drehung des Lüfters am 130-Motormodul durch Drücken der Taste A auf dem Micro:bit gesteuert werden, und das Zerstäuben von Wassernebel aus dem Atomisierungsmodul kann durch Drücken der Taste B auf dem Micro:bit gesteuert werden. ![Img](./media/bottom1.png) #### 3.3.9.2 Benötigte Komponenten | ![Img](./media/microbitV2.png)| ![Img](./media/ExpansionBoard.png) |![Img](./media/OLED.png)| | :--: | :--: | :--: | | micro:bit V2 board ×1 | micro:bit shield ×1 |OLED display ×1 | |![Img](./media/PM2.5-1.png) |![Img](./media/motor.png)|![Img](./media/steam1.png)| | PM2.5-Staubsensor ×1 |motor ×1 |Dampfsensor ×1 | |![Img](./media/UV-sensor1.png)|![Img](./media/batterycase.png)| ![Img](./media/AAbattery.png)| |Ultraviolett-Sensor ×1|Batteriefach ×1|AA-Batterie(**selbst bereitgestellt**) ×6| |![Img](./media/usb.png) |![Img](./media/4pin.png)|![Img](./media/3pin.png)| | Micro-USB-Kabel ×1|4-poliges Kabel ×3 |3-poliges Kabel ×3 | |![Img](./media/Atomization1.png) | ![Img](./media/fan.png) | | |Zerstäubungsmodul ×1|Lüfter ×1| | #### 3.3.9.3 Anschlussdiagramm ⚠️ **Achten Sie beim Verdrahten bitte auf die Kabelfarben.** |Ultraviolett-Sensor| Kabelfarbe | Pin auf micro:bit Shield |Pin auf dem micro:bit-Board | | :--: | :--: | :--: | :--: | | G | black | G | G | | V | red | V2 | V | | S | yellow | 0 | P0 | |Dampfsensor| Kabelfarbe | Pin auf micro:bit Shield |Pin auf dem micro:bit-Board | | :--: | :--: | :--: | :--: | | G | black | G | G | | V | red | V1 | V | | S | yellow | 1 | P1 | | PM2.5-Staubsensor | Kabelfarbe | Pin auf micro:bit Shield |Pin auf dem micro:bit-Board | | :--: | :--: | :--: | :--: | | GND | black | G | G | | VCC | red | V2 | V | | LED | blue | 9 | P9 | | OUT | green | 2 | P2 | | Zerstäubungsmodul | Kabelfarbe | Pin auf micro:bit Shield |Pin auf dem micro:bit-Board | | :--: | :--: | :--: | :--: | | G | black | G | G | | V | red | V2 | V | | S | yellow | 16 | P16 | | Motor | Kabelfarbe | Pin auf micro:bit Shield |Pin auf dem micro:bit-Board | | :--: | :--: | :--: | :--: | | G | black | G | G | | V | red | V2 | V | | IN+ | blue | 13 | P13 | | IN- | green | 15 | P15 | | OLED display | Kabelfarbe | Pin auf micro:bit Shield |Pin auf dem micro:bit-Board | | :--: | :--: | :--: | :--: | | GND | black | G | G | | VCC | red | V2 | V | | SDA | blue | 20 | P20 | | SCL | green | 19 | P19 | ![Img](./media/couj11.png) #### 3.3.9.4 Programmablauf ![Img](./media/flow-chart-11.png) #### 3.3.9.5 Testcode **Vollständiger Code:** ![Img](./media/couj011.png) ![Img](./media/line1.png) **Kurze Erklärung:** ① Initialisiert die OLED-Pixel und löscht das OLED. Die 5×5-LED-Matrix zeigt ![Img](./media/ab3.png). Definiert die Anfangswerte der Variablen Total_Sound, Sample_Num, Threshold_Value, Final_Volume, UV, Rain, Temperature, Light、Sound und pm2.5_dust auf 0. ![Img](./media/cou42.png) ② Die Intensität des Schalls nach der Filterung. ![Img](./media/cou43-1.png) ③ Liest die Werte der Lichtintensität, Lautstärke, Temperatur, Ultraviolett, Niederschlagsmenge und PM2.5-Staubkonzentration. ![Img](./media/cou43.png) ④ Entscheidungsanweisung: if()...else... Drücken Sie die Taste A auf dem micro:bit-Board, und der Motor treibt den Lüfter an. Andernfalls dreht sich der Lüfter nicht. ![Img](./media/cou44.png) ⑤ Entscheidungsanweisung: if()...else... Drücken Sie die Taste B auf dem micro:bit-Board, und das Zerstäubungsmodul sprüht Wassernebel. Andernfalls arbeitet es nicht. ![Img](./media/cou440.png) ⑥ Zeigt die Werte für Ultraviolett, Temperatur, Niederschlagsmenge, Lichtintensität, Lautstärke und PM2.5-Staubkonzentration auf dem OLED an. ![Img](./media/cou45.png) #### 3.3.9.6 Testergebnis ![Img](./media/4top.png) Nach dem Verdrahten und Einschalten über das Micro-USB-Kabel schließen Sie die externe Stromversorgung (6 AA-Batterien) an, um eine ausreichende Stromversorgung sicherzustellen. Für die Windows 10 App einfach auf Download klicken. Bei Verwendung des Browsers senden Sie die “.hex”-Datei an das micro:bit-Board. Nachdem der Testcode auf das micro:bit-Board hochgeladen wurde, liest es die Werte seiner eingebauten Sensoren (einschließlich Lichtsensor, Temperatursensor, Mikrofon) sowie externer Sensoren (wie PM2.5-Staubsensor, Dampfsensor und Solar-Ultraviolett-Sensor) und kann dann Lichtintensität, Temperatur, Geräuschintensität, Niederschlagsintensität, UV-Intensität der Sonne und PM2.5-Staubkonzentration in Echtzeit und anschaulich über das OLED-Display mit I2C-Schnittstelle anzeigen. Blasen Sie Luft (oder erzeugen Sie ein sehr lautes Geräusch) in das Mikrofon auf dem Micro:bit-Board (⚠️ **Besonderer Hinweis: Luftanblasen hat eine deutlichere Wirkung**), und das OLED-Display zeigt die Intensität des Lufthauchs (oder Geräusches) an. Wenn Taste A auf dem micro:bit-Board gedrückt wird, dreht sich der Lüfter auf dem Motormodul. Wenn Taste B auf dem Board gedrückt wird, sprüht das Zerstäubungsmodul Wassernebel. ⚠️ **Besonderer Hinweis:** Manchmal kann die Versorgungsspannung der externen Stromquelle unzureichend sein. In solchen Fällen kann es nötig sein, die Taste am micro:bit-Board zweimal zu drücken, bevor der Lüfter zu drehen beginnt oder das Zerstäubungsmodul zu sprühen beginnt. ![Img](./media/dongtu-9.gif) ⚠️ **Wichtiger Hinweis: Wenn die auf dem OLED-Bildschirm angezeigten Daten zeitweise einfrieren, liegt das daran, dass mehrere Sensormodule gleichzeitig arbeiten und die Spannung und Stromstärke nicht ausreichen. Bitte drücken Sie den Reset-Knopf auf der Rückseite der Micro:bit-Hauptplatine.** ⚠️ **Hinweis: Die Bausteine im Experiment sind in diesem Kit nicht enthalten.** (**Tipp:** Falls kein Ergebnis angezeigt wird, drücken Sie bitte die Reset-Taste des micro:bit-Boards.) ![Img](./media/4bottom.png)