- Potrebne komponente
- Gravitacijski infrardeči senzor CO2
- 0,96-palčni zaslon OLED
- Shema vezja
- Koda Arduino za merjenje koncentracije CO2
- Testiranje vmesnika gravitacijskega infrardečega senzorja CO2
Vse večja koncentracija ogljikovega dioksida v zraku je zdaj postala resen problem. Po poročilu NOAA je koncentracija ozona CO2 dosegla 0,0385 odstotka (385 ppm) in je najvišja količina v 2,1 milijona let. To pomeni, da je v milijonu delcev zraka 385 delcev ogljikovega dioksida. Ta naraščajoča raven CO2 je močno vplivala na okolje in nas pripeljala do razmer, kot so podnebne spremembe in globalno segrevanje. Na cestah je nameščenih veliko naprav za merjenje kakovosti zraka, ki določajo raven CO2, lahko pa izdelamo tudi napravo za merjenje CO2 DIY, ki jo lahko namestimo na našem območju.
V tej vadnici bomo povezali Gravitacijski infrardeči senzor CO2 z Arduino za merjenje koncentracije CO2 v PPM. Gravitacijski infrardeči senzor CO2 je visoko natančen analogni senzor CO2. Vsebnost CO2 meri v območju od 0 do 5000 ppm. Prav tako lahko preverite naše prejšnje projekte, kjer smo za izdelavo monitorja kakovosti zraka uporabili senzor za plin MQ135, senzor Sharp GP2Y1014AU0F in senzor Nova PM SDS011.
Potrebne komponente
- Arduino Nano
- Gravitacijski infrardeči senzor CO2 V1.1
- Jumper žice
- 0,96-palčni zaslon SPI OLED
- Breadboard
Gravitacijski infrardeči senzor CO2
Gravity Infrared CO2 Sensor V1.1 je najnovejši visoko natančni analogni infrardeči CO2 senzor, ki ga je izdal DFRobot. Ta senzor temelji na nedisperzni infrardeči (NDIR) tehnologiji in ima dobro selektivnost in odvisnost od kisika. Vključuje temperaturno kompenzacijo in podpira izhod DAC. Učinkovito merilno območje tega senzorja je od 0 do 5000 ppm s točnostjo ± 50 ppm + 3%. Ta infrardeči senzor CO2 se lahko uporablja v sistemih HVAC, spremljanju kakovosti zraka v zaprtih prostorih, industrijskih procesih in nadzoru zaščite, kmetijstvu in spremljanju proizvodnih procesov.
Infrardeči izhod za senzor CO2 :
Kot je bilo že omenjeno, CO2 senzor Infrardeči opremljen s konektorjem 3-pin. Spodnja slika in tabela prikazuje dodelitve zatičev za infrardeči senzor CO2:
Pin št. |
Pripnite ime |
Opis |
---|---|---|
1. |
Signal |
Analogni izhod (0,4 ~ 2V) |
2. |
VCC |
VCC (4,5 ~ 5,5 V) |
3. |
GND |
GND |
Specifikacije in lastnosti infrardečega senzorja CO2 :
- Zaznavanje plinov: ogljikov dioksid (CO2)
- Delovna napetost: 4,5 ~ 5,5V DC
- Čas predgrevanja: 3 min
- Odzivni čas: 120 s
- Delovna temperatura: 0 ~ 50 ℃
- Vlažnost pri obratovanju: 0 ~ 95% RH (brez kondenzacije)
- Vodotesna in protikorozijska
- Življenjska doba visokega cikla
- Motnje proti vodnim hlapom
0,96-palčni zaslon OLED
OLED (organske diode, ki oddajajo svetlobo) je samosevalna tehnologija, izdelana tako, da med dva vodnika postavi vrsto organskih tankih filmov. Ko na te filme deluje električni tok, nastane močna svetloba. OLED uporabljajo enako tehnologijo kot televizorji, vendar imajo manj slikovnih pik kot pri večini naših televizorjev.
Za ta projekt uporabljamo enobarvni 7-pinski SSD1306 0,96-palčni OLED zaslon. Deluje lahko na treh različnih komunikacijskih protokolih: SPI 3 Wire način, SPI štirižični način in I2C način. Zatiči in njegove funkcije so razloženi v spodnji tabeli:
OLED in njegove vrste smo že podrobno obravnavali v prejšnjem članku.
Pripnite ime |
Druga imena |
Opis |
Gnd |
Tla |
Ozemljitveni zatič modula |
Vdd |
Vcc, 5V |
Napajalni zatič (3-5V sprejemljivo) |
SCK |
D0, SCL, CLK |
Deluje kot zatič ure. Uporablja se za I2C in SPI |
SDA |
D1, MOSI |
Podatkovni zatič modula. Uporablja se za IIC in SPI |
OVE |
RST, PONASTAVI |
Ponastavi modul (uporabno med SPI) |
DC |
A0 |
Podatkovni ukazni zatič. Uporablja se za protokol SPI |
CS |
Chip Select |
Uporabno, če se po protokolu SPI uporablja več modulov |
Specifikacije OLED:
- Gonilna enota OLED: SSD1306
- Ločljivost: 128 x 64
- Vidni kot:> 160 °
- Vhodna napetost: 3.3V ~ 6V
- Barva piksla: modra
- Delovna temperatura: -30 ° C ~ 70 ° C
Na povezavi preberite več o OLED in njegovem povezovanju z različnimi mikrokrmilniki.
Shema vezja
Shema vezja za povezovanje gravitacijskega analognega infrardečega senzorja CO2 za Arduino je podana spodaj:
Vezje je zelo preprosto, saj z Arduino Nano povezujemo le gravitacijski infrardeči senzor CO2 in OLED modul zaslona. Infrardeči senzor CO2 in modul OLED zaslona sta napajana z + 5V in GND. Zatič za signal (analogni izhod) senzorja CO2 je povezan z zatičem A0 Arduino Nano. Ker modul OLED Display uporablja komunikacijo SPI, smo vzpostavili komunikacijo SPI med modulom OLED in Arduino Nano. Povezave so prikazane v spodnji tabeli:
S. Št |
Zatič modula OLED |
Arduino Pin |
1. |
GND |
Tla |
2. |
VCC |
5V |
3. |
D0 |
10. |
4. |
D1 |
9. |
5. |
OVE |
13. |
6. |
DC |
11. |
7. |
CS |
12. |
Po priključitvi strojne opreme v skladu z vezjem mora biti videti nekako takole spodaj:
Koda Arduino za merjenje koncentracije CO2
Popolna koda tega gravitacijsko analognega infrardečega senzorja CO2 za projekt Arduino je podana na koncu dokumenta. Tukaj razlagamo nekatere pomembne dele kode.
Koda uporablja Adafruit_GFX , in Adafruit_SSD1306 knjižnice. Te knjižnice lahko prenesete iz upravitelja knjižnic v IDE Arduino in jih namestite od tam. Za to odprite Arduino IDE in pojdite na Sketch> Include Library> Manage Libraries . Zdaj poiščite Adafruit GFX in namestite Adafruit GFX knjižnico Adafruit.
Podobno namestite Adafruit knjižnice Adafruit SSD1306. Infrardeči senzor CO2 ne potrebuje knjižnice, saj beremo vrednosti napetosti neposredno z analognega zatiča Arduino.
Po namestitvi knjižnic v Arduino IDE zaženite kodo tako, da vključite potrebne knjižnične datoteke. Senzor za prah ne potrebuje knjižnice, saj je branje neposredno z analognega zatiča Arduino.
#include
Nato določite širino in višino OLED. V tem projektu uporabljamo 128 x 64 SPI OLED zaslon. Spremenljivki SCREEN_WIDTH in SCREEN_HEIGHT lahko spremenite glede na zaslon.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Nato določite komunikacijske nožice SPI, kamor je povezan OLED zaslon.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Nato ustvarite prikazni primerek Adafruit s prej definirano širino in višino s komunikacijskim protokolom SPI.
Zaslon Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Po tem določite zatič Arduino, kamor je priključen senzor CO2.
int sensorIn = A0;
Zdaj znotraj funkcije setup () inicializirajte serijski monitor s hitrostjo prenosa 9600 za namene odpravljanja napak. Prav tako inicializirajte zaslon OLED s funkcijo start () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); analogReference (DEFAULT);
Znotraj funkcije zanke () najprej preberite vrednosti signala na analognem zatiču Arduino s klicanjem funkcije analogRead () . Po tem pretvorite te vrednosti analognega signala v vrednosti napetosti.
void loop () {int sensorValue = analogRead (sensorIn); plavajoča napetost = senzorValue * (5000 / 1024,0);
Po tem primerjajte vrednosti napetosti. Če je napetost 0 V, to pomeni, da je prišlo do težave s senzorjem. Če je napetost večja od 0 V, vendar manjša od 400 V, to pomeni, da je senzor še vedno v postopku predgrevanja.
if (napetost == 0) {Serial.println ("Napaka"); } else if (napetost <400) {Serial.println ("predgrevanje"); }
Če je napetost enaka ali večja od 400 V, jo pretvorite v vrednosti koncentracije CO2.
else {int napetost_diferenca = napetost-400; koncentracija plovca = razlika napetosti * 50,0 / 16,0;
Po tem nastavite velikost besedila in barvo besedila s pomočjo setTextSize () in setTextColor () .
display.setTextSize (1); display.setTextColor (BELA);
Nato v naslednji vrstici z metodo setCursor (x, y) določite položaj, na katerem se začne besedilo. In natisnite vrednosti CO2 na OLED zaslon s funkcijo display.println () .
display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (koncentracija);
In zadnji, pokličite metodo display () za prikaz besedila na OLED zaslonu.
display.display (); display.clearDisplay ();
Testiranje vmesnika gravitacijskega infrardečega senzorja CO2
Ko sta strojna oprema in koda pripravljeni, je čas, da preizkusite senzor. Za to Arduino priključite na prenosni računalnik, izberite ploščo in vrata ter pritisnite gumb za prenos. Nato odprite serijski monitor in počakajte nekaj časa (postopek predgretja), nato boste videli končne podatke.
Vrednosti bodo prikazane na zaslonu OLED, kot je prikazano spodaj:
Opomba: Pred uporabo senzorja pustite, da se senzor ogreje približno 24 ur, da dobi pravilne vrednosti PPM. Ko sem prvič napajal senzor, je bila izhodna koncentracija CO2 1500 PPM do 1700 PPM in po 24-urnem postopku segrevanja se je koncentracija izhodnega CO2 zmanjšala na 450 PPM do 500 PPM, kar so pravilne vrednosti PPM. Zato je treba senzor umeriti, preden ga uporabite za merjenje koncentracije CO2.
Tako lahko z infrardečim senzorjem CO2 izmerimo natančno koncentracijo CO2 v zraku. Celotna koda in delovni video sta podana spodaj. Če dvomite, jih pustite v oddelku za komentarje ali uporabite tehnično forume za tehnično pomoč.