IoT prakticky – posielanie údajov z BBC Micro:bit do cloudu a IFTTT akcie a reakcie

Mikrokontroléry
0

článku sme predstavili modul IoT: bit pre Micro:bit, ktorý umožňuje pripojenie k WiFi, takže z Micro:bitu sa stane plnohodnotná platforma pre internet vecí (IoT). Postup posielania údajov do cloudovej platformy ThingSpeak sme ukázali v článku.

Námetom tohoto pokračovania je jednoduchá automatizácia s využitím IFTTT. Skratku v nadpise asi poznáte, znamená “If This Then That”, čiže po našom „ak toto, potom tamto“ alebo inak povedané, ak nastane takáto situácia, urob takúto akciu. IFTTT je riešenie, ktoré vám umožní vytvárať si akési „recepty“ (recipes), prostredníctvom ktorých si jednoducho nadefinujete akciu a reakciu. 

Akcia sa môže týkať nejakej veličiny, napríklad že teplota v danom priestore klesla pod 15 °C, prípadne to môže byť všeobecná akcia, napríklad vám príde e-mail od konkrétneho odosielateľa, dostanete do telefónu SMS správu a podobne. Reakcia môže byť poslanie e-mailu, alebo SMS, že hodnota sledovanej veličiny prekročila stanovenú úroven, zapnutie osvetlenia, vykurovania, príkaz robotickému vysávaču aby povysával konkrétnu miestnosť a podobne.

Týchto akcií a reakcií je k dispozícii veľké množstvo. Ich aktuálny zoznam nájdete na oficiálnom webe https://ifttt.com/services. IFTTT je riešenie zamerané skôr na bežné, domáce používanie, či študentské projekty, než na priemyselnú automatizáciu. S tým súvisí aj jeho jednoduché rozhranie a skutočnosť, že služba je pre bežného používateľa zadarmo. Stačí si vytvoriť konto a aplikáciu je možné začať používať okamžite s tým, že ovládanie je veľmi intuitívne. K dispozícii je webové rozhranie, ako aj aplikácia pre Android a iPhone. 

Takto môžete programovať naprieč IoT senzormi a akčnými členmi, cloudovými službami, internetovými, či mobilnými aplikáciami, mailovými službami, službami na posielanie správ a podobne. IFTTT je silným nástrojom s jednoduchým používaním, ktorý dokáže prepojiť desiatky internetových služieb, aplikácií... a ušetrí vám veľa opakovanej rutinné práce.  Jednotlivé prepojenia sa nazývajú recepty a môžete si ich vytvoriť sami, alebo použiť recepty od iných užívateľov. Pomocou IFTTT služieb môžete automatizovať a ovládať prvky inteligentnej domácnosti Google Home, Apple Homekit, Amazon Echo ..

V príklade použijeme meranie intenzity svetla. Môžete použiť buď senzor na doske MicroBit, ktorý využíva vlastností LED diód maticového displeja, alebo ako v našom prípade externý senzor zo Smart Science IoT Kit, prípadne zo súpravy Smart home Kit, či akýkoľvek iný senzor, ktorý viete softvérovo obslúžiť. Externý senzor sme použili nielen preto že je presnejší, ale aby bolo video názornejšie. Námetom bude poslanie správy pri udalosti otvorenia skrinky, keď do nej prenikne svetlo. 

Budeme postupovať systematicky. Najskôr vytvoríme a odladíme aplikáciu, ktorá zobrazuje intenzitu osvetlenia na displeji

function zobrazHodnotu (svetlo: number) {
    OLED.clear()
    OLED.writeString("Svetlo (0-100): ")
    OLED.writeNumNewLine(svetlo)
}
 
let nSvetlo = 0
OLED.init(128, 64)
 
basic.forever(function () {
    nSvetlo = Environment.ReadLightIntensity(AnalogPin.P1)
    basic.pause(1000)
    zobrazHodnotu(nSvetlo)
})

 

Následne doplníme aplikáciu tak aby posielala údaje do služby ThingSpeak.

Vytvoríme v službe nový kanál a skopírujeme do schránky jeho API Key, ktoré použijeme v aplikácii pre microbit.

function zobrazHodnotu (svetlo: number) {
    OLED.clear()
    OLED.writeString("Svetlo (0-100): ")
    OLED.writeNumNewLine(svetlo)
}
 
let nSvetlo = 0
OLED.init(128, 64)
ESP8266_IoT.initWIFI(SerialPin.P8, SerialPin.P12, BaudRate.BaudRate115200)
ESP8266_IoT.connectWifi("TP-LINK_A471", "102xxxx")
 
basic.forever(function () {
    nSvetlo = Environment.ReadLightIntensity(AnalogPin.P1)
    basic.pause(2000)
    zobrazHodnotu(nSvetlo)
    ESP8266_IoT.connectThingSpeak()
    ESP8266_IoT.setdata(
    "HE2FNQQ3xxxxx",
    nSvetlo,
    0,
    0,
    0,
    0,
    0,
    0,
    0
    )
    ESP8266_IoT.uploadData()
    basic.pause(5000)
})

Ak chcete realizovať IFTT scenár, v našom prípade poslanie mailu v prípade ak úroveň osvetlenia (teploty, vlhkosti... jednoducho akejkoľvek veličiny) prekročí stanovanú úroveň potrebujete službu IFTTT. Prihláste sa do služby IFTTT https://ifttt.com  Ak nemáte účet, musíte si ho vytvoriť. Prihlásiť sa môžete aj cez svoj Google, či Facebook účet.

 

Najskôr je potrebné vytvoriť aplet, čiže predpis pre akciu a reakciu. Kliknite na ikonu používateľa vľavo hore a z ponuky vyberte Create.

V dialógu If This Then That ktorý sa zobrazí, kliknite na slovo This.

Nasledujúci postup je rozdelený do šiestich krokov. 

V prvom kroku nájdite službu webhooks. Tá umožňuje reagovať na udalosti z iných webových služieb, v našom prípade zo služby ThingSpeak. Voči službe Webhooks sa autentifikujete pomocou mailovej adresy. Zadáte svoju mailovú adresu a služba vám mailom pošle PIN kód, aby bolo potvrdené, že je to skutočne vaša mailová adresa.

V druhom kroku je potrebné vytvoriť trigger, čiže spúšť. Je to definovanie podmienky pri ktorej sa spustí nadefinovaná akcia, v našom prípade poslanie mailu. Udalosť príde z inej webovej, alebo cloudovej služby, v našom prípade z ThingSpeak. Takžekliknite na pole Receive web request.

Pomenujte trigger, napríklad microbit_svetlo_mail. Prepojenie na IFTTT nadefinujete neskôr cez portál služby ThingSpeak.

Teraz budete definovať akciu, čiže čo sa má stať ak nastane definovaná situácia. V dialógu If This Then That tentokrát kliknite na slovo That.

V kroku 3 vyberte službu email

Následne kliknite na pole Send me an email.

Zobrazí sa vám šablóna správy. V poli Subject zadajte názov udalosti, v našom prípade microbit_svetlo_mail.  V poliach v zátvorkách {{}} je možné extrahovať údaje s rovnakými atribútmi, ktoré prídu z webovej služby, v našom prípade zo služby ThingSpeak.

V poslednom dialógu sa zobrazí sumarizácia. Zapnite prepínač Receive notifications when this Applet runs.

Na prepojenie so službou ThingSpeak potrebujete kľúč pre web request. Ten zistíte v dokumentácii o nastavení služby Webhooks. Dostanete sa tam cez menu svojho účtu – položku Services a následne vyberiete službu Webhooks.

V našom prípade je web request 

https://maker.ifttt.com/trigger/{event}/with/key/ISe_ZSbKx51PykzBxxxx

doplňte do reťazca názov udalosti microbit_svetlo_mail. Získate adresu v tvare

https://maker.ifttt.com/trigger/microbit_svetlo_mail/with/key/ISe_ZSbKx51PykzBxxxx

Textový reťazec s URL adresou v poli Make a POST or GET web request to: si skopírujte do schránky. Budete ho potrebovať pre ThingSpeak.

Vo webovom rozhraní služby ThingSpeak pre príslušný kanál V menu Apps aktivujte položku ThingHTTP.

Do poľa ULR zadajte adresu zo schránky

V poli Method nastavte POST.

Do poľa Content Type zadajte: application/json. Verziu HTTP nechajte nastavenú na 1.1

{“value1”:”%%channel_138112_field_1%%”}

​V menu Apps aktivujte položku React. Zadajte názov, nastavte typ podmienky ako numerickú. Nastavíme, že trigger sa má aktivovať ak hodnota intenzity svetla prekročí 50. Nastavte aby sa akcia vykonala zakaždým, označte pole Run action each time condition is met.

Teraz spustite  aplikáciu pre Micro:bit, ktorá bude merať intenzitu svetla a posielať hodnoty do cloudu ThingSpeak. 

Keď intenzita svetla prekročí hodnotu 50, alebo hodnota inej veličiny prekročí hodnotu nastavenú v podmienke, budete na túto skutočnosť upozornení mailovou správou.

.

Zobrazit Galériu

Luboslav Lacko

Všetky autorove články

Pridať komentár