Lezione n.4: Node-RED
Un’espressione è una combinazione di valori, variabili ed operatori che rappresentano un nuovo valore. Ad esempio, possiamo realizzare una nuova programmazione con Node-RED che ci consente di sommare due numeri provenienti da un blocco inject in ingresso.
Il blocco inject lo personalizziamo affinché inserisca nel flusso due msg, uno lo chiameremo msg.num_1 ed un secondo lo chiameremo msg.num_2
A questo punto andremo a scrivere il codice presente nel blocco funzione denominato “SOMMA”
1. var num_1; //dichiarazione variabile
2. var num_2; //dichiarazione variabile
3. var somma; //dichiarazione variabile
4. num_1 = msg.num_1; //intercettiamo il msg.num_1 dal flusso e lo salviamo nella variabile num_1
5. num_2 = msg.num_2; //intercettiamo il msg.num_2 dal flusso e lo salviamo nella variabile num_2
6. somma = num_1 + num_2; //assegniamo alla variabile somma un valore che è dato dalla somma delle variabili num_1 e num_2
7. msg.payload = somma; //assegniamo quindi al flusso in uscita la variabile somma, in modo che venga visualizzata nel debug
8. return msg;
Sostanzialmente come si vede nella programmazione su stante sono state inizialmente dichiarate le tre variabili, successivamente è stato individuato il messaggio proveniente dal flusso ed assegnato alle relative variabili interne alla funzione. Arrivati a questo punto è stata utilizzata una nuova formattazione che ancora non avevamo studiato. Come è intuitivo è stato utilizzato un operatore “+” per sommare due variabili contenenti dei numeri. Analizziamo quindi attentamente l’istruzione 6:

In colore viola abbiamo delle semplici variabili precedentemente dichiarate, mentre con il verde abbiamo un operatore = che ci è servito per assegnare un valore alla variabile somma, in fine abbiamo con il rosso un operatore aritmetico + che ha permesso di sommare aritmeticamente la variabile num_1 con la variabile num_2.
In tale formattazione abbiamo quindi individuato gli operatori di assegnamento già precedentemente visti nella lezione Le Variabili e i nuovi operatori aritmetici. Come vedremo gli operatori utilizzabili nella programmazione sono diversi:
Ritornando quindi alla programmazione Node-RED viene inserito in fine la solita paletta di debug

Cliccando sulla paletta inject abbiamo in uscita sul debug il messaggio “18” che corrisponde alla somma di num_1 e num_2

Ovviamente il risultato di questo sistema è una costante, in quanto num_1 e num_2 non variano, ciò significa che tale programmazione non ha nessuna utilità. Stiamo imparando a gestire i dati con delle costanti, successivamente andremmo ad introdurre dei metodi di input che sfrutteranno l’interfaccia grafica, i quali ci daranno la possibilità di interagire con la nostra programmazione col fine di inserire dei valori variabili in ingresso.
Per prendere ancora confidenza con la programmazione utilizziamo un codice più complesso:
1. var num_1;
2. var num_2;
3. var somma;
4. var moltiplicazione;
5. var divisione;
6. num_1 = msg.num_1;
7. num_2 = msg.num_2;
8. somma = num_1 + num_2;
9. moltiplicazione = num_1 * num_2;
10. msg.payload = “la somma è uguale a: “ + somma + ” | la moltiplicazione è uguale a: “ + moltiplicazione;
11. return msg;
La programmazione è simile alla precedente ma varia nell’istruzione numero dieci, in quanto vediamo una formattazione più complessa, approfondiamola:
msg.payload = “la somma è uguale a: “ + somma + ” | la moltiplicazione è uguale a: “ + moltiplicazione;
somma e moltiplicazione sono delle variabili
“la somma è uguale a: “ e ” | la moltiplicazione è uguale a: ” sono delle stringhe di testo
+ è un opereatore di concatenazione
Quindi l’output in uscita nel mio debug sarà: “la somma è uguale a: 18 | la moltiplicazione è uguale a: 80”