Acum cateva zile discutam in cadrul unui articol, despre conceptul de Internet of Things (IoT).
Astazi vorbim despre Node-RED. O aplicatie node.js, super utila proiectelor IoT.
Node-RED este o aplicatie dezvoltata de catre IBM, bazata pe limbajul de programare node.js. Ceea ce aduce nou aceasta aplicatie server este interfata grafica si nodurile deja programate, ce pot fi adaugate in proiect si unite intre ele printr-un simplu drag and drop. Cateva setari si ai realizat un sistem complex, inteligent, fara a butona nici macar o linie de cod.
node.js.
Totul pare usor si chiar asa si este, insa adevarata putere a programului consta intr-o buna cunoastere a limbajului node.js, pentru a putea realiza sisteme complexe si a scrie functii necesare dispozitivelor ce vor interactiona si functiona la parametrii doriti.
Ca un exemplu – doresti sa monitorizezi un senzor conectat la un Arduino Uno ( o placuta electronica special creata pentru automatizari ) – il conectezi printr-un nod ( Johnny-Five de exemplu ) . In aplicatie o sa primesti un mesaj payload ( valoarea trimisa de senzor ) la un interval setat de tine ( vei injecta o pulsatie – alt nod special creat pentru aceasta denumit „inject”) – il vei uni cu intrarea pentru nodul conectat la Arduino (senzor).
Bine, bine, dar la ce ne ajuta valoarea respectiva ? Sa presupunem ca vrem sa o salvam intr-un log ( fisier). Selectam din stanga nodul „file”, setam numele fisierului si locatia, formatul in care salvam mesajul, unim nodurile intre ele si gata. Asta e tot. Vom avea un fisier log in care la un anumit interval se va adauga valoarea primita de la senzor, data si ora.
Sau – vrem sa salvam intr-o baza de date sql – selectam nodul sql, modificam parametrii bazei de date, selectam tabela respectiva si gata. Am unit nodurile si gata.
Dorim sa fim notificati in momentul in care valoarea de la senzor este sub o limita – nimic mai simplu – drag and drop nodul functie – scriem o functie in care setam o limita sub sau peste care functia este true iar mesajul se poate trimite mai departe unui alt nod, apoi unim nodurile, adaugam si unim cu nodul functie – un alt nod care executa o anumita actiune daca primeste un mesaj payload de la nodul functie (ex : notificare, se aprinde un led conectat la un alt dispozitiv conectat, se declanseaza o alarma, un ventilator etc.).
Printre nodurile deja existente in program regasim :
- noduri HTTP ce se conecteaza la o pagina setata de noi, si putem descarca continut HTML la un anumit interval , extragand doar portiunea de valori care ne intereseaza ( web scrapping ),
- noduri care blocheaza un anumit mesaj in cazul in care acesta este identic cu nodul anterior,
- noduri care se conecteaza la contul de email si ne citeste ultimul email – continutul email-ului fiind adus in program si putand fi folosit in orice mod dorim,
- noduri sociale – twitter
- noduri seriale
- noduri mqtt
- noduri switch – mesajul ia o anumita cale in reteaua de noduri, in cazul in care conditia este indeplinita.
- si multe altele
Pentru a instala si folosi Node-RED aveti nevoie de o distributie de linux, programul node.js instalat ( placuta de dezvoltare Raspberry PI are deja instalat pachetul Node-RED in distributia sistemului de operare Raspbian).
Am folosit cu succes diverse versiuni de linux virtualizate in sistemul de operare Windows cu Virtual BOX.
Este necesara instalarea in prealabil a programului node.js precum si a package manager-ului node.js – npm.
Pentru a instala node-red se va deschide un terminal si executa comenzile:
$ sudo npm install -g node-red Pentru a rula node-red : $ node-red
In terminal – se va afisa adresa url si portul unde poate fi accesata pagina web a aplicatiei.
Atentie – unele noduri precum Johnny-Five – nu vor functiona decat daca programul a fost lansat sub permisiunea super user ( sudo ) deoarece sunt necesare anumite permisiuni de sistem.
$ sudo node-red
Cu toate acestea – nu prea este recomandata rularea programului cu permisiuni absolute in sistem. Decizia iti apartine in acest caz, in functie de regulile de securitate pe care le vei adopta.
Avantajul folosirii node-red il constituie faptul ca vei fi propriul tau arhitect in cadrul unui proiect IoT, ai o multitudine de noduri pe care le adaugi, unesti si conditionezi, vizualizand in permanenta schema proiectului si structura logica.
Pentru mai multe detalii si documentatie – vizitati site-ul oficial Node-RED.