- Componenti richiesti
- Sensore di CO2 a infrarossi per gravità
- Modulo display OLED da 0,96 pollici
- Schema elettrico
- Codice Arduino per misurare la concentrazione di CO2
- Test dell'interfaccia del sensore di CO2 a infrarossi per gravità
La crescente concentrazione di anidride carbonica nell'aria è diventata un problema serio ora. Secondo il rapporto NOAA, la concentrazione di ozono CO2 ha raggiunto lo 0,0385 percento (385 ppm) ed è la quantità più alta in 2,1 milioni di anni. Ciò significa che in un milione di particelle d'aria ci sono 385 particelle di anidride carbonica. Questo aumento del livello di CO2 ha influito gravemente sull'ambiente e ci ha portato ad affrontare situazioni come il cambiamento climatico e il riscaldamento globale. Esistono molti dispositivi di misurazione della qualità dell'aria installati sulle strade per rilevare il livello di CO2, ma possiamo anche costruire un misuratore di CO2 fai- da- te e installarlo nella nostra zona.
In questo tutorial, interfacciamo il sensore di CO2 a infrarossi a gravità con Arduino per misurare la concentrazione di CO2 in PPM. Gravity Infrared CO2 Sensor è un sensore di CO2 analogico ad alta precisione. Misura il contenuto di CO2 nell'intervallo da 0 a 5000 ppm. Puoi anche controllare i nostri progetti precedenti in cui abbiamo utilizzato il sensore di gas MQ135, il sensore Sharp GP2Y1014AU0F e il sensore Nova PM SDS011 per costruire un monitor della qualità dell'aria.
Componenti richiesti
- Arduino Nano
- Sensore di CO2 a infrarossi per gravità V1.1
- Cavi per ponticelli
- Modulo display OLED SPI da 0,96 '
- Breadboard
Sensore di CO2 a infrarossi per gravità
Il sensore di CO2 a infrarossi a gravità V1.1 è l'ultimo sensore di CO2 a infrarossi analogico ad alta precisione rilasciato da DFRobot. Questo sensore si basa sulla tecnologia a infrarossi non dispersivi (NDIR) e ha una buona selettività e dipendenza dall'ossigeno. Integra la compensazione della temperatura e supporta l'uscita DAC. Il campo di misura effettivo di questo sensore va da 0 a 5000 ppm con una precisione di ± 50 ppm + 3%. Questo sensore di CO2 a infrarossi può essere utilizzato in HVAC, monitoraggio della qualità dell'aria interna, monitoraggio dei processi industriali e della protezione della sicurezza, monitoraggio dei processi di produzione agricola e zootecnica.
Pinout sensore CO2 a infrarossi :
Come accennato in precedenza, il sensore di CO2 a infrarossi viene fornito con un connettore a 3 pin. La figura e la tabella seguenti mostrano le assegnazioni dei pin per il sensore di CO2 a infrarossi:
N. pin |
Nome pin |
Descrizione |
---|---|---|
1 |
Segnale |
Uscita analogica (0,4 ~ 2 V) |
2 |
VCC |
VCC (4,5 ~ 5,5 V) |
3 |
GND |
GND |
Specifiche e caratteristiche del sensore di CO2 a infrarossi :
- Rilevazione di gas: anidride carbonica (CO2)
- Tensione di funzionamento: 4,5 ~ 5,5 V CC
- Tempo di preriscaldamento: 3min
- Tempo di risposta: 120 secondi
- Temperatura di funzionamento: 0 ~ 50 ℃
- Umidità operativa: 0 ~ 95% RH (senza condensa)
- Impermeabile e anticorrosione
- Vita a ciclo elevato
- Anti-interferenza del vapore acqueo
Modulo display OLED da 0,96 pollici
OLED (Organic Light-Emitting Diodes) è una tecnologia autoemittente, costruita inserendo una serie di film sottili organici tra due conduttori. Quando una corrente elettrica viene applicata a queste pellicole, viene prodotta una luce intensa. Gli OLED utilizzano la stessa tecnologia dei televisori, ma hanno meno pixel rispetto alla maggior parte dei nostri televisori.
Per questo progetto, utilizziamo un display OLED SSD1306 da 0,96 pollici monocromatico a 7 pin. Può funzionare su tre diversi protocolli di comunicazione: modalità SPI 3 fili, modalità SPI a quattro fili e modalità I2C. I pin e le sue funzioni sono spiegati nella tabella seguente:
Abbiamo già trattato OLED e le sue tipologie in dettaglio nell'articolo precedente.
Nome pin |
Altri nomi |
Descrizione |
Gnd |
Terra |
Pin di massa del modulo |
Vdd |
Vcc, 5V |
Pin di alimentazione (3-5 V tollerabile) |
SCK |
D0, SCL, CLK |
Funge da perno dell'orologio. Utilizzato sia per I2C che per SPI |
SDA |
D1, MOSI |
Pin dati del modulo. Utilizzato sia per IIC che per SPI |
RES |
RST, RESET |
Resetta il modulo (utile durante SPI) |
DC |
A0 |
Pin di comando dati. Utilizzato per il protocollo SPI |
CS |
Chip Select |
Utile quando più di un modulo viene utilizzato con il protocollo SPI |
Specifiche OLED:
- IC driver OLED: SSD1306
- Risoluzione: 128 x 64
- Angolo visivo:> 160 °
- Tensione di ingresso: 3,3 V ~ 6 V.
- Colore pixel: blu
- Temperatura di lavoro: -30 ° C ~ 70 ° C
Ulteriori informazioni su OLED e il suo interfacciamento con diversi microcontrollori seguendo il link.
Schema elettrico
Di seguito è riportato lo schema del circuito per l'interfacciamento del sensore di CO2 a infrarossi analogico per gravità per Arduino:
Il circuito è molto semplice in quanto stiamo collegando solo il sensore di CO2 a infrarossi di gravità e il modulo display OLED con Arduino Nano. Il sensore di CO2 a infrarossi e il modulo display OLED sono entrambi alimentati con + 5V e GND. Il pin Signal (Analog Out) del sensore di CO2 è collegato al pin A0 di Arduino Nano. Poiché il modulo display OLED utilizza la comunicazione SPI, abbiamo stabilito una comunicazione SPI tra il modulo OLED e Arduino Nano. I collegamenti sono mostrati nella tabella seguente:
S.No |
Pin del modulo OLED |
Pin di Arduino |
1 |
GND |
Terra |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Dopo aver collegato l'hardware secondo lo schema del circuito, dovrebbe assomigliare a quanto segue:
Codice Arduino per misurare la concentrazione di CO2
Il codice completo per questo sensore di CO2 a infrarossi analogico per gravità per il progetto Arduino è fornito alla fine del documento. Qui stiamo spiegando alcune parti importanti del codice.
Il codice utilizza l'Adafruit_GFX , e Adafruit_SSD1306 librerie. Queste librerie possono essere scaricate da Library Manager nell'IDE di Arduino e installate da lì. Per questo, apri l'IDE di Arduino e vai su Schizzo> Includi libreria> Gestisci librerie . Ora cerca Adafruit GFX e installa la libreria Adafruit GFX di Adafruit.
Allo stesso modo, installa le librerie Adafruit SSD1306 di Adafruit. Il sensore di CO2 a infrarossi non richiede alcuna libreria in quanto stiamo leggendo i valori di tensione direttamente dal pin analogico di Arduino.
Dopo aver installato le librerie su Arduino IDE, avvia il codice includendo i file di libreria necessari. Il sensore di polvere non richiede alcuna libreria in quanto la lettura viene presa direttamente dal pin analogico di Arduino.
#includere
Quindi, definire la larghezza e l'altezza dell'OLED. In questo progetto, stiamo utilizzando un display OLED 128 × 64 SPI. È possibile modificare lo SCREEN_WIDTH , e SCREEN_HEIGHT variabili in base al vostro display.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Quindi definire i pin di comunicazione SPI a cui è collegato il display OLED.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Quindi, crea un'istanza di visualizzazione Adafruit con la larghezza e l'altezza definite in precedenza con il protocollo di comunicazione SPI.
Display Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Successivamente, definisci il pin Arduino a cui è collegato il sensore di CO2.
int sensorIn = A0;
Ora all'interno della funzione setup () , inizializza il monitor seriale a una velocità di trasmissione di 9600 per scopi di debug. Inoltre, inizializza il display OLED con la funzione begin () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); analogReference (DEFAULT);
All'interno della funzione loop () , leggi prima i valori del segnale sul pin analogico di Arduino chiamando la funzione analogRead () . Successivamente, convertire questi valori del segnale analogico in valori di tensione.
void loop () {int sensorValue = analogRead (sensorIn); tensione flottante = sensorValue * (5000 / 1024.0);
Successivamente, confronta i valori di tensione. Se la tensione è 0 V, significa che si è verificato un problema con il sensore. Se la tensione è maggiore di 0 V ma minore di 400 V, significa che il sensore è ancora nel processo di preriscaldamento.
if (voltaggio == 0) {Serial.println ("Fault"); } else if (voltaggio <400) {Serial.println ("preriscaldamento"); }
Se la tensione è uguale o superiore a 400 V, convertirla in valori di concentrazione di CO2.
altro {int tensione_diferenza = tensione-400; concentrazione del galleggiante = tensione_differenza * 50,0 / 16,0;
Successivamente, imposta la dimensione e il colore del testo utilizzando setTextSize () e setTextColor () .
display.setTextSize (1); display.setTextColor (WHITE);
Quindi nella riga successiva, definire la posizione in cui inizia il testo utilizzando il metodo setCursor (x, y) . E stampare i valori di CO2 sul display OLED utilizzando la funzione display.println () .
display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (concentrazione);
Infine, chiama il metodo display () per visualizzare il testo sul display OLED.
display.display (); display.clearDisplay ();
Test dell'interfaccia del sensore di CO2 a infrarossi per gravità
Una volta che l'hardware e il codice sono pronti, è il momento di testare il sensore. Per questo, collega Arduino al laptop, seleziona la scheda e la porta e premi il pulsante di caricamento. Quindi apri il tuo monitor seriale e attendi un po 'di tempo (processo di preriscaldamento), quindi vedrai i dati finali.
I valori verranno visualizzati sul display OLED come mostrato di seguito:
Nota: prima di utilizzare il sensore, lasciarlo riscaldare per circa 24 ore per ottenere valori PPM corretti. Quando ho acceso il sensore per la prima volta, la concentrazione di CO2 in uscita era compresa tra 1500 PPM e 1700PPM e dopo un processo di riscaldamento di 24 ore, la concentrazione di CO2 in uscita è diminuita da 450 PPM a 500 PPM che sono i valori PPM corretti. Quindi è necessario calibrare il sensore prima di utilizzarlo per misurare la concentrazione di CO2.
In questo modo è possibile utilizzare un sensore di CO2 a infrarossi per misurare l'accurata concentrazione di CO2 nell'aria. Di seguito sono riportati il codice completo e il video di lavoro. In caso di dubbi, lasciarli nella sezione commenti o utilizzare i nostri forum per assistenza tecnica.