Marco Pucci

personal website

Tutorial Arduino #24 – Air Quality con sensori Grove

Tutorial #24 – Arduino Air Quality con sensori Grove

 

Per vedere tutti i tutorial: www.marcopucci.it/arduino/

 

images (1)
Segui la pagina Tutorial Arduino su Facebook

 

 

Materiale utilizzato – Arduino Uno, Grove Shield, Air quality sensor, led RGB, cavetti elettronici, interruttore, cavo alimentazione per batteria 9V.

 

Questo tutorial è stato realizzato in collaborazione con www.robotics-3d.com.

Se volete acquistare il kit per realizzare il tutorial “Air Qualitycliccate qui.

 

Clicca qui per scaricare tutti gli sketch utilizzati nel tutorial Air Quality.

 

In questo tutorial realizziamo un rilevatore della qualità dell’aria per interni.
Attraverso un sensore in grado di rilevare alcuni gas presenti nell’aria (monossido di carbonio, alcool, acetone, diluente, formaldeide e altri gas leggermente tossici) e un led RGB costruiremo un piccolo apparecchio che indicherà se l’aria è altamente inquinata, leggermente inquinata o pulita.
Questo tutorial è stato realizzato con sensori Grove ovvero dei moduli che si incastrano sopra Arduino senza alcun bisogno di breadboard, saldature o cavi vari.

 

 Air_Quality_Sensor_Connector

Grazie alla Shield Grove possiamo inserire facilmente una serie di sensori (per vedere la lista intera collegatevi al sito www.robotics-3d.com/ e all’interno del box “cerca” inserite la parola GROVE).
Questo tipo di sensori funzionano semplicemente inserendo lo slot bianco in quello della shield.
Per ogni sensore inoltre esiste una pagina web dove è possibile scaricare lo sketch di Arduino pronto per essere caricato.
Più facile di così!
Ho scelto di realizzare una serie di tutorial con questi sensori perchè sono molto funzionali dal punto di vista della semplicità e soprattutto perchè non essendoci saldature da compiere collegamenti con fili vaganti su breadboard i prototipi realizzati si sono rilevati ottimi dal punto di vista della resistenza, i fili non si scollegano e rimane tutto ancorato alla scheda Arduino.

 

Grove_shield-arduino

 

La Shield Grove è composta da 4 ingressi analogici e 8 pin digitali. Inoltre è comunque possibile utilizzare i “vecchi” pin di Arduino utilizzando i connettori blu ai lati della Shield.
Per maggiori informazioni sulla Shield e sui sensori Grove vi invito a leggere il documento ufficiale presente in questo link.

 

Sistema per la rivelazione della qualità dell’aria per ambienti interni.
Costruiamo il nostro box che conterrà Arduino con la Shield Grove, una batteria da 9V, un piccolo interruttore, il sensore dell’aria e il led RGB che utilizzeremo come indicatore della qualità dell’aria.

 

arduino_sensor_air

In una piccola scatola di cartone disegnate e tagliate una sezione semi circolare sulla parte frontale.

 

 arduino_grove_2

 

Qui sopra tutti i componenti pronti per essere inseriti all’interno della scatola.
Nella parte superiore del coperchio tagliamo un piccolo pezzo per inserire il sensore dell’aria. 
Nella parte inferiore sinistra facciamo un piccolo buco per nserire un’interruttore, in quella destra un altro buco per inserire il cavo di programmazione USB.

 

arduino-tutorial_sensor_air_grove

 

Incolliamo un pezzo di plexiglass semitrasparente che coprirà il led RGB posto all’interno della scatola.

 

arduino_led-rgb

 

Sopra la disposizione dei componenti all’interno della scatola.

 

arduino_tutorial-grove

 

Il box finito.

 

Circuito elettrico
Gli unici collegamenti che dobbiamo effettuare riguardano la parte dell’alimentazione con un’interruttore e il led RGB. Seguite lo schema qui sotto. Il sensore della qualità dell’aria va  semplicemente inserito nei pin A0 e il led RGB va inserito nei pin 11 (red), pin 10 (green), pin 9 (blue) e il piedino più lungo a GND.

 

schema_grove

 (click sull’immagine per ingrandire)

 

 

Programmazione
La programmazione di Arduino dei sensori Grove è molto facile anche perchè ogni sensore ha la sua pagina Wiki dove è spiegato il funzionamento del sensore e il codice da utilizzare.
In questo caso colleghiamoci alla pagina http://wiki.seeedstudio.com/wiki/Grove_-_Air_Quality_Sensor_v1.3

Da quest pagina possiamo scaricare la libreria del sensore (clicca qui) che deve essere copiata all’interno delle librerie di Arduino (scompattate la libreria e copiatela dentro la cartella libraries di  Arduino presente sul vostro computer).

Apriamo Arduino
Click su File/Esempi/AirQuality_Sensor/AirQuality_Sensor (se questo file non è presente avete installato male la libreria. Vi invito a leggere il tutorial 7 dove è spiegata la procedura per installare la libreria).

 

arduino-libraries

 

 

Prima di Uplodare il codice colleghiamo il sensore e attendiamo due minuti. Appena terminato il tempo di attesa Uplodiamo e apriamo il Serial Monitor.

 

 arduino-serial-monitor

 

Qui sopra il risultato che viene visualizzato all’interno del Serial Monitor.
Come potete vedere dal codice appena caricato su Arduino è molto semplice, viene fatto solamente un controllo sulla variabile current_quality. Tutto il lavoro di controllo della qualità dell’aria  avviene all’interno della libreria AirQuality.cpp. In questo file diversi controlli IF analizzano la presenza dei diversa gas e inviano a Arduino tre valori: High pollution (alto inquinamento), Low pollution (basso) e Air fresh. Con questi tre valori modifichiamo lo stato del led RGB per indicare sulla scatola se c’è inquinamento alto, basso o aria pulita.

 

 

Led RGB
Colleghiamo il led RGB ai pin 11, 10, 9 e GND come nello schema precedente.
Il led RGB funziona assegnado tre valori ai pin red, green e blue.

 

int led_red=11;
int led_green=10;
int led_blue=9;
void setup() {
pinMode(led_red,OUTPUT);
pinMode(led_green,OUTPUT);
pinMode(led_blue,OUTPUT);
}
void loop() {
analogWrite(led_red,255);
analogWrite(led_green,0);
analogWrite(led_blue,0);
}

 

Modificando i tre valori di led_red, led_green e led_blue cambiamo il colore del led.

LED ROSSO
analogWrite(led_red,255);
analogWrite(led_green,0);
analogWrite(led_blue,0);

 

LED BLU
analogWrite(led_red,0);
analogWrite(led_green,0);
analogWrite(led_blue,255);

 

LED VERDE
analogWrite(led_red,0);
analogWrite(led_green,255);
analogWrite(led_blue,0);

 

Modifichiamo lo sketch AirQuality.
Modifichiamo lo sketch AirQuality inserendo i comandi per gestire il led.
Quando l’aria sarà inquinata il led diventerà ROSSO, quando l’aria sarà meno inquinata BLU e quando sarà pulita diventerà VERDE.

 

Provate a unire i due codici, AirQuality_sensor e quello della pagina a fianco.
Se non riuscite il codice completo è presente nella cartella che potete scaricare all’inizio del tutorial, _2_AirQuality_ledRGB.ino

 

 

 

#include”AirQuality.h”
#include”Arduino.h”
AirQuality airqualitysensor;
int current_quality =-1;
int led_red=11;
int led_green=10;
int led_blue=9;

// Dichiaro i tre pin per gestire il led

void setup()
{
pinMode(led_red,OUTPUT);
pinMode(led_green,OUTPUT);
pinMode(led_blue,OUTPUT);
//I tre pin sono in uscita
Serial.begin(9600);
airqualitysensor.init(14);
}
void loop()
{
current_quality=airqualitysensor.slope();
if (current_quality >= 0)// if a valid data returned.
{
if (current_quality==0){
Serial.println(“High pollution! Force signal active”);
analogWrite(led_red,255);
analogWrite(led_green,0);
analogWrite(led_blue,0);
//Se la qualità dell’aria è inquinata allora accendo il led RGB di ROSSO.

}
else if (current_quality==1){
Serial.println(“High pollution!”);
analogWrite(led_red,255);
analogWrite(led_green,0);
analogWrite(led_blue,0);

}
else if (current_quality==2){
Serial.println(“Low pollution!”);
analogWrite(led_red,0);
analogWrite(led_green,0);
analogWrite(led_blue,255);
}
else if (current_quality ==3){
Serial.println(“Fresh air”);
analogWrite(led_red,0);
analogWrite(led_green,255);
analogWrite(led_blue,0);
}
}
ISR(TIMER1_OVF_vect)

 

 

 

 

Licenza Creative Commons

I tutorial sono liberamente scaricabili e condivisibili sotto l’etichetta Creative Commons (non è possibile commercializzarli e modificarli)

 

 

icona_pdf Scarica il Pdf del tutorial “Air Quality”

 

 

 

 

   
   
Ti è piaciuto il tutorial? Se ti va offrimi un caffè… [paypal-donation]  

 

 

 

 

 

 

 

 

 

 

 

 

Succ Articolo

Precedente Articolo

© 2024 Marco Pucci

Tema di Anders Norén