- Súčasti sú povinné
- Gravitačný infračervený snímač CO2
- 0,96 'OLED displejový modul
- Schéma zapojenia
- Arduino kód na meranie koncentrácie CO2
- Testovanie prepojenia gravitačného infračerveného senzora CO2
Zvyšujúca sa koncentrácia oxidu uhličitého vo vzduchu sa stala vážnym problémom v súčasnosti. Podľa správy NOAA koncentrácia CO2 v ozóne dosiahla 0,0385 percenta (385 ppm) a je to najvyššie množstvo za 2,1 milióna rokov. To znamená, že v jednom milióne častíc vzduchu je 385 častíc oxidu uhličitého. Táto stúpajúca hladina CO2 vážne ovplyvnila životné prostredie a viedla nás k tomu, aby sme čelili situácii ako zmena podnebia a globálne otepľovanie. Na cestách je nainštalovaných veľa prístrojov na meranie kvality vzduchu, ktoré zisťujú hladinu CO2. Môžeme však tiež zostaviť prístroj na meranie CO2 z vlastnej výroby a nainštalovať ho v našej oblasti.
V tomto výučbe sa chystáme prepojiť gravitačný infračervený snímač CO2 s Arduinom na meranie koncentrácie CO2 v PPM. Gravitačný infračervený snímač CO2 je vysoko presný analógový snímač CO2. Meria obsah CO2 v rozmedzí od 0 do 5 000 ppm. Môžete si tiež skontrolovať naše predchádzajúce projekty, kde sme na výrobu monitora kvality ovzdušia použili plynový senzor MQ135, snímač Sharp GP2Y1014AU0F a snímač Nova PM SDS011.
Súčasti sú povinné
- Arduino Nano
- Gravitačný infračervený snímač CO2 V1.1
- Prepojovacie drôty
- 0,96 'SPI OLED displejový modul
- Nepál
Gravitačný infračervený snímač CO2
Gravitačný infračervený snímač CO2 V1.1 je najnovší vysoko presný analógový infračervený snímač CO2 vydaný spoločnosťou DFRobot. Tento snímač je založený na nedisperznej infračervenej technológii (NDIR) a má dobrú selektivitu a závislosť od kyslíka. Integruje teplotnú kompenzáciu a podporuje výstup DAC. Efektívny rozsah merania tohto snímača je od 0 do 5 000 ppm s presnosťou ± 50 ppm + 3%. Tento infračervený snímač CO2 je možné použiť na HVAC, monitorovanie kvality vnútorného ovzdušia, priemyselné procesy a monitorovanie bezpečnostnej ochrany, v poľnohospodárstve a pri monitorovaní výrobných procesov chovu zvierat.
Infračervený snímač CO2 :
Ako už bolo spomenuté, infračervený snímač CO2 sa dodáva s 3-pólovým konektorom. Na nasledujúcom obrázku a v tabuľke je uvedené priradenie pinov infračerveného senzora CO2:
PIN č. |
Názov špendlíka |
Popis |
---|---|---|
1 |
Signál |
Analógový výstup (0,4 ~ 2 V) |
2 |
VCC |
VCC (4,5 ~ 5,5 V) |
3 |
GND |
GND |
Špecifikácie a vlastnosti infračerveného senzora CO2 :
- Detekcia plynov: Oxid uhličitý (CO2)
- Prevádzkové napätie: 4,5 ~ 5,5 V DC
- Čas predhrievania: 3 min
- Čas odozvy: 120 s
- Prevádzková teplota: 0 ~ 50 ℃
- Prevádzková vlhkosť: 0 ~ 95% RH (bez kondenzácie)
- Vodeodolný a antikorózny
- Vysoká životnosť
- Proti rušeniu vodných pár
0,96 'OLED displejový modul
OLED (Organic Light Emitting Diodes) je technológia samočinného vyžarovania svetla skonštruovaná umiestnením série organických tenkých vrstiev medzi dva vodiče. Keď sa na tieto filmy privádza elektrický prúd, vytvára sa jasné svetlo. OLED používajú rovnakú technológiu ako televízory, ale majú menej pixelov ako vo väčšine našich televízorov.
Pre tento projekt používame Monochrome 7-pin SSD1306 0,96 ”OLED displej. Môže pracovať na troch rôznych komunikačných protokoloch: režim SPI 3 Wire, režim SPI so štyrmi vodičmi a režim I2C. Kolíky a ich funkcie sú vysvetlené v nasledujúcej tabuľke:
OLED a jeho typom sme sa už podrobne venovali v predchádzajúcom článku.
Názov špendlíka |
Ostatné mená |
Popis |
Gnd |
Uzemnenie |
Uzemňovací kolík modulu |
Vdd |
Vcc, 5V |
Napájací kolík (tolerovateľný 3 - 5 V) |
SCK |
D0, SCL, CLK |
Funguje ako špendlík hodín. Používa sa pre I2C aj SPI |
SDA |
D1, MOSI |
Dátový kolík modulu. Používa sa pre IIC aj SPI |
OZE |
RST, RESET |
Resetuje modul (užitočné počas SPI) |
DC |
A0 |
PIN príkazového riadku. Používa sa pre protokol SPI |
CS |
Vyberte čip |
Užitočné, ak sa v protokole SPI používa viac ako jeden modul |
Špecifikácie OLED:
- Ovládač OLED IC: SSD1306
- Rozlíšenie: 128 x 64
- Vizuálny uhol:> 160 °
- Vstupné napätie: 3,3 V ~ 6 V
- Farba pixelov: modrá
- Pracovná teplota: -30 ° C ~ 70 ° C
Viac informácií o OLED a jeho prepojení s rôznymi mikrokontrolérmi sa dozviete po kliknutí na tento odkaz.
Schéma zapojenia
Schéma zapojenia pre vzájomné prepojenie gravitačného analógového infračerveného senzora CO2 pre Arduino je uvedená nižšie:
Obvod je veľmi jednoduchý, pretože pripájame iba gravitačný infračervený snímač CO2 a modul OLED Display s Arduino Nano. Infračervený snímač CO2 a modul OLED displej sú napájané + 5 V a GND. Pin Signal (Analog Out) senzora CO2 je pripojený k pinu A0 Arduino Nano. Pretože modul OLED Display využíva komunikáciu SPI, nadviazali sme komunikáciu SPI medzi modulom OLED a Arduino Nano. Pripojenia sú zobrazené v nasledujúcej tabuľke:
S.No |
Pin modulu OLED |
Pin Arduino |
1 |
GND |
Uzemnenie |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
OZE |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Po pripojení hardvéru podľa schémy zapojenia by to malo vyzerať asi takto:
Arduino kód na meranie koncentrácie CO2
Celý kód tohto projektu Gravity Analog Infrared CO2 Sensor for Arduino je uvedený na konci dokumentu. Tu vysvetľujeme niektoré dôležité časti kódu.
Kód používa Adafruit_GFX , a Adafruit_SSD1306 knižnice. Tieto knižnice je možné stiahnuť z aplikácie Library Manager v Arduino IDE a odtiaľ ich nainštalovať. Za týmto účelom otvorte IDE Arduino a choďte na Skica> Zahrnúť knižnicu> Spravovať knižnice . Teraz vyhľadajte Adafruit GFX a nainštalujte si knižnicu Adafruit GFX od spoločnosti Adafruit.
Podobne nainštalujte knižnice Adafruit SSD1306 od spoločnosti Adafruit. Infračervený snímač CO2 nevyžaduje žiadnu knižnicu, pretože čítame hodnoty napätia priamo z analógového kolíka Arduina.
Po inštalácii knižníc do Arduino IDE spustite kód zahrnutím potrebných súborov knižnice. Prachový senzor nevyžaduje žiadnu knižnicu, pretože čítanie sa vykonáva priamo z analógového kolíka Arduina.
#include
Potom definujte šírku a výšku OLED. V tomto projekte používame 128 × 64 SPI OLED displej. Premenné SCREEN_WIDTH a SCREEN_HEIGHT môžete zmeniť podľa svojho zobrazenia.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Potom definujte komunikačné piny SPI, kde je pripojený OLED displej.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Potom vytvorte inštanciu displeja Adafruit so šírkou a výškou definovanou skôr pomocou komunikačného protokolu SPI.
Displej Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Potom definujte pin Arduino, kde je pripojený snímač CO2.
int senzorIn = A0;
Teraz vo vnútri funkcie setup () inicializujte Serial Monitor s prenosovou rýchlosťou 9600 na účely ladenia. Inicializujte tiež OLED displej pomocou funkcie start () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); analogReference (DEFAULT);
Vo vnútri funkcie loop () najskôr načítajte hodnoty signálu na analógovom kolíku Arduina zavolaním funkcie analogRead () . Potom preveďte tieto hodnoty analógového signálu na hodnoty napätia.
void loop () {int sensorValue = analogRead (sensorIn); plavákové napätie = sensorValue * (5000 / 1024.0);
Potom porovnajte hodnoty napätia. Ak je napätie 0 V, znamená to, že sa vyskytol problém so snímačom. Ak je napätie vyššie ako 0 V, ale menšie ako 400 V, znamená to, že snímač je stále v procese predhrievania.
if (voltage == 0) {Serial.println ("Porucha"); } else if (napätie <400) {Serial.println ("predhrev"); }
Ak je napätie rovnaké alebo väčšie ako 400 V, prepočítajte ho na hodnoty koncentrácie CO2.
else {int voltage_diference = voltage-400; koncentrácia float = napätie_diferencia * 50,0 / 16,0;
Potom nastavte veľkosť a farbu textu pomocou metód setTextSize () a setTextColor () .
display.setTextSize (1); display.setTextColor (BIELA);
Potom v ďalšom riadku definujte pozíciu, kde text začína, pomocou metódy setCursor (x, y) . A tlačte hodnoty CO2 na OLED displeji pomocou funkcie display.println () .
display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (koncentrácia);
A v poslednej zavoláme metódu display () na zobrazenie textu na OLED displeji.
display.display (); display.clearDisplay ();
Testovanie prepojenia gravitačného infračerveného senzora CO2
Keď je hardvér a kód pripravený, je čas testovať snímač. Za týmto účelom pripojte Arduino k notebooku, vyberte dosku a port a stlačte tlačidlo nahrávania. Potom otvorte sériový monitor a počkajte nejaký čas (proces predhrievania), potom uvidíte konečné údaje.
Hodnoty sa zobrazia na OLED displeji, ako je uvedené nižšie:
Poznámka: Pred použitím senzora ho nechajte asi 24 hodín zahrievať, aby ste dosiahli správne hodnoty PPM. Keď som senzor napájal prvýkrát, výstupná koncentrácia CO2 bola 1 500 PPM až 1 700 PPM a po 24 hodinovom procese zahrievania sa výstupná koncentrácia CO2 znížila na 450 PPM až 500 PPM, čo sú správne hodnoty PPM. Preto je potrebné senzor pred použitím na meranie koncentrácie CO2 nakalibrovať.
Takto je možné použiť infračervený snímač CO2 na meranie presnej koncentrácie CO2 vo vzduchu. Celý kód a pracovné video sú uvedené nižšie. Ak máte pochybnosti, nechajte ich v sekcii komentárov alebo použite technickú pomoc na našich fórach.