- Szükséges alkatrészek
- Gravitációs infravörös CO2-érzékelő
- 0,96 'OLED kijelző modul
- Kördiagramm
- Arduino kód a CO2 koncentráció mérésére
- A gravitációs infravörös CO2-érzékelő interfészének tesztelése
A levegőben növekvő szén-dioxid-koncentráció most komoly problémává vált. A NOAA jelentése szerint az ózon CO2-koncentrációja elérte a 0,0385 százalékot (385 ppm), és ez a legmagasabb mennyiség az elmúlt 2,1 millió évben. Ez azt jelenti, hogy egymillió levegő részecskében 385 részecske van szén-dioxidban. Ez a növekvő CO2-szint rossz hatással volt a környezetre, és olyan helyzethez vezetett, mint az éghajlatváltozás és a globális felmelegedés. Az utakon sok levegőminőség-mérő készülék van felszerelve a CO2-szint megállapítására, de építhetünk barkács-CO2-mérő eszközt is, és telepíthetjük a területünkre.
Ebben az oktatóanyagban összekapcsoljuk a gravitációs infravörös CO2-érzékelőt az Arduinóval, hogy megmérjük a CO2-koncentrációt PPM-ben. A gravitációs infravörös CO2-érzékelő egy nagy pontosságú analóg CO2-érzékelő. A CO2-tartalmat 0 és 5000 ppm között méri. Megtekintheti korábbi projektjeinket is, ahol az MQ135 gázérzékelőt, a Sharp GP2Y1014AU0F érzékelőt és az SDS011 Nova PM érzékelőt használtuk a levegőminőségi monitor felépítéséhez.
Szükséges alkatrészek
- Arduino Nano
- Gravitációs infravörös CO2-érzékelő V1.1
- Jumper huzalok
- 0,96 'SPI OLED kijelző modul
- Kenyérlemez
Gravitációs infravörös CO2-érzékelő
A Gravity Infrared CO2 Sensor V1.1 a legújabb nagy pontosságú analóg infravörös CO2-érzékelő, amelyet a DFRobot adott ki. Ez az érzékelő a nem diszperzív infravörös (NDIR) technológián alapul, jó szelektivitással és oxigénmentes függőséggel rendelkezik. Integrálja a hőmérséklet-kompenzációt és támogatja a DAC kimenetet. Ennek az érzékelőnek a tényleges mérési tartománya 0 és 5000 ppm között van, ± 50 ppm + 3% pontossággal. Ez az infravörös CO2-érzékelő felhasználható a HVAC-ban, a beltéri levegő minőségének ellenőrzésében, az ipari folyamatok és a biztonsági védelem ellenőrzésében, a mezőgazdaságban és az állattenyésztési folyamatok nyomon követésében.
Infravörös CO2-érzékelő kivezetése :
Mint korábban említettük, a infravörös CO2 érzékelő jön egy 3-tűs csatlakozóval. Az alábbi ábra és táblázat az infravörös CO2-érzékelő tűkiosztásait mutatja:
PIN-kód |
PIN neve |
Leírás |
---|---|---|
1 |
Jel |
Analóg kimenet (0,4 ~ 2V) |
2 |
VCC |
VCC (4,5 ~ 5,5 V) |
3 |
GND |
GND |
Infravörös CO2-érzékelő műszaki adatai és jellemzői:
- Gázérzékelés: Szén-dioxid (CO2)
- Üzemi feszültség: 4,5 ~ 5,5 V DC
- Előmelegítési idő: 3 perc
- Válaszidő: 120 s
- Működési hőmérséklet: 0 ~ 50 ℃
- Működési páratartalom: 0 ~ 95% relatív páratartalom (kondenzáció nélkül)
- Vízálló és korróziógátló
- Magas ciklusú élet
- Vízgőz-interferencia
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. A csapokat és funkcióit az alábbi táblázat ismerteti:
Az előző cikkben már részletesen bemutattuk az OLED-et és annak típusait.
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
Tudjon meg többet az OLED-ről és a különböző mikrovezérlőkkel való összekapcsolásáról a link követésével.
Kördiagramm
Az Arduino gravitációs analóg infravörös CO2-érzékelőjének összekapcsolási áramköri diagramja az alábbiakban látható:
Az áramkör nagyon egyszerű, mivel csak a gravitációs infravörös CO2 érzékelőt és az OLED kijelző modult csatlakoztatjuk az Arduino Nano-hoz. Az infravörös CO2-érzékelő és az OLED kijelző modul egyaránt + 5 V és GND tápellátást kap. A CO2 érzékelő Signal (Analog Out) 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. |
Miután összekapcsolta a hardvert az áramköri ábra szerint, az alábbiaknak kell kinéznie:
Arduino kód a CO2 koncentráció mérésére
Az Arduino projekt Gravitációs analóg infravörös CO2-érzékelőjének teljes kódja a dokumentum végén található. Itt elmagyarázzuk a kód néhány fontos részét.
A kód az Adafruit_GFX , és Adafruit_SSD1306 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)> könyvtár beillesztése (Library)> Könyvtárak kezelése elemre . 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 infravörös CO2-érzékelő nem igényel könyvtárat, mivel a feszültségértékeket közvetlenül az Arduino analóg tűjéről olvassuk 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árfájlok hozzáadásával. A porérzékelő nem igényel könyvtárat, mivel az olvasást közvetlenül az Arduino analóg tűjéről vesszük.
#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);
Ezt követően határozza meg az Arduino csapot, ahová a CO2 é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); analogReference (DEFAULT);
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. Ezt követően alakítsa át ezeket az analóg jelértékeket feszültségértékekké.
void loop () {int sensorValue = analogRead (sensorIn); úszófeszültség = érzékelőérték * (5000 / 1024,0);
Ezt követően hasonlítsa össze a feszültségértékeket. Ha a feszültség 0 V, ez azt jelenti, hogy valamilyen probléma lépett fel az érzékelővel. Ha a feszültség nagyobb, mint 0 V, de kisebb, mint 400 V, ez azt jelenti, hogy az érzékelő még mindig előmelegítési folyamatban van.
if (feszültség == 0) {Soros.println ("Hiba"); } else if (feszültség <400) {Serial.println ("előmelegítés"); }
Ha a feszültség egyenlő vagy nagyobb, mint 400 V, akkor konvertálja azt CO2 koncentráció értékekre.
else {int feszültség_különbség = feszültség-400; úszó koncentráció = feszültségkülönbség * 50,0 / 16,0;
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.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (koncentráció);
É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 ();
A gravitációs infravörös CO2-é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:
Megjegyzés: Az érzékelő használata előtt hagyja az érzékelőt kb. 24 órán át melegedni a helyes PPM-értékek elérése érdekében. Az érzékelő első bekapcsolásakor a kimenő CO2-koncentráció 1500–1700 PPM volt, és 24 órás melegítési folyamat után a kibocsátott CO2-koncentráció 450 PPM-ről 500 PPM-re csökkent, ami a helyes PPM érték. Ezért szükséges az érzékelő kalibrálása, mielőtt a CO2 koncentráció mérésére használnánk.
Így lehet infravörös CO2-érzékelővel mérni a levegőben lévő pontos CO2-koncentrációt. A teljes kódot és a működő videót az alábbiakban adjuk meg. Ha kétségei vannak, hagyja őket a megjegyzés részben, vagy használja fórumunkat technikai segítségért.