IoT Labor 2. Mérési feladatok

IoT Labor 2. Mérési feladatok

(English version is here)

Az IoT labor 1. mérésében a szenzorokat és aktuátorokat kötöttünk az Internetre, hogy a gyűjtőtt adatokat az Interneten is elérhetővé tegyük, illetve azért, hogy az Internetről vezérelhessük őket. A jelen mérésben az IoT platformot még tovább fejlesztjük és a szenzorok által gyűjtött adatok elemzését és megjelenítését vizsgáljuk.

A méréseket a ThingSpeak platformon fogjuk elvégezni. A ThingSpeak egy nyílt adat platform és API az Internet of Things alkalmazások számára. Elérhetősége: www.thingspeak.com

A mérések a ThingSpeak egy-egy eleme köré vannak csoportosítva és bemutatják az adatelemzést, megjelenítést és a adatok alapján tett reakciók lehetőségét. A hallgató feladata, hogy a mérésen végighaladva az egyes mérési utasításokat elvégezze, valamint azokat jegyzőkönyvben dokumentájla. A jegyzőkönyvbe fel kell jegyezni a mérés során végrehajtott műveleteket. Be kell másolni a készített kódot, konfigurációs fájlokat. A jegyzőkönyvbe képernyőképek is kerülhetnek. Alapvetően úgy kell a mérést elkészíteni, hogy az a jegyzőkönyv segítségével egyszerűen újra felépíthető legyen.

A mérési feladatok leginkább programozást igénylnek, de nem szükséges bonyolult kódok előállítása, általában a példaprogramok megfelelő átírásarása és bővítése elégendő lehet. Az egyes mérési csoportok leírása után, eltekintve a triviális feladatoktól, mérési segédletek találhatóak, amelyek segítenek az adott feladatok megoldásában.

1. Ismerkedés a ThingSpeak platformmal

A ThingSpeak platformot a www.thingspeak.com címen lehet elérni. Használatához a felhsználónak regisztrálnia kell. A regisztráció ingyenes. A thingspeak platform a bejövő és kiáramló infromációt csatornákba szervezi, hasonlóan a korábbi IoT mérésben megismertekhez. A csatorna a channel. Egy csatornát még további mezőkre lehet osztani, ez lesz a field. Ezekhez az adatokhoz lehet majd hozzáférni az elemzés és megjelenítés közben. A csatornák adatait meg lehet osztani másokkal is, vannak privát és publikus csatornák. A privát csatornák esetén is lehetséges a megosztás, ezekhez a csatornákhoz külön-külön egyedi író és olvasó kulcs tartozik. A csatorna számával és a megfelelő kulccsal hozzá lehet férni a csatornához. Publikus csatornák esetén az adatok szabadon hozzáférhetőek, illetve a csatorna kereshető is. A kereséshez különféle címkéket (tag) lehet a csatornához illeszteni.

Mérési feladat:

  1. Regisztráljon a ThingSpeak oldalon a feladatok elvégzéséhez

  2. Hozzon létre egy tetszőleges saját csatornát és töltsön fel adatot MQTT-n keresztül

  3. Keressen a publikus csatornák között olyan csatornát, ahol friss időjárás adatok érhetőek el, lehetőleg minnél több paraméterrel. A paraméterek között feltétlenül legyen hőmérséklet, amely Fahrenheit-ban van megadva (szükséges a következő feladathoz)

Mérési segédlet ehhez a ponthoz nincs, a feladatok nagyon egyszerűek, talán csak annyi segítség, hogy a csatorna keresés a “Channels” menüsor “Public channels” legördülő menüjéből érhető el. A keresés csak címke alapján lehetséges, így egy pár csatornát végig kell nézni, míg egy megfelelőt talál. MQTT részhez a kapcsolódás paraméterei a https://www.mathworks.com/help/thingspeak/mqtt-api.html oldalon. Az MQTT klienst telepíteni kell. Szinte bármelyik kliens jó, akár ez is: https://mqttx.app/ . De lehet akár online klienst is használni, pl. : https://www.hivemq.com/demos/websocket-client/

2. Adatelemzés

A platform egyik erőssége, hogy a már beérkezett és eltárolt adatokon elemzést végezhetünk. A ThingsSpeak platform adatelemzést a Matlab nyújtja. Az elemzéshez tehát a Matlabot kell felhasználni. Az elemzés során a számított adatokat vagy kérésre megjeleníti a rendszer, vagy képes azokat egy új csatornába tölteni.

Mérési feladat:

  1. A korábban megtalált időjárás adatokat tartalmazó csatorna adatainak konvertálása. Fahrenheitben tárolt adatok átírása Celsiusra (vagy vissza)

  2. Automatikus adatgyűjtés beállítása. A Fahrenheit adatokat tartalmazó csatorna saját csatornára írása közben Celsiusra átalakítva

  3. Adatvadászat weblapról. Egy magyarországi, pillanatnyi időjárás adatot is tartalmazó oldalról olvasson be adatokat és automatikusan vigye be egy erre a célra kialakított saját ThingSpeak csatornára

Mérési segédlet

3. Adatok megjelenítése

A ThingSpeak platform kétfajta adatmegjelenítési formát is támogat. Egyrészt lehetőség van a Matlab vizualizációját használni, másrészt tetszőleges HTML alapú megjelenítőket is használhatunk. A mérésen a hallgató feladata, hogy feldolgozzon és megjelenítsen adatokat, először az egyik, majd a másik lehetőséget felhasználva.

Mérési feladat:

  1. A ThingSpeak példa alapján rajzolja ki a hőmérséklet histogramot a megtalált időjárás csatorna adatait felhasználva

  2. Írjon kódot, amely a megtalált amerikai időjárás csatornára az utolsó 24 óra hőmérsékletét rajzolja ki óránként átlagolva. A megjelenítés Celsius fokban legyen

  3. Írjon kódot, amely az elmúlt 7 nap és azt megelőző 7 nap naponkénti átalaghőmérsékletét mutatja egyetlen grafikonon, naponként összehasonlítva

  4. Készítsen HTML/Javascript megjelenítőt a példa kódot felhasználva a magyarországi időjárás csatornára, mutatva a pillanatnyi hőmérsékletet és páratartalmat

Mérési segédlet

4. Beavatkozás adattól függően

A ThingSpeak platfrom képessége, hogy az adatok elemzésekor különböző reakciókat tud végrehajtani. A reakciók között szerepel Twitter üzenetek küldés, üzenetsorozat előkészítésére (TalkBack) és lehetőség van egy közel tetszőlegesen összeállított HTTP üzenet elküldésére. A méréshez az utóbbit használjuk. A HTTP üzenet és egy másik webes szolgáltatás segítségével mobiltelefonra fogunk értesítést küldeni.

A pushbullet www.pushbullet.com szolgáltatás különböző okostelefon platfromokat és böngésző alkalmazásokat képes összekötni, amelyek akár több eszközön is lehetnek. A platformon küldött üzenetek eljutnak minden egyes eszközre. A platform használatához Google vagy Facebook accountra van szükség.

MIvel a pushbullet szolgáltatás képes HTTP üzenetek fogadására is, így ezt fogjuk felhasználni, hogy a ThingSpeak HTTP-ben indított üzenete eljusson a hallgató okostelefonjára. Amennyiben a hallgató nem rendelkezik okostelefonnal vagy nem akarja erre a célra használni, úgy lehetőség van, hogy az üzeneteket a böngészőbe küldjük.

Mérési feladat:

  1. Jelentkezzen be a pushbullet szolgáltatásba, saját Google vagy Facebook accountjával. Amennyiben még nem rendelkezik ilyennel, akkor készítsen egyet

  2. Csatlakoztassa saját böngészőjét és/vagy saját okostelefonját a szolgáltatáshoz. Az ehhez szükséges alkalmazásokat töltse le és telepítse

  3. A ThingSpeak platformon készítsen egy olyan ThingHTTP parancsot, amely a magyar időjárás csatorna aktuális hőmérséklet értékét elküldi a pushbullet rendszeren keresztül az okostelefonra

  4. A ThnigSpeak platformon állítsa be, hogy a magyar időjárás csatornát figyelve, minden egyes új hőmérséklet érték érkezésekor elküldje azt az okostelefonra

Mérési segédlet

5. Mérés vége

Mindenképpen nézze meg, hogy a mérés elején kialakított magyarországi időjárás csatorna jól működik-e. A mérés végére, feltételezve, hogy 5-10 percenként érkeznek új adatok, már több adatnak össze kell gyűlnie.

A mérés végeztével a megalkotott csatornákat tegye publikussá. Lássa el a csatornákat az “IoT2” és “meres” címkékkel, majd a csatornák elérhetőségét (számát) írja be a jegyzőkönyvbe. A jegyzőkönyv ellenőrzése során ez is ellenőrzésre kerül.