Come funziona l’orologio al quarzo?
2 Gennaio 2022Dieci trucchi per aiutare la Terra
12 Luglio 2022I 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.).
L’agenzia europea per l’ambiente ha lanciato l’allarme che in Italia si verificano oltre 50000 decessi legati a patologie dovute all’inalazione delle polveri sottili.
Costruire una stazione per monitorare l’inquinamento dell’aria, dovuto alla presenza delle polveri sottili, è molto facile: scegliamo i giusti componenti ed il gioco è fatto. Si tratta davvero di un progetto pratico, intuitivo e divertente da sviluppare con una spesa davvero minima
La nostra stazione sarà in grado di registrare le polveri sottili presenti nell’aria, insieme a temperatura e umidità, e comunicare i valori acquisiti in tempo reale – ad intervalli di un’ora – su internet. Così possiamo monitorare la qualità dell’aria ovunque siamo e quando vogliamo. Figo vero?
Inquinamento dell’aria: le polveri sottili
Le polveri sottili sono prodotte dalla combustione dei derivati del petrolio e dall’usura di parti meccaniche (pasticche dei freni e pneumatici).
Le polveri sottili sono classificate con la sigla PM. Ci sono le PM10, le PM5 e le PM2.5. La sigla PM significa polveri micrometriche, quindi le PM10 sono le polveri con diametro pari a 10 micron, le PM2.5 pari a 2.5 micron e via dicendo.
Studi recenti hanno correlato l’esposizione alle polveri sottili alla comparsa di malattie neurodegenerative come Parkinson ed Alzaimer.
Inquinamento dell’aria: i componenti della stazione di monitoraggio
Per la costruzione della nostra stazione di monitoraggio dell’aria abbiamo usato i seguenti componenti:
- Scheda NodeMCU ESP8266 ESP-12F;
- Cavo USB-A – MicroUSB-B;
- Sensore PM SDS011;
- Sensore DHT22;
- Cavetti femmina-femmina;
- Adattore usb presa elettrica;
- Prolunga;
Gli ultimi due componenti dell’elenco servono per collegare la stazione alla presa elettrica e, grazie alla prolunga, posizionarla sul balcone o fuori dalla finestra.
Tutti questi componenti possono essere acquistati su Amazon: per comodità vi inserisco il per ogni prodotto. Io ho ritirato tutti i componenti utilizzando Amazon Prime: nell’arco di due giorni ho ricevuto tutto!
IntraGeo partecipa al programma di affiliazione Amazon, quindi se compri i componenti attraverso i link che ti ho condiviso, il sito riceve una piccola percentuale monetaria. La percentuale viene data da Amazon, perciò tu non paghi niente.
Quindi, se acquisti da questi link contribuirai alla crescita del sito: ti ringrazio veramente di cuore!
Stazione monitoraggio dell’inquinamento dell’aria: i collegamenti
Per collegare i due sensori alla scheda NodeMCU segui lo schema rappresentato in questa figura.

Thingspeak: configurazione del canale
Thingspeak (lotrovi cliccando qui) è un servizio on-line, che permette anche la visualizzazione live di dati provenienti da dispositivi IoT (come nel nostro caso).
Usiamo quindi questo servizio per visualizzare real-time i dati acquisiti dalla nostra stazione.
Una volta iscritto al sito devi creare un nuovo canale. Clicca quindi su “Channels” e quindi su “My Channels“.

Clicca sul tasto verde New Channel per creare il tuo canale.
A questo punto si apre una finestra dove dovrai Impostare il nome del canale, in Field 1 il campo della temperatura, in Field 2 il campo dell’Umidità, in Field 3 il campo delle PM2.5 ed infine in Field 4 il campo delle PM10.
In fondo alla pagina trovi il tasto per salvare il canale.

Ecco, sei arrivato quasi alla fine. Entra nella scheda API Keys e prendi nota dei dati indicati dalle frecce rosse. Ti serviranno nel codice che va caricato nella scheda.

Il codice per il funzionamento della stazione di monitoraggio
Una volta che abbiamo collegato i due sensori alla scheda e aperto il canale su Thingspeak, è arrivato il momento di passare al software da caricare nella nostra stazione di monitoraggio dell’inquinamento.
Il primo passo da fare è scaricare l’IDE di Arduino cliccando su questo link (https://www.arduino.cc/en/software). Scarica la versione dell’IDE in funzione del tuo sistema operativo.
Scaricato ed installato l’IDE passiamo al passaggio successivo. Avviamo il software in modo da poter aprire il codice (scaricabile da questo link) che fa funzionare la nostra stazione.
Aperto il codice facciamo alcuni preparativi, seguendo questa scaletta:
- installazione dell’Add-on della scheda ESP8266 nell’IDE di Arduino:
- dalla schermata principale andare su File -> Impostazioni e inserire la stringa “http://arduino.esp8266.com/stable/package_esp8266com_index.json” nel campo “URL aggiuntivo per il Gestore Schede”. Confermare con il pulsante “OK”;
- sempre all’interno dell’IDE di Arduino, andare su Strumenti -> Scheda -> Gestore schede, cercare la stringa ESP8266 e procedere con l’installazione della scheda ESP8266 by ESP8266 Community;
- in Strumenti -> Scheda selezionare la scheda Node MCU 1.0 (ESP-12E Module);
- installazione della libreria per il sensore DHT22:
- in Strumenti -> Gestione librerie cercare la stringa DHT22 e procedere con l’installazione della libreria DHT sensor library by Adafruit;
- in Strumenti -> Gestione librerie cercare la stringa Adafruit Unified Sensor e procedere con l’installazione della libreria Adafruit Unified Sensor by Adafruit;
- installazione della libreria per la gestione del sensore SDS011:
- in Strumenti -> Gestione librerie cercare la stringa SDS011 e procedere con l’installazione della libreria SDS011 sensor library by R. Zschiegner;
- installazione della libreria per la gestione della comunicazione con il server ThingSpeak:
- in Strumenti -> Gestione librerie cercare la stringa ThingSpeak e procedere con l’installazione della libreria ThingSpeak by Mathworks;

Bene, finiti questi passaggi mancano gli ultimi dettagli.
Nella riga define SECRET_CH_ID 0000000 devi sostituire 0000000 con l’ID del canale; nella riga di codice #define SECRET_WRITE_APIKEY “XYZ” sostituire XYZ con la API Key del tuo canale Thingspeak, nella linea #define SECRET_SSID “MySSID” sostituisci MySSID con il SSID della rete WiFi ed infine nella riga #define SECRET_PASS “KQDUXT3E2X” sostituisci MyPassword con la password del tua rete WiFi.
Adesso il gioco è fatto. Carica il codice sulla scheda e la stazione è pronta a rilevare i valori di inquinamento. Puoi controllare le acquisizioni sia sul monitor seriale che sul canale Thingspeak.

I dati acquisiti e visibili su Thingspeak sono anche scaricabili in diversi formati, tra i quali il CSV. Una volta scaricati possono essere analizzati statisticamente e resi presentabili sotto forma di grafico.
Vi faccio l’esempio di uno script Python che ho scritto per creare il grafico d’insieme dell’andamento di temperatura, umidità, PM2.5 e PM10.
#importo le librerie necessarie per la lettura e l'analisi dei file CSV
import pandas as pd
import matplotlib.pyplot as plt
#creo i dataframes dai file CSV
df1=pd.read_csv('temperatura.csv')
df2=pd.read_csv('umidità.csv')
df3=pd.read_csv('pm2-5.csv')
df4=pd.read_csv('pm10.csv')
#creo un dataframe unico
data=pd.merge(left=df1, right=df2,on='created_at')
data_1=pd.merge(left=data, right=df3,on='created_at')
dataframe_completo=pd.merge(left=data_1, right=df4,on='created_at')
#elimino la colonna entry_id
del dataframe_completo['entry_id']
#creo il grafico
dataframe_completo.plot(x='created_at',figsize=(20, 16), fontsize=10)
#creo una funzione per calcolare i valori medi dei dati registrati
def valori_medi():
T_med=dataframe_completo["Temperatura"].mean()
U_med=dataframe_completo["Umidità"].mean()
PM25_med=dataframe_completo["PM2.5"].mean()
PM10_med=dataframe_completo["PM10"].mean()
print('T_med='+str(round(T_med)),'U_med='+str(round(U_med)),'PM2.5_med='+str(round(PM25_med)), 'PM10_med='+str(round(PM10_med)))
#richiamo la funziona valori_medi
valori_medi()
#mostro il grafico delle registrazioni
plt.show()
Ed ecco il grafico dei valori di inquinamento registrati dalla nostra stazione di monitoraggio.

I valori medi ottenuti sono:
- Temperatura media = 17;
- Umidità media = 73%;
- PM2.5 = 12;
- PM19 = 17;
Prima di salutarti voglio consigliarti un testo sull’analisi di dati con Python, che può esserti d’aiuto anche nelle tue analisi dei tuoi dati ricavati in campo geologico.

