Monitorare l’ambiente con Arduino – Tutorial

Monitorare l’ambiente con Arduino: in questo tutorial vedremo come realizzare una centralina in grado di misurare temperatura, umidità, luminosità e diversi agenti inquinanti.

Occorrente

  • Scheda Arduino
  • Breadboard
  • Sensore DHT-11
  • Fotoresistenza
  • Resistenza da 1 kΩ
  • Sensore MQ-2
  • Lettore Micro SD card

Monitorare l’ambiente con Arduino e il sensore MQ-2

Il sensore MQ-2 rileva GPL, butano, propano, metano, idrogeno e fumo. Si tratta di un sensore ideale per rilevare la qualità dell’aria. Il sensore ha due output: uno digitale e uno analogico.

Utilizzando la libreria MQUnifiedsensor possiamo utilizzare un dei pin digitali di Arduino per avere una lettura dettagliata di tutti i gas elencati in precedenza.

In alternativa possiamo utilizzare uno dei pin analogici per avere una lettura generica della quantità di inquinanti presenti nell’aria. Il sensore è in grado di rilevare concentrazione comprese tra 300ppm e 10.000ppm (parti per milione).

DHT-11 e fotoresistenza

Per misurare temperatura, umidità e luminosità utilizzeremo un sensore DHT-11 e una fotoresistenza.

Il sensore DHT-11 è in grado di misurare temperatura ed umidità. Esistono diverse librerie che permettono di ottenere i due valori già espressi in °C e in percentuale. Occorre utilizzare un pin digitale di Arduino.

Per creare un sensore di luminosità con la fotoresistenza dovremo realizzare un partitore di tensione impiegando un resistore da 1 kΩ. In questo modo otterremo una misurazione analogica direttamente proporzionale alla quantità di luce ambientale. In alternativa, esistono sensori di questo tipo già pronti out-of-the-box.

Data visualization

Per visualizzare i valori letti dai sensori possiamo utilizzare la comunicazione seriale o, in alternativa, memorizzare il tutto su di una scheda micro SD. Il lettore che utilizziamo utilizza la tecnologia SPI, gestita a livello di codice dalla libreria Wire. In questo modo andremo a memorizzare sulla scheda di memoria i valori letti dalla centralina, impiegando la libreria SD.

In alternativa potere utilizzare Arduino IoT Cloud per visualizzare i dati su una dashboard condivisa online. Ne parliamo in questi 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/

Codice per monitorare l’ambiente con Arduino

Di seguito il codice da caricare sulla scheda Arduino. I valori letti vengono sia inviati sulla porta seriale di Arduino che scritti sulla scheda microSD.

#include <DHT.h>
#include <SPI.h>
#include <SD.h>

//pin di Arduino ai quali sono collegati i sensori
#define DHTPIN 2
#define LIGHT A3
#define MQ2 A5
#define DHTTYPE    DHT11

File myFile;
DHT dht(DHTPIN, DHTTYPE);

// dichiarazione delle variabili
long temp, hum;
int luce, airq;
int i = 1;

void setup() {
  Serial.begin(9600);

  //inizializzare il sensore dht e la scrittura sulla SD
  dht.begin();
  SD.begin(10);
}

void loop() {
  temp = dht.readTemperature();
  hum = dht.readHumidity();
  luce = analogRead(LIGHT);
  airq = analogRead(MQ2);
  //comunicazione seriale dei dati
  Serial.print("Lettura n. ");
  Serial.println(i);
  Serial.print("Temperatura: ");
  Serial.print(temp);
  Serial.print(" || ");  
  Serial.print("Umidita': ");
  Serial.print(hum);
  Serial.print(" || ");  
  Serial.print("Luminosita': ");
  Serial.print(luce);
  Serial.print(" || "); 
  Serial.print("Qualita' dell'aria: ");
  Serial.println(airq);
  Serial.println("****************");
  //scrittura su SD
  myFile = SD.open("TEST.txt", FILE_WRITE);
  myFile.print("Lettura n. ");
  myFile.println(i);
  myFile.print("Temperatura: ");
  myFile.print(temp);
  myFile.print(" || ");  
  myFile.print("Umidita': ");
  myFile.print(hum);
  myFile.print(" || ");  
  myFile.print("Luminosita': ");
  myFile.print(luce);
  myFile.print(" || "); 
  myFile.print("Qualita' dell'aria: ");
  myFile.println(airq);
  myFile.println("****************");  
  myFile.close();  

  //contatore
  i=i+1;
  delay(1000);      
}

Conclusioni

Il tutorial termina qui. A questo punto puoi misurare la qualità dell’aria nella tua città o nella tua stanza, monitorando anche alcune informazioni metereologiche. Dando un’occhiata alla documentazione relativa alle librerie citate puoi aggiungere con una certa semplicità altre funzioni al tuo dispositivo.

In caso di dubbi o suggerimenti 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.