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 vo vašej miestnosti. 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
Pri pridávaní nových Zigbee zariadení si dajte pozor! Ak náhodou budete pridávať nové zariadenia v susedných miestnostiach nazar, 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 vo svojej miestnosti pridajte znova.
Upozornenie
Ak si kúpite zariadenie, ktoré vie komunikovať pomocou WiFi, obyčajne komunikuje s externou službou alebo Gateway zariadením výrobcu. Aby ste ho vedeli integrovať do našej infraštruktúry, potrebujete buď softvérový bridge alebo na takéto zariadenie nahrať alternatívny firmvér, akým je napríklad Tasmota. Pred kúpou takéhoto zariadenia sa vždy uistite, či tam takýto alternatívny firmvér viete nahrať!!! V opačnom prípade ho nebudete vedieť použiť.
Vami vytvorené zariadenia
Chytré zariadenie si môžete vytvoriť sami pomocou ľubovoľného mikrokontroléra - pre vaše riešenie môžete použiť ľubovoľný mikrokontrolér a naprogramovať ho môžete v ľubovoľnom programovacom jazyku.
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ť.
Ako sa pripojiť ku zariadeniu IoT Gateway?
Vami vytvorené zariadenie viete do infraštruktúry pripojiť prostredníctvom zariadenia IoT Gateway, ktoré sa nachádza vo vašej miestnosti. Pre komunikáciu s ním môžete použiť napr. tieto možnosti:
- pripojiť sa pomocou WiFi a komunikovať pomocou MQTT protokolu s MQTT brokerom, ktorý sa nachádza na zariadení
- vytvoriť BLE beacon, ktorého dáta bude možné odchytiť pomocou na zariadení IoT Gateway pomocou služby Theengs
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ší.
Upozornenie
Pokiaľ WiFi adaptér na minipočítači Raspberry Pi pracuje v režime Access Point, umožní pripojiť len istý počet zariadení. Po dosiahnutí tohto limitu (ktorý je pod 10) sa k WiFi sieti už nepripojí žiadne ďalšie zariadenie. Rozhodne sa preto k WiFi sieti, ktorú vytvára zariadenie IoT Gateway nepripájajte pomocou vašich laptopov!!! S vašimi chytrými zariadeniami sa k tejto WiFi sieti pripájajte taktiež len na nevyhnutný čas!!!
Ako synchronizovať čas?
Ak potrebujete synchronizovať čas na vašom chytrom zariadení, môžete
na to využiť služby Chrony,
ktorá je spustená na zariadení IoT Gateway na štandardnom porte
123
.
Ako komunikovať pomocou protokolu MQTT?
Ak sa vaše chytré zariadenie bude k zariadeniu IoT Gateway pripájať pomocou WiFi, komunikovať s celou infraštruktúrou bude prostredníctvom protokolu MQTT. Štruktúra každej témy je záväzná a vyzerá takto:
gw/<type>/<id>/<operation>
Význam jednotlivých častí je nasledovný:
gw
- povinný lokálny prefix<type>
- typ zariadenia, napr.temperature
pre meranie teploty,audio
pre meranie/ovládanie hlasitosti<id>
- identifikátor zariadenia, pokiaľ sa nejedná o špeciálne označené zariadenie (napr. predné/zadné dvere), používajte svoj študentský identifikátor v tvareab123cd
<operation>
- definuje, či je správa vstupná alebo výstupná, a čo reprezentuje
Okrem toho dodržiavajte tieto pravidlá:
- Ak vytvárate senzor, ktorý zbiera dáta v pravidelných intervaloch,
tak svoje namerané dáta publikujte do témy
gw/<type>/<id>/data
alebogw/<type>/<id>/metrics
. - Ak vytvárate senzor alebo akčný člen, ktorý generuje udalosti (napr.
boli otvorené dvere), tak tieto posielajte v téme
gw/<type>/<id>/event
- Stav vášho zariadenia, ako aj jeho poslednú vôľu, publikujte do témy
gw/<type>/<id>/status
. Tieto správy budú označené príznakomRETAIN
. - Vaše zariadenie by sa malo prihlásiť na odbed týchto dvoch tém:
gw/<type>/<id>/set
- Správy odoslané do tejto témy slúžia na aktualizáciu, resp. zmenu nastavení vášho zariadenia.gw/<type>/<id>/cmd
- pomocou správ odoslaných do tejto témy budete môcť vaše zariadenie ovládať na diaľku
Pokiaľ vaše zariadenie pracuje s týmito témami, vaše správy budú automaticky preposielané do a sťahované zo zariadenia Mother.
Poznámka
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.
Napájanie
Ak je vaše zariadenie senzor, ktorý v pravidelných intervaloch len zosníma nejakú hodnotu, musí byť napájané z vašej batérie.
Pokiaľ však vaše zariadenie pracuje ako akčný člen (napr. ovláda prácu čerpadla pre zavlažovanie kvetináča) a očakáva sa okamžitá spätná väzba, podľa potreby môže byť pripojené do elektrickej siete.