- Components necessaris
- Mòdul de pantalla OLED de 0,96 '
- Preparació del sensor MQ-135
- Diagrama de circuits a la interfície MQ135 amb Arduino
- Càlcul de la R
- Codi per mesurar el CO2 mitjançant el sensor Arduino MQ135
- Prova de la interfície del sensor MQ-135
El nivell atmosfèric de CO2 de la Terra augmenta dia a dia. El diòxid de carboni atmosfèric mitjà mundial el 2019 va ser de 409,8 parts per milió i, a l’octubre del 2020, va ser de 411,29. El diòxid de carboni és un gas d’efecte hivernacle clau i responsable d’unes tres quartes parts de les emissions. Així doncs , el control del nivell de CO2 també ha començat a guanyar importància.
En el nostre projecte anterior, vam fer servir el sensor de CO2 infrarrojos per gravetat per mesurar la concentració de CO2 a l’aire. En aquest projecte, farem servir un sensor MQ-135 amb Arduino per mesurar la concentració de CO2. Els valors de concentració de CO2 mesurats es mostraran al mòdul OLED i, finalment, també compararem les lectures del sensor Arduino MQ-135 amb les lectures del sensor de CO2 infraroig. A part del CO2, també hem mesurat la concentració de gas GLP, fum i amoníac mitjançant Arduino.
Components necessaris
- Arduino Nano
- Sensor MQ-135
- Jumper Wires
- Mòdul de pantalla OLED de 0,96 '
- Taula de pa
- Resistència de 22KΩ
Mòdul de pantalla OLED de 0,96 '
OLED (Organic Light-Emitting Diodes) és una tecnologia autoemissora, construïda col·locant una sèrie de pel·lícules primes orgàniques entre dos conductors. Es produeix una llum brillant quan s’aplica un corrent elèctric a aquestes pel·lícules. Els OLED utilitzen la mateixa tecnologia que els televisors, però tenen menys píxels que a la majoria dels nostres televisors.

Per a aquest projecte, fem servir una pantalla OLED SSD1306 de 0,96 polzades monocroma de 7 pins. Pot funcionar en tres protocols de comunicacions diferents: mode SPI 3 Wire, mode SPI de quatre fils i mode I2C. També podeu obtenir més informació sobre els conceptes bàsics de la pantalla OLED i els seus tipus llegint l'article enllaçat. Els pins i les seves funcions s’expliquen a la taula següent:
|
Nom del pin |
Altres noms |
Descripció |
|
Gnd |
Terra |
Pas de terra del mòdul |
|
Vdd |
Vcc, 5V |
Pin d'alimentació (tolerable de 3-5 V) |
|
SCK |
D0, SCL, CLK |
Actua com el passador del rellotge. S’utilitza tant per a I2C com per a SPI |
|
SDA |
D1, MOSI |
Pin de dades del mòdul. S’utilitza tant per a IIC com per a SPI |
|
RES |
RST, RESET |
Restableix el mòdul (útil durant SPI) |
|
DC |
A0 |
Pin de comandament de dades. S'utilitza per al protocol SPI |
|
CS |
Selecció de xip |
Útil quan s'utilitza més d'un mòdul sota el protocol SPI |
Especificacions OLED:
- IC del controlador OLED: SSD1306
- Resolució: 128 x 64
- Angle visual:> 160 °
- Voltatge d'entrada: 3.3V ~ 6V
- Color de píxels: blau
- Temperatura de treball: -30 ° C ~ 70 ° C
Preparació del sensor MQ-135
El sensor de gas MQ-135 és un sensor de qualitat de l’aire per detectar una àmplia gamma de gasos, inclosos NH3, NOx, alcohol, benzè, fum i CO2. El sensor MQ-135 es pot comprar com a mòdul o només com a sensor. En aquest projecte, estem utilitzant un mòdul de sensor MQ-135 per mesurar la concentració de CO2 en PPM. A continuació es mostra el diagrama de circuits de la placa MQ-135:

La resistència de càrrega RL té un paper molt important a l’hora de fer funcionar el sensor. Aquesta resistència canvia el seu valor de resistència segons la concentració de gas. Segons el full de dades MQ-135, el valor de la resistència de càrrega pot variar des de 10KΩ fins a 47KΩ. El full de dades recomana calibrar el detector per obtenir concentració d'alcohol de 100 ppm NH3 o 50 ppm a l'aire i utilitzar un valor de resistència a la càrrega (RL) d'aproximadament 20 KΩ. Però si feu un seguiment de les traces de PCB per trobar el valor del vostre RL a la placa, podeu veure una resistència de càrrega de 1KΩ (102).

Per tant, per mesurar els valors de concentració de CO2 adequats, heu de substituir la resistència de 1KΩ per una resistència de 22KΩ.
Diagrama de circuits a la interfície MQ135 amb Arduino
A continuació es detallen els esquemes complets per connectar el sensor de gas MQ-135 amb Arduino:

El circuit és molt senzill, ja que només connectem el sensor MQ-135 i el mòdul de pantalla OLED amb Arduino Nano. El sensor de gas MQ-135 i el mòdul de pantalla OLED funcionen amb + 5V i GND. El pin Analog Out del sensor MQ-135 està connectat al pin A0 d'Arduino Nano. Com que el mòdul OLED Display utilitza la comunicació SPI, hem establert una comunicació SPI entre el mòdul OLED i Arduino Nano. Les connexions es mostren a la taula següent:
|
S.No |
Pin del mòdul OLED |
Pin Arduino |
|
1 |
GND |
Terra |
|
2 |
VCC |
5V |
|
3 |
D0 |
10 |
|
4 |
D1 |
9 |
|
5 |
RES |
13 |
|
6 |
DC |
11 |
|
7 |
CS |
12 |
Després de connectar el maquinari segons el diagrama del circuit, la configuració del sensor Arduino MQ135 hauria de tenir el següent aspecte:

Càlcul de la R
Ara que coneixem el valor de RL, anem a procedir a calcular els valors de R o en aire net. Aquí utilitzarem MQ135.h per mesurar la concentració de CO2 a l’aire. Per tant, primer descarregueu la biblioteca MQ-135 i, a continuació, preescalfeu el sensor durant 24 hores abans de llegir els valors R o. Després del procés de preescalfament, utilitzeu el codi següent per llegir els valors de R o:
#include setup "MQ135.h" void () {Serial.begin (9600); } bucle buit () {MQ135 gasSensor = MQ135 (A0); // Connecteu el sensor al pin A0 float rzero = gasSensor.getRZero (); Serial.println (rzero); retard (1000); }
Ara, un cop obtinguts els valors R o, aneu a Documents> Arduino> biblioteques> carpeta MQ135-master i obriu el fitxer MQ135.h i canvieu els valors RLOAD & RZERO.
/// La resistència de càrrega al tauler #define RLOAD 22.0 /// Resistència de calibració al nivell de CO2 atmosfèric #define RZERO 5804.99
Ara desplaceu-vos cap avall i substituïu el valor ATMOCO2 pel CO2 atmosfèric actual, que és 411,29
/// Nivell atmosfèric de CO2 a efectes de calibratge #define ATMOCO2 397.13
Codi per mesurar el CO2 mitjançant el sensor Arduino MQ135
El codi complet per a la interfície del sensor MQ-135 amb Arduino es dóna al final del document. Aquí expliquem algunes parts importants del codi Arduino MQ135.
El codi utilitza el Adafruit_GFX , i Adafruit_SSD1306 , i MQ135.h biblioteques. Aquestes biblioteques es poden descarregar des del gestor de biblioteques a l'IDE Arduino i instal·lar-les des d'allà. Per a això, obriu l'IDE d'Arduino i aneu a Sketch <Inclou biblioteca <Gestiona biblioteques . Ara cerqueu Adafruit GFX i instal·leu la biblioteca Adafruit GFX d’Adafruit.

De la mateixa manera, instal·leu les biblioteques Adafruit SSD1306 d'Adafruit. La biblioteca MQ135 es pot descarregar des d’aquí.
Després d'instal·lar les biblioteques a Arduino IDE, inicieu el codi incloent els fitxers de biblioteques necessaris.
#include "MQ135.h" #include
A continuació, definiu l'amplada i l'alçada OLED. En aquest projecte, utilitzem una pantalla OLED de 128 × 64 SPI. Es pot canviar el SCREEN_WIDTH i SCREEN_HEIGHT variables d'acord a la seva pantalla.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
A continuació, definiu els pins de comunicació SPI on està connectada la pantalla OLED.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
A continuació, creeu una instància de visualització d'Adafruit amb l'amplada i l'alçada definides anteriorment amb el protocol de comunicació SPI.
Pantalla Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Després, definiu el pin Arduino on està connectat el sensor MQ-135.
int sensorIn = A0;
Ara dins de la funció setup () , inicialitzeu el monitor sèrie a una velocitat de transmissió de 9600 per a la depuració. A més, inicialitzeu la pantalla OLED amb la funció begin () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); display.clearDisplay ();
Dins de la funció loop () , primer llegiu els valors del senyal al pin analògic d’Arduino trucant a la funció analogRead () .
val = analogRead (A0); Serial.print ("raw =");
A continuació, a la línia següent, truqueu a gasSensor.getPPM () per calcular els valors de PPM. Els valors de PPM es calculen mitjançant la resistència de càrrega, R 0, i la lectura des del pin analògic.
ppm flotant = gasSensor.getPPM (); Serial.print ("ppm:"); Serial.println (ppm);
Després, configureu la mida del text i el color del text amb setTextSize () i setTextColor () .
display.setTextSize (1); display.setTextColor (BLANC);
A continuació, a la línia següent, definiu la posició on comença el text mitjançant el mètode setCursor (x, y) . I imprimiu els valors de CO2 a la pantalla OLED mitjançant la funció 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);
I, a la darrera, truqueu al mètode display () per mostrar el text a la pantalla OLED.
display.display (); display.clearDisplay ();
Prova de la interfície del sensor MQ-135
Un cop el maquinari i el codi estiguin preparats, és hora de provar el sensor. Per a això, connecteu l'Arduino a l'ordinador portàtil, seleccioneu la placa i el port i premeu el botó de càrrega. A continuació, obriu el monitor sèrie i espereu un temps (procés de precalentament) i, a continuació, veureu les dades finals. Els valors es mostraran a la pantalla OLED com es mostra a continuació:

Així es pot utilitzar un sensor MQ-135 per mesurar el CO2 precís a l’aire. A continuació es mostra el codi Arduino del sensor de qualitat de l’aire MQ135 complet i el vídeo de treball. Si teniu dubtes, deixeu-los a la secció de comentaris.
