### 3.3.1 Slimme temperatuurgestuurde ventilator #### 3.3.1.1 Overzicht ![Img](./media/top1.png) Wanneer de kamertemperatuur de vooraf ingestelde waarde overschrijdt, schakelt de slimme ventilator in om de ruimte af te koelen tot een comfortabele temperatuur. Daarnaast geeft het OLED-display in real time de huidige binnentemperatuur en de werkingstoestand van de ventilator weer, waardoor gebruikers intuïtieve feedback over de temperatuurregeling krijgen. ![Img](./media/bottom1.png) #### 3.3.1.2 Componentkennis ![Img](./media/2top.png) **micro:bit Temperatuursensor** ![Img](./media/j501.png) Het micro:bit hoofdboard is feitelijk niet uitgerust met een speciale temperatuursensor, maar gebruikt de nRF52833-chip voor temperatuurdetectie. Daarom is de gemeten waarde veel dichter bij de temperatuur van de processor, en kan er een afwijking zijn ten opzichte van de omgevingswaarde. Het detectiebereik is -40 ~ 105℃. **OLED Display** ![Img](./media/A636.png) OLED-technologie heeft duidelijke voordelen zoals rijke kleurweergave, hoog contrast en brede kijkhoek, wat zorgt voor scherpe en levendige beelden, vooral bij zwartwaarden. Elke pixel van het OLED-display straalt zelf licht uit zonder achtergrondverlichting, waardoor het relatief weinig stroom verbruikt. Met zijn kleine formaat (0.96 inch), hoge resolutie (128×64 pixels) en laag stroomverbruik is het zeer geschikt voor draagbare apparaten. ⚠️ **Opmerking:** In dit project is de SDA-interface van het OLED-display aangesloten op pin P20 en SCL op pin P19. **Parameters:** - Bedrijfsspanning: DC 3.3V-5V - Werkstroom: 30mA - Interface: pinheaders met 2.54mm tussenruimte - Communicatiemodus: I2C-communicatie - Interne driverchip: SSD1306 - Resolutie: 128×64 - Kijkhoek: groter dan 150° **130 Motor** ![Img](./media/cou710.png) Op de 130-motormodule bevindt zich een DC-motor die werkt op basis van elektromagnetische inductie en Lorentzkracht. Hij bestaat voornamelijk uit een stator, een rotor (anker) en een commutator. De stator genereert een vast magneetveld, terwijl de rotor, opgebouwd uit spoelen, een magneetveld genereert wanneer deze wordt bekrachtigd. Wanneer stroom via de borstels en de commutator naar de rotorspoel gaat, werkt het magneetveld van de rotor samen met dat van de stator, waardoor een Lorentzkracht ontstaat die de rotor doet draaien. Tijdens deze rotatie schakelt de commutator de stroomrichting om, zodat de rotor continu een kracht in dezelfde richting ondervindt en de rotatie wordt gehandhaafd. Met elektromagnetische inductie en Lorentzkracht zet de DC-motor elektrische energie om in mechanische energie. Door de uitstekende toerenregeling en het hoge startkoppel worden DC-motoren veel toegepast in elektrisch gereedschap, voertuigen en huishoudelijke apparaten. ![j124](./media/j124.png) De 130-motor kan in snelheid worden geregeld via PWM. Bij gebruik moeten twee pinnen worden aangesloten voor de besturing. Hij is geschikt voor toepassingenscenario's waar de ventilatorsnelheid moet worden aangepast, zoals computerkoeling en industriële productie. Hij is klein, lichtgewicht en eenvoudig te monteren, wat hem zeer praktisch maakt. **Schematische tekening:** ![Img](./media/cou712.png) De HR1124S-chip helpt bij het aansturen van de motor. De motor vereist echter een grote stroom en kan niet door een transistor worden aangestuurd, laat staan direct door een IO-poort. Zodra er spanning op de motor wordt gezet, kan deze gaan draaien. De draairichting van de motor varieert afhankelijk van de spanningsrichting. Binnen het nominale spanningsbereik geldt: hoe hoger de spanning, hoe sneller de motor draait. Omgekeerd: hoe lager de spanning, hoe langzamer de motor draait, of in sommige gevallen kan hij helemaal niet draaien. Er zijn twee besturingsmodi: via hoge/lage niveau (rotatie en stoppen) en via PWM (regel van de rotatiesnelheid). **Parameters:** - Werkspanning: DC 5V - Bedrijfstroom: (Max)400mA@5V - Maximale vermogen: 2W - Snelheid: (16000+10%) omw/min@5V ![Img](./media/2bottom.png) #### 3.3.1.3 Vereiste componenten | ![Img](./media/microbitV2.png)| ![Img](./media/ExpansionBoard.png) |![Img](./media/OLED.png) | | :--: | :--: | :--: | | micro:bit V2 hoofdboard ×1 | micro:bit shield ×1 |OLED-display ×1 | |![Img](./media/motor.png) |![Img](./media/usb.png) |![Img](./media/4pin.png)| |130 motor ×1| micro USB-kabel ×1 |4-aderige kabel ×2 | |![Img](./media/fan.png) |![Img](./media/batterycase.png)| ![Img](./media/AAbattery.png)| |ventilator ×1|batterijhouder ×1|AA-batterij (**zelf mee te brengen**) ×6| #### 3.3.1.4 Aansluitschema ⚠️ **Let op de draadkleuren bij het aansluiten.** | 130 motor | wire color | micro:bit shield pin |micro:bit board pin | | :--: | :--: | :--: | :--: | | G | black | G | G | | V | red | V2 | V | | IN+ | blue | 2 | P2 | | IN- | green | 16 | P16 | | OLED display | wire color | micro:bit shield pin |micro:bit board pin | | :--: | :--: | :--: | :--: | | GND | black | G | G | | VCC | red | V2 | V | | SDA | blue | 20 | P20 | | SCL | green | 19 | P19 | ![Img](./media/couj1.png) #### 3.3.1.5 Codeflow ![Img](./media/flow-chart-1.png) #### 3.3.1.6 Testcode ⚠️ **Let op: de drempelwaarde 28 in de if()-voorwaarde kan aangepast worden aan de werkelijke situatie.** **Volledige code:** ![Img](./media/couj01.png) ⚠️ **Let op dat de code 'C' gebruikt in plaats van ℃, omdat ℃ vervormd wordt weergegeven op de OLED.** ![Img](./media/line1.png) **Korte uitleg:** ① Initialiseer OLED-pixels, wis de OLED, en de Micro:bit 5×5 LED-dotmatrix toont ![Img](./media/ab3.png). ![Img](./media/cou00.png) ② Het OLED toont de temperatuurwaarde op één regel. ![Img](./media/cou01.png) ③ Ga naar een nieuwe regel. ![Img](./media/cou02.png) ④ Beslissingsstructuur: if()...else... Wanneer de door de sensor gedetecteerde temperatuur groter dan of gelijk aan 28℃ is, toont het OLED “Fan on” en draait de ventilator. Anders toont het OLED “Fan off” en werkt de ventilator niet. ![Img](./media/cou04.png) ⑤ Vertraging 1000ms (1s). ![Img](./media/cou05.png) #### 3.3.1.7 Testresultaat ![Img](./media/4top.png) Na het aansluiten en het inschakelen via de micro USB-kabel, sluit ook de externe voeding (6 AA-batterijen) aan om voldoende stroom te garanderen. Voor de Windows 10-app gewoon op Download klikken. Voor de browser, stuur het “.hex”-bestand naar het micro:bit-board. Na het uploaden van de testcode naar het micro:bit-board toont de ingebouwde 5×5 LED-matrix ![Img](./media/ab3.png), en geeft het OLED-display de temperatuur en de ventilatortoestand in real time weer. Wanneer de temperatuur boven 28℃ ligt, draait de ventilator. Anders werkt de ventilator niet. ![Img](./media/dongtu-1.gif) ⚠️ **Let op: de bouwstenen in het experiment zijn niet bij deze kit inbegrepen.** (**Tip:** Als er geen resultaat wordt waargenomen, druk dan op de resetknop van het micro:bit-board.) ![Img](./media/4bottom.png)