- Nepieciešamās sastāvdaļas
- Nova PM sensors SDS011
- 0,96 'OLED displeja modulis
- Gaisa kvalitātes analizatora shēma
- Circuit veidošana uz Perf Board
- Gaisa kvalitātes monitora koda skaidrojums
- Arduino gaisa kvalitātes monitoringa pārbaude
Gaisa piesārņojums ir galvenā problēma daudzās pilsētās, un gaisa kvalitātes indekss katru dienu pasliktinās. Saskaņā ar Pasaules Veselības organizācijas ziņojumu, gaisā esošo bīstamo daļiņu iedarbība priekšlaicīgi nogalina vairāk cilvēku nekā autoavārijās. Saskaņā ar Vides aizsardzības aģentūras (EPA) datiem, iekštelpu gaiss var būt 2 līdz 5 reizes toksiskāks nekā āra gaiss. Tātad šeit mēs izveidojam ierīci gaisa kvalitātes uzraudzībai, mērot PM2,5 un PM10 daļiņas gaisā.
Iepriekš mēs izmantojām MQ135 gāzes sensoru gaisa kvalitātes monitoram un Sharp GP2Y1014AU0F sensoru putekļu blīvuma mērīšanai gaisā. Šoreiz mēs izmantojam SDS011 sensoru ar Arduino Nano, lai izveidotu gaisa kvalitātes analizatoru. SDS011 sensors var aprēķināt PM2,5 un PM10 daļiņu koncentrāciju gaisā. Šeit OLED displejā tiks parādītas reālā laika PM2,5 un PM 10 vērtības.
Nepieciešamās sastāvdaļas
- Arduino Nano
- Nova PM sensors SDS011
- 0,96 'SPI OLED displeja modulis
- Džemperu vadi
Nova PM sensors SDS011
SDS011 sensors ir pavisam nesen Nova Fitness izstrādāts gaisa kvalitātes sensors. Tas darbojas pēc lāzera izkliedes principa un var iegūt daļiņu koncentrāciju gaisā no 0,3 līdz 10 μm. Šis sensors sastāv no neliela ventilatora, gaisa ieplūdes vārsta, lāzera diodes un fotodiodes. Gaiss iekļūst caur gaisa ieplūdi, kur gaismas avots (lāzers) apgaismo daļiņas, un izkliedētā gaisma ar fotodetektoru tiek pārveidota par signālu. Šie signāli tiek pastiprināti un apstrādāti, lai iegūtu daļiņu koncentrāciju PM2,5 un PM10.
SDS011 sensora specifikācijas:
- Izeja: PM2,5, PM10
- Mērīšanas diapazons: 0,0-999,9 μg / m3
- Ieejas spriegums: no 4,7 V līdz 5,3 V
- Maksimālā strāva: 100mA
- Miega strāva: 2mA
- Atbildes laiks: 1 sekunde
- Seriālo datu izvades biežums: 1 reizi sekundē
- Daļiņu diametra izšķirtspēja: ≤ 0,3 μm
- Relatīvā kļūda: 10%
- Temperatūras diapazons: -20 ~ 50 ° C
0,96 'OLED displeja modulis
OLED (organiskās gaismu izstarojošās diodes) ir automātiska gaismu izstarojoša tehnoloģija, kas konstruēta, starp diviem vadītājiem ievietojot vairākas organiskas plānas plēves. Spilgta gaisma rodas, ja šīm plēvēm tiek uzlikta elektriskā strāva. OLED izmanto to pašu tehnoloģiju kā televizori, taču tiem ir mazāk pikseļu nekā lielākajā daļā mūsu televizoru.
Šajā projektā mēs izmantojam vienkrāsainu 7 kontaktu SSD1306 0,96 ”OLED displeju. Tas var darboties trīs dažādos sakaru protokolos: SPI 3 vadu režīmā, SPI četru vadu režīmā un I2C režīmā. Adatas un tās funkcijas ir paskaidrotas zemāk esošajā tabulā:
Piespraudes nosaukums |
Citi vārdi |
Apraksts |
Gnd |
Zeme |
Moduļa zemējuma tapa |
Vdd |
Vcc, 5V |
Barošanas tapa (3-5V pieļaujama) |
SCK |
D0, SCL, CLK |
Darbojas kā pulksteņa tapa. Izmanto gan I2C, gan SPI |
SDA |
D1, MOSI |
Moduļa datu tapa. Izmanto gan IIC, gan SPI |
RES |
RST, ATIESTATĪT |
Modulis tiek atiestatīts (noderīgs SPI laikā) |
DC |
A0 |
Datu komandas piespraude. Izmanto SPI protokolam |
CS |
Chip Select |
Noderīgi, ja SPI protokolā tiek izmantoti vairāki moduļi |
Šeit esam apskatījuši pilnu rakstu par OLED displejiem un to veidiem.
OLED specifikācijas:
- OLED draivera IC: SSD1306
- Izšķirtspēja: 128 x 64
- Vizuālais leņķis:> 160 °
- Ieejas spriegums: 3.3V ~ 6V
- Pikseļu krāsa: zila
- Darba temperatūra: -30 ° C ~ 70 ° C
Uzziniet vairāk par OLED un tā saskarni ar dažādiem mikrokontrolleriem, sekojot saitei.
Gaisa kvalitātes analizatora shēma
Shēma PM2,5 un PM10 daļiņu mērīšanai, izmantojot Arduino, ir ļoti vienkārša un sniegta zemāk.
SDS011 sensors un OLED displeja modulis tiek darbināti ar + 5V un GND. SDS011 raidītāja un uztvērēja tapas ir savienotas ar Arduino Nano D3 un D4 tapām. Tā kā OLED displeja modulis izmanto SPI komunikāciju, mēs esam izveidojuši SPI komunikāciju starp OLED moduli un Arduino Nano. Savienojumi ir parādīti zemāk esošajā tabulā:
S.No |
OLED moduļa tapa |
Arduino tapa |
1 |
GND |
Zeme |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Circuit veidošana uz Perf Board
Esmu arī pielodējis visus komponentus uz perf plāksnes, lai tas izskatītos glīti. Bet jūs varat arī tos pagatavot uz maizes dēļa. Dēļi, ko es izgatavoju, ir zemāk. Lodēšanas laikā pārliecinieties, ka nesakārtojat vadus. Perf lodīte, kuru es pielodēju, ir parādīta zemāk:
Gaisa kvalitātes monitora koda skaidrojums
Pilns šī projekta kods ir norādīts dokumenta beigās. Šeit mēs izskaidrojam dažas svarīgas koda daļas.
Kods izmanto SDS011, Adafruit_GFX , un Adafruit_SSD1306 bibliotēkas. Šīs bibliotēkas var lejupielādēt no bibliotēku pārvaldnieka Arduino IDE un instalēt no turienes. Lai to izdarītu, atveriet Arduino IDE un dodieties uz Skice> Iekļaut bibliotēku> Pārvaldīt bibliotēkas . Tagad meklējiet SDS011 un instalējiet R. Zschiegner SDS Sensor bibliotēku.
Līdzīgi instalējiet Adafruit GFX un Adafruit SSD1306 bibliotēkas.
Pēc bibliotēku instalēšanas Arduino IDE sāciet kodu, iekļaujot nepieciešamos bibliotēkas failus.
# iekļaut
Nākamajās rindās definējiet divus mainīgos lielumus PM10 un PM2.5 glabāšanai.
pludiņš p10, p25;
Pēc tam definējiet OLED platumu un augstumu. Šajā projektā mēs izmantojam 128 × 64 SPI OLED displeju. Varat mainīt šos SCREEN_WIDTH un SCREEN_HEIGHT mainīgos atbilstoši savam displejam.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Pēc tam definējiet SPI sakaru tapas, kur ir pievienots OLED displejs.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Pēc tam izveidojiet Adafruit displeja gadījumu ar platumu un augstumu, kas iepriekš noteikts ar SPI sakaru protokolu.
Adafruit_SSD1306 displejs (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Tagad iestatīšanas () funkcijas iekšpusē inicializējiet sērijas monitoru ar 9600 datu pārraides ātrumu atkļūdošanas vajadzībām. Inicializējiet arī OLED displeju un SDS011 sensoru ar sākuma () funkciju.
my_sds.begin (3,4); Sērijas sākums (9600); display.begin (SSD1306_SWITCHCAPVCC);
Tukšuma cilpas () iekšpusē nolasiet PM10 un PM2.5 vērtības no sensora SDS011 un izdrukājiet rādījumus seriālajā monitorā.
void loop () {kļūda = my_sds.read (& p25, & p10); if (! kļūda) {Serial.println ("P2.5:" + virkne (25. lpp.)); Serial.println ("P10:" + virkne (p10));
Pēc tam iestatiet teksta izmēru un krāsu, izmantojot setTextSize () un setTextColor () .
display.setTextSize (2); display.setTextColor (BALTS);
Pēc tam nākamajā rindā definējiet pozīciju teksta sākšanai, izmantojot metodi setCursor (x, y) . Šeit mēs parādīsim PM2.5 un PM10 vērtības OLED displejā, tāpēc pirmās rindas sākums ir (0,15), bet otrā rinda sākas (0, 40) koordinātās.
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);
Visbeidzot, izsauciet metodi display (), lai tekstu parādītu OLED displejā.
display.display (); display.clearDisplay ();
Arduino gaisa kvalitātes monitoringa pārbaude
Kad aparatūra un kods ir gatavi, ir pienācis laiks pārbaudīt ierīci. Lai to izdarītu, pievienojiet Arduino klēpjdatoram, atlasiet Board un Port un nospiediet augšupielādes pogu. Kā redzat zemāk redzamajā attēlā, OLED displejā tas parādīs PM2,5 un PM10 vērtības.
Pilns darba video un kods ir norādīts zemāk. Ceru, ka jums patika apmācība un uzzinājāt kaut ko noderīgu. Ja jums ir kādi jautājumi, atstājiet tos komentāru sadaļā vai izmantojiet mūsu forumus citiem tehniskiem jautājumiem.