Nella guida seguente utilizzeremo la scheda elettronica Arancino.cc Mignon Board (v.1.3) sul cui Arancino Connector è montato un weather click, allo scopo di rilevare valori ambientali di temperatura, umidità e pressione e rappresentarli in una dashboard (come mostrato in figura) di un browser web utilizzando Node-Red.
Il weather click impiegato è il mikroe-1978, che incorpora il sensore ambientale BME280 di Bosh e permette di rilevare umidità, pressione e temperatura. E’ progettato specificamente per un basso consumo di corrente e stabilità a lungo termine. Il clic è alimentato da una tensione continua di 3,3 V., e comunica con il microcontrollore di destinazione tramite l’interfaccia SPI o I2C.
Configurazione Hardware
Il sensore ambientale deve essere montato sull’ arancino connector presente sulla scheda (non alimentata), facendo attenzione ad inserirlo correttamente ( far coincidere i pin di GND 8 e 9 del sensore con i pin GND di arancino connector), come mostrato in figura.
Successivamente mediante un cavetto microUSB si collega la scheda alla porta USB del proprio pc, con il duplice scopo di alimentarla e di scambiare dati con il pc.
Configurazione Software
Per programmare il microcontrollore della board arancino.cc mignon è possibile utilizzare l’ambiente di sviluppo Arduino IDE. La procedura di configurazione è disponibile alla pagina “installazione arancino.cc“.
Generalmente le board arancino sono fornite con il bootloader già flashato, in caso contrario è possibile seguire la procedura di flashing disponibile alla pagina “bootloader“.
Ultimata la configurazione basta avviare Arduino IDE, scrivere lo sketch ed inviarlo alla board:
Analizziamo in dettaglio lo sketch, disponibile di seguito:
/* Weather Click mikroe 1978 (BME280) with arancino.cc mignon
*/
#include <SparkFunBME280.h>
#define BME280ADDR 0x76
#define Serial SerialUSB
BME280 bme280_sensor;
float umidita;
float temperatura;
float pressione;
String temp,umid,pres,uscita;
void setup() {
Wire.begin();
Serial.begin(9600);
bme280_sensor.begin();
bme280_sensor.setI2CAddress(BME280ADDR);
if (bme280_sensor.beginI2C() == false) {Serial.println("Sensore non rilevato!");}
delay(5000);
}
void loop() {
temperatura = bme280_sensor.readTempC();
umidita = bme280_sensor.readFloatHumidity();
pressione = bme280_sensor.readFloatPressure() / 100;
temp=String(temperatura);
umid=String(umidita);
pres=String(pressione);
uscita="t"+temp+"u"+umid+"p"+pres+";";
Serial.println(uscita);
delay(5000);
}
Per utilizzare il sensore ambientale in Arduino IDE è necessario importare la libreria SparkFunBME280, che fornisce i metodi setI2CAddress(), necessario ad assegnare l’indirizzo di memoria I2C del weather click (secondo il suo datasheet è “0x76”), ed i metodi necessari a prelevare dal sensore i valori numerici di temperatura(readTempC() ), umidità(readFloatHumidity()) e pressione(readFloatPressure() ).
Le misure rilevate vengono convertite in stringhe e concatenate in un unica stringa (inserendo tra essi alcuni caratteri separatori) che sarà acquisita dal flusso Node-red.
Flusso Node-Red
Per installare l’editor di flussi Node-red in ambiente Windows fare riferimento alla pagina Node-Red. Ultimata l’installazione è necessario configurare Node-red in modo tale da potersi interfacciare con la board arancino mignon attraverso la porta COM alla quale è collegata: a tal proposito è necessario installare la libreria “node-red-node-serial-port” e configurare il nodo “serial in” inserendo il nome della porta ( nel nostro caso COM7), ed il baud rate (9600):
Oltre a visualizzare i valori del sensore nella dashboard di Node-red, il flusso realizzato permette di inviare una email ad un indirizzo di posta elettronica specifico in caso la temperatura superi un certo valore limite (controllandolo ogni 5 minuti). E’ necessario quindi installare anche la libreria “node-red-node-email“. E’ possibile specificare tale valore limite (nel nostro caso 50°C) in un Edit switch node come mostrato in figura.
Nel nodo Email è necessario inserire i dati relativi all’indirizzo email del mittente e della destinazione al quale inviare l’alert
La figura seguente mostra il flusso node-red completo di tutti i nodi:
Per default Node-red visualizza i gauge in verticale, uno sopra l’altro; per mostrare i gauge di temperatura, umidità e pressione in orizzontale (come in fig.1) è necessario configurare i nodi gauge come mostrato in figura, specificando il numero di gauge per pagina.
Node-red permette di importare i flussi già scritti (file in formato json) attraverso la funzione IMPORT: cliccando sul pulsante “Flow Weather Click” è possibile scaricare il flusso della nostra esperienza.
(author: ing. Giulio De Meo)