Smart Home na diaľku
Diaľkový ovládač šikovnej domácnosti
V prvom rade som si kúpil cenovo dostupný IR diaľkový ovládač s prijímačom HX1838 a batériu CR2025, ktorá nebýva súčasťou balenia. Následne som zvážil ‚layout‘ obsadených pinov mikropočítača Micro:bit modulmi súpravy Smart Home Kit:
P1
– snímač vlhkosti pôdyP2
– snímač teplotyP3
– snímač intenzity svetlaP4
– snímač hlukuP8
– RGB LED diódaP13
– 180-stupňový servomotorP16
– IR prijímačP19
aP20
– OLED displej
Pre správnu funkčnosť vymenovaných modulov som uvedený mikropočítač napájal cez konektor USB, aby som pokryl ich energetickú náročnosť. Moduly (vrátane IR prijímača) som pripojil pomocou prepojovacích káblov k hlavnému modulu sensor:bit, do ktorého som osadil spomínaný mikropočítač.
Potom som tieto moduly umiestnil do kartónovej makety čelnej steny domu, pričom som prihliadal na vizuálny prejav RGB LED diódy, 180-stupňového servomotora a OLED displeja. Jednalo sa teda o svetelný, pohybový a zobrazovací prejav zmienených troch modulov.
Ďalej ma čakalo programovanie v platforme Microsoft MakeCode za použitia rozširujúcich Blokov Smarthome (obsahujúci Bloky OLED, Smarthome a Neopixel) a OSOYOO_IR. Netrvalo dlho a vytvorený program som úspešne otestoval, čím som získal jeho finálnu verziu:
Program JavaScript
OSOYOO_IR.onPressEvent(RemoteButton.CH_MINUS, function () {
OLED.clear()
OLED.newLine()
OLED.writeString("HLUK (dB): ")
OLED.writeNum(smarthome.ReadNoise(AnalogPin.P4))
basic.pause(3000)
})
OSOYOO_IR.onPressEvent(RemoteButton.CH_Add, function () {
OLED.clear()
OLED.newLine()
OLED.writeString("INTENZITA SVETLA (0-100): ")
OLED.writeNum(smarthome.ReadLightIntensity(AnalogPin.P3))
basic.pause(3000)
})
OSOYOO_IR.onPressEvent(RemoteButton.CH, function () {
OLED.clear()
OLED.newLine()
OLED.writeString("TEPLOTA (C): ")
OLED.writeNum(smarthome.ReadTemperature(TMP36Type.TMP36_temperature_C, AnalogPin.P2))
basic.pause(3000)
})
OSOYOO_IR.onPressEvent(RemoteButton.NEXT, function () {
OLED.clear()
strip.showColor(neopixel.colors(NeoPixelColors.White))
OLED.newLine()
OLED.writeString("SVIETI BIELE SVETLO")
})
OSOYOO_IR.onPressEvent(RemoteButton.PLAY, function () {
OLED.clear()
strip.showColor(neopixel.colors(NeoPixelColors.Red))
OLED.newLine()
OLED.writeString("SVIETI CERVENE SVETLO")
})
OSOYOO_IR.onPressEvent(RemoteButton.PREV, function () {
OLED.clear()
OLED.newLine()
OLED.writeString("VLHKOST PODY V KVETINACI (0-100): ")
OLED.writeNum(smarthome.ReadSoilHumidity(AnalogPin.P1))
basic.pause(3000)
})
OSOYOO_IR.onPressEvent(RemoteButton.Add, function () {
OLED.clear()
strip.showColor(neopixel.colors(NeoPixelColors.Green))
OLED.newLine()
OLED.writeString("SVIETI ZELENE SVETLO")
})
OSOYOO_IR.onPressEvent(RemoteButton.EQ, function () {
OLED.clear()
strip.showColor(neopixel.colors(NeoPixelColors.Blue))
OLED.newLine()
OLED.writeString("SVIETI MODRE SVETLO")
})
OSOYOO_IR.onPressEvent(RemoteButton.Minus, function () {
OLED.clear()
OLED.newLine()
OLED.writeString("DVERE OTVORENE")
pins.servoWritePin(AnalogPin.P13, 160)
})
OSOYOO_IR.onPressEvent(RemoteButton.NUM_100, function () {
OLED.clear()
strip.clear()
strip.show()
OLED.newLine()
OLED.writeString("NESVIETI SVETLO")
})
OSOYOO_IR.onPressEvent(RemoteButton.NUM0, function () {
OLED.clear()
OLED.newLine()
OLED.writeString("DVERE ZATVORENE")
pins.servoWritePin(AnalogPin.P13, 0)
})
OSOYOO_IR.onPressEvent(RemoteButton.NUM_200, function () {
OLED.clear()
music.beginMelody(music.builtInMelody(Melodies.PowerDown), MelodyOptions.Once)
OLED.newLine()
OLED.writeString("MELODIA SA PREHRALA")
})
let strip: neopixel.Strip = null
led.enable(false)
music.beginMelody(music.builtInMelody(Melodies.PowerUp), MelodyOptions.Once)
strip = neopixel.create(DigitalPin.P8, 1, NeoPixelMode.RGBW)
pins.servoWritePin(AnalogPin.P13, 0)
OLED.init(128, 64)
OSOYOO_IR.init(Pins.P16)
Program MakeCode
Video
Pravdepodobne ste zistili, že som nenaprogramoval všetky tlačidlá IR diaľkového ovládača, čím som vám nechal priestor na dotvorenie môjho programu podľa vašich predstáv.
Záver
Záver článku je predzvesťou konca témy o súprave Smart Home Kit a jej použití v praxi. Zostáva mi už len vysloviť vďaku za vytrvalosť, s akou ste si prečítali môj článok.
Namieste je otázka, akému produktu sa budem venovať v nasledujúcom článku. Zatiaľ som sa nerozhodol, lebo možností je viac, jedna lákavejšia než druhá. Určite sa máte načo tešiť, nielen na zaujímavé poznatky, ale aj na praktické programy.
E-shop
Elecfreaks Smart Home Kit (bez BBC micro:bit)
Projektový box pro vytvoření chytré domácnosti!
BBC micro:bit
Nekonečně programovatelný a rozšiřitelný vzdělávací počítač do kapsy.