Terza puntata della nostra “missine esplorativa” in ambito Node-RED.
Nelle puntate precedenti abbiamo visto cos’è e come funziona la sua interfaccia grafica via web.
In questa puntata vedremo di realizzare un piccolo programma per rendere interattivo il raspi.
Pronti? partenza… Node-RED
Per prima cosa occorre avviare il server Node-RED dal menù Programmazione di Raspian.
Si aprirà un terminale con alcune informazioni, in particolare vedrete un indirizzo IP, qualcosa del tipo 192.168.x.x:1880. Questo è l’indirizzo della vostra RP nella LAN. seguito dal numero di porta usato da Node-RED.
Dal browser di un altro PC in rete scrivete questo indirizzo e vedrete apparire l’interfaccia Web del software.
Come abbiamo etto precedentemente, vi sono tre colonne: i nodi a sinistra sono i blocchi che dovete usare per costruire il codice trascinandoli nella colonna centrale (chiamato Flow). La colonna di destra, invece, mostra le informazioni sui singoli nodi e può essere usata per fare il debug del programma.
Il nostro primo programma in Node-RED: Raspi e Twitter
Il primo elemento del programma che ci serve è un nodo Twitter, in modo da collegare il codice del software a questo social network.
Scorrendo la colonna dei nodi verso il basso troviamo la sezione Social. Trascinate il nodo twitter (il primo che trovate) nel Flow.
Attenzione, sopra questo nodo trovate due simboli:
1) un cerchietto blu, per segnalare il fatto che il nodo non è stato “attivato”;
2) un triangolo rosso ad indicare che è richiesta una configurazione.
Fatto doppio click sul nodo, selezionate l’icona con la penna ed autenticatevi su Twitter, in modo da permettere a Node-RED di usare il vostro account Twitter (se non ne avete uno, è il caso di crearlo).
Ecco, ora occorre modificare il nodo.
Nella scheda a destra dovrebbe essere apparso il vostro ID Twitter; assicuratevi che alla voce Search corrisponda il valore all public tweets. Nel campo For inserite l’hashtag da cercare, noi abbiamo usato #pounderland. Nel campo Name assegnate un titolo al nodo, per esempio il nome dell’hashtag che avete indicato. Se ora premete il pulsante Deploy dovreste veder sparire il circolino blu.
Il nostro primo programma in Node-RED: da Twitter al Raspi
Ora concentreremoci sull’output nel caso l’hashtag appaia un post di Twitter. Dai nodi output cercate quello chiamato debug, trascinatelo in Flow e cliccate sul circolino grigio.
Tenendo premuto il pulsante del mouse collegatelo al circolino grigio del primo nodo. Fatto ciò, cliccate due volte sulla scritta msg. payload dentro il nodo debug per modificare le sue proprietà. L’output payload è il contenuto del tweet e viene inviato al tab debug presente nella colonna destra dello schermo: assegnate il nome Tweet Information al nodo.
Ora il nodo stamperà i tweet contenenti l’hashtag indicato nel tab debug.
Premete di nuovo Deploy e aspettate qualche minuto prima di inviare un tweet che contenga l’hashtag.
Il nostro primo programma in Node-RED: da Twitter sul Raspi
Passate alla parte “conservativa”. Ora che siamo in grado di catturare i post da Twitter, occorrerà assicurarci che i post possano essere conservati in locale, sul nostro raspi. Come memorizzare in un file il testo ricevuto?
Scorriamo la colonna dei nodi fino a trovare la sezione Storage: selezionate la voce “file”.
Fate attenzione, ve ne sono due. Prendete quello che ha l’icona sulla destra e trascinatelo nel Flow. Collegatelo poi al nodo twitter già impostato e cliccateci sopra due volte.
Nella finestra che appare assegnate un nome al file, ma mi raccomando, il nostro programma per il momento legge solo percorsi assoluti, quindi occorre scrivere il path completo del nostro file, nel nostro caso /home/pi/pounderland_ tweets
.
Se il file non esiste, verrà creato.
Nel campo Action assicuratevi che sia presente l’opzione append to file
.
Infine assegnate un nome al nodo (consigliamo di usare lo stesso path del file).
Ora i tweet individuati verranno salvati nel file.
Ed ecco realizzato il nostro primo programma con Node-RED.
Alla prossima per un’ulteriore miglioramento del nostro software cattura twit.