- Požadované komponenty
- Gravitační infračervený snímač CO2
- 0,96 'OLED zobrazovací modul
- Kruhový diagram
- Arduino Code pro měření koncentrace CO2
- Testování propojení gravitačního infračerveného snímače CO2
Rostoucí koncentrace oxidu uhličitého ve vzduchu se nyní stala vážným problémem. Podle zprávy NOAA dosáhla koncentrace CO2 v ozónu 0,0385 procenta (385 ppm) a je to nejvyšší množství za 2,1 milionu let. To znamená, že v milionu částic vzduchu je 385 částic oxidu uhličitého. Tato rostoucí úroveň CO2 nepříznivě ovlivnila životní prostředí a vedla nás k tomu, abychom čelili situaci, jako je změna klimatu a globální oteplování. Na silnicích je instalováno mnoho přístrojů pro měření kvality vzduchu, které určují hladinu CO2, ale můžeme také postavit vlastní měřicí přístroj CO2 a nainstalovat jej v naší oblasti.
V tomto tutoriálu se chystáme propojit Gravity Infrared CO2 Sensor s Arduino pro měření koncentrace CO2 v PPM. Gravitační infračervený snímač CO2 je vysoce přesný analogový snímač CO2. Měří obsah CO2 v rozmezí 0 až 5 000 ppm. Můžete také zkontrolovat naše předchozí projekty, kde jsme k výrobě monitoru kvality vzduchu použili plynový senzor MQ135, senzor Sharp GP2Y1014AU0F a senzor Nova PM SDS011.
Požadované komponenty
- Arduino Nano
- Gravitační infračervený CO2 senzor V1.1
- Propojovací dráty
- 0,96 'SPI OLED displejový modul
- Nepájivá deska
Gravitační infračervený snímač CO2
Gravitační infračervený snímač CO2 V1.1 je nejnovější vysoce přesný analogový infračervený snímač CO2 vydaný společností DFRobot. Tento senzor je založen na nedisperzní infračervené technologii (NDIR) a má dobrou selektivitu a závislost na kyslíku. Integruje teplotní kompenzaci a podporuje výstup DAC. Efektivní měřící rozsah tohoto snímače je od 0 do 5 000 ppm s přesností ± 50 ppm + 3%. Tento infračervený snímač CO2 lze použít při HVAC, monitorování kvality vnitřního ovzduší, monitorování průmyslových procesů a zabezpečení, zemědělství a monitorování výrobních procesů v chovu zvířat.
Infračervený snímač CO2 :
Jak již bylo zmíněno dříve, infračervený snímač CO2 je dodáván s 3kolíkovým konektorem. Níže uvedený obrázek a tabulka ukazuje přiřazení pinů pro infračervený snímač CO2:
PIN č. |
Název PIN |
Popis |
---|---|---|
1 |
Signál |
Analogový výstup (0,4 ~ 2 V) |
2 |
VCC |
VCC (4,5 ~ 5,5 V) |
3 |
GND |
GND |
Specifikace a funkce infračerveného snímače CO2 :
- Detekce plynů: Oxid uhličitý (CO2)
- Provozní napětí: 4,5 ~ 5,5 V DC
- Doba předehřevu: 3 min
- Doba odezvy: 120 s
- Provozní teplota: 0 ~ 50 ℃
- Provozní vlhkost: 0 ~ 95% RH (bez kondenzace)
- Vodotěsný a antikorozní
- Vysoká životnost
- Rušení proti vodní páře
0,96 'OLED zobrazovací modul
OLED (Organic Light Emitting Diodes) je technologie samovolného vyzařování světla, konstruovaná umístěním řady organických tenkých vrstev mezi dva vodiče. Když je na tyto filmy aplikován elektrický proud, produkuje se jasné světlo. OLED používají stejnou technologii jako televizory, ale mají méně pixelů než ve většině našich televizorů.
Pro tento projekt používáme monochromatický 7pinový SSD1306 0,96 ”OLED displej. Může pracovat na třech různých komunikačních protokolech: režim SPI 3 Wire, režim SPI se čtyřmi vodiči a režim I2C. Piny a jejich funkce jsou vysvětleny v následující tabulce:
OLED a jeho typy jsme již podrobně popsali v předchozím článku.
Název PIN |
Ostatní jména |
Popis |
Gnd |
Přízemní |
Uzemňovací kolík modulu |
Vdd |
Vcc, 5V |
Napájecí kolík (tolerovatelný 3-5 V) |
SCK |
D0, SCL, CLK |
Funguje jako hodinový kolík. Používá se pro I2C i SPI |
SDA |
D1, MOSI |
Datový kolík modulu. Používá se pro IIC i SPI |
RES |
RST, RESET |
Resetuje modul (užitečné během SPI) |
DC |
A0 |
Datový příkazový kolík. Používá se pro protokol SPI |
CS |
Výběr čipu |
Užitečné, když se v protokolu SPI používá více než jeden modul |
Specifikace OLED:
- Ovladač OLED IC: SSD1306
- Rozlišení: 128 x 64
- Vizuální úhel:> 160 °
- Vstupní napětí: 3,3 V ~ 6 V
- Barva pixelu: modrá
- Pracovní teplota: -30 ° C ~ 70 ° C
Další informace o OLED a jeho propojení s různými mikrokontroléry získáte kliknutím na odkaz.
Kruhový diagram
Schéma zapojení rozhraní gravitačního analogového infračerveného snímače CO2 pro Arduino je uvedeno níže:
Obvod je velmi jednoduchý, protože propojujeme pouze gravitační infračervený snímač CO2 a modul OLED Display s Arduino Nano. Infračervený snímač CO2 a modul OLED displej jsou napájeny + 5 V a GND. Pin Signal (Analog Out) snímače CO2 je připojen k pinu A0 Arduino Nano. Protože modul OLED Display využívá komunikaci SPI, navázali jsme komunikaci SPI mezi modulem OLED a Arduino Nano. Připojení jsou uvedena v následující tabulce:
S.No |
Pin modulu OLED |
Pin Arduino |
1 |
GND |
Přízemní |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Po připojení hardwaru podle schématu zapojení by to mělo vypadat nějak takto:
Arduino Code pro měření koncentrace CO2
Úplný kód pro tento gravitační analogový infračervený snímač CO2 pro projekt Arduino je uveden na konci dokumentu. Zde vysvětlujeme některé důležité části kódu.
Kód používá Adafruit_GFX , a Adafruit_SSD1306 knihovny. Tyto knihovny lze stáhnout ze správce knihoven v prostředí Arduino IDE a odtud je nainstalovat. Za tímto účelem otevřete IDE Arduino a přejděte do části Skica> Zahrnout knihovnu> Správa knihoven . Nyní vyhledejte Adafruit GFX a nainstalujte knihovnu Adafruit GFX od společnosti Adafruit.
Podobně nainstalujte knihovny Adafruit SSD1306 od společnosti Adafruit. Infračervený snímač CO2 nevyžaduje žádnou knihovnu, protože načítáme hodnoty napětí přímo z analogového kolíku Arduina.
Po instalaci knihoven do Arduino IDE spusťte kód zahrnutím potřebných souborů knihovny. Senzor prachu nevyžaduje žádnou knihovnu, protože čtení je prováděno přímo z analogového pinu Arduina.
#zahrnout
Poté definujte šířku a výšku OLED. V tomto projektu používáme 128 × 64 SPI OLED displej. Proměnné SCREEN_WIDTH a SCREEN_HEIGHT můžete změnit podle svého zobrazení.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Poté definujte komunikační piny SPI, kde je připojen OLED displej.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Poté vytvořte instanci displeje Adafruit s šířkou a výškou definovanou dříve pomocí komunikačního protokolu SPI.
Adafruit_SSD1306 display (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Poté definujte pin Arduino, kde je připojen senzor CO2.
int sensorIn = A0;
Nyní uvnitř funkce setup () inicializujte Serial Monitor s přenosovou rychlostí 9600 pro účely ladění. Inicializujte také OLED displej pomocí funkce begin () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); analogReference (DEFAULT);
Uvnitř funkce loop () nejprve přečtěte hodnoty signálu na analogovém pinu Arduina voláním funkce analogRead () . Poté převeďte tyto hodnoty analogového signálu na hodnoty napětí.
void loop () {int sensorValue = analogRead (sensorIn); plovoucí napětí = sensorValue * (5000 / 1024.0);
Poté porovnejte hodnoty napětí. Pokud je napětí 0 V, znamená to, že u senzoru došlo k nějakému problému. Pokud je napětí vyšší než 0 V, ale menší než 400 V, znamená to, že snímač je stále v procesu předehřívání.
if (voltage == 0) {Serial.println ("Porucha"); } else if (napětí <400) {Serial.println ("předehřev"); }
Pokud je napětí stejné nebo větší než 400 V, převeďte jej na hodnoty koncentrace CO2.
else {int voltage_diference = voltage-400; koncentrace float = napětí_diference * 50,0 / 16,0;
Poté nastavte velikost a barvu textu pomocí setTextSize () a setTextColor () .
display.setTextSize (1); display.setTextColor (BÍLÁ);
Na dalším řádku pak pomocí metody setCursor (x, y) definujte pozici, kde text začíná. A tiskněte hodnoty CO2 na OLED displeji pomocí funkce display.println () .
display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (koncentrace);
A v poslední zavolejte metodu display () pro zobrazení textu na OLED displeji.
display.display (); display.clearDisplay ();
Testování propojení gravitačního infračerveného snímače CO2
Jakmile je hardware a kód připraven, je čas otestovat senzor. Za tímto účelem připojte Arduino k notebooku, vyberte desku a port a stiskněte tlačítko nahrávání. Poté otevřete sériový monitor a počkejte nějakou dobu (proces předehřátí), poté uvidíte konečná data.
Hodnoty se zobrazí na OLED displeji, jak je uvedeno níže:
Poznámka: Před použitím čidla jej nechejte asi 24 hodin zahřívat, abyste získali správné hodnoty PPM. Když jsem senzor napájel poprvé, byla výstupní koncentrace CO2 1500 PPM až 1700PPM a po 24hodinovém zahřívacím procesu klesla výstupní koncentrace CO2 na 450 PPM až 500 PPM, což jsou správné hodnoty PPM. Před použitím senzoru k měření koncentrace CO2 je tedy nutné jej kalibrovat.
Takto lze použít infračervený snímač CO2 k měření přesné koncentrace CO2 ve vzduchu. Celý kód a pracovní video jsou uvedeny níže. Máte-li jakékoli pochybnosti, nechte je v sekci komentářů nebo použijte technickou pomoc na našem fóru.