- Požadované komponenty
- Senzor Nova PM SDS011
- 0,96 'OLED zobrazovací modul
- Schéma zapojení analyzátoru kvality vzduchu
- Stavba obvodu na desce Perf
- Vysvětlení kódu pro monitor kvality ovzduší
- Testování monitoru kvality vzduchu Arduino
Znečištění ovzduší je hlavním problémem mnoha měst a index kvality ovzduší se každým dnem zhoršuje. Podle zprávy Světové zdravotnické organizace je více lidí předčasně zabito účinky nebezpečných částic přítomných ve vzduchu než při autonehodách. Podle Agentury pro ochranu životního prostředí (EPA) může být vnitřní vzduch 2 až 5krát toxičtější než venkovní vzduch. Zde tedy stavíme zařízení pro sledování kvality vzduchu měřením částic PM2,5 a PM10 ve vzduchu.
Dříve jsme používali snímač plynu MQ135 pro monitor kvality vzduchu a snímač Sharp GP2Y1014AU0F pro měření hustoty prachu ve vzduchu. Tentokrát používáme senzor SDS011 s Arduino Nano k vytvoření analyzátoru kvality vzduchu. Senzor SDS011 dokáže vypočítat koncentrace částic PM2,5 a PM10 ve vzduchu. Zde se na OLED displeji zobrazí hodnoty PM2,5 a PM 10 v reálném čase.
Požadované komponenty
- Arduino Nano
- Senzor Nova PM SDS011
- 0,96 'SPI OLED displejový modul
- Propojovací dráty
Senzor Nova PM SDS011
Senzor SDS011 je nejnovější snímač kvality vzduchu vyvinutý společností Nova Fitness. Funguje na principu laserového rozptylu a ve vzduchu dokáže získat koncentraci částic mezi 0,3 až 10 μm. Tento senzor se skládá z malého ventilátoru, sacího ventilu, laserové diody a fotodiody. Vzduch vstupuje vstupem vzduchu, kde světelný zdroj (Laser) osvětluje částice a rozptýlené světlo je transformováno na signál fotodetektorem. Tyto signály jsou poté zesíleny a zpracovány, aby se získala koncentrace částic PM2,5 a PM10.
Specifikace snímače SDS011:
- Výstup: PM2,5, PM10
- Rozsah měření: 0,0-999,9 μg / m3
- Vstupní napětí: 4,7 V až 5,3 V.
- Maximální proud: 100 mA
- Spánkový proud: 2 mA
- Doba odezvy: 1 sekunda
- Frekvence sériového výstupu dat: 1krát / s
- Rozlišení průměru částic: ≤ 0,3 μm
- Relativní chyba: 10%
- Teplotní rozsah: -20 ~ 50 ° C
0,96 'OLED zobrazovací modul
OLED (Organic Light Emitting Diodes) je technologie samovolného vyzařování světla, konstruovaná umístěním řady organických tenkých vrstev mezi dva vodiče. Když je na tyto filmy aplikován elektrický proud, produkuje se jasné světlo. OLED používají stejnou technologii jako televizory, ale mají méně pixelů než ve většině našich televizorů.
Pro tento projekt používáme monochromatický 7pinový SSD1306 0,96 ”OLED displej. Může pracovat na třech různých komunikačních protokolech: režim SPI 3 Wire, režim SPI se čtyřmi vodiči a režim I2C. Piny a jejich funkce jsou vysvětleny v následující tabulce:
Název PIN |
Ostatní jména |
Popis |
Gnd |
Přízemní |
Uzemňovací kolík modulu |
Vdd |
Vcc, 5V |
Napájecí kolík (tolerovatelný 3-5 V) |
SCK |
D0, SCL, CLK |
Funguje jako hodinový kolík. Používá se pro I2C i SPI |
SDA |
D1, MOSI |
Datový kolík modulu. Používá se pro IIC i SPI |
RES |
RST, RESET |
Resetuje modul (užitečné během SPI) |
DC |
A0 |
Datový příkazový kolík. Používá se pro protokol SPI |
CS |
Výběr čipu |
Užitečné, když se v protokolu SPI používá více než jeden modul |
Zde jsme se zabývali celým článkem o OLED displejích a jejich typech.
Specifikace OLED:
- Ovladač OLED IC: SSD1306
- Rozlišení: 128 x 64
- Vizuální úhel:> 160 °
- Vstupní napětí: 3,3 V ~ 6 V
- Barva pixelu: modrá
- Pracovní teplota: -30 ° C ~ 70 ° C
Další informace o OLED a jeho propojení s různými mikrokontroléry získáte kliknutím na odkaz.
Schéma zapojení analyzátoru kvality vzduchu
Schéma zapojení pro měření částic PM2,5 a PM10 pomocí Arduina je velmi jednoduché a je uvedeno níže.
Senzor SDS011 a modul displeje OLED jsou napájeny + 5 V a GND. Kolíky vysílače a přijímače SDS011 jsou připojeny k kolíkům D3 a D4 Arduino Nano. Protože modul OLED Display využívá komunikaci SPI, navázali jsme komunikaci SPI mezi modulem OLED a Arduino Nano. Připojení jsou uvedena v následující tabulce:
S.No |
Pin modulu OLED |
Pin Arduino |
1 |
GND |
Přízemní |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Stavba obvodu na desce Perf
Také jsem připájel všechny komponenty na desce perf, aby to vypadalo úhledně. Ale můžete je také vyrobit na prkénku. Desky, které jsem vytvořil, jsou níže. Při pájení dávejte pozor, abyste vodiče netřídili. Deska perf, kterou jsem pájel, je zobrazena níže:
Vysvětlení kódu pro monitor kvality ovzduší
Celý kód tohoto projektu je uveden na konci dokumentu. Zde vysvětlujeme některé důležité části kódu.
Kód používá SDS011, Adafruit_GFX , a Adafruit_SSD1306 knihovny. Tyto knihovny lze stáhnout ze Správce knihoven v Arduino IDE a lze je odtud nainstalovat. Za tímto účelem otevřete IDE Arduino a přejděte do části Skica> Zahrnout knihovnu> Správa knihoven . Nyní vyhledejte SDS011 a nainstalujte knihovnu SDS Sensor od R. Zschiegnera.
Podobně nainstalujte knihovny Adafruit GFX a Adafruit SSD1306 od společnosti Adafruit.
Po instalaci knihoven do Arduino IDE spusťte kód zahrnutím potřebných souborů knihovny.
#zahrnout
V následujících řádcích definujte dvě proměnné pro uložení hodnot PM10 a PM2,5.
plovák p10, p25;
Poté definujte šířku a výšku OLED. V tomto projektu používáme 128 × 64 SPI OLED displej. Proměnné SCREEN_WIDTH a SCREEN_HEIGHT můžete změnit podle svého zobrazení.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Poté definujte komunikační piny SPI, kde je připojen OLED displej.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Poté vytvořte instanci displeje Adafruit s šířkou a výškou definovanou dříve pomocí komunikačního protokolu SPI.
Adafruit_SSD1306 display (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Nyní uvnitř funkce setup () inicializujte Serial Monitor s přenosovou rychlostí 9600 pro účely ladění. Inicializujte také OLED displej a snímač SDS011 pomocí funkce start () .
my_sds.begin (3,4); Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC);
Ve smyčce void () odečtěte hodnoty PM10 a PM2,5 ze snímače SDS011 a vytiskněte hodnoty na sériovém monitoru.
void loop () {error = my_sds.read (& p25, & p10); if (! error) {Serial.println ("P2.5:" + String (p25)); Serial.println ("P10:" + řetězec (p10));
Poté nastavte velikost a barvu textu pomocí setTextSize () a setTextColor () .
display.setTextSize (2); display.setTextColor (BÍLÁ);
Pak na dalším řádku definujte pozici pro spuštění textu pomocí metody setCursor (x, y) . Zde zobrazíme hodnoty PM2,5 a PM10 na OLED displeji, takže první řádek začíná na (0,15), zatímco druhý řádek začíná na (0, 40) souřadnicích.
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 nakonec zavolejte metodu display () pro zobrazení textu na OLED displeji.
display.display (); display.clearDisplay ();
Testování monitoru kvality vzduchu Arduino
Jakmile je hardware a kód připraven, je čas zařízení otestovat. Za tímto účelem připojte Arduino k notebooku, vyberte desku a port a stiskněte tlačítko nahrávání. Jak můžete vidět na následujícím obrázku, na OLED displeji se zobrazí hodnoty PM2,5 a PM10.
Kompletní pracovní video a kód jsou uvedeny níže. Doufám, že se vám výukový program líbil a naučili jste se něco užitečného. Máte-li jakékoli dotazy, nechte je v sekci komentářů nebo použijte naše fóra pro další technické dotazy.