Problem Set #3: The Things
alebo o prvej vrste IoT architektúry
Upozornenie
Work in progess! Dokumentácia nie je úplná a bude priebežne dopĺňaná.
Zariadenia nachádzajúce sa na prvej vrstve architektúry sú reprezentované chytrými senzormi a akčnými členmi. Obecne sa môže jednať o:
- treťostranové zariadenia
- vami vytvorené zariadenia
Treťostranové zariadenia
Tieto zariadenia si môžete kúpiť a umiestniť ich do miestnosti. K dispozícii máte obrovské množstvo zdrojov (napr. alza.sk, aliexpress.com), ako aj výrobcov (napr. Xiaomi, Antik, Ikea, Lidl, TESLA).
Hlavným komunikačným kanálom a protokolom celej infraštruktúry je komunikačný protokol MQTT. V prípade treťostranových zariadení teda musíte nájsť spôsob, ako tieto zariadenia do tejto infraštruktúry integrovať a pripojiť k zariadeniu IoT Gateway. Zariadenia môžu totiž používať rozličné komunikačné protokoly. Takže sa predtým, ako ktorékoľvek zariadenie kúpite, uistite, či ho budete vedieť pripojiť. K tomu vám môžu pomôcť služby a projekty, ktoré sú na IoT Gateway spustené:
- zoznam Zigbee zariadení, s ktorými vie pracovať služba Zigbee2MQTT
- zoznam BLE zariadení, s ktorými vie pracovať službe Theengs
- zoznam WiFi zariadení, na ktoré viete nahrať alternatívny firmvér Tasmota
Upozornenie
Upozornenie: Pri pridávaní nových Zigbee zariadení si dajte pozor! Ak náhodou budete pridávať nové zariadenia v susedných miestnostiach viacerí, môže sa stať, že vaše zariadenie bude skôr rozpoznané vo vedľajšej miestnosti ako vo vašej. Automatické pripájanie nových zariadení je síce vypnuté, ale pri experimentovaní sa vám to môže stať. Ak sa to stane, zariadenie resetnite a zopakujte proces párovania znova.
Vytvorené zariadenia
Chytré zariadenie si môžete vytvoriť sami pomocou ľubovoľného mikrokontroléra. V rámci predmetu sme sa síce venovali mikrokontroléru Raspberry Pi Pico WH a programovaniu v jazyku MicroPython, ale pre vaše riešenie môžete použiť ako ľubovoľný mikrokontrolér, tak aj ľubovoľný programovací jazyk.
Pri implementácii vlastných zariadení sa snažte o dodržanie všetkých odporúčaní, o ktorých sme hovorili v rámci predmetu. Dbajte teda:
- o bezpečnosť vášho zariadenia,
- nízku spotrebu,
- jednoduchosť návrhu,
- zvládnutie výpadku spojenia,
- zabezpečenie OTA aktualizácie (bonus), a
- všeobecnú spoľahlivosť.
Upozornenie
Upozornenie: Vaše zariadenia nesmiete v miestnosti pripájať k akémukoľvek zdroju elektrickej energie, ako ani k portom zariadenia IoT Gateway!!!
Ako sa pripojiť ku zariadeniu IoT Gateway?
Na pripojenie využite WiFi sieť, ktorú zariadenie IoT Gateway poskytuje. Informácie ohľadom pripojenia nájdete v tomto dokumente.
Poznámka
Na vytvorenie WiFi siete sa používa zabudovaný WiFi adaptér na minipočítači Raspberry Pi 3. Keďže nemá externú anténu, má obmedzený dosah, ktorý je zhruba 30 metrov v otvorenom priestore. Ak sa budete snažiť k WiFi sieti pripojiť z chodby, dosah siete bude menší.
Ako synchronizovať čas?
Ak potrebujete synchronizovať čas na vašom zariadení, môžete na to využiť zariadenie IoT Gateway. Podrobnosti nájdete v tomto dokumente.
Ako komunikovať pomocou protokolu MQTT?
Každé zariadenie IoT Gateway funguje aj ako MQTT broker. To, ako sa k nemu pripojiť, nájdete v tomto dokumente. Ďalšie informácie ohľadom štruktúry správ sa nachádzajú v tomto dokumente.
Publikovanie správ
Pri posielaní správ a organizovaní tém sa riaďte týmito pravidlami:
- Prefix každej témy musí byť
gateway/
. - Za prefixom sa bude nachádzať typ vášho zariadenia alebo akčného
členu. V prípade, že vyrábate teplomer, tak jeho téma bude začínať
gateway/temperature/
- Za typom zariadenia sa bude nachádzať jeho jedinečný identifikátor v
danej miestnosti. Ak týmto identifikátorom bude napríklad číslo
3
, tak jeho téma budegateway/temperature/3
. V tejto téme bude tento senzor publikovať svoje zosnímané údaje. Samozrejme identifikátorom môže byť aj reťazec. - Keďže vyrábame chytré zariadenia, každé zariadenie bude mať aj
osobitnú tému, pomocou ktorej bude možné meniť spôsob jeho práce. Táto
téma bude vyzerať tak, že za témou zariadenia sa bude nachádzať postfix
set
. Takže ak bude potrebné zmeniť správanie chytrého teplomera, túto zmenu je možné poslať do témygateway/temperature/3/set
. Do tejto témy sa prihlási samotný senzor.
Vaše zariadenie však môže pracovať ako multi senzor alebo multi akčný člen. Napr. môže okrem senzoru teploty obsahovať aj senzor vlhkosti (napr. senzor DHT11 alebo DHT22). V tom prípade bude namerané údaje publikovať do dvoch tém: jednu pre teplotu a druhú pre vlhkosť. Rovnako sa prihlási na odber v dvoch témach pre možnosť nastaviť správanie jedného aj druhého senzora.
Ak chcete, aby boli vaše správy doručované aj na MQTT broker na serveri Mother, odkiaľ sa viete na ich odber prihlásiť z vašich služieb, a kde sú taktiež ukladané do databázy, musíte ich publikovať do jednej z týchto tém:
špeciálne témy
gateway/metrics/#
- odosielanie metrík zo zariadeniagateway/thing/{id}
- špeciálna téma, do ktorej môžete poslať “hocičo” a zapíše sa na serverimother
do databázy do bucket-uthings
senzory
gateway/blinds/{id}
- senzor otvorenia žalúziígateway/door/{id}
- senzor otvorenia dverígateway/humidity/{id}
- senzor vlhkostigateway/light/{id}
- senzor intenzity svetlagateway/rfid/{id}
- čítačka karietgateway/switch/{id}
- vypínač / tlačidlogateway/temperature/{id}
- senzor teploty
akčné členy
gateway/lamp/{id}
- osvetleniegateway/projector/{id}
- projektor
Ak budete správy publikovať do iných tém, tieto zostanú len na lokálnom MQTT brokeri na zariadení IoT gateway v miestnosti.
Poznámka
Toto samozrejme nie je zoznam všetkých chytrých zariadení, s ktorými pravdepodobne budete pracovať. V prípade, že budete potrebovať pridať ďalší typ zariadenia, napíšte.