- Komponente potrebne
- Nova PM senzor SDS011
- 0,96 'OLED modul zaslona
- Kružni dijagram za analizator kvalitete zraka
- Izgradnja kruga na Perf ploči
- Objašnjenje koda za Monitor kvalitete zraka
- Ispitivanje monitora kvalitete zraka Arduino
Zagađenje zraka glavni je problem u mnogim gradovima, a indeks kvalitete zraka svakim je danom sve gori. Prema izvješću Svjetske zdravstvene organizacije, više ljudi prerano stradava od posljedica opasnih čestica u zraku nego od prometnih nesreća. Prema Agenciji za zaštitu okoliša (EPA), zrak u zatvorenom može biti 2 do 5 puta otrovniji od vanjskog zraka. Dakle, ovdje gradimo uređaj za praćenje kakvoće zraka mjerenjem čestica PM2,5 i PM10 u zraku.
Prije smo koristili senzor za plin MQ135 za monitor kvalitete zraka i Sharp GP2Y1014AU0F senzor za mjerenje gustoće prašine u zraku. Ovaj put koristimo senzor SDS011 s Arduino Nano za izgradnju Analizatora kvalitete zraka. SDS011 senzor može izračunati koncentracije čestica PM2,5 i PM10 u zraku. Ovdje će se vrijednosti OL2.5 i PM 10 u stvarnom vremenu prikazati na OLED zaslonu.
Komponente potrebne
- Arduino Nano
- Nova PM senzor SDS011
- 0,96 'SPI OLED modul zaslona
- Jumper žice
Nova PM senzor SDS011
Senzor SDS011 najnoviji je senzor za kvalitetu zraka koji je razvio Nova Fitness. Djeluje na principu laserskog raspršenja i može postići koncentraciju čestica između 0,3 i 10 μm u zraku. Ovaj se senzor sastoji od malog ventilatora, usisnog ventila, laserske diode i fotodiode. Zrak ulazi kroz ulaz za zrak gdje izvor svjetlosti (laser) osvjetljava čestice, a raspršena svjetlost fotodetektorom se pretvara u signal. Ti se signali zatim pojačavaju i obrađuju da bi se dobila koncentracija čestica PM2,5 i PM10.

Specifikacije senzora SDS011:
- Izlaz: PM2,5, PM10
- Područje mjerenja: 0,0-999,9μg / m3
- Ulazni napon: 4,7 V do 5,3 V
- Maksimalna struja: 100mA
- Struja mirovanja: 2mA
- Vrijeme odziva: 1 sekunda
- Frekvencija izlaza serijskih podataka: 1 put / sekundu
- Rezolucija promjera čestica: ≤ 0,3μm
- Relativna pogreška: 10%
- Raspon temperatura: -20 ~ 50 ° C
0,96 'OLED modul zaslona
OLED (organske diode koje emitiraju svjetlost) je tehnologija koja samostalno emitira svjetlost, konstruirana postavljanjem niza organskih tankih filmova između dva vodiča. Kad se na te filmove primijeni električna struja, stvara se jako svjetlo. OLED-ovi koriste istu tehnologiju kao i televizori, ali imaju manje piksela nego u većini naših televizora.

Za ovaj projekt koristimo monokromatski 7-pinski SSD1306 0.96 ”OLED zaslon. Može raditi na tri različita komunikacijska protokola: SPI 3 Wire način, SPI četverožični način i I2C način. Pribadače i njegove funkcije objašnjene su u donjoj tablici:
|
Naziv pribadače |
Druga imena |
Opis |
|
Gnd |
Prizemlje |
Osovina uzemljenja modula |
|
Vdd |
Vcc, 5 V |
Priključak za napajanje (3-5V podnošljiv) |
|
SCK |
D0, SCL, CLK |
Djeluje kao zatik sata. Koristi se i za I2C i za SPI |
|
SDA |
D1, MOSI |
Podaci za pin modula. Koristi se i za IIC i za SPI |
|
OIE |
RST, VRAĆAJ |
Resetira modul (korisno tijekom SPI) |
|
DC |
A0 |
Podatkovna naredba. Koristi se za SPI protokol |
|
CS |
Odabir čipa |
Korisno kada se pod SPI protokolom koristi više modula |
Ovdje smo pokrili cijeli članak o OLED zaslonima i njihovim vrstama.
OLED specifikacije:
- IC upravljačkog programa OLED: SSD1306
- Rezolucija: 128 x 64
- Vizualni kut:> 160 °
- Ulazni napon: 3.3V ~ 6V
- Boja piksela: plava
- Radna temperatura: -30 ° C ~ 70 ° C
Slijedeći vezu saznajte više o OLED-u i njegovom povezivanju s različitim mikrokontrolerima.
Kružni dijagram za analizator kvalitete zraka
Shema spoja za mjerenje čestica PM2,5 i PM10 pomoću Arduina vrlo je jednostavna i dana je u nastavku.


SDS011 senzor i OLED modul zaslona napajaju se s + 5V i GND. Igle odašiljača i prijamnika SDS011 povezane su s D3 i D4 iglama Arduino Nano. Budući da OLED modul zaslona koristi SPI komunikaciju, uspostavili smo SPI komunikaciju između OLED modula i Arduino Nano-a. Veze su prikazane u donjoj tablici:
|
S.Br |
Pribadača OLED modula |
Arduino pin |
|
1 |
GND |
Prizemlje |
|
2 |
VCC |
5V |
|
3 |
D0 |
10 |
|
4 |
D1 |
9 |
|
5 |
OIE |
13 |
|
6 |
DC |
11 |
|
7 |
CS |
12 |
Izgradnja kruga na Perf ploči
Također sam zalemio sve komponente na perf ploči kako bi izgledao uredno. Ali možete ih napraviti i na ploči za kruh. Daske koje sam izradio su dolje. Tijekom lemljenja pazite da žice ne sortirate. Ispod je prikazana perf ploča koju sam zalemio:

Objašnjenje koda za Monitor kvalitete zraka
Kompletni kod za ovaj projekt dan je na kraju dokumenta. Ovdje objašnjavamo neke važne dijelove koda.
Šifra koristi SDS011, Adafruit_GFX , a Adafruit_SSD1306 knjižnice. Te se knjižnice mogu preuzeti iz Upravitelja biblioteka u Arduino IDE-u i mogu se tamo instalirati. Za to otvorite Arduino IDE i idite na Skica> Uključi biblioteku> Upravljanje knjižnicama . Sada potražite SDS011 i instalirajte knjižnicu SDS senzora R. Zschiegnera.
Slično tome, instalirajte Adafruit knjižnice Adafruit GFX i Adafruit SSD1306 .
Nakon instalacije knjižnica u Arduino IDE, pokrenite kod uključivanjem potrebnih datoteka knjižnice.
#include
U sljedećim redovima definirajte dvije varijable za pohranu vrijednosti PM10 i PM2.5.
plovak p10, p25;
Zatim definirajte OLED širinu i visinu. U ovom projektu koristimo 128 × 64 SPI OLED zaslon. Te varijable SCREEN_WIDTH i SCREEN_HEIGHT možete promijeniti prema vašem zaslonu.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Zatim definirajte SPI komunikacijske igle gdje je povezan OLED zaslon.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Zatim stvorite instancu prikaza Adafruit s širinom i visinom definiranom ranije pomoću SPI komunikacijskog protokola.
Zaslon Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Sada unutar funkcije setup () , inicijalizirajte serijski monitor brzinom prijenosa od 9600 u svrhu otklanjanja pogrešaka. Također, inicijalizirajte OLED zaslon i senzor SDS011 funkcijom start () .
my_sds.begin (3,4); Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC);
Unutar praznine petlje () očitajte vrijednosti PM10 i PM2,5 sa senzora SDS011 i ispišite očitanja na serijski monitor.
void loop () {error = my_sds.read (& p25, & p10); if (! pogreška) {Serial.println ("P2.5:" + String (p25)); Serial.println ("P10:" + Niz (p10));
Nakon toga postavite veličinu i boju teksta pomoću setTextSize () i setTextColor () .
display.setTextSize (2); display.setTextColor (BIJELO);
Zatim u sljedećem retku definirajte položaj za početak teksta metodom setCursor (x, y) . Ovdje ćemo prikazati vrijednosti PM2.5 i PM10 na OLED zaslonu, tako da prvi redak počinje s (0,15), dok drugi redak započinje s (0, 40) koordinatama.
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);
I na kraju, pozovite metodu display () za prikaz teksta na OLED zaslonu.
display.display (); display.clearDisplay ();
Ispitivanje monitora kvalitete zraka Arduino
Kad su hardver i kod spremni, vrijeme je da testirate uređaj. Za to spojite Arduino na prijenosno računalo, odaberite ploču i priključak i pritisnite gumb za prijenos. Kao što možete vidjeti na donjoj slici, prikazat će vrijednosti PM2,5 i PM10 na OLED zaslonu.

Kompletni radni video i kod dati su u nastavku. Nadam se da ste uživali u vodiču i naučili nešto korisno. Ako imate bilo kakvih pitanja, ostavite ih u odjeljku za komentare ili upotrijebite naše forume za ostale tehničke upite.
