Problem Set #3: The Things

alebo o prvej vrste IoT architektúry

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
Raspberry Pi Pico WH

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é:

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ť.

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.

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 bude gateway/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émy gateway/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 zariadenia
  • gateway/thing/{id} - špeciálna téma, do ktorej môžete poslať “hocičo” a zapíše sa na serveri mother do databázy do bucket-u things

senzory

  • gateway/blinds/{id} - senzor otvorenia žalúzií
  • gateway/door/{id} - senzor otvorenia dverí
  • gateway/humidity/{id} - senzor vlhkosti
  • gateway/light/{id} - senzor intenzity svetla
  • gateway/rfid/{id} - čítačka kariet
  • gateway/switch/{id} - vypínač / tlačidlo
  • gateway/temperature/{id} - senzor teploty

akčné členy

  • gateway/lamp/{id} - osvetlenie
  • gateway/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.

Odoberanie správ