Monitorare l’ambiente con Arduino IoT Cloud – Tutorial

Monitorare l’ambiente con Arduino IoT Cloud: due settimane fa, con il primo tutorial, abbiamo visto come realizzare un dispositivo in grado di leggere umidità, temperatura, luminosità e qualità dell’aria memorizzando questi dati su un file .txt. Oggi aggiungiamo funzionalità di rete utilizzando lo strumento Arduino IoT Cloud.

Per un’introduzione a questa tecnologia rimandiamo a questi tre nostri tutorial:

  1. https://www.wifi-informatica.it/2020/10/30/arduino-iot-cloud/
  2. https://www.wifi-informatica.it/2020/11/17/smart-planter-arduino/
  3. https://www.wifi-informatica.it/2021/12/27/presepe-smart-arduino-iot-cloud-esp8266/

Configurazione per monitorare l’ambiente con Arduino IoT Cloud

Per prima cosa creiamo una nuova thing con quattro variabili, alle quali andremo ad associare le grandezze che vogliamo monitorare:

  • AirQ
  • Hum
  • Luce
  • Temp

Per la tipologia rimandiamo all’immagine che segue. Nel mio caso ho impostato la lettura periodica ogni secondo, ma sei libero di lasciare “on change” in modo da inviare la lettura ogni qualvolta ci sia un cambio di valore.

Monitorare l'ambiente con Arduino IoT

Successivamente associamo un device (che andrà precedentemente configurato, tramite una semplice procedura guidata, nella voce Devices di Arduino IoT Cloud) ed inseriamo le credenziali della rete wifi alla quale collegheremo il dispositivo.

Il codice

Di seguito il codice da caricare sulla scheda Arduino.

/* 
  Sketch generated by the Arduino IoT Cloud Thing "Air Quality"
  https://create.arduino.cc/cloud/things/71c0ba46-74fb-44ba-88c9-2121eba325df 

  Arduino IoT Cloud Variables description

  The following variables are automatically generated and updated when changes are made to the Thing

  float hum;
  float temp;
  int airQ;
  int luce;

  Variables which are marked as READ/WRITE in the Cloud Thing will also have functions
  which are called when their values are changed from the Dashboard.
  These functions are generated with the Thing and added at the end of this sketch.
*/

#include "thingProperties.h"
#include <DHT.h>

#define DHTPIN 2
#define LIGHT A3
#define MQ2 A5
#define DHTTYPE    DHT11

void setup() {
  // Initialize serial and wait for port to open:
  Serial.begin(9600);
  // This delay gives the chance to wait for a Serial Monitor without blocking if none is found
  delay(1500); 

  // Defined in thingProperties.h
  initProperties();

  // Connect to Arduino IoT Cloud
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);
  
  /*
     The following function allows you to obtain more information
     related to the state of network and IoT Cloud connection and errors
     the higher number the more granular information you’ll get.
     The default is 0 (only errors).
     Maximum is 4
 */
  setDebugMessageLevel(2);
  ArduinoCloud.printDebugInfo();
  dht.begin();
}

void loop() {
  ArduinoCloud.update();
  // Your code here 
  hum = dht.readHumidity();
  temp = dht.readTemperature();
  airQ = analogRead(MQ2);
  luce = analogRead(LIGHT);  
 
}

A questo punto siamo pronti a caricare il codice sulla scheda. Ricordo che al momento Arduino IoT Cloud è compatibile con queste board ufficiali:

  • Arduino NANO 33 IoT
  • Arduino MKR WiFi 1010
  • Arduino MKR WAN 1310
  • Arduino MKR WAN 1300
  • Arduino MKR NB 1500
  • Arduino MKR GSM 1400
  • Arduino MKR1000
  • Arduino Portenta H7 (M7 core)
  • Arduino Nicla Vision
  • Arduino Nano RP2040 Connect

Per quanto riguarda le schede di terze parti, questo al momento è l’elenco:

  • ESP8266
  • ESP32
  • Pelion
  • LoRaWAN device

Impostiamo la dashboard per monitorare l’ambiente con Arduino IoT Cloud

Ultimo step è quello di creare l’interfaccia grafica dove visualizzare i dati letti dalla nostra scheda connessa.

Dopo averle dato un nome a piacere, inseriamo tre widget di tipo Value e un widget di tipo percentage. Ogni widget andrà rinominato con l’indicazione delle grandezze che andremo a misurare e andrà collegato a una delle variabili create in precedenza, avendo cura di selezionare la thing di riferimento.

Monitorare l'ambiente con Arduino IoT

Nell’immagine qui sopra vediamo l’esempio riguardante la temperatura. Configurati i quattro widget siamo liberi di spostarli e ridimensionarli.

ambiente Arduino IoT

Conclusioni

A questo punto non dobbiamo far altro che alimentare la scheda Arduino e collocarla in un punto dove ci sia copertura da parte della rete wifi che abbiamo configurato nella thing. Attraverso i sensori misureremo la qualità dell’aria, comunicandoli in tempo reale alla nostra dashboard accessibile sia da browser che da dispositivo mobile (installando l’app Arduino IoT Cloud Remote).

In caso di dubbi o suggerimenti su come Monitorare l’ambiente con Arduino IoT Cloud puoi contattarci utilizzando il form qui sotto. Se sei un docente e vuoi portare esperienze di questo tipo nella tua scuola consulta la nostra offerta didattica STEM.

Se stai muovendo i primi passi in questo mondo ti consigliamo il corso online che abbiamo realizzato.

    Acconsento al trattamento dei dati personali ai sensi del Regolamento UE 2016/679. Leggi la Privacy Policy.