- Kinakailangan ang Mga Bahagi
- Gravity Infrared CO2 Sensor
- 0.96 'OLED Display Module
- Diagram ng Circuit
- Arduino Code upang Sukatin ang CO2 Konsentrasyon
- Pagsubok sa Interfacing ng Gravity Infrared CO2 Sensor
Ang pagtaas ng konsentrasyon ng carbon dioxide sa hangin ay naging isang seryosong problema ngayon. Ayon sa ulat ng NOAA, ang konsentrasyon ng ozone CO2 ay umabot sa 0.0385 porsyento (385 ppm) at ito ang pinakamataas na halaga sa 2.1 milyong taon. Nangangahulugan ito na sa isang milyong mga particle ng hangin, mayroong 385 na mga particle ng carbon dioxide. Ang tumataas na antas ng CO2 na ito ay nakaapekto nang masama sa kapaligiran at humantong sa amin na harapin ang sitwasyon tulad ng pagbabago ng klima at global warming. Maraming mga aparato sa pagsukat ng kalidad ng hangin na naka-install sa mga kalsada upang sabihin sa antas ng CO2, ngunit maaari rin kaming bumuo ng isang DIY CO2 na sumusukat na aparato at mai-install ito sa aming lugar.
Sa tutorial na ito, ilalagay namin ang interface ng Gravity Infrared CO2 Sensor kasama ang Arduino upang masukat ang konsentrasyon ng CO2 sa PPM. Ang Gravity Infrared CO2 Sensor ay isang mataas na katumpakan na analog CO2 sensor. Sinusukat nito ang nilalaman ng CO2 sa saklaw na 0 hanggang 5000 ppm. Maaari mo ring suriin ang aming mga nakaraang proyekto kung saan ginamit namin ang MQ135 Gas sensor, Sharp GP2Y1014AU0F Sensor, at Nova PM Sensor SDS011 upang bumuo ng isang monitor ng kalidad ng hangin.
Kinakailangan ang Mga Bahagi
- Arduino Nano
- Gravity Infrared CO2 Sensor V1.1
- Jumper Wires
- 0.96 'SPI OLED Display Module
- Breadboard
Gravity Infrared CO2 Sensor
Ang Gravity Infrared CO2 Sensor V1.1 ay ang pinakabagong high-precision analog infrared CO2 sensor na inilabas ng DFRobot. Ang sensor na ito ay batay sa teknolohiyang hindi nagkakalat na infrared (NDIR) at may mahusay na pagpili at walang pagtitiwala na walang oxygen. Isinasama nito ang kompensasyon sa temperatura at sinusuportahan ang output ng DAC. Ang mabisang saklaw ng pagsukat ng sensor na ito ay mula 0 hanggang 5000ppm na may katumpakan na ± 50ppm + 3%. Ang Infrared CO2 Sensor ay maaaring magamit sa HVAC, pagsubaybay sa kalidad ng hangin sa panloob, proseso ng pang-industriya, at pagsubaybay sa proteksyon ng seguridad, agrikultura, at pagsubaybay sa proseso ng produksyon ng pag-aalaga ng hayop.
Infrared CO2 Sensor Pinout:
Tulad ng nabanggit kanina, ang Infrared CO2 Sensor ay may kasamang 3-pin na konektor. Ipinapakita ng numero sa ibaba at talahanayan ang mga takdang-pin para sa Infrared CO2 Sensor:
Pin No. |
Pangalan ng Pin |
Paglalarawan |
---|---|---|
1 |
Hudyat |
Analog Output (0.4 ~ 2V) |
2 |
VCC |
VCC (4.5 ~ 5.5V) |
3 |
GND |
GND |
Mga Impormasyon at Tampok ng Infrared CO2 Sensor :
- Pagtuklas ng Gas: Carbon Dioxide (CO2)
- Operating Boltahe: 4.5 ~ 5.5V DC
- Oras ng Preheating: 3min
- Oras ng Tugon: 120s
- Temperatura sa Pagpapatakbo: 0 ~ 50 ℃
- Pagpapatakbo ng Humidity: 0 ~ 95% RH (walang paghalay)
- Hindi tinatagusan ng tubig at anti-kaagnasan
- Mataas na ikot ng buhay
- Pagkagambala ng anti-water vapor
0.96 'OLED Display Module
Ang OLED (Organic Light-Emitting Diodes) ay isang teknolohiyang nagpapalabas ng ilaw, na itinayo sa pamamagitan ng paglalagay ng isang serye ng mga organikong manipis na pelikula sa pagitan ng dalawang conductor. Ang isang maliwanag na ilaw ay ginawa kapag ang isang kasalukuyang kuryente ay inilalapat sa mga pelikulang ito. Gumagamit ang OLED ng parehong teknolohiya sa mga telebisyon, ngunit may mas kaunting mga pixel kaysa sa karamihan sa aming mga TV.
Para sa proyektong ito, gumagamit kami ng isang display na Monochrome 7-pin SSD1306 0.96 ”OLED. Maaari itong gumana sa tatlong magkakaibang Mga Protocol ng komunikasyon: SPI 3 Wire mode, SPI mode na apat na kawad, at I2C mode. Ang mga pin at mga pag-andar nito ay ipinaliwanag sa talahanayan sa ibaba:
Natakpan na namin ang OLED at ang mga uri nito nang detalyado sa nakaraang artikulo.
Pangalan ng Pin |
Ibang pangalan |
Paglalarawan |
Gnd |
Lupa |
Ground pin ng modyul |
Vdd |
Vcc, 5V |
Power pin (3-5V matitiis) |
SCK |
D0, SCL, CLK |
Gumagawa bilang pin ng orasan. Ginamit para sa parehong I2C at SPI |
SDA |
D1, MOSI |
Data pin ng modyul. Ginamit para sa parehong IIC at SPI |
RES |
RST, I-reset |
I-reset ang module (kapaki-pakinabang sa panahon ng SPI) |
DC |
A0 |
Data Command pin. Ginamit para sa SPI protocol |
CS |
Piliin ang Chip |
Kapaki-pakinabang kapag higit sa isang module ang ginamit sa ilalim ng SPI protocol |
Mga pagtutukoy ng OLED:
- OLED Driver IC: SSD1306
- Resolusyon: 128 x 64
- Angulo ng Biswal:> 160 °
- Boltahe ng Pag-input: 3.3V ~ 6V
- Kulay ng Pixel: Asul
- Paggawa ng temperatura: -30 ° C ~ 70 ° C
Matuto nang higit pa tungkol sa OLED at ang pag-interfaced nito sa iba't ibang mga microcontroller sa pamamagitan ng pagsunod sa link.
Diagram ng Circuit
Circuit Diagram para sa interfacing Gravity Analog Infrared CO2 Sensor para sa Arduino ay ibinibigay sa ibaba:
Napakadali ng circuit dahil kumokonekta lamang kami sa Gravity Infrared CO2 Sensor at OLED Display module sa Arduino Nano. Ang infrared CO2 Sensor at OLED Display module ay parehong pinalakas ng + 5V at GND. Ang Signal (Analog Out) na pin ng sensor ng CO2 ay konektado sa A0 pin ng Arduino Nano. Dahil ang module ng OLED Display ay gumagamit ng komunikasyon sa SPI, nagtaguyod kami ng isang komunikasyon sa SPI sa pagitan ng OLED module at Arduino Nano. Ang mga koneksyon ay ipinapakita sa talahanayan sa ibaba:
S.Hindi |
OLED Module Pin |
Arduino Pin |
1 |
GND |
Lupa |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Matapos ikonekta ang hardware ayon sa circuit diagram, dapat itong magmukhang katulad sa ibaba:
Arduino Code upang Sukatin ang CO2 Konsentrasyon
Ang kumpletong code para sa proyektong Gravity Analog Infrared CO2 Sensor para sa Arduino na ito ay ibinigay sa dulo ng dokumento. Narito ipinapaliwanag namin ang ilang mahahalagang bahagi ng code.
Gumagamit ang code ng mga aklatan ng Adafruit_GFX , at Adafruit_SSD1306 . Ang mga aklatan na ito ay maaaring ma-download mula sa Library Manager sa Arduino IDE at mai-install ito mula doon. Para doon, buksan ang Arduino IDE at pumunta sa Sketch> Isama ang Library> Pamahalaan ang Mga Aklatan . Maghanap ngayon para sa Adafruit GFX at i-install ang Adafruit GFX library ng Adafruit.
Katulad nito, i-install ang mga aklatan ng Adafruit SSD1306 ng Adafruit. Ang sensor ng Infrared CO2 ay hindi nangangailangan ng anumang library habang binabasa namin ang mga halaga ng boltahe nang direkta mula sa analog pin ng Arduino.
Matapos mai-install ang mga aklatan sa Arduino IDE, simulan ang code sa pamamagitan ng pagsasama ng mga kinakailangang file ng library. Ang sensor ng alikabok ay hindi nangangailangan ng anumang silid-aklatan dahil ang pagbabasa ay kinuha nang direkta mula sa analog pin ng Arduino.
# isama
Pagkatapos, tukuyin ang lapad at taas ng OLED. Sa proyektong ito, gumagamit kami ng isang 128 × 64 SPI OLED display. Maaari mong baguhin ang mga variable ng SCREEN_WIDTH , at SCREEN_HEIGHT ayon sa iyong display.
# tukuyin ang SCREEN_WIDTH 128 # tukuyin ang SCREEN_HEIGHT 64
Pagkatapos tukuyin ang mga pin ng komunikasyon ng SPI kung saan nakakonekta ang OLED Display.
#define OLED_MOSI 9 # tukuyin ang OLED_CLK 10 # tukuyin ang OLED_DC 11 # tukuyin ang OLED_CS 12 # tukuyin ang OLED_RESET 13
Pagkatapos, lumikha ng isang halimbawa ng pagpapakita ng Adafruit na may lapad at taas na tinukoy nang mas maaga sa protocol ng komunikasyon ng SPI.
Display ng Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Pagkatapos nito, tukuyin ang Arduino pin kung saan nakakonekta ang sensor ng CO2.
int sensorIn = A0;
Sa loob ng pag- andar ng pag- setup () , ipasimula ang Serial Monitor sa isang rate ng baud na 9600 para sa mga layuning pag-debug. Gayundin, ipasimula ang pagpapakita ng OLED sa pagsisimula ng () pagpapaandar.
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); sangguniang analogRefer (DEFAULT);
Sa loob ng pag- andar ng loop () , basahin muna ang mga halaga ng signal sa Analog pin ng Arduino sa pamamagitan ng pagtawag sa pagpapaandar ng analogRead () . Pagkatapos nito, i-convert ang mga halagang ito ng analog signal sa mga halagang boltahe.
void loop () {int sensorValue = analogRead (sensorIn); float boltahe = sensorValue * (5000 / 1024.0);
Pagkatapos nito, ihambing ang mga halaga ng boltahe. Kung ang boltahe ay 0 V, nangangahulugan ito na ang ilang problema ay naganap sa sensor. Kung ang boltahe ay mas malaki sa 0 V ngunit mas mababa sa 400 V, pagkatapos ay nangangahulugan ito na ang sensor ay nasa proseso pa rin bago ang pag-init.
kung (boltahe == 0) {Serial.println ("Fault"); } iba pa kung (boltahe <400) {Serial.println ("preheating"); }
Kung ang boltahe ay pantay o mas malaki sa 400 V, pagkatapos ay i-convert ito sa mga halaga ng konsentrasyon ng CO2.
iba pa {int voltage_diference = voltage-400; float konsentrasyon = boltahe_diference * 50.0 / 16.0;
Pagkatapos nito, itakda ang laki ng teksto at kulay ng teksto gamit ang setTextSize () at setTextColor () .
display.setTextSize (1); display.setTextColor (PUTI);
Pagkatapos sa susunod na linya, tukuyin ang posisyon kung saan nagsisimula ang teksto gamit ang setCursor (x, y) na pamamaraan. At i-print ang CO2 Mga Halaga sa OLED Display gamit ang display.println () function.
display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (konsentrasyon);
At sa huli, tawagan ang paraan ng pagpapakita () upang maipakita ang teksto sa OLED Display.
display.display (); display.clearDisplay ();
Pagsubok sa Interfacing ng Gravity Infrared CO2 Sensor
Kapag handa na ang hardware at code, oras na upang subukan ang sensor. Para doon, ikonekta ang Arduino sa laptop, piliin ang Lupon at Port, at pindutin ang pindutan ng pag-upload. Pagkatapos buksan ang iyong serial monitor at maghintay ng kaunting oras (proseso ng preheat), pagkatapos ay makikita mo ang pangwakas na data.
Ipapakita ang Mga Halaga sa display na OLED tulad ng ipinakita sa ibaba:
Tandaan: Bago gamitin ang sensor, hayaan ang pag-init ng sensor nang humigit-kumulang na 24 na oras upang makakuha ng wastong mga halaga ng PPM. Kapag pinapagana ko ang sensor sa kauna-unahang pagkakataon, ang output ng konsentrasyon ng CO2 ay 1500 PPM hanggang 1700PPM at pagkatapos ng isang 24 na oras na proseso ng pag-init, ang output ng konsentrasyon ng CO2 ay bumaba sa 450 PPM hanggang 500 PPM na wastong mga halaga ng PPM. Kaya kinakailangan upang i-calibrate ang sensor bago gamitin ito upang masukat ang konsentrasyon ng CO2.
Ito ay kung paano magagamit ang isang Infrared CO2 sensor upang masukat ang tumpak na konsentrasyon ng CO2 sa hangin. Ang kumpletong code at gumaganang video ay ibinibigay sa ibaba. Kung mayroon kang anumang mga pagdududa, iwanan ang mga ito sa seksyon ng komento o gamitin ang aming mga forum para sa panteknikal na tulong.