- Kinakailangan ang Mga Bahagi
- Nova PM Sensor SDS011
- 0.96 'OLED Display Module
- Circuit Diagram para sa Air Quality Analyzer
- Pagbuo ng Circuit on Perf Board
- Paliwanag sa Code para sa Monitor ng Kalidad ng Air
- Pagsubok sa Arduino Air Quality Monitor
Ang polusyon sa hangin ay isang pangunahing isyu sa maraming mga lungsod at ang index ng kalidad ng hangin ay lumalala araw-araw. Ayon sa ulat ng World Health Organization, maraming tao ang napatay ng maaga sa mga epekto ng mapanganib na mga maliit na butil na ipinakita sa hangin kaysa sa mga aksidente sa sasakyan. Ayon sa Environmental Protection Agency (EPA), ang panloob na hangin ay maaaring 2 hanggang 5 beses na mas nakakalason kaysa sa panlabas na hangin. Kaya dito nagtatayo kami ng isang aparato upang subaybayan ang kalidad ng hangin sa pamamagitan ng pagsukat ng mga maliit na butil ng PM2.5 at PM10 sa hangin.
Ginamit namin dati ang MQ135 Gas sensor para sa monitor ng kalidad ng Air at ang Sharp GP2Y1014AU0F Sensor para sa pagsukat ng density ng alikabok sa hangin. Sa oras na ito ay gumagamit kami ng isang sensor ng SDS011 kasama ang Arduino Nano upang maitayo ang Air quality Analyzer. Maaaring makalkula ng sensor ng SDS011 ang mga konsentrasyon ng PM2.5 at PM10 na mga particle sa hangin. Dito makikita ang real-time na PM2.5 at PM 10 na mga halaga sa OLED display.
Kinakailangan ang Mga Bahagi
- Arduino Nano
- Nova PM Sensor SDS011
- 0.96 'SPI OLED Display Module
- Jumper Wires
Nova PM Sensor SDS011
Ang SDS011 Sensor ay isang pinakabagong Air Quality Sensor na binuo ng Nova Fitness. Gumagana ito sa prinsipyo ng pagsabog ng laser at maaaring makuha ang konsentrasyon ng maliit na butil sa pagitan ng 0.3 hanggang 10μm sa hangin. Ang sensor na ito ay binubuo ng isang maliit na bentilador, balbula ng papasok ng hangin, Laser diode, at photodiode. Ang hangin ay pumapasok sa pamamagitan ng papasok na hangin kung saan ang isang mapagkukunan ng ilaw (Laser) ay nag-iilaw ng mga maliit na butil at ang nakakalat na ilaw ay nabago sa isang senyas ng isang photodetector. Ang mga signal na ito ay pinalakas at pinoproseso upang makuha ang konsentrasyon ng maliit na butil ng PM2.5 at PM10.
Mga pagtutukoy ng SDS011 Sensor:
- Output: PM2.5, PM10
- Saklaw ng Pagsukat: 0.0-999.9μg / m3
- Input Boltahe: 4.7V hanggang 5.3V
- Pinakamataas na Kasalukuyang: 100mA
- Kasalukuyang Pagtulog: 2mA
- Oras ng Tugon: 1 segundo
- Frequency ng Serial Data Output: 1 oras / segundo
- Paglutas ng Diameter ng Particle: ≤ 0.3μm
- Kamag-anak na Error: 10%
- Saklaw ng Temperatura: -20 ~ 50 ° C
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:
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 |
Saklaw namin ang isang buong Artikulo tungkol sa mga pagpapakita ng OLED at mga uri nito dito.
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.
Circuit Diagram para sa Air Quality Analyzer
Ang circuit diagram para sa pagsukat ng PM2.5 at PM10 na mga maliit na butil na gumagamit ng Arduino ay napakasimple at ibinigay sa ibaba.
Ang module ng SDS011 Sensor at OLED Display ay parehong pinalakas ng + 5V at GND. Ang mga transmiter at Receiver pin ng SDS011 ay konektado sa D3 at D4 na mga 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 |
Pagbuo ng Circuit on Perf Board
Na-solder ko rin ang lahat ng mga sangkap sa perf board upang magmukhang maayos ito. Ngunit maaari mo ring gawin ang mga ito sa isang breadboard. Nasa ibaba ang mga board na ginawa ko. Habang naghihinang, tiyaking hindi mo aayos ang mga wire. Ang perf board na aking nahinang ay ipinapakita sa ibaba:
Paliwanag sa Code para sa Monitor ng Kalidad ng Air
Ang kumpletong code para sa proyektong ito ay ibinibigay sa dulo ng dokumento. Narito ipinapaliwanag namin ang ilang mahahalagang bahagi ng code.
Gumagamit ang code ng aklatan ng SDS011, Adafruit_GFX , at Adafruit_SSD1306 . Ang mga aklatan na ito ay maaaring ma-download mula sa Library Manager sa Arduino IDE at maaaring mai-install doon. Para doon, buksan ang Arduino IDE at pumunta sa Sketch> Isama ang Library> Pamahalaan ang Mga Aklatan . Ngayon maghanap para sa SDS011 at i-install ang SDS Sensor library ni R. Zschiegner.
Katulad nito, i-install ang Adafruit GFX at Adafruit SSD1306 na mga aklatan ng Adafruit.
Matapos mai-install ang mga aklatan sa Arduino IDE, simulan ang code sa pamamagitan ng pagsasama ng mga kinakailangang file ng library.
# isama
Sa mga susunod na linya, tukuyin ang dalawang variable upang maiimbak ang mga halagang PM10 at PM2.5.
lumutang p10, p25;
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 na 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);
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 at sensor ng SDS011 na may pagsisimula () na paggana.
my_sds.begin (3,4); Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC);
Sa loob ng void loop (), basahin ang mga halagang PM10 at PM2.5 mula sa sensor ng SDS011 at i-print ang mga pagbasa sa isang serial monitor.
void loop () {error = my_sds.read (& p25, & p10); kung (! error) {Serial.println ("P2.5:" + String (p25)); Serial.println ("P10:" + String (p10));
Pagkatapos nito, itakda ang laki ng teksto at kulay ng teksto gamit ang setTextSize () at setTextColor () .
display.setTextSize (2); display.setTextColor (PUTI);
Pagkatapos sa susunod na linya, tukuyin ang posisyon upang simulan ang teksto gamit ang setCursor (x, y) na pamamaraan. Ipapakita namin dito ang mga halagang PM2.5 at PM10 sa display na OLED kaya't ang unang linya ay nagsisimula sa (0,15) habang ang pangalawang linya ay nagsisimula sa (0, 40) mga koordinasyon.
display.setCursor (0,15); display.println ("PM2.5"); display.setCursor (67,15); display.println (p25); display.setCursor (0,40); display.println ("PM10"); display.setCursor (67,40); display.println (p10);
At sa wakas, tawagan ang paraan ng pagpapakita () upang maipakita ang teksto sa OLED Display.
display.display (); display.clearDisplay ();
Pagsubok sa Arduino Air Quality Monitor
Kapag handa na ang hardware at code, oras na upang subukan ang aparato. Para doon, ikonekta ang Arduino sa laptop, piliin ang Lupon at Port, at pindutin ang pindutan ng pag-upload. Tulad ng nakikita mo sa larawan sa ibaba, ipapakita nito ang mga halagang PM2.5 at PM10 sa OLED Display.
Ang kumpletong gumaganang video at code ay ibinibigay sa ibaba. Inaasahan kong nasiyahan ka sa tutorial at natutunan ang isang bagay na kapaki-pakinabang. Kung mayroon kang anumang mga katanungan, iwanan ang mga ito sa seksyon ng komento o gamitin ang aming mga forum para sa iba pang mga teknikal na query.