Image
10.6.2019 0 Comments

IoT prakticky – BigClown, konfigurácia a vytvorenie jednoduchého smarthome systému

Jednotlivé kity a ich moduly tejto populárnej IoT stavebnice sme predstavili v článku https://www.pcrevue.sk/a/IoT-prakticky--E2-80-93-modularna-stavebnica-BigClown. Aby ste mohli naplno využiť jej možnosti, treba mať základné vedomosti o princípe protokolu MQTT aspoň v rozsahu ako je popísaný v článku https://www.pcrevue.sk/a/IoT-prakticky----komunikacny-protokol-MQTT--nielen--pre-BigClown  

Vo videu sú názorne ukázané príklady zobrazovania nameraných údajov a jednoduchej regulácie teploty, v našom prípade spínanie kúrenia, alebo klimatizácie. Spínaný spotrebič je simulovaný žiarovkou

Koncepcia stavebnice BigClown je otvorená, to znamená že je možné jej moduly rôzne kombinovať, prípadne stavebnicu integrovať do systémov, v ktorých sú aj komponenty od iných dodávateľov.  Súčasťou stavebnice je komunikačný modul RadioDongle podobného konštrukčného formátu ako USB kľúč, ktorý plní úlohu integračného člena, čiže z hľadiska architektúry sa jedná o MQTT broker.  Pomocou tohoto modulu pripojeného k PC, alebo k Raspberry PI je možné vytvoriť aj komunikačnú bránu do internetu.

Na vývoj komplexných IoT riešení, presnejšie na programovanie dátových tokov z/do IoT zariadení  nielen pre BigClown, ale všeobecne je dispozícií open-source vizuálno-programovací nástroj Node-RED (https://nodered.org/). Tento nástroj bol vyvinutý v IBM a funguje vo webovom prehliadači. K Node-RED je možné získať aj vzdialený prístup. Stačí poznať IP adresu zariadenia, kde je Node-RED nainštalovaný. Node-RED umožňuje efektívne prepojiť hardvérové zariadenia, aplikačné rozhrania a online služby. Node-RED beží na Windows, Linuxu, Mac OS X, Raspberry Pi.. pričom využíva runtime Node.js. Môžete si vyvinúť vlastné softvérové moduly „nodes“ aplikácie, potrebujete na to znalosti programovacieho jazyka JavaScript. Zdrojový kód Node-RED je voľne dostupný na: https://github.com/node-red/node-red

Na ľavej strane je knižnica uzlov (tzv. "Nodes"). Node je elementárny prvok, ktorým tvoríte aplikáciu. Musí mať názov a môže mať aj vstup, funkcionalitu a výstup. Každý uzol reprezentuje odlišnú funkcionalitu. Ďalšie uzly, prípadne skupiny uzlov môžete podľa potreby doinštalovať. V strede je plocha nazývaná Flow Editor, kde z prvkov "nodes" skladáte diagramy tokov dát, takzvané "flows". Po umiestnení prvku typu node, napríklad  prvku MQTT dvojklikom otvoríte formulár na jeho konfiguráciu. Na pravej strane je záložka INFO popisujúca daný uzol a záložka DEBUG, čo je konzola na ladenie. Flow vzniká zložením ľubovoľného množstva nodov, poprepájaných pomocou wires. Prepoj sa realizuje presunutím šedého bodu výstupu jedného uzla na vstup druhého uzla. Medzi uzlami sa preposiela správa, čiže objekt msg, ktorý môžete upravovať, alebo naplniť vlastnými údajmi. 

Vráťme sa však k stavebnici BigClown a ukážeme to čo bolo vysvetlované v predchádzajúcich statiach. Funkciu brokera pre protokol MQTT plní RadioDongle. Broker je server, ktorý prijíma pripojenia klientských modulov. Medzi brokerom a klientmi sa posielajú správy MQTT protokolu. Zjednodušene by sa dalo povedať, že MQTT protokol je tematický, pretože správy sú priradené do tém. IoT zariadenie potom buď publikuje správy týkajúce sa danej témy. MQTT broker potom tieto správy posiela zariadeniam, ktoré sa k odberu správ k danej téme prihlásili. Napríklad senzor na meranie teploty posiala údaje zaradené do témy teplota a ovládací modul vykurovania ich odoberá. Témy sa označujú hierarchicky, pričom úrovne hierarchie sú oddelené lomkami. Napríklad 

node/core-module:0/thermometer/0:1/temperature 22.13

Po spustení aplikácie BigClown Playground sa prepnite do záložky Devices. Po pripojení RadioDongle do USB konektoru sa tento zobrazí v textovom poli. Pomocou tlačidla Connect sa Dongle pripojí a zobrazia sa informácie o spárovaných moduloch, ktoré sú v dosahu rádiovej komunikácie. V zložke Functions je grafické znázornenie prepojenia objektov

V zložke Messages sú správy, ktoré do MQTT node poslali pripojené zariadenia. Časť reťazca, ktorá predstavuje tému je zobrazená hrubým fontom, Ak chcete na ploche v záložke Dashboard zobraziť aktuálny stav sledovaného parametra z daného zariadenia, napríklad aktuálnu teplotu nakonfigurujete príslušný grafický komponent, aby sa stal odberateľom príslušnej témy. Moduly so senzormi poskytujú tieto témy:

Intenzita osvetlenia

node/{id}/lux-meter/0:0/illuminance

Relatívna vlhkosť

node/{id}/hygrometer/0:2/relative-humidity

Atmosférický tlak

node/{id}/barometer/0:0/pressure

Nadmorská výška

node/{id}/barometer/0:0/altitude

Teplota

node/{id}/thermometer/0:1/temperature

CO2

node/{id}/co2-meter/-/concentration

Akčné členy zas témy

Power Module nastav relé

node/{id}/relay/-/state/set

Power Module stav relé

node/{id}/relay/-/state/get

LED na  Core Module

node/{id}/led/-/state/set

PIR detegovaný pohyb

node/{id}/pir/-/event-count

Témy pre modul s LCD displejom

Ľavé tlačdlo

node/{id}/push-button/lcd:left/event-count

Pravé tlačidlo

node/{id}/push-button/lcd:right/event-count

Vymaž obrazovku

node/{id}/lcd/-/screen/clear

Zobraz text

node/{id}/lcd/-/text/set

Príklad parametrov pre zobrazenie textu: {"x": 5, "y": 10, "text": "BigClown"}, alebo {"x": 5, "y": 40, "text": "BigClown", "font": 28}

V prvom príklade je prehľadné zobrazovanie nameraných údajov, v našom prípade teploty na dvoch miestach a vlhkosti vzduchu. Údaje budú poskytovať dva kity - Climate Monitor Kit a Thermostat Kit. Odberateľom bude grafický prvok – ručičkový ukazovateľ.  Na pripomenutie, MQTT protokol funguje na princípe poskytovania a odoberania správ obsahujúcich takzvané témy. Témou môže byť akýkoľvek parameter, napríklad teplota, či už nameraná, alebo nastavená na termostate, vlhkosť, atmosférický tlak, ale aj povel na zopnutie, či iný druh výkonného povelu. Zariadenia sa z pohľadu MQTT protokolu rozdeľujú na poskytovateľov a odberateľov tém, čiže v originálnej terminológii publisher – subscriber. IoT zariadenie potom buď publikuje správy týkajúce sa danej témy. MQTT broker potom tieto správy posiela zariadeniam, ktoré sa k odberu správ k danej téme prihlásili. Napríklad senzor na meranie teploty posiala údaje zaradené do témy teplota a ovládací modul vykurovania ich odoberá. Témy sa označujú hierarchicky, pričom úrovne hierarchie sú oddelené lomkami, napríklad: „dom1/poschodie2/obyvacka/teplota“. Každá správa patrí len do jednej témy. Tému si zvolí poskytovateľ. Témy sa nemusia vopred konfigurovať, ak MQTT broker príjme od niektorého poskytovateľa správu s novou témou, automaticky túto tému zaradí. Samozrejme pri návrhu architektúry riešenia, konkrétne pri návrhu dátového modelu je potrebné definovať kto bude aké témy poskytovať a kto ich bude odoberať.  Odberateľ sa k odberu správ k danej téme prihlási poslaním špeciálnej správy „subscribe“ s názvom témy. V našom prípade máme poskytovateľov s témami týkajúcimi sa teploty a vlhkosti. Odberateľom je grafický ukazovateľ. Názvy tém môžete kopírovať zo záložky Messages, kde sú témy v jednotlivých správach zobrazené hrubým fontom.

Názvy tém môžete kopírovať zo záložky Messages, kde sú témy v jednotlivých správach zobrazené hrubým fontom.

Procesný diagram v záložke Functions a zobrazenie hodnôt v záložke Dashboard

V druhom príklade ukážeme príklad jednoduchej regulácie. Poskytovateľom tém bude Thermostat Kit a odberateľom Power Controller Kit. Thermostat Kit bude posielať správy k dvom témam: nameranú teplotu a teplotu nastavenú pomocou ovládacích prvkov termostatu. Následne sa z týchto správ separuje payload, čiže hodnota nameranej a nastavenej teploty.

Schéma architektúry príkladu s termostatom. V schéme ja navyše ešte pripojenie cez mobilnú aplikácoi Blynk. Tento námet ukážeme v niektorom z ďalších pokračovaní.

Ak by sme ovládali kúrenie, tak v prípade ak je nameraná teplota nižšia, než nastavená, komparačný člen pošle správu na zopnutie relé. Relé by potom spustilo kúrenie. V prípade, že sa ovláda klimatizácia. Ak nameraná teplota je vyššia, než nastavená, zopne sa ovládanie klimatizácie. V príklade pomocou relé spíname žiarovku s bezpečným napájacím napätím 12 V. Relé v Power Controller Kite je schopné spínať napätie 250 V a prúd 16 A. 

Procesný diagram regulácie teploty

Definovanie podmienky

V budúcom pokračovaní venovanom platforme BigClown ukážeme ako na pripojenie do stavebnice namiesto PC použiť populárnu mikrokontrolérovú dosku Raspberry Pi. 

Zobrazit Galériu

Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

Technológie

IoT prakticky – Pripojením 7 palcového dotykového displeja k Raspberry Pi získate zaujímavý tablet

12.06.2019 00:00

Vývojové dosky pre IoT sú koncipované ako univerzálne, napriek tomu každá z nich sa hodí na iný účel. Veľkou výhodou dosky Raspberry Pi je možnosť pripojenia monitora a farebných dotykových displejov, ...

Technológie

IoT prakticky - UniPi Axon S105, riadiaca jednotka na pokročilú domácu a malú priemyselnú automatizáciu

07.06.2019 00:10

Na takzvanú svojpomocnú domácu automatizáciu sa často využívajú riadiace systémy založené na populárnych vývojových doskách, napríklad Raspberry Pi, ktoré majú veľkú podporu vývojárskych aj hobby komu ...

Technológie

IoT prakticky - komunikačný protokol MQTT (nielen) pre BigClown

04.06.2019 00:10

V predchádzajúcej časti https://www.pcrevue.sk/a/IoT-prakticky--E2-80-93-modularna-stavebnica-BigClown dlhodobého seriálu sme predstavili modulárnu IoT stavebnicu BigClown. Našim cieľom je z kitov sta ...

q

Žiadne komentáre

Vyhľadávanie

SWAN_062019

Najnovšie videá



PC forum button