martedì , Marzo 19 2024
Ultime Notizie
Home / Linux / NodeJS e IoT

NodeJS e IoT

IoT: Internet of Things

IoT ovvero Internet of Things (Internet delle cose ndr.) è un acronimo che per la prima volta è stato definito nel 1999 durante una presentazione a Procter & Gamble.

Si intende la “messa in rete” degli apparati comuni, di utilizzo comune a livello industriale o anche a livello casalingo. Ecco alcuni esempi di cosa si può monitorare:

  • Temperatura dell’aria
  • Pressione dello spazio
  • Movimento (sensori di movimento)
  • Termostati;
  • Videocamere;
  • Rilevatori di luminosità;
  • Rivelatori di umidità;
  • Orologi;
  • Wearable (oggetti da indossare, come braccialetti connessi e orologi);
  • Sensori ambientali e territoriali.
  • Orientamento nello spazio
  • Prossimità (sensori di prossimità)
  • Immagini (videocamere)
  • Rilevazione di luminosità
  • Rilevazione di onde elettromagnetiche
  • Radiofrequenze
  • Elettricità, tensione, corrente
  • Suoni

La vastità delle informazioni raggiungibili, con l’IoT, aumenta sempre di più e allo stesso tempo i rischi per la sicurezza e la privacy dei dati, se non protetti a dovere.

Con l’IoT cambia totalmente il paradigma anche a livello di sviluppo software, sono nati infatti una serie di strumenti a “blocchi” che ti vengono incontro con una serie di blocchi precompilati solo da utilizzare e personalizzare (sempre partendo dal fatto che se non esiste, puoi sempre scriverlo).

In particolare in questo articolo voglio parlarvi di NodeJS e Node Red.

NodeJS e Node Red

NodeJS è un framework sviluppato su Javascript v8 di tipo event-driven cioè la richiesta di essere notificato quando si verifica un evento, e fintanto che non si verifica, il sistema va in “sleep”.

Quando arriva l’evento, il sistema si “risveglia” ed esegue una serie di funzioni specificate in fase di progettazione (callback function).

Il vantaggio come si può capire anche dalla descrizione del funzionamento è proprio l’ottimizzazione della rete e del traffico di rete che si attiva solo al momento del verificarsi di un determinato evento, restando in stand-by nel frattempo.

Node Red è un tool sviluppato in origine da IBM per rendere più fluida e semplice la programmazione dei dispositivi IoT: basato su NodeJS, definisce il concetto di flusso ed è diviso in blocchi o “palette” che possono essere interconnessi fra loro specificando, in Javascript, le modalità di interconnessione.

La potenza di Node Red e soprattutto di NodeJS è che non ha bisogno di notevoli risorse per poter eseguire anche codice molto complesso, per cui vi faccio vedere come installarlo su una Raspberry Pi 3

NodeJS e Node Red su Raspberry Pi 3

Vediamo come installarli entrambi su una Raspberry con Raspian 9 installato.

NodeJS

sudo apt-get update
sudo apt-get dist-upgrade
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs

Node Red

bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
sudo systemctl enable nodered.service
node-red-start

Fatto questo basta andare da browser su http://il_vs_ip:1880 e si aprirà una maschera del genere:

Più avanti vi mostrerò qualche progetto eseguito con Node Red con interazione con Telegram, Meteo etc.

Tra le altre cose, è possibile installare una Dashboard su Node Red per poter già avere una facile e veloce grafica senza l’interazione con altri motori (anche se è possibile interagire con altri sistemi tipo Grafana)

Enjoy!

Info Paolo Daniele

Ingegnere delle Telecomunicazioni, appassionato di informatica fin da piccolo ho trasformato la passione in lavoro. Con il PHP faccio tutto (o quasi...) ma non disprezzo altri linguaggi all'occorrenza. Se vi piace il mio sito, o vi è utile, o vi sto simpatico, offritemi una birra!

Ti potrebbe interessare

Configurazione SSL/HTTPS Wildfly Application Server

Ciao Ragazzi, ritorno per fare alcune considerazioni sull’installazione di un certificato SSL e quindi l’abilitazione …

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *