- Componenti richiesti
- Modulo display OLED da 0,96 pollici
- Preparazione del sensore MQ-135
- Schema del circuito per interfacciare MQ135 con Arduino
- Calcolando la R
- Codice per misurare la CO2 utilizzando il sensore Arduino MQ135
- Test dell'interfaccia del sensore MQ-135
Il livello di CO2 atmosferico della terra aumenta di giorno in giorno. L'anidride carbonica atmosferica media globale nel 2019 era di 409,8 parti per milione e nell'ottobre 2020 è di 411,29. L'anidride carbonica è un gas serra fondamentale e responsabile di circa tre quarti delle emissioni. Quindi anche il monitoraggio del livello di CO2 ha iniziato ad acquisire importanza.
Nel nostro progetto precedente, abbiamo utilizzato il sensore di CO2 a infrarossi a gravità per misurare la concentrazione di CO2 nell'aria. In questo progetto, utilizzeremo un sensore MQ-135 con Arduino per misurare la concentrazione di CO2. I valori di concentrazione di CO2 misurati verranno visualizzati sul modulo OLED e per ultimo confronteremo anche le letture del sensore Arduino MQ-135 con le letture del sensore CO2 a infrarossi. Oltre alla CO2, abbiamo anche misurato la concentrazione di gas GPL, Fumo e Ammoniaca utilizzando Arduino.
Componenti richiesti
- Arduino Nano
- Sensore MQ-135
- Cavi per ponticelli
- Modulo display OLED SPI da 0,96 '
- Breadboard
- Resistenza da 22KΩ
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. Puoi anche saperne di più sulle basi del display OLED e dei suoi tipi leggendo l'articolo collegato. I pin e le sue funzioni sono spiegati nella tabella seguente:
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
Preparazione del sensore MQ-135
Il sensore di gas MQ-135 è un sensore di qualità dell'aria per il rilevamento di un'ampia gamma di gas, inclusi NH3, NOx, alcol, benzene, fumo e CO2. Il sensore MQ-135 può essere acquistato come modulo o solo come sensore da solo. In questo progetto, stiamo utilizzando un modulo sensore MQ-135 per misurare la concentrazione di CO2 in PPM. Di seguito è riportato lo schema del circuito della scheda MQ-135:
Il resistore di carico RL svolge un ruolo molto importante nel far funzionare il sensore. Questo resistore cambia il suo valore di resistenza in base alla concentrazione di gas. Secondo la scheda tecnica MQ-135, il valore della resistenza di carico può variare da 10 KΩ a 47 KΩ. La scheda tecnica consiglia di calibrare il rilevatore per una concentrazione di 100 ppm NH3 o 50 ppm di alcol nell'aria e utilizzare un valore di resistenza al carico (RL) di circa 20 KΩ. Ma se monitori le tracce del tuo PCB per trovare il valore del tuo RL nella scheda, puoi vedere un resistore di carico da 1KΩ (102).
Quindi, per misurare i valori di concentrazione di CO2 appropriati, è necessario sostituire il resistore da 1KΩ con un resistore da 22KΩ.
Schema del circuito per interfacciare MQ135 con Arduino
Di seguito sono riportati gli schemi completi per collegare il sensore di gas MQ-135 con Arduino:
Il circuito è molto semplice in quanto stiamo collegando solo il sensore MQ-135 e il modulo display OLED con Arduino Nano. Il sensore di gas MQ-135 e il modulo display OLED sono entrambi alimentati con + 5V e GND. Il pin di uscita analogica del sensore MQ-135 è 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, la configurazione del sensore Arduino MQ135 dovrebbe essere simile a quella seguente:
Calcolando la R
Ora che conosciamo il valore di RL, procediamo su come calcolare i valori di R o in aria pulita. Qui useremo MQ135.h per misurare la concentrazione di CO2 nell'aria. Quindi scaricare prima la libreria MQ-135, quindi preriscaldare il sensore per 24 ore prima di leggere i valori R o. Dopo il processo di preriscaldamento, utilizzare il codice seguente per leggere i valori R o:
#include "MQ135.h" void setup () {Serial.begin (9600); } void loop () {MQ135 gasSensor = MQ135 (A0); // Collega il sensore al pin A0 float rzero = gasSensor.getRZero (); Serial.println (rzero); ritardo (1000); }
Ora, una volta ottenuti i valori R o, vai su Documenti> Arduino> librerie> cartella MQ135-master e apri il file MQ135.h e modifica i valori RLOAD e RZERO.
/// La resistenza di carico sulla scheda #define RLOAD 22.0 /// Resistenza di calibrazione a livello di CO2 atmosferico #define RZERO 5804.99
Ora scorri verso il basso e sostituisci il valore ATMOCO2 con l'attuale CO2 atmosferica che è 411,29
/// Livello di CO2 atmosferico per scopi di calibrazione #define ATMOCO2 397.13
Codice per misurare la CO2 utilizzando il sensore Arduino MQ135
Il codice completo per l'interfacciamento del sensore MQ-135 con Arduino è riportato alla fine del documento. Qui stiamo spiegando alcune parti importanti del codice MQ135 Arduino.
Il codice utilizza l'Adafruit_GFX , e Adafruit_SSD1306 , e MQ135.h 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 a Sketch <Include Library <Manage Libraries . Ora cerca Adafruit GFX e installa la libreria Adafruit GFX di Adafruit.
Allo stesso modo, installa le librerie Adafruit SSD1306 di Adafruit. La libreria MQ135 può essere scaricata da qui.
Dopo aver installato le librerie sull'IDE di Arduino, avvia il codice includendo i file delle librerie necessari.
#include "MQ135.h" #include
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, definire il pin Arduino a cui è collegato il sensore MQ-135.
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); display.clearDisplay ();
All'interno della funzione loop () , leggi prima i valori del segnale sul pin analogico di Arduino chiamando la funzione analogRead () .
val = analogRead (A0); Serial.print ("raw =");
Quindi, nella riga successiva, chiama gasSensor.getPPM () per calcolare i valori PPM. I valori PPM vengono calcolati utilizzando il resistore di carico, R 0 e la lettura dal pin analogico.
float ppm = gasSensor.getPPM (); Serial.print ("ppm:"); Serial.println (ppm);
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.setCursor (18,43); display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (ppm);
Infine, chiama il metodo display () per visualizzare il testo sul display OLED.
display.display (); display.clearDisplay ();
Test dell'interfaccia del sensore MQ-135
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:
In questo modo è possibile utilizzare un sensore MQ-135 per misurare con precisione la CO2 nell'aria. Di seguito sono riportati il codice Arduino completo del sensore di qualità dell'aria MQ135 e il video di lavoro. Se hai dei dubbi, lasciali nella sezione commenti.