Monitoraggio ambientale: Monitoraggio CO2 con Arduino e MG-811

Stazione Ambientale Monitoraggio CO2 Fondo Bianco 
In questo articolo spiegheremo come costruire un misuratore di Anidride Carbonica Home Made utilizzando Arduino ed un sensore della Sandbox Electronics.

Livello di difficoltà: Medio
Tempo richiesto: 3 ore
Materiale necessario:

Introduzione

E’ ampiamente documentato come una concentrazione eccessivamente elevata di CO2 sia dannosa per l’essere umano, ne parla Wikipedia e ne parlano altri numerosi siti. Solo per fare un esempio voglio indicarne uno.
Il seguente è un misuratore di CO2 Home Made. Permetterà di monitorare il livello di Anidride Carbonica in un ambiente chiuso. Il range di sensibilità varierà dai 400 ppm ai 4000ppm. Ovvero il giusto per la maggior parte degli usi legati agli ambienti chiusi. Grazie a questo misuratore sarà possibile tenere sotto controllo i livelli di CO2 presenti in una stanza. Questo sarà utile non solo a scopo di studio, ma permetterà anche di accorgersi se è necessario areare la stanza, o se esiste la possibillità che insorgano determinati problemi legati alla concentrazione di CO2.
Esiste anche un altro aspetto abbastanza comune legato al monitoraggio del CO2: le serre. Esistono determinate serre utilizzate per determinate piante che necessitano un costante controllo del CO2.

Alcune informazioni utili per la calibrazione del sensore (spiegherò in seguito come fare):
L’aria “pulita”, mediamente contiene circa 400 ppm di CO2. Potete verificare questa informazione tramite questo sito. Inoltre è utile sapere che un essere umano che espira all’interno di un piccolo sacchetto chiuso emette circa 40000ppm di CO2.

Il prototipo qui illustrato permetterà di monitorare i livelli di CO2 mostrandoli su un display LCD e salvandoli su una scheda MicroSD. E’ possibile anche inviare i dati a EmonCMS. Questo permette sia la creazione di opportuni grafici, sia l’utilizzo di tutte le funzionalità disponibili su EmonCMS, sia di avere i dati su una comoda MicroSD, di modo da poterli rielaborare più tardi, per esempio con Excel. La memorizzazione su MicroSD risulta particolarmente utile quando non è possibile avere un ingresso Lan a “portata di mano”.

Inoltre contiene anche una fotoresistenza, utile nei casi in cui esso venga usato per il monitoraggio del CO2 all’interno di una serra.

Per utilizzare lo schema ed il codice qui elencato è necessario ricordarsi alcune cose:
La prima volta che utilizzerete il sensore di CO2 di Sandbox Electronics è consigliabile lasciarlo alimentato per 48h. Dopo le prime 48h, prima di raggiungere il “funzionamento ideale”, sarà necessario aspettare circa 2 ore dopo averlo alimentato. Possiamo dire che il tempo medio che impiega a “riscaldarsi” è di circa 2 ore (Non è una sentenza del tutto corretta, ma per la maggior parte degli usi possiamo prenderla per buona).

Il programma contiene due variabili con valori da campionare. Questo significa che per utilizzare il codice finale sarà necessario campionare i due valori tramite il codice di campionamento sempre presente in questa pagina.

Per scrivere questo codice ho guardato del codice già esistente. Nello specifico mi riferisco a questo e a questo. Quindi non posso che ringraziare SandBox Electronics e Veetech.

Foto del prototipo

Stazione Ambientale Monitoraggio CO2 Fondo Bianco 1
Stazione Ambientale Monitoraggio CO2 Fondo Bianco

Schema del circuito

Schema Circuito Prototipo Misurazione CO2
NB: Il bool del sensore di CO2 non viene utilizzato in questo prototipo.

Spiegazione programma di campionamento

In altre parole si tratta di un voltimetro digitale. Ci servirà per campionare i 400ppm e i 40000ppm. Per campionare il valore dei 400 ppm è necessario posizionare il sensore in una stanza areata da diverse ore, meglio ancora sul davanzale di una finestra, in un area protetta dal vento forte e dal sole. Per campionare il valore dei 40000 ppm è necessario inserire il sensore all’interno di un sacchetto di plastica, svuotarlo il meglio possibile dall’aria al suo interno, dopodiché è necessario espirare all’interno del sacchetto e chiuderlo nella maniera più ermetica possibile. E’ importante che il sacchetto non sia bucato, e che non abbia perdite d’aria. Entrambi i campionamenti sono da eseguire almeno 2 ore dopo l’accensione del sensore, e sono entrambi da eseguire nella “stessa sessione”, ovvero senza togliere l’alimentazione al sensore tra un campionamento e l’altro.

Consigliamo di alimentare Arduino con un alimentatore esterno da 9-12V con minimo 1A, non con il PC. Alimentare Arduino con la porta USB del PC durante questi campionamenti può portare ad un oscillazione indesiderata dei valori. Per controllare se state alimentando Arduino nella maniera corretta potete collegare il cavetto che utilizzate per la misurazione alla 3,3V del vostro Arduino: se il valore misurato oscilla spesso ed in maniera indesiderata potrebbe significare che la fonte di alimentazione di Arduino non è quella corretta.

Per concludere a riguardo del campionamento: il precedente è un metodo molto utile quando se si desidera utilizzare questo prototipo per applicazioni non critiche. E’ abbastanza accurato per permettere un semplice monitoraggio casalingo home made, oppure per il monitoraggio di una piccola serra, ma non è assolutamente affidabile in caso di utilizzi critici, aziendali, oppure dove è richiesta una grande precisione. In quei casi diventa necessario effettuare il campionamento con l’aiuto di un sensore professionale già calibrato, e di un opportune strumentazioni per generare il numero di ppm di CO2 desiderati.

Codice sorgente programma di campionamento

[crayon-5c35d4c9d73a3419727844/]

Codice Sorgente programma principale-Senza EmonCMS. Solo memorizzazione su MicroSD e Display LCD

[crayon-5c35d4c9d73b2880498560/]

Codice Sorgente programma principale-Con EmonCMS. Richiesto Setup opportuno su quest’ultimo

[crayon-5c35d4c9d73b7608252902/]

Esempio di dati rielaborati da EmonCMS

Esempio Dati EmonCMS
NB: I precedenti sono dati con scopo esemplificativo. Sono dati raccolti con lo scopo di mostrare una schermata riguardante la raccolta dati su EmonCMS. Non rappresentano i dati tipicamente raccolti tramite un utilizzo casalingo del prototipo discusso in questo articolo.

Time Drift

Con Time Drift ci riferiamo alla variazione delle letture nel tempo. Una volta riscaldato a sufficienza e calibrato correttamente il sensore, nell’aria pulita, leggerà circa 400ppm.
Dopo una settimana di utilizzo continuo il sensore leggerà circa 100ppm in meno. Ovvero, se prima nell’aria pulita leggeva 400ppm, dopo una settimana di utilizzo continuo leggerà 300ppm circa. Questo per la maggior parte della applicazioni legate a questo sensore NON rappresenta un problema.
Non sappiamo se la variazione di lettura nel corso del tempo è costante ed identica per tutti i sensori MG-811. E’ possibile che ogni sensore vari in modo differente nel tempo.
Tuttavia è possibile correggere gran parte dei problemi relativi al drift tramite un algoritmo software. Algoritmo che non è contenuto nel codice che ho condiviso prima. Algoritmo che consigliamo di scrivere autonomamente, dopo aver compreso fino in fondo quale è il Time Drift del proprio sensore.

Disclamer:

L’utilizzatore finale si assume ogni tipo di responsabilità riguardante l’hardware ed il suo corretto assemblaggio: è di fatto suo compito controllare controllarne il corretto funzionamento ed assemblaggio. Non garantisco che il codice sia privo di errori. Ogni responsabilità legata ad esso ricade sull’utilizzatore finale: è di fatto suo compito controllare il corretto funzionamento del codice oltre che della strumentazione.

Banner Videocorso Gratuito Lavoro con i Droni