- Kinakailangan ang Mga Bahagi
- 0.96 'OLED Display Module
- Paghahanda ng MQ-135 Sensor
- Circuit Diagram sa Interface MQ135 kasama ang Arduino
- Kinakalkula ang R
- Code upang Sukatin ang CO2 Gamit ang Arduino MQ135 Sensor
- Pagsubok sa Interfacing ng MQ-135 Sensor
Ang antas ng Atmospheric CO2 sa lupa ay dumarami araw-araw. Ang pandaigdigang average atmospheric carbon dioxide noong 2019 ay 409.8 bahagi bawat milyon at sa Oktubre-2020 ito ay 411.29. Ang Carbon dioxide ay isang pangunahing greenhouse gas at responsable para sa halos tatlong-kapat ng emissions. Kaya't ang pagsubaybay sa antas ng CO2 ay nagsimula ring makakuha ng kahalagahan.
Sa aming nakaraang proyekto, ginamit namin ang sensor ng Gravity Infrared CO2 upang masukat ang konsentrasyon ng CO2 sa hangin. Sa proyektong ito, gagamit kami ng isang MQ-135 sensor na may Arduino upang masukat ang konsentrasyon ng CO2. Ang sinusukat na halaga ng konsentrasyon ng CO2 ay ipapakita sa module ng OLED at huling ihahambing din namin ang mga pagbasa ng sensor ng Arduino MQ-135 sa mga pagbabasa ng Infrared CO2 sensor. Bukod sa CO2, sinukat din namin ang konsentrasyon ng LPG, Usok, at Ammonia gas gamit ang Arduino.
Kinakailangan ang Mga Bahagi
- Arduino Nano
- MQ-135 Sensor
- Jumper Wires
- 0.96 'SPI OLED Display Module
- Breadboard
- 22KΩ Resistor
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. Maaari mo ring malaman ang higit pa tungkol sa mga pangunahing kaalaman ng OLED display at mga uri nito sa pamamagitan ng pagbabasa ng naka-link na artikulo. Ang mga pin at mga pag-andar nito ay ipinaliwanag sa talahanayan sa ibaba:
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
Paghahanda ng MQ-135 Sensor
Ang MQ-135 Gas Sensor ay isang sensor ng kalidad ng hangin para sa pagtuklas ng isang malawak na hanay ng mga gas, kabilang ang NH3, NOx, alkohol, benzene, usok, at CO2. Ang MQ-135 sensor ay maaaring binili bilang isang module o tulad din ng isang sensor na nag-iisa. Sa proyektong ito, gumagamit kami ng isang module ng sensor ng MQ-135 upang masukat ang konsentrasyon ng CO2 sa PPM. Ang circuit diagram para sa board ng MQ-135 ay ibinibigay sa ibaba:
Ang resistor ng load RL ay may gampanan na napakahalagang papel sa paggana ng sensor. Binabago ng resistor na ito ang halaga ng paglaban nito alinsunod sa konsentrasyon ng gas. Ayon sa MQ-135 datasheet, ang halaga ng resistor ng pagkarga ay maaaring saklaw saanman mula 10KΩ hanggang 47KΩ. Inirekomenda ng datasheet na i-calibrate mo ang detector para sa 100ppm NH3 o 50ppm Alkohol na konsentrasyon sa hangin at gumamit ng halaga ng resistensya sa pag-load (RL) na humigit-kumulang 20 KΩ. Ngunit kung susubaybayan mo ang iyong mga bakas sa PCB upang mahanap ang halaga ng iyong RL sa pisara, maaari mong makita ang isang 1KΩ (102) load resistor.
Kaya upang masukat ang naaangkop na mga halaga ng konsentrasyon ng CO2, kailangan mong palitan ang risistor ng 1KΩ ng isang resistor na 22KΩ.
Circuit Diagram sa Interface MQ135 kasama ang Arduino
Ang kumpletong mga eskematiko upang ikonekta ang MQ-135 Gas Sensor sa Arduino ay ibinibigay sa ibaba:
Napakadali ng circuit dahil kumokonekta lamang kami sa MQ-135 Sensor at OLED Display module kay Arduino Nano. Ang MQ-135 Gas Sensor at OLED Display module ay parehong pinalakas ng + 5V at GND. Ang pin ng Analog Out ng sensor ng MQ-135 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 alinsunod sa diagram ng circuit, ang pag-setup ng Arduino MQ135 na sensor ay dapat magmukhang katulad sa ibaba:
Kinakalkula ang R
Ngayong alam na natin ang halaga ng RL, magpatuloy tayo sa kung paano makalkula ang mga halagang R o sa malinis na hangin. Dito ay gagamitin namin ang MQ135.h upang masukat ang konsentrasyon ng CO2 sa hangin. Kaya i-download muna ang MQ-135 Library, pagkatapos ay painitin muna ang sensor nang 24 na oras bago basahin ang mga halagang R o. Matapos ang proseso ng preheating, gamitin ang code sa ibaba upang mabasa ang mga halagang R o:
# isama ang "MQ135.h" walang bisa na pag-set up () {Serial.begin (9600); } void loop () {MQ135 gasSensor = MQ135 (A0); // Attach sensor to pin A0 float rzero = gasSensor.getRZero (); Serial.println (rzero); pagkaantala (1000); }
Ngayon sa sandaling nakuha mo ang mga halagang R o, Pumunta sa Mga Dokumento> Arduino> mga aklatan> MQ135-master folder at buksan ang MQ135.h file at baguhin ang mga halaga ng RLOAD & RZERO.
/// Ang paglaban sa pag-load sa board #define RLOAD 22.0 /// Ang paglaban sa pagkakalibrate sa antas ng atmospera CO2 # tukuyin ang RZERO 5804.99
Ngayon mag-scroll pababa at palitan ang halaga ng ATMOCO2 sa kasalukuyang Atmospheric CO2 na 411.29
/// Atmospheric CO2 antas para sa mga layunin sa pagkakalibrate # tukuyin ang ATMOCO2 397.13
Code upang Sukatin ang CO2 Gamit ang Arduino MQ135 Sensor
Ang kumpletong code para sa interfacing MQ-135 Sensor na may Arduino ay ibinibigay sa dulo ng dokumento. Narito ipinapaliwanag namin ang ilang mahahalagang bahagi ng MQ135 Arduino code.
Gumagamit ang code ng mga aklatan ng Adafruit_GFX , at Adafruit_SSD1306 , at MQ135.h . 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. Maaaring ma-download ang MQ135 library mula rito.
Matapos mai-install ang mga aklatan sa Arduino IDE, simulan ang code sa pamamagitan ng pagsasama ng mga kinakailangang file ng mga library.
# isama ang "MQ135.h" # 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 MQ-135 sensor.
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); display.clearDisplay ();
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 () .
val = analogRead (A0); Serial.print ("raw =");
Pagkatapos sa susunod na linya, tawagan ang gasSensor.getPPM () upang makalkula ang mga halagang PPM. Ang mga halaga ng PPM ay kinakalkula gamit ang Load resistor, R 0, at pagbabasa mula sa analog pin.
float ppm = gasSensor.getPPM (); Serial.print ("ppm:"); Serial.println (ppm);
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.setCursor (18,43); display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (ppm);
At sa huli, tawagan ang paraan ng pagpapakita () upang maipakita ang teksto sa OLED Display.
display.display (); display.clearDisplay ();
Pagsubok sa Interfacing ng MQ-135 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:
Ito ay kung paano magagamit ang isang MQ-135 sensor upang masukat ang tumpak na CO2 sa hangin. Ang kumpletong MQ135 Air Quality Sensor Arduino Code at gumaganang video ay ibinibigay sa ibaba. Kung mayroon kang anumang mga pagdududa, iwanan ang mga ito sa seksyon ng komento.