- Komponente potrebne
- 0,96 'OLED modul zaslona
- Priprema senzora MQ-135
- Kružna shema za sučelje MQ135 s Arduinom
- Izračunavanje R
- Kôd za mjerenje CO2 pomoću senzora Arduino MQ135
- Ispitivanje povezivanja senzora MQ-135
Razina atmosferskog CO2 na zemlji raste iz dana u dan. Globalni prosječni atmosferski ugljični dioksid u 2019. godini iznosio je 409,8 dijelova na milijun, a u listopadu 2020. godine 411,29. Ugljični dioksid ključni je staklenički plin i odgovoran je za oko tri četvrtine emisija. Dakle, praćenje razine CO2 također je počelo dobivati na važnosti.
U našem prethodnom projektu koristili smo gravitacijski infracrveni CO2 senzor za mjerenje koncentracije CO2 u zraku. U ovom projektu koristit ćemo senzor MQ-135 s Arduinom za mjerenje koncentracije CO2. Izmjerene vrijednosti koncentracije CO2 prikazat će se na OLED modulu, a posljednji ćemo usporediti i očitanja Arduino MQ-135 senzora s očitanjima infracrvenog CO2 senzora. Osim CO2, mjerili smo i koncentraciju UNP-a, dima i plina Amonijak koristeći Arduino.
Komponente potrebne
- Arduino Nano
- MQ-135 senzor
- Jumper žice
- 0,96 'SPI OLED modul zaslona
- Breadboard
- Otpornik od 22KΩ
0,96 'OLED modul zaslona
OLED (organske diode koje emitiraju svjetlost) je tehnologija koja samostalno emitira svjetlost, konstruirana postavljanjem niza organskih tankih filmova između dva vodiča. Kad se na te filmove primijeni električna struja, stvara se jako svjetlo. OLED-ovi koriste istu tehnologiju kao i televizori, ali imaju manje piksela nego u većini naših televizora.

Za ovaj projekt koristimo monokromatski 7-pinski SSD1306 0.96 ”OLED zaslon. Može raditi na tri različita komunikacijska protokola: SPI 3 Wire način, SPI četverožični način i I2C način. Također možete saznati više o osnovama OLED zaslona i njegovim vrstama čitajući povezani članak. Pribadače i njegove funkcije objašnjene su u donjoj tablici:
|
Naziv pribadače |
Druga imena |
Opis |
|
Gnd |
Prizemlje |
Osovina uzemljenja modula |
|
Vdd |
Vcc, 5 V |
Priključak za napajanje (3-5V podnošljiv) |
|
SCK |
D0, SCL, CLK |
Djeluje kao zatik sata. Koristi se i za I2C i za SPI |
|
SDA |
D1, MOSI |
Podaci za pin modula. Koristi se i za IIC i za SPI |
|
OIE |
RST, VRAĆAJ |
Resetira modul (korisno tijekom SPI) |
|
DC |
A0 |
Podatkovna naredba. Koristi se za SPI protokol |
|
CS |
Odabir čipa |
Korisno kada se pod SPI protokolom koristi više modula |
OLED specifikacije:
- IC upravljačkog programa OLED: SSD1306
- Rezolucija: 128 x 64
- Vizualni kut:> 160 °
- Ulazni napon: 3.3V ~ 6V
- Boja piksela: plava
- Radna temperatura: -30 ° C ~ 70 ° C
Priprema senzora MQ-135
MQ-135 senzor plina senzor je kvalitete zraka za otkrivanje širokog raspona plinova, uključujući NH3, NOx, alkohol, benzen, dim i CO2. MQ-135 senzor možete kupiti ili kao modul ili samo kao senzor sam. U ovom projektu koristimo senzorski modul MQ-135 za mjerenje koncentracije CO2 u PPM. Shema sklopa za ploču MQ-135 dana je u nastavku:

Otpor opterećenja RL igra vrlo važnu ulogu u radu senzora. Ovaj otpor mijenja vrijednost otpora prema koncentraciji plina. Prema podatkovnom listu MQ-135, vrijednost otpornika opterećenja može se kretati od 10KΩ do 47KΩ. Tehnički list preporučuje da kalibrirate detektor za koncentraciju NH3 ili 50ppm alkohola u zraku i koristite vrijednost otpora opterećenja (RL) od oko 20 KΩ. Ali ako pratite tragove PCB-a da biste pronašli vrijednost vašeg RL- a na ploči, možete vidjeti otpor opterećenja 1KΩ (102).

Dakle, da biste izmjerili odgovarajuće vrijednosti koncentracije CO2, morate zamijeniti otpor 1KΩ otpornikom 22KΩ.
Kružna shema za sučelje MQ135 s Arduinom
Cjelovite sheme povezivanja senzora plina MQ-135 s Arduinom date su u nastavku:

Krug je vrlo jednostavan jer povezujemo samo senzor MQ-135 i modul OLED zaslona s Arduino Nano. MQ-135 senzor za plin i OLED modul zaslona napajaju se s + 5V i GND. Priključak Analog Out na senzoru MQ-135 povezan je s pinom A0 Arduino Nano-a. Budući da OLED modul zaslona koristi SPI komunikaciju, uspostavili smo SPI komunikaciju između OLED modula i Arduino Nano-a. Veze su prikazane u donjoj tablici:
|
S.Br |
Pribadača OLED modula |
Arduino pin |
|
1 |
GND |
Prizemlje |
|
2 |
VCC |
5V |
|
3 |
D0 |
10 |
|
4 |
D1 |
9 |
|
5 |
OIE |
13 |
|
6 |
DC |
11 |
|
7 |
CS |
12 |
Nakon spajanja hardvera prema shemi sklopa, postavka Arduino MQ135 senzora trebala bi izgledati otprilike dolje:

Izračunavanje R
Sad kad znamo vrijednost RL, nastavimo kako izračunati vrijednosti R o u čistom zraku. Ovdje ćemo koristiti MQ135.h za mjerenje koncentracije CO2 u zraku. Dakle, najprije preuzmite knjižnicu MQ-135, a zatim zagrijte senzor 24 sata prije čitanja R o vrijednosti. Nakon postupka predgrijavanja, upotrijebite donji kod za čitanje R o vrijednosti:
#include "MQ135.h" void setup () {Serial.begin (9600); } void loop () {MQ135 gasSensor = MQ135 (A0); // Pričvrstite senzor na pin A0 float rzero = gasSensor.getRZero (); Serial.println (rzero); kašnjenje (1000); }
Sada kada ste dobili vrijednosti R o, idite na Dokumenti> Arduino> knjižnice> MQ135-glavna mapa i otvorite datoteku MQ135.h i promijenite vrijednosti RLOAD & RZERO.
/// Otpor opterećenja na ploči #define RLOAD 22.0 /// Otpornost kalibracije na atmosferskoj razini CO2 #define RZERO 5804,99
Sada se pomaknite prema dolje i zamijenite vrijednost ATMOCO2 trenutnim atmosferskim CO2 koji iznosi 411,29
/// Razina atmosferskog CO2 za potrebe kalibracije #define ATMOCO2 397.13
Kôd za mjerenje CO2 pomoću senzora Arduino MQ135
Kompletni kod za povezivanje senzora MQ-135 s Arduinom dan je na kraju dokumenta. Ovdje objašnjavamo neke važne dijelove MQ135 Arduino koda.
Šifra koristi Adafruit_GFX , i Adafruit_SSD1306 , i MQ135.h knjižnice. Te se knjižnice mogu preuzeti iz Upravitelja biblioteka u Arduino IDE-u i odatle ih instalirati. Za to otvorite Arduino IDE i idite na Sketch <Include Library <Manage Libraries . Sada potražite Adafruit GFX i instalirajte Adafruit GFX knjižnicu tvrtke Adafruit.

Slično tome, instalirajte Adafruit SSD1306 knjižnice tvrtke Adafruit. Knjižnicu MQ135 možete preuzeti ovdje.
Nakon instalacije knjižnica u Arduino IDE, pokrenite kôd tako što ćete uključiti potrebne datoteke knjižnica.
#include "MQ135.h" #include
Zatim definirajte OLED širinu i visinu. U ovom projektu koristimo 128 × 64 SPI OLED zaslon. Možete promijeniti SCREEN_WIDTH i SCREEN_HEIGHT varijable prema vašem zaslonu.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Zatim definirajte SPI komunikacijske igle gdje je povezan OLED zaslon.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Zatim stvorite instancu prikaza Adafruit s širinom i visinom definiranom ranije pomoću SPI komunikacijskog protokola.
Zaslon Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Nakon toga definirajte Arduino pin na koji je spojen MQ-135 senzor.
int sensorIn = A0;
Sada unutar funkcije setup () , inicijalizirajte serijski monitor brzinom prijenosa od 9600 u svrhu otklanjanja pogrešaka. Također, inicijalizirajte OLED zaslon funkcijom start () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); display.clearDisplay ();
Unutar funkcije loop () , prvo pročitajte vrijednosti signala na analognom pinu Arduina pozivanjem funkcije analogRead () .
val = analogRead (A0); Serial.print ("raw =");
Zatim u sljedećem retku nazovite gasSensor.getPPM () da biste izračunali vrijednosti PPM-a. Vrijednosti PPM izračunavaju se pomoću otpora opterećenja R 0 i očitanja s analognog pina.
plutajuća ppm = gasSensor.getPPM (); Serial.print ("ppm:"); Serial.println (ppm);
Nakon toga postavite veličinu i boju teksta pomoću setTextSize () i setTextColor () .
display.setTextSize (1); display.setTextColor (BIJELO);
Zatim u sljedećem retku definirajte položaj na kojem započinje tekst metodom setCursor (x, y) . I ispišite vrijednosti CO2 na OLED zaslon pomoću funkcije 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 u posljednjem, nazovite display () metodu za prikaz teksta na OLED zaslonu.
display.display (); display.clearDisplay ();
Ispitivanje povezivanja senzora MQ-135
Kad su hardver i kod spremni, vrijeme je da testirate senzor. Za to spojite Arduino na prijenosno računalo, odaberite ploču i priključak i pritisnite gumb za prijenos. Zatim otvorite svoj serijski monitor i pričekajte neko vrijeme (postupak predgrijavanja), a zatim ćete vidjeti konačne podatke. Vrijednosti će se prikazati na OLED zaslonu kako je prikazano dolje:

Tako se senzor MQ-135 može koristiti za mjerenje točnog CO2 u zraku. Kompletni MQ135 Arduino kôd osjetnika za kvalitetu zraka i radni videozapis dati su u nastavku. Ako sumnjate, ostavite ih u odjeljku za komentare.
