- Súčasti sú povinné
- Senzor Nova PM SDS011
- 0,96 'OLED displejový modul
- Schéma zapojenia analyzátora kvality vzduchu
- Budovanie obvodu na doske Perf
- Vysvetlenie kódu pre monitor kvality ovzdušia
- Testovanie monitora kvality vzduchu Arduino
Znečistenie ovzdušia je hlavným problémom mnohých miest a index kvality ovzdušia sa každým dňom zhoršuje. Podľa správy Svetovej zdravotníckej organizácie je účinkami nebezpečných častíc prítomných vo vzduchu predčasne zabitých viac ľudí ako pri autonehodách. Podľa Agentúry na ochranu životného prostredia (EPA) môže byť vnútorný vzduch 2 až 5-krát toxickejší ako vonkajší. Takže tu vyrábame zariadenie na monitorovanie kvality vzduchu meraním častíc PM2,5 a PM10 vo vzduchu.
Predtým sme používali snímač plynu MQ135 pre monitor kvality vzduchu a snímač Sharp GP2Y1014AU0F na meranie hustoty prachu vo vzduchu. Tentokrát používame senzor SDS011 s Arduino Nano na výrobu analyzátora kvality vzduchu. Senzor SDS011 dokáže vypočítať koncentrácie častíc PM2,5 a PM10 vo vzduchu. Tu sa na OLED displeji zobrazia hodnoty PM2,5 a PM 10 v reálnom čase.
Súčasti sú povinné
- Arduino Nano
- Senzor Nova PM SDS011
- 0,96 'SPI OLED displejový modul
- Prepojovacie drôty
Senzor Nova PM SDS011
Senzor SDS011 je najnovší senzor kvality vzduchu vyvinutý spoločnosťou Nova Fitness. Funguje na princípe laserového rozptylu a vo vzduchu dokáže dostať koncentráciu častíc medzi 0,3 až 10 μm. Tento snímač pozostáva z malého ventilátora, prívodu vzduchu, laserovej diódy a fotodiódy. Vzduch vstupuje cez prívod vzduchu, kde svetelný zdroj (Laser) osvetľuje častice a rozptýlené svetlo sa transformuje na signál fotodetektorom. Tieto signály sa potom zosilnia a spracujú, aby sa získala koncentrácia častíc PM2,5 a PM10.
Špecifikácie snímača SDS011:
- Výstup: PM2,5, PM10
- Rozsah merania: 0,0-999,9 μg / m3
- Vstupné napätie: 4,7 V až 5,3 V.
- Maximálny prúd: 100 mA
- Spánkový prúd: 2 mA
- Čas odozvy: 1 sekunda
- Sériová výstupná frekvencia dát: 1 krát za sekundu
- Rozlíšenie priemeru častíc: ≤ 0,3 μm
- Relatívna chyba: 10%
- Teplotný rozsah: -20 ~ 50 ° C
0,96 'OLED displejový modul
OLED (Organic Light Emitting Diodes) je technológia samočinného vyžarovania svetla skonštruovaná umiestnením série organických tenkých vrstiev medzi dva vodiče. Keď sa na tieto filmy privádza elektrický prúd, vytvára sa jasné svetlo. OLED používajú rovnakú technológiu ako televízory, ale majú menej pixelov ako vo väčšine našich televízorov.
Pre tento projekt používame Monochrome 7-pin SSD1306 0,96 ”OLED displej. Môže pracovať na troch rôznych komunikačných protokoloch: režim SPI 3 Wire, režim SPI so štyrmi vodičmi a režim I2C. Kolíky a ich funkcie sú vysvetlené v nasledujúcej tabuľke:
Názov špendlíka |
Ostatné mená |
Popis |
Gnd |
Uzemnenie |
Uzemňovací kolík modulu |
Vdd |
Vcc, 5V |
Napájací kolík (tolerovateľný 3 - 5 V) |
SCK |
D0, SCL, CLK |
Funguje ako špendlík hodín. Používa sa pre I2C aj SPI |
SDA |
D1, MOSI |
Dátový kolík modulu. Používa sa pre IIC aj SPI |
OZE |
RST, RESET |
Resetuje modul (užitočné počas SPI) |
DC |
A0 |
PIN príkazového riadku. Používa sa pre protokol SPI |
CS |
Vyberte čip |
Užitočné, ak sa v protokole SPI používa viac ako jeden modul |
Celý článok o OLED displejoch a ich typoch sme prebrali tu.
Špecifikácie OLED:
- Ovládač OLED IC: SSD1306
- Rozlíšenie: 128 x 64
- Vizuálny uhol:> 160 °
- Vstupné napätie: 3,3 V ~ 6 V
- Farba pixelov: modrá
- Pracovná teplota: -30 ° C ~ 70 ° C
Viac informácií o OLED a jeho prepojení s rôznymi mikrokontrolérmi sa dozviete po kliknutí na tento odkaz.
Schéma zapojenia analyzátora kvality vzduchu
Schéma zapojenia na meranie častíc PM2,5 a PM10 pomocou Arduina je veľmi jednoduchá a je uvedená nižšie.
Senzor SDS011 a modul displeja OLED sú napájané s napätím + 5 V a GND. Kolíky vysielača a prijímača SDS011 sú spojené s kolíkmi D3 a D4 Arduino Nano. Pretože modul OLED Display využíva komunikáciu SPI, nadviazali sme komunikáciu SPI medzi modulom OLED a Arduino Nano. Pripojenia sú zobrazené v nasledujúcej tabuľke:
S.No |
Pin modulu OLED |
Pin Arduino |
1 |
GND |
Uzemnenie |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
OZE |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Budovanie obvodu na doske Perf
Všetky komponenty na doske perf som tiež prepájkoval, aby vyzerali úhľadne. Môžete ich ale vyrobiť aj na palubovke. Dosky, ktoré som vyrobil, sú dole. Počas spájkovania nezabudnite drôty netriediť. Doska perf, ktorú som spájkoval, je zobrazený nižšie:
Vysvetlenie kódu pre monitor kvality ovzdušia
Celý kód tohto projektu je uvedený na konci dokumentu. Tu vysvetľujeme niektoré dôležité časti kódu.
Kód používa SDS011, Adafruit_GFX , a Adafruit_SSD1306 knižnice. Tieto knižnice je možné stiahnuť z aplikácie Library Manager v Arduino IDE a odtiaľ ich možno nainštalovať. Za týmto účelom otvorte IDE Arduino a choďte na Skica> Zahrnúť knižnicu> Spravovať knižnice . Teraz vyhľadajte SDS011 a nainštalujte si knižnicu SDS Sensor od R. Zschiegnera.
Podobne nainštalujte knižnice Adafruit GFX a Adafruit SSD1306 od spoločnosti Adafruit.
Po inštalácii knižníc do Arduino IDE spustite kód zahrnutím potrebných súborov knižnice.
#include
V ďalších riadkoch definujte dve premenné na ukladanie hodnôt PM10 a PM2,5.
plavák p10, p25;
Potom definujte šírku a výšku OLED. V tomto projekte používame 128 × 64 SPI OLED displej. Tieto premenné SCREEN_WIDTH a SCREEN_HEIGHT môžete zmeniť podľa svojho zobrazenia.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Potom definujte komunikačné piny SPI, kde je pripojený OLED displej.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Potom vytvorte inštanciu displeja Adafruit so šírkou a výškou definovanou skôr pomocou komunikačného protokolu SPI.
Displej Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Teraz vo vnútri funkcie setup () inicializujte Serial Monitor s prenosovou rýchlosťou 9600 na účely ladenia. Inicializujte tiež OLED displej a snímač SDS011 pomocou funkcie start () .
my_sds.begin (3,4); Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC);
Vo vnútri prázdnej slučky () odčítajte hodnoty PM10 a PM2,5 zo snímača SDS011 a vytlačte namerané hodnoty na sériový monitor.
void loop () {error = my_sds.read (& p25, & p10); if (! error) {Serial.println ("P2.5:" + String (p25)); Serial.println ("P10:" + reťazec (p10));
Potom nastavte veľkosť a farbu textu pomocou metód setTextSize () a setTextColor () .
display.setTextSize (2); display.setTextColor (BIELA);
Potom v ďalšom riadku definujte pozíciu na začatie textu pomocou metódy setCursor (x, y) . Tu zobrazíme hodnoty PM2,5 a PM10 na OLED displeji, takže prvý riadok začína na (0,15), zatiaľ čo druhý riadok začína na (0, 40) súradniciach.
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);
A nakoniec zavolajte metódu display () na zobrazenie textu na OLED displeji.
display.display (); display.clearDisplay ();
Testovanie monitora kvality vzduchu Arduino
Keď sú hardvér a kód pripravené, je čas zariadenie otestovať. Za týmto účelom pripojte Arduino k notebooku, vyberte dosku a port a stlačte tlačidlo nahrávania. Ako vidíte na obrázku nižšie, na OLED displeji bude zobrazovať hodnoty PM2,5 a PM10.
Kompletné pracovné video a kód sú uvedené nižšie. Dúfam, že sa vám výukový program páčil a dozvedeli ste sa niečo užitočné. Ak máte akékoľvek otázky, nechajte ich v sekcii komentárov alebo použite naše fóra na ďalšie technické otázky.