- Potrebne komponente
- 0,96-palčni zaslon OLED
- Priprava senzorja MQ-135
- Shema vezja na vmesnik MQ135 z Arduinom
- Izračun R
- Koda za merjenje CO2 s pomočjo senzorja Arduino MQ135
- Testiranje povezave senzorja MQ-135
Raven CO2 v atmosferi Zemlje se iz dneva v dan povečuje. Svetovno povprečno ozračje ogljikovega dioksida je leta 2019 znašalo 409,8 na milijon, oktobra-2020 pa 411,29. Ogljikov dioksid je ključni toplogredni plin in odgovoren za približno tri četrtine emisij. Tako je začelo pridobivati pomen tudi spremljanje ravni CO2.
V prejšnjem projektu smo za merjenje koncentracije CO2 v zraku uporabljali Gravity Infrared CO2 senzor. V tem projektu bomo uporabili senzor MQ-135 z Arduinom za merjenje koncentracije CO2. Izmerjene vrednosti koncentracije CO2 bodo prikazane na modulu OLED, nazadnje pa bomo primerjali tudi odčitke senzorja Arduino MQ-135 z odčitki infrardečega CO2 senzorja. Poleg CO2 smo z Arduinom izmerili tudi koncentracijo utekočinjenega naftnega plina, dima in plina amoniaka.
Potrebne komponente
- Arduino Nano
- Senzor MQ-135
- Jumper žice
- 0,96-palčni zaslon SPI OLED
- Breadboard
- 22KΩ upor
0,96-palčni zaslon OLED
OLED (organske diode, ki oddajajo svetlobo) je samosevalna tehnologija, izdelana tako, da med dva vodnika postavi vrsto organskih tankih filmov. Ko na te filme deluje električni tok, nastane močna svetloba. OLED uporabljajo enako tehnologijo kot televizorji, vendar imajo manj slikovnih pik kot pri večini naših televizorjev.
Za ta projekt uporabljamo enobarvni 7-pinski SSD1306 0,96-palčni OLED zaslon. Deluje lahko na treh različnih komunikacijskih protokolih: SPI 3 Wire način, SPI štirižični način in I2C način. Več o osnovah OLED zaslona in njegovih vrstah lahko preberete tudi v branju povezanega članka. Zatiči in njegove funkcije so razloženi v spodnji tabeli:
Pripnite ime |
Druga imena |
Opis |
Gnd |
Tla |
Ozemljitveni zatič modula |
Vdd |
Vcc, 5V |
Napajalni zatič (3-5V sprejemljivo) |
SCK |
D0, SCL, CLK |
Deluje kot zatič ure. Uporablja se za I2C in SPI |
SDA |
D1, MOSI |
Podatkovni zatič modula. Uporablja se za IIC in SPI |
OVE |
RST, PONASTAVI |
Ponastavi modul (uporabno med SPI) |
DC |
A0 |
Podatkovni ukazni zatič. Uporablja se za protokol SPI |
CS |
Chip Select |
Uporabno, če se po protokolu SPI uporablja več modulov |
Specifikacije OLED:
- Gonilna enota OLED: SSD1306
- Ločljivost: 128 x 64
- Vidni kot:> 160 °
- Vhodna napetost: 3.3V ~ 6V
- Barva piksla: modra
- Delovna temperatura: -30 ° C ~ 70 ° C
Priprava senzorja MQ-135
Senzor za plin MQ-135 je senzor kakovosti zraka za zaznavanje širokega spektra plinov, vključno z NH3, NOx, alkoholom, benzenom, dimom in CO2. Senzor MQ-135 lahko kupite kot modul ali samo kot senzor sam. V tem projektu za merjenje koncentracije CO2 v PPM uporabljamo senzorski modul MQ-135. Shema vezja za ploščo MQ-135 je podana spodaj:
Upor obremenitve RL ima zelo pomembno vlogo pri delovanju senzorja. Ta upor spremeni svojo vrednost upora glede na koncentracijo plina. V skladu s podatkovnim listom MQ-135 se vrednost obremenitvenega upora lahko giblje od 10KΩ do 47KΩ. V obrazcu s podatki priporočamo, da detektor umerite za koncentracijo NH3 ali 50 ppm alkohola v zraku in uporabite vrednost odpornosti proti obremenitvi (RL) približno 20 KΩ. Če pa sledite sledom PCB, da bi na plošči našli vrednost vašega RL, lahko vidite obremenitveni upor 1KΩ (102).
Če želite izmeriti ustrezne vrednosti koncentracije CO2, morate upor 1KΩ zamenjati z uporom 22KΩ.
Shema vezja na vmesnik MQ135 z Arduinom
Popolne sheme za povezavo plinskega senzorja MQ-135 z Arduinom so navedene spodaj:
Vezje je zelo preprosto, saj povezujemo le senzor MQ-135 in modul OLED zaslon z Arduino Nano. MQ-135 senzor za plin in OLED modul zaslona sta napajana z + 5V in GND. Zatič Analog Out na senzorju MQ-135 je povezan z zatičem A0 Arduino Nano. Ker modul OLED Display uporablja komunikacijo SPI, smo vzpostavili komunikacijo SPI med modulom OLED in Arduino Nano. Povezave so prikazane v spodnji tabeli:
S. Št |
Zatič modula OLED |
Arduino Pin |
1. |
GND |
Tla |
2. |
VCC |
5V |
3. |
D0 |
10. |
4. |
D1 |
9. |
5. |
OVE |
13. |
6. |
DC |
11. |
7. |
CS |
12. |
Po priključitvi strojne opreme v skladu s shemo vezja mora biti nastavitev senzorja Arduino MQ135 videti nekako takole spodaj:
Izračun R
Zdaj, ko poznamo vrednost RL, nadaljujmo s tem, kako izračunati vrednosti R o v čistem zraku. Tu bomo uporabili MQ135.h za merjenje koncentracije CO2 v zraku. Torej najprej prenesite knjižnico MQ-135, nato senzor ogrevajte 24 ur, preden odčitate vrednosti R o. Po postopku predgrevanja uporabite spodnjo kodo za branje vrednosti R o:
#include "MQ135.h" void setup () {Serial.begin (9600); } void loop () {MQ135 gasSensor = MQ135 (A0); // Pritrdite senzor na zatič A0 float rzero = gasSensor.getRZero (); Serial.println (rzero); zamuda (1000); }
Zdaj, ko dobite vrednosti R o, pojdite na Dokumenti> Arduino> knjižnice> Glavna mapa MQ135 in odprite datoteko MQ135.h ter spremenite vrednosti RLOAD & RZERO.
/// Odpornost proti obremenitvi na plošči #define RLOAD 22.0 /// Kalibracijska odpornost pri atmosferskem nivoju CO2 #define RZERO 5804.99
Zdaj se pomaknite navzdol in vrednost ATMOCO2 nadomestite s trenutnim atmosferskim CO2, ki je 411,29
/// Raven CO2 v atmosferi za namene kalibracije #define ATMOCO2 397.13
Koda za merjenje CO2 s pomočjo senzorja Arduino MQ135
Popolna koda za povezovanje senzorja MQ-135 z Arduinom je podana na koncu dokumenta. Tukaj razlagamo nekatere pomembne dele kode MQ135 Arduino.
Koda uporablja Adafruit_GFX , in Adafruit_SSD1306 , in MQ135.h knjižnice. Te knjižnice lahko prenesete iz upravitelja knjižnic v IDE Arduino in jih namestite od tam. Za to odprite Arduino IDE in pojdite na Sketch <Include Library <Manage Libraries . Zdaj poiščite Adafruit GFX in namestite Adafruit GFX knjižnico Adafruit.
Podobno namestite Adafruit knjižnice Adafruit SSD1306. Knjižnico MQ135 lahko prenesete od tukaj.
Po namestitvi knjižnic v Arduino IDE zaženite kodo tako, da vključite potrebne datoteke knjižnic.
#include "MQ135.h" #include
Nato določite širino in višino OLED. V tem projektu uporabljamo 128 x 64 SPI OLED zaslon. Spremenljivki SCREEN_WIDTH in SCREEN_HEIGHT lahko spremenite glede na zaslon.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Nato določite komunikacijske nožice SPI, kamor je povezan OLED zaslon.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Nato ustvarite prikazni primerek Adafruit s prej definirano širino in višino s komunikacijskim protokolom SPI.
Zaslon Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Po tem določite zatič Arduino, kamor je priključen senzor MQ-135.
int sensorIn = A0;
Zdaj znotraj funkcije setup () inicializirajte serijski monitor s hitrostjo prenosa 9600 za namene odpravljanja napak. Prav tako inicializirajte zaslon OLED s funkcijo start () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); display.clearDisplay ();
Znotraj funkcije zanke () najprej preberite vrednosti signala na analognem zatiču Arduino s klicanjem funkcije analogRead () .
val = analogRead (A0); Serial.print ("raw =");
Nato v naslednji vrstici pokličite gasSensor.getPPM () za izračun vrednosti PPM. Vrednosti PPM se izračunajo z uporom obremenitve R 0 in odčitkom iz analognega zatiča.
plovec ppm = gasSensor.getPPM (); Serial.print ("ppm:"); Serial.println (ppm);
Po tem nastavite velikost besedila in barvo besedila s pomočjo setTextSize () in setTextColor () .
display.setTextSize (1); display.setTextColor (BELA);
Nato v naslednji vrstici z metodo setCursor (x, y) določite položaj, na katerem se začne besedilo. In natisnite vrednosti CO2 na OLED zaslon s funkcijo 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);
In zadnji, pokličite metodo display () za prikaz besedila na OLED zaslonu.
display.display (); display.clearDisplay ();
Testiranje povezave senzorja MQ-135
Ko sta strojna oprema in koda pripravljeni, je čas, da preizkusite senzor. Za to Arduino priključite na prenosni računalnik, izberite ploščo in vrata ter pritisnite gumb za prenos. Nato odprite serijski monitor in počakajte nekaj časa (postopek predgretja), nato boste videli končne podatke. Vrednosti bodo prikazane na zaslonu OLED, kot je prikazano spodaj:
Tako lahko senzor MQ-135 uporabljamo za merjenje natančnega CO2 v zraku. Popolna koda MQ135 senzorja kakovosti zraka Arduino Code in delovni video sta navedena spodaj. Če dvomite, jih pustite v oddelku za komentarje.