Una stazione per il monitoraggio dell’aria ad oggi è uno strumento molto importante e presente in tantissime città italiane.
I livelli di inquinamento dell’aria delle nostre città hanno raggiunto livelli altissimi per diversi motivi ( ad esempio a causa dell’elevato traffico automobilistico o per le emissioni gassose da parte delle industrie etc.).
Utilizzando Arduino si può costruire – spendendo pochi euro – una stazione per il monitoraggio dell’aria in maniera molto facilmente: basta scegliere i giusti componenti ed il gioco è fatto. Si tratta davvero di un progetto pratico, intuitivo e divertente da sviluppare: pensa, l’abbiamo fatto assieme ai miei alunni di 3° media durante un laboratorio!
Nello svolgimento di questo progetto ci concentreremo, per il momento, all’acquisizione e monitoraggio dell’anidride carbonica ( CO2), uno dei gas che sta recando più problemi per quanto riguarda l’inquinamento dell’aria. Magari prossimamente farò degli aggiornamenti per l’acquisizione di altri elementi inquinanti.
L’anidride carbonica (CO2) è un gas composto da 2 atomi di ossigeno e 1 atomo di carbonio e ha un peso specifico più alto dell’aria. L’anidride carbonica è indispensabile per la vita e per la fotosintesi delle piante, ma allo stesso tempo è la maggior responsabile dell’effetto serra.
Adesso bando alle ciance e vediamo come costruire una stazione per il monitoraggio dell’aria con Arduino.
Arduino é, come viene detto nel sito ufficiale: “una piattaforma elettronica open source basata su hardware e software facili da usare”. Le schede elettroniche Arduino sono molto piccole ed economiche, ma estremamente versatili.
Si possono usare per controllare le luci di casa, far funzionare un robot, lanciare un razzo amatoriale, realizzare complessi strumenti scientifici e mille altre cose. Essenzialmente una scheda Arduino è un elaboratore che legge un input e restituisce un output; ognuno di noi può programmarlo usano l’Arduino Programing Language e l’Arduino Software (IDE).
La piattaforma Arduino è stata ideata e sviluppata in data 2003 da alcuni membri dell’Interaction Design Institute di Ivrea ( il nome della piattaforma deriva da quello del bar di Ivrea frequentato dai fondatori del progetto, nome che richiama a sua volta quello di Arduino d’Ivrea, Re d’Italia nel 1002).
Col passare degli anni migliaia di persone in tutto il mondo hanno scelto Arduino per realizzare i propri progetti. Questi ultimi hanno trovato posto nella casa di hobbisti, negli studi di professionisti e in molte scuole, dove Arduino può diventare una grande risorsa didattica.
Sia il software che gli schemi hardware di Arduino sono distribuiti con licenza copyleft, anche se il nome e il logo sono registrati, quindi terzi ne possono usufruire gratuitamente per creare prodotti propri.
Per la costruzione della nostra stazione di monitoraggio dell’aria abbiamo usato i seguenti componenti:
Tutti questi componenti possono essere acquistati su Amazon: per comodità vi inserisco il per ogni prodotto. Io ho ritirato tutti i componenti – avendo una certa urgenza dato che dovevo costruire la stazione per un progetto scolastico – utilizzando Amazon Prime: nell’arco di due giorni ho ricevuto tutto!
Per quanto riguarda il modulo SD reader/writer in questo progetto ho usato un modello diverso da quello presente nel progetto del sismografo, o in quello della stazione meteo: perché? Sia per una questione pratica ( non ne avevo più visto che quello arriva in una confezione da due pezzi) che per per fare un confronto tra i due .
Alla fine non è emersa nessuna differenza significativa, a parte che i moduli usati per questo progetto arrivano in una confezione da 5 pezzi mentre l’altro modello in una da 2 pezzi. Inoltre il modello usato per questo progetto ha più pin, ma i collegamenti da fare sono gli stessi dell’altro modello. Perciò uno vale l’altro!
I collegamenti da seguire per costruire la stazione di monitoraggio sono i segueni, schematizzati nelle seguenti tabelle:
Sensore acquisizione C02/TVOC | Microcontrollore ( scheda Elegoo) |
VCC | 3.3 V |
GND | GND |
WAKE | GND |
SCL | A5 |
SDA | A4 |
Modulo SD writer/reader | Microcontrollore |
VCC | 5V |
CS | 10 |
MOSI | 11 |
CLK | 13 |
MISO | 12 |
Il codice da caricare sulla scheda Elegoo – e che permette il funzionamento della stazione di monitoraggio – è il seguente.
Prima di caricare il codice va installata la libreria “Adafruit_CCS811.h”, che fa funzionare il sensore che acquisisce i valori di CO2.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86 #include "Adafruit_CCS811.h"
#include <SPI.h>
#include <SD.h>
File myFile;
Adafruit_CCS811 ccs;
int CS_PIN = 10; //SD reader/writer PIN
int16_t CO2, TVOC;
unsigned long time;
//Scrivo l'header del file LOG.csv
void setup() {
Serial.begin(9600);
Serial.println("CCS811 test");
if(!ccs.begin()){
Serial.println("Failed to start sensor! Please check your wiring.");
while(1);
}
// Wait for the sensor to be ready
while(!ccs.available());
Serial.print("Initializing SD card...");
if (!SD.begin(10)) {
Serial.println("initialization failed!");
while (1);
}
Serial.println("initialization done.");
//Scrivo l'header del file LOG.csv
File file = SD.open("log.csv", FILE_WRITE);
if (file)
{
String header = "CO2, TVOC, Time"; //These will be the headers for your excel file, CHANGE "" to whatevr headers you would like to use
file.println(header);
file.close();
Serial.println(header);
}
}
void loop() {
char status;
double T,P,p0,a;
if(ccs.available()){
if(!ccs.readData()){
Serial.print("CO2: ");
Serial.print(ccs.geteCO2());
Serial.print("ppm, TVOC: ");
Serial.println(ccs.getTVOC());
}
else{
Serial.println("ERROR!");
while(1);
}
}
delay(500);
int CO2 = ccs.geteCO2();
int TVOC = ccs.getTVOC();
//Time
time = millis();
//Scrivo i parametri nel file LOG.csv
File file = SD.open("log.csv", FILE_WRITE);
String parametri = String(CO2) + "," + String(TVOC) + "," + String(time);
if (parametri)
{
file.println(parametri);
file.close();
//Serial.println(parametri);
}
}
Una volta caricato questo codice nella scheda elegoo possiamo aprire il monitor seriale, così possiamo vedere come la stazione acquisisce in tempo reale i valori di CO2.
Il valori acquisiti vengono registrati in un file csv che può essere aperto con un foglio di calcolo ( Excel di Office, Calc di Libreoffice o Fogli di Google) e quindi rappresentare i dati attrverso un grafico.
L’anidride carbonica (CO2) è un gas composto da 2 atomi di ossigeno e 1 atomo di carbonio e ha un peso specifico più alto dell’aria. L’anidride carbonica è indispensabile per la vita e per la fotosintesi delle piante, ma allo stesso tempo è la maggior responsabile dell’effetto serra.