- Būtini komponentai
- 0,96 'OLED ekrano modulis
- MQ-135 jutiklio paruošimas
- Grandinės schema prie sąsajos MQ135 su „Arduino“
- Apskaičiuojant R
- Kodas matuoti CO2 naudojant „Arduino MQ135“ jutiklį
- MQ-135 jutiklio sąsajos testavimas
Žemės atmosferos CO2 lygis didėja kiekvieną dieną. Vidutinis pasaulio anglies dioksido kiekis atmosferoje 2019 m. Buvo 409,8 promilės, o 2020 m. Spalio mėn. Jis yra 411,29. Anglies dioksidas yra pagrindinės šiltnamio efektą sukeliančios dujos, išmetančios maždaug tris ketvirtadalius. Taigi CO2 lygio stebėjimas taip pat pradėjo didėti.
Ankstesniame savo projekte CO2 koncentracijai ore matuoti naudojome „Gravity Infrared“ CO2 jutiklį. Šiame projekte CO2 koncentracijai matuoti ketiname naudoti „MQ-135“ jutiklį su „Arduino“. Išmatuotos CO2 koncentracijos vertės bus rodomos OLED modulyje, o mes taip pat palyginsime „ Arduino MQ-135“ jutiklio rodmenis su infraraudonųjų spindulių CO2 jutiklių rodmenimis. Be CO2, mes taip pat išmatavome SND, dūmų ir amoniako dujų koncentraciją naudodami „Arduino“.
Būtini komponentai
- „Arduino Nano“
- MQ-135 jutiklis
- Šuolių laidai
- 0,96 'SPI OLED ekrano modulis
- Bandomoji Lenta
- 22KΩ rezistorius
0,96 'OLED ekrano modulis
OLED (organiniai šviesą skleidžiantys diodai) yra savaime skleidžianti technologija, sukonstruota tarp dviejų laidininkų uždėjus organinių plonų plėvelių seriją. Ryški šviesa susidaro, kai šioms plėvelėms paduodama elektros srovė. OLED naudoja tą pačią technologiją kaip ir televizoriai, tačiau turi mažiau taškų nei daugumoje mūsų televizorių.
Šiam projektui naudojame vienspalvį 7 kontaktų SSD1306 0,96 ”OLED ekraną. Jis gali veikti trimis skirtingais ryšių protokolais: SPI 3 vielos režimu, SPI keturių laidų režimu ir I2C režimu. Skaitydami susietą straipsnį taip pat galite sužinoti daugiau apie OLED ekrano pagrindus ir jo tipus. Smeigtukai ir jo funkcijos paaiškinti toliau pateiktoje lentelėje:
PIN vardas |
Kiti vardai |
apibūdinimas |
Gnd |
Žemė |
Įžemintas modulio kaištis |
Vdd |
Vcc, 5 V |
Maitinimo kaištis (3-5V toleruojamas) |
SCK |
D0, SCL, CLK |
Veikia kaip laikrodžio kaištis. Naudojamas tiek I2C, tiek SPI |
SDA |
D1, MOSI |
Modulio duomenų kaištis. Naudojamas tiek IIC, tiek SPI |
RES |
RST, RESET |
Iš naujo nustatomas modulis (naudinga SPI metu) |
DC |
A0 |
Duomenų komandos kaištis. Naudojamas SPI protokolui |
CS |
Chip Select |
Naudinga, kai pagal SPI protokolą naudojami daugiau nei vienas moduliai |
OLED specifikacijos:
- OLED tvarkyklės IC: SSD1306
- Rezoliucija: 128 x 64
- Vaizdinis kampas:> 160 °
- Įėjimo įtampa: 3.3V ~ 6V
- Pikselių spalva: mėlyna
- Darbinė temperatūra: -30 ° C ~ 70 ° C
MQ-135 jutiklio paruošimas
MQ-135 dujų jutiklis yra oro kokybės jutiklis, skirtas aptikti įvairiausias dujas, įskaitant NH3, NOx, alkoholį, benzeną, dūmus ir CO2. „MQ-135“ jutiklį galima įsigyti kaip modulį arba tik kaip jutiklį. Šiame projekte mes naudojame MQ-135 jutiklio modulį CO2 koncentracijai PPM matuoti. MQ-135 plokštės schema pateikta žemiau:
Apkrovos rezistorius RL vaidina labai svarbų vaidmenį, kad jutiklis veiktų. Šis rezistorius keičia savo varžos vertę pagal dujų koncentraciją. Pagal MQ-135 duomenų lapą, apkrovos rezistoriaus vertė gali svyruoti nuo 10KΩ iki 47KΩ. Duomenų lape rekomenduojama kalibruoti detektorių 100 ppm NH3 arba 50 ppm alkoholio koncentracijos ore ir naudoti maždaug 20 KΩ atsparumo apkrovai (RL) vertę. Bet jei stebėsite savo PCB pėdsakus, kad rastumėte savo RL vertę lentoje, galite pamatyti 1KΩ (102) apkrovos rezistorių.
Taigi, norint išmatuoti tinkamas CO2 koncentracijos vertes, 1KΩ rezistorių turite pakeisti 22KΩ rezistoriumi.
Grandinės schema prie sąsajos MQ135 su „Arduino“
Toliau pateikiamos visos „ MQ-135“ dujų jutiklio prijungimo prie „Arduino“ schemos:
Grandinė yra labai paprasta, nes „MQ-135 Sensor“ ir „OLED Display“ modulį jungiame tik su „Arduino Nano“. MQ-135 dujų jutiklis ir OLED ekrano modulis tiekiami su + 5 V ir GND. „MQ-135“ jutiklio „Analog Out“ kaištis yra prijungtas prie „Arduino Nano“ A0 kaiščio. Kadangi „OLED Display“ modulis naudoja SPI ryšį, mes sukūrėme SPI ryšį tarp OLED modulio ir „Arduino Nano“. Jungtys parodytos žemiau esančioje lentelėje:
S.No |
OLED modulio kaištis |
Arduino kaištis |
1 |
BND |
Žemė |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Prijungus aparatūrą pagal grandinės schemą, „Arduino MQ135“ jutiklio sąranka turėtų atrodyti maždaug taip:
Apskaičiuojant R
Dabar, kai žinome RL vertę, tęskime, kaip apskaičiuoti R o vertes gryname ore. Čia matuosime MQ135.h, kad pamatuotume CO2 koncentraciją ore. Taigi pirmiausia atsisiųskite „MQ-135“ biblioteką, tada 24 valandas pašildykite jutiklį prieš skaitydami R o reikšmes. Po išankstinio įkaitinimo naudokite žemiau esantį kodą, norėdami perskaityti R o reikšmes:
#include „MQ135.h“ negaliojanti sąranka () {Serial.begin (9600); } tuštuma kilpa () {MQ135 gasSensor = MQ135 (A0); // Pritvirtinkite jutiklį prie kaiščio A0 plūdės rzero = gasSensor.getRZero (); Serial.println (nulis); vėlavimas (1000); }
Dabar, kai gausite R o reikšmes, eikite į Dokumentai> Arduino> bibliotekos> MQ135-master aplanką ir atidarykite failą MQ135.h ir pakeiskite RLOAD & RZERO reikšmes.
/// Plokštės atsparumas apkrovai #define RLOAD 22.0 /// Kalibravimo varža atmosferos CO2 lygiu #define RZERO 5804.99
Dabar slinkite žemyn ir pakeiskite ATMOCO2 reikšmę dabartine atmosferos CO2, kuri yra 411,29
/// Atmosferos CO2 lygis kalibravimo tikslais #define ATMOCO2 397.13
Kodas matuoti CO2 naudojant „Arduino MQ135“ jutiklį
Visas kodas, skirtas „MQ-135 Sensor“ sąsajai su „Arduino“, pateikiamas dokumento pabaigoje. Čia mes paaiškiname keletą svarbių MQ135 „Arduino“ kodo dalių.
Kodas naudoja Adafruit_GFX , ir Adafruit_SSD1306 , ir MQ135.h bibliotekas. Šias bibliotekas galima atsisiųsti iš „Arduino IDE“ esančios bibliotekos tvarkyklės ir ją įdiegti iš ten. Tam atidarykite „Arduino IDE“ ir eikite į „ Sketch <Include Library <Manage Libraries“ . Dabar ieškokite „Adafruit GFX“ ir įdiekite „ Adafruit GFX“ biblioteką.
Panašiai įdiekite „ Adafruit“ „SSD1306“ bibliotekas. MQ135 biblioteką galite atsisiųsti iš čia.
Įdiegę bibliotekas į „Arduino IDE“, paleiskite kodą įtraukdami reikalingus bibliotekų failus.
#include "MQ135.h" #include
Tada nustatykite OLED plotį ir aukštį. Šiame projekte mes naudojame 128 × 64 SPI OLED ekraną. Kintamuosius SCREEN_WIDTH ir SCREEN_HEIGHT galite pakeisti pagal savo ekraną.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Tada nustatykite SPI ryšio kaiščius, kur prijungtas OLED ekranas.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Tada sukurkite „Adafruit“ ekrano egzempliorių, kurio plotis ir aukštis buvo apibrėžti anksčiau naudojant SPI ryšio protokolą.
„Adafruit_SSD1306“ ekranas (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Po to nustatykite „Arduino“ kaištį, kur prijungtas „MQ-135“ jutiklis.
int jutiklisIn = A0;
Dabar, kai yra sąrankos () funkcija, inicializuokite „Serial Monitor“ 9600 perdavimo greičiu derinimo tikslais. Be to, inicializuokite OLED ekraną su pradžios () funkcija.
Serijos pradžia (9600); display.begin (SSD1306_SWITCHCAPVCC); display.clearDisplay ();
Funkcijos ciklas () viduje pirmiausia perskaitykite signalo vertes „Arduino“ analoginiame kaište , paskambindami funkcija „ analogRead ()“ .
val = analogasRead (A0); Serijinis spaudinys ("raw =");
Tada kitoje eilutėje paskambinkite gasSensor.getPPM (), kad apskaičiuotumėte PPM reikšmes. PPM vertės apskaičiuojamos naudojant apkrovos rezistorių R 0 ir nuskaitymą iš analoginio kaiščio.
plūdės ppm = gasSensor.getPPM (); Serial.print („ppm:“); Serial.println (ppm);
Po to nustatykite teksto dydį ir spalvą naudodami setTextSize () ir setTextColor () .
display.setTextSize (1); display.setTextColor (BALTAS);
Tada kitoje eilutėje apibrėžkite vietą, kurioje tekstas pradedamas naudoti naudojant setCursor (x, y) metodą. Ir išspausdinkite CO2 vertes OLED ekrane naudodamiesi funkcija 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);
Paskutiniame, iškvieskite display () metodą, kad tekstas būtų rodomas OLED Display.
display.display (); display.clearDisplay ();
MQ-135 jutiklio sąsajos testavimas
Kai aparatinė įranga ir kodas bus paruošti, laikas išbandyti jutiklį. Tam prijunkite „Arduino“ prie nešiojamojo kompiuterio, pasirinkite „Board and Port“ ir paspauskite mygtuką „Įkelti“. Tada atidarykite nuoseklųjį monitorių ir palaukite šiek tiek laiko (įkaitinimo procesas), tada pamatysite galutinius duomenis. Vertės bus rodomos OLED ekrane, kaip parodyta žemiau:
Taip MQ-135 jutikliu galima išmatuoti tikslų ore esantį CO2 kiekį. Visas MQ135 oro kokybės jutiklio „Arduino“ kodas ir veikiantis vaizdo įrašas pateikiami žemiau. Jei turite kokių nors abejonių, palikite jas komentarų skiltyje.