Internet of Things

Podle definice pojmu Internet of Things (IoT) jde o jednoznačně identifikovatelné objekty a jejich virtuální reprezentaci ve struktuře typu internet. Alespoň tak to bylo zamýšleno při prvním použití tohoto termínu v roce 1999 Kevinem Ashtonem. Kam se tento termín posunul za 13 let a jak je vnímán dnes?

Podle definice pojmu Internet of Things (IoT) jde o jednoznačně identifikovatelné objekty a jejich virtuální reprezentaci ve struktuře typu internet. Alespoň tak to bylo zamýšleno při prvním použití tohoto termínu v roce 1999 Kevinem Ashtonem. Kam se tento termín posunul za 13 let a jak je vnímán dnes?

Dnešní IoT je spíše vnímáno jako sada autonomních, jednoznačně identifikovatelných zařízení, která jsou připojena k internetu, sbírají informace a ty pak publikují v prostředí internetu. Sbírané informace typicky pocházejí z různých senzorů. Jiná zařízení pak mohou tyto informace využívat pro ovládání aktuátorů nebo jinak vyhodnocovat.

Malý příklad

Pokud budete mít ve svém okolí dostatek domácích meteorologických stanic a budete mít přístup k jejich datům, tak si můžete vytvořit velmi přesnou předpověď počasí pro vaše okolí a na základě této předpovědi nastavit vytápění, závlahu, větrání, atd.

Velmi zajímavým případem IoT je sběr dat dobrovolníky při živelných katastrofách. Nejznámější je asi případ jaderné elektrárny Fukushima, kdy celá řada dobrovolníků v zamořeném území sbírala údaje o radioaktivitě a ty pak publikovala na internet. Díky velkému počtu dobrovolníků se každý vystavil jen malé dávce ozáření, ale zároveň se sesbíralo velké množství dat. K měření se používal Geigerův počítač připojený k mobilnímu telefonu, který zároveň poskytoval údaje o poloze.

Proč se IoT věnovat?

Být to článek pro americký časopis, tak bych odpověděl „Abyste zachránili planetu.“ Velké množství projektů se týká měření životního prostředí. Příkladem za všechny může být projekt Air Quality Egg. Z mého pohledu je asi nejzajímavější, že máte šanci naučit se něco nového. Jako programátoři budete nuceni naučit se věci z jiných oborů jako je elektronika, meteorologie, mechanika, obrábění různých materiálů a práci s nebezpečným nářadím (vrtačka, frézka, pila, kleště, pájka, …).

Pro rozvoj programátorských dovedností je jistě zajímavé, že budete pracovat se zařízeními, které místo gigabajtů operační paměti mají kilobajty, místo výkonu procesoru v řádu gigahertzů budete mít megahertze a vůbec se lehce vrátíte do počítačového středověku, kdy záleželo na každém bajtu. Na druhou stranu k napájení zařízení bude stačit modelářská baterka, která bude spolehlivě napájet vaše zařízení v řádu měsíců, podle toho, co bude zařízení všechno dělat. Samozřejmě, když připojíte WiFi a velký displej, tak se bude jednat o jednotky dnů. Úžasné ale je, že tvoříte konkrétní věc a nikoliv jen neuchopitelný software.

Co budete potřebovat?

Hardware

Než začnete s výběrem hardware, tak nezapomeňte, že musí umět komunikovat pomocí TCP/IP. Tím se výběr zužuje na lépe vybavené a výkonnější jednočipové počítače. Podle mě nemá moc smysl používat jednodeskové minipočítače typu Raspberry PI nebo BeagleBoard. Nemají vyvedeny potřebné sběrnice, které budete potřebovat pro připojení senzorů, nejčastěji digitální, analogovou, SPI a I2C. Navíc na nich naprosto zbytečně běží operační systém, který jenom spotřebovává zdroje a přináší další potenciální problémy.

Daleko vhodnější jsou vývojové desky, které obsahují jednočipový počítač s vyvedenými sběrnicemi a dalšími podpůrnými periferiemi.

Asi nejčastěji používaný hardware jsou desky z rodiny Arduino. Nebudu se zde o nich rozepisovat a odkáži vás na oficiální stránky, protože je to vcelku známá platforma.

Dále se zaměřím na to, co používám a znám. Jsou to desky, které jsou postavený na Open Source platformě pro jednočipové počítače .NET Micro Framework.

Díky úspěšnosti platformy Arduino, existuje celá řada klonů  označovaných jako Arduino-like desky. Je to rodina desek, které jsou pinově kompatibilní s Arduino, mohou tedy využívat všechny možné shields, ale využívají jiné jednočipové počítače. Typicky na nich najdete jednočipové počítače s ARM architekturou. Jejich výhodou, při zachování ceny, je podstatně vyšší výkon a více paměti, než u původního Arduino. To je pak samozřejmě vykoupeno větší spotřebou. Mezi nejpoužívanější klony Arduino s podporou .NET Micro Framework u nás patří desky od výrobce GHI Elektronics a to konkrétně deska FEZ Panda II nebo Netduino Plus od Secret Labs.

Do další kategorie můžeme zařadit různé průmyslové desky. Ty jsou postaveny na různých jednočipových počítačích a mají různou výbavu, včetně barevných dotykových displejů. Jejich velkou výhodou je robustnost a výkon, nevýhodou pak cena. Tyto desky se nejčastěji používají v průmyslu pro vytváření prototypů řídicích systémů nebo jiných výrobků.

Za samostatnou kategorii pak považuji nově vzniklou Open Source Hardware platformu .NET Gadgeteer. Je to stavebnicový systém, kdy k řídící desce pomocí 10pinových konektorů připojujete různé moduly. Momentálně je k dispozici cca 50 modulů od tlačítek a svítících diod, přes různé senzory až po dotykové displeje nebo podporu pro VGA výstup.

Meteostanice postavená pomocí .NET Gadgeteer

Můj favorit pro nové projekty je deska FEZ Cerbuino Bee, která kombinuje Arduino a .NET Gadgeteer.

Software

Jak jsem již psal. Budu se věnovat tomu co znám, tedy .NET Micro Framework. .NET Micro Framework je Open Source vydaný pod licencí Apache 2. Pokud chcete začít, budete potřebovat Microsoft Visual C# Express 2010, .NET Micro Framework SDK (pravděpodobně verzi 4.1, verze 4.2 se zatím implementuje experimentálně) a pak SDK pro vaši desku.

Pokud umíte .NET, tak máte v podstatě vyhráno. Budete se pohybovat ve stejném prostředí, které znáte a budete používat stejný programovací jazyk. Jen se budete muset naučit pracovat s objekty, které jsou specifické pro .NET Micro Framework. Za velkou výhodu považuji možnost ladit software přímo na desce, včetně krokování a přístupu k hodnotám ze senzorů.

Návrh zapojení meteostanice

Místo, kam budete data publikovat

Pokud budete chtít data publikovat do internetu, máte v podstatě dvě možnosti. Napsat si vlastní službu nebo využít nějakou existující službu. Já osobně používám projekt Cosm, dříve Pachube. Tento projekt má velmi jednoduché rozhraní pro publikování dat. Základem je tzv. feed, který obsahuje nejméně jeden datastream. Datastream je vlastně hodnota z jednoho senzoru a feed sdružuje hodnoty z různých senzorů dohromady.

Vytvoření Datastreams na Cosm

Co dál?

Mezi nejčastější amatérské projekty patří měření životního prostředí. Praktické využití si ukážeme na té nejdůležitější veličině z životního prostředí geeka – teplotě piva. Ale to až v dalším díle.

Zatím nebyl přidán žádný komentář, buďte první!

Přidat komentář
Zdroj: https://www.zdrojak.cz/?p=3679