Logo Anemone Předchozí reference Další reference

Anemone

Platforma pro Internet věcí

Co bylo výzvou

Cílem projektu bylo vytvoření otevřené platformy pro Internet of Things pomocí open source a open hardware technologií. Platforma byla složena z několika součástí jako jsou například drag & drop editor programů, krásné mobilní aplikace a prototyp open hardware zařízení.

Prototyp open hardware zařízení

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 byli 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 bylo možné pracovat pomocí drag & drop. Editor disponoval pouze základními funkcemi, ale jeho uživatelské rozhraní bylo vytvořeno přehledně, aby bylo možné se v něm dobře orientovat. Což umožňovalo jeho uživatelům velmi snadno vytvářet jednoduché aplikace během pár minut.

Anemone Platforma

Řešení bylo tvořeno z komplexní webové aplikace naprogramované v Ruby on Rails, která tvořila prezentační web platformy, API, online editor i administrační rozhraní. Další součástí řešení byly krásně animované nativní mobilní aplikace pro Android a iOS, 3D vytisknutelné obaly, které jsme navrhli, a mnoho dalšího.

Funkcionalita

Mezi klíčové vlastnosti mobilních a webových aplikací patřilo:

Prototypy

Prototypy

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í byla vytvořena pod licencí open hardware a open source.

Flows

Flows

V editoru bylo možné vytvářet jednoduché programy, pomocí kterých se pracovalo s daty ze zařízení, které se k platformě připojily. Složitější logika se programovala v JavaScriptu.

3D obaly

3D obaly

Pro prototypy zařízení jsme vytvořili pět 3D vytisknutelných obalů a vypublikovali je jako open source na Thingiverse.

Mobilní aplikace

Mobilní aplikace

Vyvinuli jsme nativní mobilní aplikace pro Android i iOS, které umožňovaly uživatelům ovládat svá zařízení na dálku. Mobilní aplikace měly stylové 8-bitové uživatelské rozhraní a schovali jsme do nich několik malých překvapení (viděli jste raketku?)

Web

Web

Webová aplikace vytvořená v Ruby on Rails spojovala všechny součásti systému dohromady. S mobilními aplikacemi komunikovala pomocí web sockets a se zařízeními pomocí protokolu MQTT.

Responsivní webová stránka

Webová aplikace byla tvořena několika oddělenými součástmi, které spolu interagovaly přesně daným způsobem. Frontend tvořila responsivní prezentační webová stránka . Ta umožňovala uživatelům přihlášení a registraci.
Přihlášený uživatel získal přístup do svého Dashboardu odkud mohl spravovat připojená zařízení, která měl s platformou propojená (v terminologii platformy se tato zařízení nazývala Tentacles). Kromě zařízení zde uživatelé mohli spravovat i seznam svých aplikací, které v rámci platformy vytvořili.

Responsivní webová stránka

Flow editor

Vytvořené aplikace pomocí platformy ve skutečnosti nebyly závislé na hardwarových zařízeních. Tyto aplikace mohly hardwarová zařízení připojovat k webovým službám a nebo mohly fungovat i zcela bez nich. Jedna aplikace mohla být napojena i na více než jedno zařízení. A jedno zařízení mohlo být připojeno k mnoha aplikacím ve stejný okamžik. Zařízení komunikovala s cloudovou aplikací pomocí technologie MQTT, která je velmi oblíbená v cílové skupině kutilů a makerů.

Aplikace, které bylo možné pomocí platformy vytvářet (v platformní terminologii se nazývají Flows), se skládaly z jednotlivých uzlů (angl. Nodes), které byly vzájemně propojeny pomocí drag & drop v online Flow editoru. Název editoru byl odvozen od flow-based programování, což je princip, podle kterého se aplikace vytvářely. V systému byla už připravena celá řada různých uzlů a nové bylo možné vytvářet pomocí programovacího jazyka JavaScript.

Flow editor

Anemone Dokumentace

Protože byla celá platforma poměrně složitá, a její použití sestávalo z řady možností a kroků, připravili jsme přehlednou a srozumitelnou online dokumentaci, která usnadnila použití platformy i méně zkušeným uživatelům.

Anemone Dokumentace

Ale webovou aplikací a online editorem uživatelský zážitek z Anemone platformy nekončil. V rámci projektu jsme vytvořili také dvě nativní mobilní aplikace - jednu pro Android a druhou pro iOS. Pomocí těchto aplikací mohl uživatel interagovat se svými aplikacemi a zařízeními odkudkoli, a mít všechny informace vždy po ruce.

Mobilní aplikace pro Android Mobilní aplikace pro iOS Android aplikace Anemone
iOS aplikace Anemone Vývoj mobilní aplikace Vývoj mobilní aplikace pro Android Vývoj mobilní aplikace pro iOS

Uživatelé mobilní aplikace mohli 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 byl přímočarý proces sdílení přístupu k Anemone aplikacím, který byl 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.

Máte nápad na projekt? Pojďme se potkat.

Hledáte technologického partnera pro vytvoření informačního systému
nebo pomoc s digitalizací? Rádi se nad vaším projektem potkáme.

Rádi bychom používali soubory cookie a skripty třetích stran, abychom zlepšili funkčnost těchto webových stránek.

Souhlasím Pouze nezbytné