Node Red je open-source programovací nástroj, za jehož vznikem stojí IBM. Aplikace vznikají pomocí flow-based přístupu. Jednotlivé programovací celky existují v podobě uzlů – nodů, které si programátor poskládá za sebe. Podobný přístup používá například LabView od NI. Nody se poskládají do funkčního celku a o samotný kód se stará systém. Uživatel má samozřejmě možnost tu a tam něco dopsat.
U Node-Red je zajímavé nejen to, že jako open source poskytne hodně použitelných zdrojů a nodů, ale také to, že uživatelským rozhraním je web browser. Ten poskytuje nástroje pro pospojování nodů, ale také pro ladění celého procesu. V reálu tak během vývoje odpadá nutnost neustálého a opakovaného překládání, uploadu software, testu, hledání chyby. Uživatel vše provádí online, protože o jednotlivé kroky se postará API Node REDu v prohlížeči a v zařízení prostřednictvím ethernetového připojení.
Začít můžete samozřejmě ze všech stran, nejjednodušší je cesta podle hardware, který máte:
- https://projects.raspberrypi.org/en/projects/getting-started-with-node-red
- https://www.hackster.io/gokulpsamy/interfacing-arduino-with-node-red-f07882
- https://www.element14.com/community/community/design-challenges/musictech/blog/2016/01/31/node-red-on-the-beagle-bone-black
Doménou prostředí Node RED se stává čtení a ovládání IoT zařízení. Charakter nodů předurčuje prostředí pro skládání jednoduchých algoritmů pro sledování a ovládání zařízení, jako jsou dálkově ovládaná relé, senzorová zařízení nebo domácí automatizace. To si uvědomují i zástupci řady firem, včetně Amazonu nebo Microsoftu a vývoj platformy podporují.
Node RED má jasnou paralelu s protokolem MQTT, který se ukazuje jako skvělý společný komunikační protokol pro výrobce zařízení i poskytovatele cloudových služeb. Node RED navíc nabídne flow-based sestavení celého algoritmu, do kterého se jednoduše dropuje odeslání/přijetí informace z cloudu. Poskytovatelé cloudových služeb si dají záležet, aby nody dobře fungovaly a nenutily líné programátory jakkoli experimentovat nad rámec nabídnutých variant bloků.