CANON_leto2024 CANON_leto2024 CANON_leto2024

IoT prakticky - Micro:bit Smart home kit na projekty simulujúce inteligentný dom

Mikrokontroléry
0

Systémy pre inteligentnú domácnosť sú vďačným námetom aj na školské, či hobby projekty s populárnou mikropočítačovou doskou BBC Micro:bit, ktorá sa používa v mnohých školách na výučbu programovania a robotiky. Všetky potrebné komponenty nájdete v súprave Smart home Kit. 

Niekoľko zaujímavých mini projektov s touto súpravou je v našom videu. 

Súprava obsahuje najpoužívanejšie komponenty domácej automatizácie ako je teplotné čidlo, senzor intenzity zvuku, senzor na meranie intenzity svetla, snímač vlhkosti, jednosmerný motorček, servomotor, relé,  OLED displej, modul s RGB diódou, čerpadlo na vodu a ďalšie súčiastky. Samozrejme všetko je prispôsobené tak aby fungovalo s bezpečným napätím. Na napájanie všetkých projektov vám stačia dve ceruzkové batérie.  

Základom súpravy modul Sensor:bit, do ktorého sa zasunie mikropočítačová doska BBC Micro:bit. Modul má konektor, na ktorom je 16 GVS vstupov/výstupov a tiež konektor s rozhraním I2C do ktorého je možné priamo zasunúť OLED displej. Súčasťou modulu je aj mini reproduktor a konektor Jack 3.5 mm na pripojenie slúchadiel, alebo externého reproduktora. GVS vstupy, majú na červenom pine napájacie napätie, na čiernom pine GND a na žltom pine port mikropočítačovej dosky Microbit. Podľa toho o ktorý pin sa jedná a softvérovej inicializácie to môže byť port vstupný, alebo výstupný, digitálny, alebo analógový.

Do projektu v prostredí Makecode je potrebné importovať knižnicu smarthome, ktorá poskytne komplexné funkcie

Začneme jednoduchým námetom svetla, ktoré sa rozsvieti zvukom.  Po zaznamenaní zvuku určitej intenzity sa RGB LED dióda rozsvieti na 10 sekúnd. V originálnom návode vás výrobca motivuje aby ste urobili z kartónovej škatule model miestnosti (vľavo), aby fungovanie modelu bolo čo najnázornejšie. My použijeme maketu domčeka, ktorú používame aj pri iných "smarthome" videách (vpravo)

Schéma zapojenia modulov

JavaScript: 

let noise = 0
let light = 0
led.enable(false)
basic.forever(function () {
    light = smarthome.ReadLightIntensity(AnalogPin.P1)
    if (light < 50) {
       noise = smarthome.ReadNoise(AnalogPin.P2)
       if (noise > 70) {
           neopixel.create(DigitalPin.P3, 1, NeoPixelMode.RGB).showColor(neopixel.colors(NeoPixelColors.White))
           basic.pause(10000)
           neopixel.create(DigitalPin.P3, 1, NeoPixelMode.RGB).showColor(neopixel.colors(NeoPixelColors.Black))
        }
    }
})

Ďalší príklad simuluje reguláciu kúrenia, alebo klimatizácie. Akčný člen je simulovaný ventilátorom poháňaným DC motorčekom. Ak teplotné čidlo nameria vyššiu teplotu ako 30 °C, bude sa na 5 sekúnd opakovane zapínať ventilátor, kým sa teplota nezníži. Ventilátorom sa samozrejme dá teplota znížiť iba vtedy ak ste čidlo ohriali napríklad držaním v ruke.  Teplotu miestnosti ventilátorom neznížite, dosiahnete len prúdenie vzduchu a tým lepšie ochladzovanie tela. 

V zapojení je aj displej ukazujúci aktuálnu teplotu

Schéma zapojenia modulov

JavaScript: 

let teplota = 0
OLED.init(64, 128)
basic.forever(function () {
   teplota = smarthome.ReadTemperature(TMP36Type.TMP36_temperature_C, AnalogPin.P1)
   OLED.clear()
   OLED.showStringNoNewLine("Teplota:")
   OLED.showNumberNoNewLine(teplota)
    if (teplota > 30) {
       music.beginMelody(music.builtInMelody(Melodies.BaDing), MelodyOptions.Once)
       pins.digitalWritePin(DigitalPin.P2, 1)
       basic.pause(5000)
       pins.digitalWritePin(DigitalPin.P2, 0)
       basic.pause(500)
    } else {
       pins.digitalWritePin(DigitalPin.P2, 0)
    }
})

V nasledujúcom príklade sa simuluje otvorenie okna, prípadne skrine pomocou servomotora. Aj tu výrobca v originálnom návode na webe odporúča výtvor z kartóna

 

JavaScript: 

pins.setPull(DigitalPin.P2, PinPullMode.PullUp)
pins.servoWritePin(AnalogPin.P7, 180)
let okno = -1
basic.forever(function () {
    if (pins.digitalReadPin(DigitalPin.P2) == 0) {
       okno = okno * -1
       if (okno == 1) {
           neopixel.create(DigitalPin.P1, 1, NeoPixelMode.RGB).range(0, 1).showColor(neopixel.colors(NeoPixelColors.White))
           pins.servoWritePin(AnalogPin.P7, 0)
           basic.pause(2000)
        } else {
           pins.servoWritePin(AnalogPin.P7, 180)
           basic.pause(2000)
           neopixel.create(DigitalPin.P1, 1, NeoPixelMode.RGB).range(0, 1).showColor(neopixel.colors(NeoPixelColors.Black))
        }
    }
})

A napokon príklad, v ktorom ak senzor identifikuje zaplavenie vodou, zapne sa čerpadlo, ktoré vodu vyčerpá.

Modifikáciou príkladu by ste mohli vytvoriť napríklad systém na automatické polievanie kvetov v kvetináči.

Schéma zapojenia modulov

JavaScript: 

basic.forever(function () {
    if (pins.analogReadPin(AnalogPin.P1) > 500) {
       music.beginMelody(music.builtInMelody(Melodies.BaDing), MelodyOptions.Once)
       pins.digitalWritePin(DigitalPin.P2, 1)
       basic.pause(10000)
    } else {
       pins.digitalWritePin(DigitalPin.P2, 0)
       basic.pause(10000)
    }
})

Na záver ešte popis pinov dosky sensor:bit, ak by ste chceli so súpravou experimentovať na pokročilejšej úrovni

Zobrazit Galériu

Luboslav Lacko

Všetky autorove články
IoT BBC micro:bit MicroBit SmartHome informatika smarthome kit

Pridať komentár