Misuratore CO2

PROGETTO 032 – Misuratore di CO2 e TVOC

Siccome vivo in una città dove l’inquinamento è l’aggettivo che più la identifica, a questo progetto ci tengo!

Il 32° progetto della rubrica 100 Progetti con Arduino Uno è un misuratore di CO2 e composti organici.

Grazie alla collaborazione con l’azienda Keyestudio sono riuscito a mettere le mani su questo fantastico modulo:

Il CCS811 è un sensore di qualità dell’aria capace di rilevare alcuni composti organici volatili compresa l’anidride carbonica.

Come molti già ben sanno la l’anidride carbonica è un gas molto importante per il nostro pianeta. Il suo costante aumento è una delle cause del surriscaldamento globale.

Per maggiori dettagli in merito alla produzione di CO2, l’effetto serra e altre info vi rimando al sito di divulgazione scientifica Geopop, li troverete articoli che spiegano in completo e semplice l’argomento.

Il sistema realizzato è un misuratore con allarme che tiene sotto controllo i valori di CO2 e avverte in modo tempestivo se una certa soglia è stata superata. Quando entra in stato d’allarme un cicalino suona e il display inizia a lampeggiare, un relè viene attivato in modo d’azionare un ventola per il ricircolo dell’aria.

Sul display vengono costantemente aggiornati i valori letti dal sensore espressi in ppm (parti per milione), per quanto riguarda la CO2, e ppb (parti per miliardo) per i resti composti organici.

Lista dei componenti utilizzati e altro

Schema di collegamento

Il codice

Per il controllo del sensore viene utilizzata una libreria proprietaria che troverete nel file zip in basso e che dovrete copiare nella vostra cartella libraries insieme alle altre librerie.

Il controllo dell’attivazione dello stato d’allarme e dello spegnimento del relè, viene gestito da due variabili:

int Soglia_ON = 800; //Soglia di attivazione dell'allarme inquinamento
int Soglia_OFF = 500; //Soglia di disattivazione ventola aspirazione

Spetta a voi decidere la soglia d’attivazione variando i parametri su una scala non inferiore al valore impostato e non superiore a 2000ppm.

Scarica lo sketch da questo link:
Progetto_032

Tutti i file compressi disponibili per il download, sono stati realizzati utilizzando il software IZArc. Il software è totalmente gratuito e scaricabile da qui. Per una corretta estrazione dei file, Vi consiglio di scaricarlo.

Nella sezione 100 Progetti con Arduino Uno puoi trovare articoli simili con file sorgenti liberamente scaricabili.

Per qualsiasi info, per un aiuto nella realizzazione dei vostri progetti, o più semplicemente per segnalarci degli errori o link corrotti, utilizzate la pagina Contattaci.

Grazie per aver letto questo articolo, se puoi leggine degli altri, commenta per sostenere il blog e iscriviti al mio canale Youtube. Seguimi anche su Instagram e Facebook dove puoi anche pubblicare i tuoi progetti sul gruppo Arduino For Peoplem.

You may also like...

18 Responses

  1. Dario ha detto:

    Buonasera, volevo creare questo progetto perchè mi interessava tanto, purtroppo ho riscontrato un problema, il display non riproduce le scritte eppure ho collegato i cavi in modo corretto come nel video, mi sapreste dire quale sia il problema?

  2. Emanuele ha detto:

    Ciao vorrei portare questo progetto al mio esame
    Però riscontro problemi con i collegamenti dato che sullo schema thinkercad sono fatti in un modo e dal vivo cioè su youtube in un altra,potresti magari anche in privato se puoi illustrarmi meglio tutti i possibili collegamenti?

    • peoplem ha detto:

      Guarda non è difficile. Segui lo schema illustrativo dell’articolo, non guardare il video. Basta che ti ricordi che per i moduli I2C i pin SDA vanno collegati al pin SDA ed SCL su SCL della tua scehda Arduino, nel caso utilizzassi la Uno puoi collegare SDA al pin A4, mentre SCL a A5.
      Inutile spiegarti gli altri collegamenti. Siccome sia il display che il sensore sono moduli I2C si possono collegare sugli stessi pin (in parallelo), ricorda d’indentificare il loro indirizzo e modificarlo nel codice.

      • Emanuele ha detto:

        Grazie mille,io non ho preso il keyestudio di sensore perché non era disponibile ,però è sempre un ccs811,mica è un problema?

        • peoplem ha detto:

          No m,a forse potrest iavere un indirizzo I2C diverso da quello inserito nel codice. Trovalo con la libreira I2C detect e sostituiscilo.

  3. Emanuele ha detto:

    Devo sostituire quindi solo il numero dopo 0×

  4. emanuele ha detto:

    senti ho seguito tutte le istruzioni per filo e per segno dallo schema,ho modificato l’i2c del display ma nonostante ciò sul display non compare nulla,neanche una scritta,sapresti cosa fare?

  5. Emanuele ha detto:

    Ciao alla fine sono riuscito a farlo,vi era un problema stupido che ho risolto in un po di ore,bel progetto ,complimenti pensavo fosse più difficile

  6. silvio ha detto:

    Ciao, ho realizzato il progetto per automatizzare delle VMC che hanno solo comando manuale a due velocità. Ho usato il sensore CCS811 su un modulo Adafruit marchiato “air quality” acquistato su Amazon, non avendo trovato il Keyestudio. Cambiati gli indirizzi di sensore e display (4 x 20, avevo quello…) e libreria display il progetto ha funzionato. Alitandoci sopra aumentano sia la co2 che gli altri composti, tornando poi a 400. Ho notato però che lasciando il tutto acceso, dopo un po’ i parametri salgono a valori molto elevati e non tornano bassi. Non è un problema di temperatura, poiché resettando l’arduino torna tutto normale, salvo poi riproporsi dopo un po’ di tempo. Ho collegato a gnd il pin WAKE del sensore ed il difetto pare sparito. Possibile? Dopo vorrei miniaturizzare il tutto con un ATtiny85. Grazie per i progetti che condividi!

    • peoplem ha detto:

      Grazie a te, per averlo replicato. Sinceramente non mi è mai capitato con il mio modello. Comunque il pin Wake va collegato a gnd come da datasheet.

  7. Eliseo ha detto:

    Ciao, quando faccio la verifica del programma dice:
    compilation error: CSS811: no such file or directory.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *