Webová platforma ThingSpeak vznikla v roku 2010 pre podporu IoT aplikácii a zariadení pripojených do IoT. Cieľom ThingSpeak-u je ukladať používateľské dáta, pričom ich dokáže sprístupniť verejne, alebo súkromne používateľovi. Všetko záleží od nastavenie kanála. Každému registrovanému používateľovi je pridelený API kľúč, prostredníctvom ktorého môže nahrávať a čítať dáta z tejto IoT platformy. Dáta je možné nahrávať prostredníctvom REST API (HTTP / HTTPS), alebo prostredníctvom IoT protokolu MQTT. MathWorks začal podporovať ThingSpeak a tak sa táto platforma dostala podporu aj MathWorks produktov, napríklad MATLAB. Priamo prostredníctvom MATLAB-u je možné dáta nahrávať do ThingSpeak-u v reálnom čase.
ThingSpeak je možné využiť bez MATLAB licencie a dáta je možné nahrávať aj prostredníctvom rôznych hardvérových platforiem. Predstavíme si použite ThingSpeak-u prostredníctvom Arduina v spojení s Ethernet modulom/shieldom a WiFi platforiem ESP8266 či ESP32.
V prvom rade je nutné poznať limitácie, ktoré ThingSpeak obsahuje v balíku zdarma. Existuje tu maximálny počet záznamov (entries) v každom z kanálov. Maximálne je možné prevádzkovať 4 kanály. Každý z kanálov má samostatné API kľúče. V jednom kanáli je možné prevádzkovať maximálne 8 polí, do ktorých je možné zapisovať a čítať z nich.
Dáta je možné zapisovať každých 15 sekúnd s limitom 8200 záznamov / deň --> 3 milióny / rok (platí pre všetky dáta dokopy). V prípade prekročenia sa kanál "zmrazí" a nie je možné nahrávať ďalšie dáta.
ThingSpeak umožňuje stiahnuť dáta aj z webového rozhrania pre celý kanál, alebo pre jednotlivé polia napríklad v JSON, XML, CSV formáte. Dáta je možné načítavať aj do vlastnej webovej aplikácie, teda dáta môžu byť využité v ďalších 3rd party cross-platform aplikáciách. Rovnako tak môže dáta odoberať aj mikrokontróler, odoberá posledné dáta - posledný záznam.
Programová implementácia pre mikrokontroléry Arduino / ESP8266 / ESP32 môže byť vyhotovená samostatne pre každý mikrokontróler, napríklad klientskou knižnicou pre HTTP spojenia (hlavičkový súbor Ethernet.h s objektom client pre Ethernet shield W5100 s Arduinom, WiFi.h pre ESP moduly), alebo pre HTTPS spojenie pre ESP8266 / ESP32 je možné využiť hlavičkový súbor knižnice WiFiClientSecure.h. Existuje aj unifikované riešenie priamo of MathWorks-u, ktoré ponúka jednu knižnicu pre všetky tieto spomenuté platformy.
Obsahuje príklady pre odosielanie (Writing) do kanálov a pre čítanie (Reading) z kanálov. Zápis je možné realizovať do viacerých polí kanála súčasne, rovnako tak je možné i dáta čítať. Pre zápis a čítanie existujú samostatné API kľúče! Do polí je možné nahrávať numerické dáta s rôznymi dátovými typmi (int, float, double, long). Treba však dodať, že unifikovaná knižnica pre navrhnutá iba pre HTTP protokol bez podpory HTTPS, čo môže byť využité napríklad pre ESP dosky.
Repozitár s unifikovanou knižnicou od MathWorks-u: https://github.com/mathworks/thingspeak-arduinoDáta je možné na ThingSpeak nahrávať ako bolo spomenuté aj prostredníctvom MQTT API s týmto IoT protokolom. MathWorks sprístupnil rozsiahlu dokumentáciu k API, prostredníctvom ktorej je možné prispôsobiť programovú implementáciu pre akúkoľvek platformu.
Pre ESP8266 s podporou Micropythonu existuje napríklad: https://github.com/miketeachman/micropython-thingspeak-mqtt-esp8266ThingSpeak ponúka aj radu metadát, ktoré je možné využiť, napríklad geogratická poloha, meta údaje, eleváciu, tagy, vloženia Youtube videa, či vlastného Github repozitára. Jednotlivé polia kanálov je možné zapínať/vypínať, sprístupňovať verejne/súkromne. ThingSpeak obsahuje aj populárne MathWorks nástroje pre vizualizáciu, či štatistiku / analýzu dát. Umožňuje vložiť rôzne typy grafov pre reprezentáciu, vrátane populárnych napríklad z MATLAB-u.
Do istej miery teda umožňuje vyhotoviť aj logickú aplikáciu na ovládanie kúrenia, či vzdialeného otvárania vzduchovej klapky, odvetrávania, zapínania elektrických spotrebičov, klimatizácie, zavlažovania. Výhodou je ľahká programová implementácia na zber dát a takmer 100% dostupnosť ThingSpeak-u počas roka. ThingSpeak umožňuje využívať samostatne aj rôzne MathWorks aplikácie, ktorými je možné rozšíriť pôvodný zber údajov.
Použiť je možné napríklad automatické odoslanie e-mailov v daný denný čas s voliteľnými dňami v týždni a pravidelnosťou / jednorázovým nastavením takejto časovej úlohy. Aplikácii je naozaj mnoho, dokážu prepojiť ThingSpeak s Twitterom, iným webovým rozhraním, vytvoriť zaujímavé grafické reprezentácie, či vytvoriť rôzne štatistiky, pluginy.
V spojitosti s touto IoT platformou existuje veľa projektov a tutoriálov, kde je možné bližšie pochopiť čo všetko ThingSpeak ponúka. Napríklad
https://www.instructables.com/,
https://www.hackster.io/, https://hackaday.com/. Funkcií má naozaj mnoho a bežný používateľ nevyužije ani tretinu z nich. Dovolím si povedať, že sa jedná o profesionálne nástroje. Dostupné sú aj platené/univerzitné balíky ThingSpeak-u, ktoré umožňujú zápis viacerých záznamov do viacerých kanálov s vyššou podporou (štandardný free používateľ môže využiť iba komunitnú podporu - fórum).
Mnou realizované projekty (mimo ThingSpeak-u) je možné nájsť na adrese: https://arduino.php5.sk