- Komponente potrebne
- Gravitacijski infracrveni senzor CO2
- 0,96 'OLED modul zaslona
- Kružni dijagram
- Arduino kod za mjerenje koncentracije CO2
- Ispitivanje povezivanja gravitacijskog infracrvenog senzora CO2
Povećana koncentracija ugljičnog dioksida u zraku sada je postala ozbiljan problem. Prema izvješću NOAA, koncentracija ozona CO2 dosegla je 0,0385 posto (385 ppm) i to je najviša količina u 2,1 milijuna godina. To znači da u milijun čestica zraka ima 385 čestica ugljičnog dioksida. Ova rastuća razina CO2 loše je utjecala na okoliš i dovela nas do suočavanja sa situacijom poput klimatskih promjena i globalnog zagrijavanja. Na cestama su instalirani mnogi uređaji za mjerenje kvalitete zraka koji određuju razinu CO2, ali možemo i izraditi DIY uređaj za mjerenje CO2 koji ga možemo instalirati na našem području.
U ovom uputstvu povezat ćemo gravitacijski infracrveni CO2 senzor s Arduinom za mjerenje koncentracije CO2 u PPM. Gravitacijski infracrveni CO2 senzor visoko je precizan analogni CO2 senzor. Mjeri sadržaj CO2 u rasponu od 0 do 5000 ppm. Također možete provjeriti naše prethodne projekte u kojima smo koristili senzor za plin MQ135, senzor Sharp GP2Y1014AU0F i senzor Nova PM SDS011 za izradu monitora kvalitete zraka.
Komponente potrebne
- Arduino Nano
- Gravitacijski infracrveni CO2 senzor V1.1
- Jumper žice
- 0,96 'SPI OLED modul zaslona
- Breadboard
Gravitacijski infracrveni senzor CO2
Gravitacijski infracrveni CO2 senzor V1.1 najnoviji je visoko precizni analogni infracrveni CO2 senzor koji je objavio DFRobot. Ovaj se senzor temelji na nedisperzivnoj infracrvenoj (NDIR) tehnologiji i ima dobru selektivnost i ovisnost o kisiku. Integrira temperaturnu kompenzaciju i podržava DAC izlaz. Učinkovito područje mjerenja ovog senzora je od 0 do 5000 ppm s točnošću od ± 50 ppm + 3%. Ovaj infracrveni CO2 senzor može se koristiti u HVAC-u, praćenju kakvoće zraka u zatvorenom, industrijskim procesima i nadzoru sigurnosne zaštite, poljoprivredi i nadzoru procesa proizvodnje stoke.
Isječak infracrvenog CO2 osjetnika :
Kao što je ranije spomenuto, infracrveni senzor CO2 dolazi s 3-pinskim konektorom. Sljedeća slika i tablica prikazuje dodjele pinova za infracrveni senzor CO2:

|
Pin br. |
Naziv pribadače |
Opis |
|---|---|---|
|
1 |
Signal |
Analogni izlaz (0,4 ~ 2V) |
|
2 |
VCC |
VCC (4,5 ~ 5,5 V) |
|
3 |
GND |
GND |
Specifikacije i značajke infracrvenog senzora za CO2 :
- Otkrivanje plina: ugljični dioksid (CO2)
- Radni napon: 4,5 ~ 5,5V DC
- Vrijeme predgrijavanja: 3min
- Vrijeme odziva: 120s
- Radna temperatura: 0 ~ 50 ℃
- Vlažnost pri radu: 0 ~ 95% vlažnosti (bez kondenzacije)
- Vodootporan i antikorozivan
- Život visokog ciklusa
- Interferencija protiv vodene pare
0,96 'OLED modul zaslona
OLED (organske diode koje emitiraju svjetlost) je tehnologija koja samostalno emitira svjetlost, konstruirana postavljanjem niza organskih tankih filmova između dva vodiča. Kad se na te filmove primijeni električna struja, stvara se jako svjetlo. OLED-ovi koriste istu tehnologiju kao i televizori, ali imaju manje piksela nego u većini naših televizora.

Za ovaj projekt koristimo monokromatski 7-pinski SSD1306 0.96 ”OLED zaslon. Može raditi na tri različita komunikacijska protokola: SPI 3 Wire način, SPI četverožični način i I2C način. Pribadače i njegove funkcije objašnjene su u donjoj tablici:
OLED i njegove vrste već smo detaljno obradili u prethodnom članku.
|
Naziv pribadače |
Druga imena |
Opis |
|
Gnd |
Prizemlje |
Osovina uzemljenja modula |
|
Vdd |
Vcc, 5 V |
Priključak za napajanje (3-5V podnošljiv) |
|
SCK |
D0, SCL, CLK |
Djeluje kao zatik sata. Koristi se i za I2C i za SPI |
|
SDA |
D1, MOSI |
Podaci za pin modula. Koristi se i za IIC i za SPI |
|
OIE |
RST, VRAĆAJ |
Resetira modul (korisno tijekom SPI) |
|
DC |
A0 |
Podatkovna naredba. Koristi se za SPI protokol |
|
CS |
Odabir čipa |
Korisno kada se pod SPI protokolom koristi više modula |
OLED specifikacije:
- IC upravljačkog programa OLED: SSD1306
- Rezolucija: 128 x 64
- Vizualni kut:> 160 °
- Ulazni napon: 3.3V ~ 6V
- Boja piksela: plava
- Radna temperatura: -30 ° C ~ 70 ° C
Slijedeći vezu saznajte više o OLED-u i njegovom povezivanju s različitim mikrokontrolerima.
Kružni dijagram
Kružni dijagram za povezivanje analognog gravitacijskog infracrvenog senzora CO2 za Arduino dat je u nastavku:

Krug je vrlo jednostavan jer s Arduino Nano povezujemo samo gravitacijski infracrveni CO2 senzor i OLED zaslon. Infracrveni senzor CO2 i modul OLED zaslona napajaju se s + 5V i GND. Signalni (analogni izlaz) zatik CO2 osjetnika povezan je s A0 pinom Arduino Nano-a. Budući da OLED modul zaslona koristi SPI komunikaciju, uspostavili smo SPI komunikaciju između OLED modula i Arduino Nano-a. Veze su prikazane u donjoj tablici:
|
S.Br |
Pribadača OLED modula |
Arduino pin |
|
1 |
GND |
Prizemlje |
|
2 |
VCC |
5V |
|
3 |
D0 |
10 |
|
4 |
D1 |
9 |
|
5 |
OIE |
13 |
|
6 |
DC |
11 |
|
7 |
CS |
12 |
Nakon spajanja hardvera prema shemi sklopa, trebao bi izgledati otprilike dolje:

Arduino kod za mjerenje koncentracije CO2
Kompletni kod za ovaj gravitacijski analogni infracrveni senzor CO2 za Arduino projekt dat je na kraju dokumenta. Ovdje objašnjavamo neke važne dijelove koda.
Šifra koristi Adafruit_GFX , i Adafruit_SSD1306 knjižnice. Te se knjižnice mogu preuzeti iz Upravitelja biblioteka u Arduino IDE-u i odatle ih instalirati. Za to otvorite Arduino IDE i idite na Skica> Uključi biblioteku> Upravljanje knjižnicama . Sada potražite Adafruit GFX i instalirajte Adafruit GFX knjižnicu tvrtke Adafruit.

Slično tome, instalirajte Adafruit SSD1306 knjižnice tvrtke Adafruit. Infracrveni CO2 senzor ne zahtijeva knjižnicu jer vrijednosti napona čitamo izravno s analognog pina Arduina.
Nakon instalacije knjižnica u Arduino IDE, pokrenite kod uključivanjem potrebnih datoteka knjižnice. Senzor za prašinu ne zahtijeva knjižnicu jer se čitanje uzima izravno s analogne iglice Arduina.
#include
Zatim definirajte OLED širinu i visinu. U ovom projektu koristimo 128 × 64 SPI OLED zaslon. Možete promijeniti SCREEN_WIDTH i SCREEN_HEIGHT varijable prema vašem zaslonu.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Zatim definirajte SPI komunikacijske igle gdje je povezan OLED zaslon.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Zatim stvorite instancu prikaza Adafruit s širinom i visinom definiranom ranije pomoću SPI komunikacijskog protokola.
Zaslon Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Nakon toga definirajte Arduino pin na koji je spojen CO2 senzor.
int sensorIn = A0;
Sada unutar funkcije setup () , inicijalizirajte serijski monitor brzinom prijenosa od 9600 u svrhu otklanjanja pogrešaka. Također, inicijalizirajte OLED zaslon funkcijom start () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); analogReference (DEFAULT);
Unutar funkcije loop () , prvo pročitajte vrijednosti signala na analognom pinu Arduina pozivanjem funkcije analogRead () . Nakon toga pretvorite ove vrijednosti analognog signala u vrijednosti napona.
void loop () {int sensorValue = analogRead (sensorIn); plutajući napon = vrijednostVrijednosti * (5000 / 1024,0);
Nakon toga usporedite vrijednosti napona. Ako je napon 0 V, znači da je došlo do problema sa senzorom. Ako je napon veći od 0 V, ali manji od 400 V, to znači da je senzor još uvijek u procesu predgrijavanja.
if (napon == 0) {Serial.println ("Kvar"); } else if (napon <400) {Serial.println ("predgrijavanje"); }
Ako je napon jednak ili veći od 400 V, pretvorite ga u vrijednosti koncentracije CO2.
else {int napon_razlika = napon-400; koncentracija plovka = razlika napona_ 50,0 / 16,0;
Nakon toga postavite veličinu i boju teksta pomoću setTextSize () i setTextColor () .
display.setTextSize (1); display.setTextColor (BIJELO);
Zatim u sljedećem retku definirajte položaj na kojem započinje tekst metodom setCursor (x, y) . I ispišite vrijednosti CO2 na OLED zaslon pomoću funkcije display.println () .
display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (koncentracija);
I u posljednjem, nazovite display () metodu za prikaz teksta na OLED zaslonu.
display.display (); display.clearDisplay ();
Ispitivanje povezivanja gravitacijskog infracrvenog senzora CO2
Kad su hardver i kod spremni, vrijeme je da testirate senzor. Za to spojite Arduino na prijenosno računalo, odaberite ploču i priključak i pritisnite gumb za prijenos. Zatim otvorite svoj serijski monitor i pričekajte neko vrijeme (postupak predgrijavanja), a zatim ćete vidjeti konačne podatke.

Vrijednosti će se prikazati na OLED zaslonu kako je prikazano dolje:

Napomena: Prije uporabe senzora, ostavite da se senzor zagrijava približno 24 sata kako bi dobio točne vrijednosti PPM-a. Kad sam prvi put napajao senzor, izlazna koncentracija CO2 bila je 1500 PPM do 1700 PPM, a nakon 24-satnog postupka zagrijavanja, izlazna koncentracija CO2 smanjila se na 450 PPM do 500 PPM, što su točne vrijednosti PPM. Stoga je potrebno kalibrirati senzor prije nego što ga koristite za mjerenje koncentracije CO2.
Tako se infracrveni CO2 senzor može koristiti za mjerenje točne koncentracije CO2 u zraku. Kompletni kod i radni video dati su u nastavku. Ako sumnjate, ostavite ih u odjeljku za komentare ili upotrijebite naše forume za tehničku pomoć.
