- Szükséges alkatrészek
- 0,96 'OLED kijelző modul
- Az MQ-135 érzékelő előkészítése
- Áramkör az MQ135 interfészhez Arduino-val
- Az R kiszámítása
- Kód a CO2 mérésére az Arduino MQ135 érzékelő használatával
- Az MQ-135 érzékelő interfészének tesztelése
A Föld légköri CO2-szintje napról napra növekszik. A globális átlagos légköri szén-dioxid 2019-ben 409,8 millió millió volt, 2020 októberében pedig 411,29. A szén-dioxid kulcsfontosságú üvegházhatású gáz, amely a kibocsátások mintegy háromnegyedéért felelős. Tehát a CO2-szint monitorozása is egyre fontosabbá vált.
Korábbi projektünkben a Gravity Infrared CO2 szenzort használtuk a levegőben lévő CO2 koncentrációjának mérésére. Ebben a projektben egy MQ-135 érzékelőt fogunk használni az Arduinóval a CO2 koncentráció mérésére. A mért CO2 koncentráció értékek megjelennek az OLED modulon, és utoljára összehasonlítjuk az Arduino MQ-135 érzékelő leolvasását az infravörös CO2 érzékelő leolvasásaival is. A CO2 mellett az LPD, a füst és az ammónia gáz koncentrációját is mértük Arduino segítségével.
Szükséges alkatrészek
- Arduino Nano
- MQ-135 érzékelő
- Jumper huzalok
- 0,96 'SPI OLED kijelző modul
- Kenyérlemez
- 22KΩ ellenállás
0,96 'OLED kijelző modul
Az OLED (Organic Light-Emitting Diodes) egy önfénykibocsátó technológia, amelyet úgy állítottak elő, hogy két vezető közé szerves vékony filmeket helyeztek el. Erős fény keletkezik, ha ezekre a filmekre elektromos áramot vezetnek. Az OLED-k ugyanazt a technológiát használják, mint a televíziók, de kevesebb pixel van, mint a legtöbb tévénknél.
Ehhez a projekthez monokróm 7 tűs SSD1306 0,96 ”OLED kijelzőt használunk. Három különböző kommunikációs protokollon működhet: SPI 3 vezetékes mód, SPI négyvezetékes és I2C mód. Az OLED kijelző alapjairól és típusairól is többet megtudhat a hivatkozott cikk elolvasásával. A csapokat és funkcióit az alábbi táblázat ismerteti:
PIN neve |
Más nevek |
Leírás |
Gnd |
Talaj |
A modul földelt csapja |
Vdd |
Vcc, 5V |
Tápcsatlakozó (3-5V tolerálható) |
SCK |
D0, SCL, CLK |
Óraszegként működik. I2C és SPI esetén egyaránt használható |
SDA |
D1, MOSI |
A modul adatlapja. IIC-hez és SPI-hez egyaránt használják |
RES |
RST, RESET |
Visszaállítja a modult (SPI során hasznos) |
DC |
A0 |
Data Command pin. SPI protokollhoz használják |
CS |
Chip Select |
Hasznos, ha több modult használ SPI protokoll alatt |
OLED specifikációk:
- OLED illesztőprogram IC: SSD1306
- Felbontás: 128 x 64
- Vizuális szög:> 160 °
- Bemeneti feszültség: 3,3 V ~ 6 V
- Pixel színe: kék
- Működési hőmérséklet: -30 ° C ~ 70 ° C
Az MQ-135 érzékelő előkészítése
Az MQ-135 gázérzékelő egy levegőminőségi érzékelő a gázok széles skálájának kimutatására, beleértve az NH3, NOx, alkohol, benzol, füst és CO2 mennyiségét. Az MQ-135 érzékelő modulként vagy csak érzékelőként is megvásárolható. Ebben a projektben egy MQ-135 szenzor modult használunk a CO2 koncentráció mérésére PPM-ben. Az MQ-135 kártya kapcsolási rajza az alábbiakban látható:
Az RL terhelési ellenállás nagyon fontos szerepet játszik az érzékelő működésében. Ez az ellenállás a gáz koncentrációjának megfelelően megváltoztatja ellenállási értékét. Az MQ-135 adatlap szerint a terhelési ellenállás értéke 10KΩ és 47KΩ között lehet. Az adatlap azt ajánlja, hogy kalibrálja az érzékelőt 100 ppm NH3 vagy 50 ppm alkohol koncentrációra a levegőben, és használja a terhelési ellenállás (RL) értékét, amely kb. De ha nyomon követi a NYÁK nyomát, hogy megtalálja az RL értékét a táblán, láthat egy 1KΩ (102) terhelési ellenállást.
Tehát a megfelelő CO2 koncentrációértékek méréséhez le kell cserélni az 1KΩ ellenállást egy 22KΩ ellenállásra.
Áramkör az MQ135 interfészhez Arduino-val
Az MQ-135 gázérzékelő és az Arduino összekapcsolásának teljes vázlata az alábbiakban látható:
Az áramkör nagyon egyszerű, mivel csak az MQ-135 érzékelőt és az OLED kijelző modult csatlakoztatjuk az Arduino Nano-hoz. Az MQ-135 gázérzékelő és az OLED kijelző modul egyaránt + 5V és GND feszültséggel működik. Az MQ-135 érzékelő analóg kimeneti csatlakozója az Arduino Nano A0 tűjéhez csatlakozik. Mivel az OLED Display modul SPI kommunikációt használ, létrehoztunk egy SPI kommunikációt az OLED modul és az Arduino Nano között. A csatlakozásokat az alábbi táblázat mutatja:
S.No |
OLED modul csap |
Arduino Pin |
1 |
GND |
Talaj |
2 |
VCC |
5V |
3 |
D0 |
10. |
4 |
D1 |
9. |
5. |
RES |
13. |
6. |
DC |
11. |
7 |
CS |
12. |
A hardver kapcsolási rajz szerinti csatlakoztatása után az Arduino MQ135 érzékelő beállításának az alábbiak szerint kell kinéznie:
Az R kiszámítása
Most, hogy tudjuk az RL értékét, folytassuk a tiszta levegő Ro értékeinek kiszámításával. Itt az MQ135.h-t fogjuk használni a levegő CO2-koncentrációjának mérésére. Tehát először töltse le az MQ-135 könyvtárat, majd az R o értékek elolvasása előtt 24 órán keresztül melegítse elő az érzékelőt. Az előmelegítés után az alábbi kód segítségével olvassa el az R o értékeket:
#include "MQ135.h" void setup () {Serial.begin (9600); } void loop () {MQ135 gasSensor = MQ135 (A0); // Csatlakoztassa az érzékelőt az A0 úszó csaphoz rzero = gasSensor.getRZero (); Soros.println (rzero); késés (1000); }
Miután megkapta az R o értékeket, lépjen a Dokumentumok> Arduino> könyvtárak> MQ135-master mappába , nyissa meg az MQ135.h fájlt, és módosítsa az RLOAD & RZERO értékeket.
/// A tábla terhelési ellenállása #define RLOAD 22.0 /// Kalibrációs ellenállás légköri CO2-szinten #define RZERO 5804.99
Most görgessen lefelé, és cserélje ki az ATMOCO2 értéket a jelenlegi légköri CO2-re, amely 411,29
/// Kalibrációs célokra a légköri CO2-szint #define ATMOCO2 397.13
Kód a CO2 mérésére az Arduino MQ135 érzékelő használatával
Az MQ-135 érzékelő és az Arduino összekapcsolásának teljes kódja a dokumentum végén található. Itt elmagyarázzuk az MQ135 Arduino kód néhány fontos részét.
A kód az Adafruit_GFX , és Adafruit_SSD1306 , és MQ135.h könyvtárak. Ezek a könyvtárak letölthetők az Arduino IDE könyvtárkezelőjéből, és onnan telepíthetők. Ehhez nyissa meg az Arduino IDE-t, és lépjen a Sketch <Könyvtár belefoglalása <Könyvtárak kezelése oldalra . Most keresse meg az Adafruit GFX szót, és telepítse az Adafruit GFX könyvtárat.
Hasonlóképpen telepítse az Adafruit SSD1306 könyvtárait is. Az MQ135 könyvtár innen tölthető le.
Miután telepítette a könyvtárakat az Arduino IDE-be, indítsa el a kódot a szükséges könyvtárak fájljainak beillesztésével.
#include "MQ135.h" #include
Ezután adja meg az OLED szélességét és magasságát. Ebben a projektben egy 128 × 64 SPI OLED kijelzőt használunk. Megváltoztathatja a SCREEN_WIDTH és a SCREEN_HEIGHT változókat a megjelenítésnek megfelelően.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Ezután adja meg az SPI kommunikációs csapokat, ahová az OLED kijelző csatlakozik.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Ezután hozzon létre egy Adafruit megjelenítési példányt az SPI kommunikációs protokollal korábban meghatározott szélességgel és magassággal.
Adafruit_SSD1306 kijelző (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Ezután határozza meg az Arduino csapot, ahová az MQ-135 érzékelő csatlakozik.
int érzékelőIn = A0;
Most a setup () funkción belül inicializálja a soros monitort 9600-as sebességgel hibakeresés céljából. Ezenkívül inicializálja az OLED kijelzőt a begin () függvénnyel.
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); display.clearDisplay ();
A loop () függvényben először olvassa el a jelértékeket az Arduino Analog tűjén az analogRead () függvény meghívásával.
val = analógRead (A0); Soros.nyomtatás ("nyers =");
Ezután a következő sorban hívja meg a gasSensor.getPPM () -t a PPM-értékek kiszámításához. A PPM értékeket az R 0 terhelési ellenállás és az analóg csapról leolvasás segítségével számítják ki.
float ppm = gasSensor.getPPM (); Soros nyomtatás ("ppm:"); Serial.println (ppm);
Ezt követően állítsa be a szöveg méretét és színét a setTextSize () és a setTextColor () használatával .
display.setTextSize (1); display.setTextColor (FEHÉR);
Ezután a következő sorban adja meg azt a helyet, ahol a szöveg a setCursor (x, y) módszerrel kezdődik. És a display.println () függvény segítségével nyomtassa ki a CO2-értékeket az OLED kijelzőre.
display.setCursor (18,43); display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (ppm);
És az utolsóban hívja meg a display () metódust a szöveg OLED kijelzőn való megjelenítéséhez.
display.display (); display.clearDisplay ();
Az MQ-135 érzékelő interfészének tesztelése
Miután elkészült a hardver és a kód, ideje tesztelni az érzékelőt. Ehhez csatlakoztassa az Arduino-t a laptophoz, válassza ki a Board és a Port elemet, majd nyomja meg a feltöltés gombot. Ezután nyissa meg a soros monitort, és várjon egy ideig (előmelegítési folyamat), majd meglátja a végső adatokat. Az értékek az alábbi OLED kijelzőn jelennek meg:
Így lehet egy MQ-135 szenzort használni a levegőben lévő pontos CO2 mérésére. Az alábbiakban a teljes MQ135 levegőminőség-érzékelő Arduino kódot és a működő videót találjuk. Ha kétségei vannak, hagyja őket a megjegyzés részben.