Cílem projektu bylo vytvoření otevřené platformy pro Internet of Things pomocí open source a open hardware technologií. Platforma sestává z několika součástí jako jsou například drag & drop editor programů, krásné mobilní aplikace a prototyp open hardware zařízení.
Klient:
Datum: Září 2016
Naším úkolem bylo navrhnout a vytvořit kompletní řešení. Detailní analýzou technologického řešení počínaje a online drag & drop editorem programů a mobilními aplikacemi konče. Zajímavou výzvou bylo nalezení vhodné komunikační technologie mezi open hardware zařízeními a webovou aplikací v cloudu. Bylo nutné zvolit takový způsob komunikace, který by splňoval všechny potřebné požadavky - jak ty technické, tak musel být dostatečně otevřený a přístupný pro cílovou skupinu celého řešení. Cílovou skupinou jsou kutilové, “bastlíři” a makeři.
Druhou výzvou v projektu byla realizace nástroje pro vizuální programování pomocí drag & drop, které by fungovalo v prostředí prohlížeče. Kutilové a makeři nejsou vždy zkušenými programátory, a proto bylo nutné pro ně připravit nástroj, který by jim umožil vytvářet jednoduché aplikace i bez nutnosti znát a ovládat programování. Nástrojů pro vizuální (nebo také flow-based) programování existuje celá řada, ale žádný z nich nesplňoval specifické požadavky našeho klienta - především pak jednoduchost jeho použití a možnost prostředí pro více současně pracujících uživatelů. Z tohoto důvodu jsme navrhli a vytvořili elegantní online editor pro flow-based programování, ve kterém je možné pracovat pomocí drag & drop. Editor disponuje pouze základními funkcemi, ale jeho uživatelské rozhraní je velmi přehledné, a je možné se v něm ihned zorientovat. Což umožňuje jeho uživatelům vytvářet jednoduché aplikace velmi snadno během pár minut.
platformaiotmobilní aplikaceandroidiosbackendapiopen hardwareflow-based programmingvývoj mobilní aplikacevývoj webuvývoj IoT aplikacetechnologická výzva
Řešení sestává z komplexní webové aplikace naprogramované v Ruby on Rails, která tvoří prezentační web platformy, API, online editor i administrační rozhraní. Další součástí řešení jsou krásně animované nativní mobilní aplikace pro Android a iOS, 3D vytisknutelné obaly, které jsme navrhli, a mnoho dalšího.
Navrhli jsme několik prototypů open hardware zařízení. Vytvořili jsme prototyp jak pro řešení s ideálním poměrem cena/výkon (Arduino a NodeMCU), tak pro průmyslovou kvalitu (BigClown). Všechna zařízení jsou vytvořena pod licencí open hardware a open source.
V editoru je možné vytvářet jednoduché programy, pomocí kterých se pracuje s daty ze zařízení, které se k platformě připojí. Složitější logika se programuje v JavaScriptu.
Pro prototypy zařízení jsme vytvořili pět 3D vytisknutelných obalů a vypublikovali je jako open source na Thingiverse.
Vyvinuli jsme nativní mobilní aplikace pro Android i iOS, které umožňují uživatelům ovládat svá zařízení na dálku. Mobilní aplikace mají stylové 8-bitové uživatelské rozhraní a schovali jsme do nich několik malých překvapení (už jste viděli raketku?)
Webová aplikace vytvořená v Ruby on Rails spojuje všechny součásti systému dohromady. S mobilními aplikacemi komunikuje pomocí web sockets a se zařízeními pomocí protokolu MQTT.
Webová aplikace je tvořena několika oddělenými součástmi, které spolu interagují přesně daným způsobem. Frontend tvoří responsivní prezentační webová stránka. Ta umožňuje uživatelům přihlášení a registraci. Přihlášený uživatel získá přístup do svého Dashboardu odkud může spravovat připojená zařízení, která má s platformou propojena (v terminologii platformy se tato zařízení nazývají Tentacles). Kromě zařízení zde uživatelé mohou spravovat i seznam svých aplikací, které v rámci platformy vytvořili.
Vytvořené aplikace pomocí platformy ve skutečnosti nejsou závislé na hardwarových zařízeních. Tyto aplikace mohou hardwarová zařízení připojovat k webovým službám a nebo mohou fungovat i zcela bez nich. Jedna aplikace může být napojena i na více než jedno zařízení. A jedno zařízení může být připojeno k mnoha aplikacím ve stejný okamžik. Zařízení komunikují s cloudovou aplikací pomocí technologie MQTT, která je velmi oblíbená v cílové skupině kutilů a makerů.
Aplikace, které je možné pomocí platformy vytvářet (v platformní terminologii se nazývají Flows), se skládají z jednotlivých uzlů (angl. Nodes), které jsou vzájemně propojeny pomocí drag & drop v online Flow editoru. Název editoru je odvozen od flow-based programování, což je princip, podle kterého se aplikace vytváří. V systému je už připravena celá řada různých uzlů a nové je možné vytvářet pomocí programovacího jazyka JavaScript.
Protože je celá platforma poměrně složitá, a její použití sestává z řady možností a kroků, připravili jsme přehlednou a srozumitelnou online dokumentaci, která usnadňuje použití platformy i méně zkušeným uživatelům.
Ale webovou aplikací a online editorem uživatelský zážitek z Anemone platformy nekončí. V rámci projektu jsme vytvořili také dvě nativní mobilní aplikace - jednu pro Android a druhou pro iOS. Pomocí těchto aplikací může uživatel interagovat se svými aplikacemi a zařízeními odkudkoli, a mít všechny informace vždy po ruce.
Uživatelé mobilní aplikace mohou rovněž sdílet přístup ke svým Anemone aplikacím skrze mobilní telefon se svými přáteli nebo kolegy. Stejně jako to děláme u všech projektů, i zde jsme se mimořádně věnovali detailům - výsledkem je přímočarý proces sdílení přístupu k Anemone aplikacím, který je pro uživatele nevšedním a příjemným zážitkem. Právě detaily často rozhodují o tom, jak budou uživatelé mobilní aplikaci vnímat.
Ani tím však Anemone nekončí. Kromě cloudové webové aplikace a mobilních aplikací jsme totiž navrhli a vytvořili celkem pět ukázkových prototypů open hardware zařízení, které jsou s platformou zintegrovány (v terminologii platformy se tato zařízení nazývají Tentacles). Tato zařízení jsme postavili pomocí prověřených a populárních open hardwarových komponent jako jsou Arduino, NodeMCU nebo BigClown. Sketche a firmware pro tato zařízení jsou dostupné jako open source a byly vytvořeny v programovacím jazyce C.
Pro vytvořená zařízení jsme také navrhli a vytvořili šikovné plně open source 3D vytisknutelné obaly. Obaly je možné používat jak společně s platformou Anemone, tak i zcela samostatně. 3D vytisknutelné obaly pro všechna navržená Tentacles jsou dostupná na Thingiverse, odkud si je může stáhnout každý, kdo má zájem.
Hledáte spolehlivého technologického partnera pro Váš projekt? Rádi o Vašem projektu
uslyšíme více.