- Componente necesare
- Modul de afișaj OLED de 0,96 '
- Pregătirea senzorului MQ-135
- Schema circuitului pentru interfața MQ135 cu Arduino
- Calculul R
- Cod pentru măsurarea CO2 folosind senzorul Arduino MQ135
- Testarea interfaței senzorului MQ-135
Nivelul de CO2 atmosferic al pământului crește de la o zi la alta. Media globală a dioxidului de carbon atmosferic în 2019 a fost de 409,8 părți pe milion, iar în octombrie-2020 este de 411,29. Dioxidul de carbon este un gaz cheie cu efect de seră și responsabil pentru aproximativ trei sferturi din emisii. Așadar , monitorizarea nivelului de CO2 a început, de asemenea, să capete importanță.
În proiectul nostru anterior, am folosit senzorul de gravitate cu infraroșu CO2 pentru a măsura concentrația de CO2 în aer. În acest proiect, vom folosi un senzor MQ-135 cu Arduino pentru a măsura concentrația de CO2. Valorile măsurate ale concentrației de CO2 vor fi afișate pe modulul OLED și, în cele din urmă, vom compara și citirile senzorului Arduino MQ-135 cu citirile senzorului cu infraroșu CO2. În afară de CO2, am măsurat, de asemenea, concentrația de GPL, fum și gaz de amoniac folosind Arduino.
Componente necesare
- Arduino Nano
- Senzor MQ-135
- Sârme jumper
- Modul de afișaj SPI OLED de 0,96 '
- Breadboard
- Rezistor de 22KΩ
Modul de afișaj OLED de 0,96 '
OLED (Organic Light-Emitting Diodes) este o tehnologie auto-emitentă de lumină, construită prin plasarea unei serii de filme organice subțiri între doi conductori. O lumină puternică este produsă atunci când se aplică un curent electric acestor filme. OLED-urile folosesc aceeași tehnologie ca și televizoarele, dar au mai puțini pixeli decât în majoritatea televizoarelor noastre.
Pentru acest proiect, folosim un ecran OLED monocrom cu 7 pini SSD1306 0,96 ”. Poate funcționa pe trei protocoale de comunicații diferite: modul SPI 3 Wire, modul SPI cu patru fire și modul I2C. De asemenea, puteți afla mai multe despre elementele de bază ale afișajului OLED și tipurile acestuia citind articolul legat. Pinii și funcțiile sale sunt explicate în tabelul de mai jos:
Nume PIN |
Alte nume |
Descriere |
Gnd |
Sol |
Pinul de masă al modulului |
Vdd |
Vcc, 5V |
Pin de alimentare (3-5V tolerabil) |
SCK |
D0, SCL, CLK |
Acționează ca știftul ceasului. Folosit atât pentru I2C, cât și pentru SPI |
SDA |
D1, MOSI |
Pinul de date al modulului. Folosit atât pentru IIC, cât și pentru SPI |
RES |
RST, RESET |
Resetează modulul (util în timpul SPI) |
DC |
A0 |
Pinul de comandă a datelor. Folosit pentru protocolul SPI |
CS |
Chip Select |
Util când sunt utilizate mai multe module în cadrul protocolului SPI |
Specificații OLED:
- IC driver OLED: SSD1306
- Rezoluție: 128 x 64
- Unghi vizual:> 160 °
- Tensiunea de intrare: 3.3V ~ 6V
- Culoare pixel: albastru
- Temperatura de lucru: -30 ° C ~ 70 ° C
Pregătirea senzorului MQ-135
Senzorul de gaz MQ-135 este un senzor de calitate a aerului pentru detectarea unei game largi de gaze, inclusiv NH3, NOx, alcool, benzen, fum și CO2. Senzorul MQ-135 poate fi achiziționat fie ca modul, fie doar ca senzor. În acest proiect, folosim un modul senzor MQ-135 pentru a măsura concentrația de CO2 în PPM. Schema circuitului pentru placa MQ-135 este prezentată mai jos:
Rezistorul de sarcină RL joacă un rol foarte important în funcționarea senzorului. Acest rezistor își schimbă valoarea rezistenței în funcție de concentrația de gaz. Conform fișei tehnice MQ-135, valoarea rezistenței de încărcare poate varia de la 10KΩ la 47KΩ. Fișa tehnică recomandă calibrarea detectorului pentru concentrația de alcool 100ppm NH3 sau 50ppm în aer și utilizarea unei valori a rezistenței la încărcare (RL) de aproximativ 20 KΩ. Dar dacă vă urmăriți urmele PCB pentru a găsi valoarea RL-ului dvs. pe placă, puteți vedea un rezistor de încărcare de 1KΩ (102).
Deci, pentru a măsura valorile adecvate ale concentrației de CO2, trebuie să înlocuiți rezistorul de 1KΩ cu un rezistor de 22KΩ.
Schema circuitului pentru interfața MQ135 cu Arduino
Schema completă pentru conectarea senzorului de gaz MQ-135 cu Arduino este prezentată mai jos:
Circuitul este foarte simplu, deoarece conectăm senzorul MQ-135 și modulul OLED Display cu Arduino Nano. Senzorul de gaz MQ-135 și modulul OLED Display sunt alimentate cu + 5V și GND. Pinul Out analogic al senzorului MQ-135 este conectat la pinul A0 al Arduino Nano. Deoarece modulul OLED Display utilizează comunicarea SPI, am stabilit o comunicare SPI între modulul OLED și Arduino Nano. Conexiunile sunt prezentate în tabelul de mai jos:
S. Nu |
Pin modul OLED |
Pinul Arduino |
1 |
GND |
Sol |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
După conectarea hardware-ului conform schemei circuitului, configurarea senzorului Arduino MQ135 ar trebui să arate ca mai jos:
Calculul R
Acum că știm valoarea RL, să continuăm cum să calculăm valorile R o în aer curat. Aici vom folosi MQ135.h pentru a măsura concentrația de CO2 în aer. Deci, mai întâi descărcați biblioteca MQ-135, apoi preîncălziți senzorul timp de 24 de ore înainte de a citi valorile R o. După procesul de preîncălzire, utilizați codul de mai jos pentru a citi valorile R o:
#includeți "MQ135.h" void setup () {Serial.begin (9600); } bucla nulă () {MQ135 gasSensor = MQ135 (A0); // Atașați senzorul la pinul A0 float rzero = gasSensor.getRZero (); Serial.println (rzero); întârziere (1000); }
Acum, odată ce ai R O valori, Du - te la Documente> Arduino> biblioteci> MQ135-maestru dosar și deschideți MQ135.h fișierul și modifica valorile Rload & RZERO.
/// Rezistența la încărcare pe placă #define RLOAD 22.0 /// Rezistența la calibrare la nivelul atmosferic de CO2 #define RZERO 5804.99
Acum derulați în jos și înlocuiți valoarea ATMOCO2 cu actualul CO2 atmosferic, care este 411.29
/// Nivelul atmosferic de CO2 pentru calibrare #define ATMOCO2 397.13
Cod pentru măsurarea CO2 folosind senzorul Arduino MQ135
Codul complet pentru interfața senzorului MQ-135 cu Arduino este dat la sfârșitul documentului. Aici explicăm câteva părți importante ale codului MQ135 Arduino.
Codul folosește Adafruit_GFX , și Adafruit_SSD1306 , și MQ135.h biblioteci. Aceste biblioteci pot fi descărcate din Managerul de biblioteci din Arduino IDE și le pot instala de acolo. Pentru aceasta, deschideți IDE-ul Arduino și accesați Sketch <Include Library <Manage Libraries . Acum căutați Adafruit GFX și instalați biblioteca Adafruit GFX de la Adafruit.
În mod similar, instalați bibliotecile Adafruit SSD1306 de la Adafruit. Biblioteca MQ135 poate fi descărcată de aici.
După instalarea bibliotecilor pe Arduino IDE, porniți codul incluzând fișierele bibliotecilor necesare.
#include "MQ135.h" #include
Apoi, definiți lățimea și înălțimea OLED. În acest proiect, folosim un ecran OLED 128 × 64 SPI. Puteți schimba SCREEN_WIDTH și SCREEN_HEIGHT variabile în funcție de ecran.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Apoi definiți pinii de comunicație SPI unde este conectat ecranul OLED.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Apoi, creați o instanță de afișare Adafruit cu lățimea și înălțimea definite anterior cu protocolul de comunicație SPI.
Afișaj Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
După aceea, definiți pinul Arduino unde este conectat senzorul MQ-135.
int sensorIn = A0;
Acum, în interiorul funcției setup () , inițializați Serial Monitor la o rată de transmisie de 9600 în scopuri de depanare. De asemenea, inițializați afișajul OLED cu funcția begin () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); display.clearDisplay ();
În interiorul funcției loop () , citiți mai întâi valorile semnalului la pinul analogic al Arduino apelând funcția analogRead () .
val = analogRead (A0); Serial.print ("raw =");
Apoi, în linia următoare, apelați gasSensor.getPPM () pentru a calcula valorile PPM. Valorile PPM sunt calculate utilizând rezistența de încărcare, R 0 și citind de la pinul analogic.
float ppm = gasSensor.getPPM (); Serial.print ("ppm:"); Serial.println (ppm);
După aceea, setați dimensiunea și culoarea textului folosind setTextSize () și setTextColor () .
display.setTextSize (1); display.setTextColor (ALB);
Apoi, în linia următoare, definiți poziția în care începe textul folosind metoda setCursor (x, y) . Și tipăriți valorile CO2 pe afișajul OLED utilizând funcția 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 în ultimul rând, apelați metoda display () pentru a afișa textul pe ecranul OLED.
display.display (); display.clearDisplay ();
Testarea interfaței senzorului MQ-135
Odată ce hardware-ul și codul sunt gata, este timpul să testați senzorul. Pentru aceasta, conectați Arduino la laptop, selectați placa și portul și apăsați butonul de încărcare. Apoi deschideți monitorul serial și așteptați ceva timp (procesul de preîncălzire), apoi veți vedea datele finale. Valorile vor fi afișate pe afișajul OLED așa cum se arată mai jos:
Acesta este modul în care un senzor MQ-135 poate fi utilizat pentru a măsura CO2 exact în aer. Codul complet Arduino al senzorului de calitate a aerului MQ135 și videoclipul de lucru sunt prezentate mai jos. Dacă aveți îndoieli, lăsați-le în secțiunea de comentarii.