- Szükséges alkatrészek
- Nova PM Sensor SDS011
- 0,96 'OLED kijelző modul
- Áramkör a levegőminőség-elemzőhöz
- Az áramkör felépítése Perf Board-ra
- Kódmagyarázat a levegőminőség-figyelőhöz
- Arduino levegőminőség-ellenőrző teszt
A légszennyezés számos városban kiemelt kérdés, és a levegőminőségi index minden nap romlik. Az Egészségügyi Világszervezet jelentése szerint több embert öl meg idő előtt a levegőben megjelenő veszélyes részecskék hatása, mint autóbalesetek miatt. A Környezetvédelmi Ügynökség (EPA) szerint a beltéri levegő 2–5-szer mérgezőbb lehet, mint a kültéri levegő. Tehát itt egy eszközt építünk a levegő minőségének ellenőrzésére a levegőben lévő PM2,5 és PM10 részecskék mérésével.
Korábban az MQ135 gázérzékelőt használtuk a levegőminőség-figyelőhöz és a Sharp GP2Y1014AU0F érzékelőt a levegő porsűrűségének mérésére. Ezúttal egy SDS011 érzékelőt használunk az Arduino Nano készülékkel a Levegőminőség-analizátor felépítéséhez. Az SDS011 szenzor kiszámíthatja a levegőben lévő PM2,5 és PM10 részecskék koncentrációját. Itt a valós idejű PM2.5 és PM 10 értékek jelennek meg az OLED kijelzőn.
Szükséges alkatrészek
- Arduino Nano
- Nova PM Sensor SDS011
- 0,96 'SPI OLED kijelző modul
- Jumper huzalok
Nova PM Sensor SDS011
Az SDS011 érzékelő egy nagyon friss levegőminőségi érzékelő, amelyet a Nova Fitness fejlesztett ki. A lézerszórás elvén működik, és 0,3–10μm közötti részecskekoncentrációt képes elérni a levegőben. Ez az érzékelő egy kis ventilátorból, levegőbemenet szelepből, lézerdiódából és fotodiódából áll. A levegő a levegő beömlő nyílásán keresztül jut be, ahol egy fényforrás (lézer) megvilágítja a részecskéket, és a szétszórt fényt fotodetektor alakítja jellé. Ezeket a jeleket ezután felerősítik és feldolgozzák, hogy megkapják a PM2,5 és a PM10 részecskekoncentrációját.
SDS011 érzékelő műszaki adatai:
- Kimenet: PM2,5, PM10
- Mérési tartomány: 0,0-999,9μg / m3
- Bemeneti feszültség: 4,7 V - 5,3 V
- Maximális áram: 100mA
- Alvási áram: 2mA
- Válaszidő: 1 másodperc
- Soros adat kimeneti frekvencia: 1 alkalom / másodperc
- Részecskeátmérő Felbontás: ≤ 0,3μm
- Relatív hiba: 10%
- Hőmérsékleti tartomány: -20 ~ 50 ° C
0,96 'OLED kijelző modul
Az OLED (Organic Light-Emitting Diodes) egy önfénykibocsátó technológia, amelyet úgy állítottak elő, hogy két vezető közé szerves vékony filmeket helyeztek el. Erős fény keletkezik, ha ezekre a filmekre elektromos áramot vezetnek. Az OLED-k ugyanazt a technológiát használják, mint a televíziók, de kevesebb pixel van, mint a legtöbb tévénknél.
Ehhez a projekthez monokróm 7 tűs SSD1306 0,96 ”OLED kijelzőt használunk. Három különböző kommunikációs protokollon működhet: SPI 3 vezetékes mód, SPI négyvezetékes és I2C mód. A csapokat és funkcióit az alábbi táblázat ismerteti:
PIN neve |
Más nevek |
Leírás |
Gnd |
Talaj |
A modul földelt csapja |
Vdd |
Vcc, 5V |
Tápcsatlakozó (3-5V tolerálható) |
SCK |
D0, SCL, CLK |
Óraszegként működik. I2C és SPI esetén egyaránt használható |
SDA |
D1, MOSI |
A modul adatlapja. IIC-hez és SPI-hez egyaránt használják |
RES |
RST, RESET |
Visszaállítja a modult (SPI során hasznos) |
DC |
A0 |
Data Command pin. SPI protokollhoz használják |
CS |
Chip Select |
Hasznos, ha több modult használ SPI protokoll alatt |
Itt egy teljes cikket ismertettünk az OLED kijelzőiről és típusairól.
OLED specifikációk:
- OLED illesztőprogram IC: SSD1306
- Felbontás: 128 x 64
- Vizuális szög:> 160 °
- Bemeneti feszültség: 3,3 V ~ 6 V
- Pixel színe: kék
- Működési hőmérséklet: -30 ° C ~ 70 ° C
Tudjon meg többet az OLED-ről és a különböző mikrovezérlőkkel való összekapcsolásáról a link követésével.
Áramkör a levegőminőség-elemzőhöz
A PM2.5 és PM10 részecskék Arduino használatával történő mérésének kapcsolási rajza nagyon egyszerű és az alábbiakban ismertetésre kerül.
Az SDS011 érzékelő és az OLED kijelző modul egyaránt + 5V és GND tápellátást kap. Az SDS011 adó- és vevőcsapjai csatlakoznak az Arduino Nano D3 és D4 csatlakozóihoz. Mivel az OLED Display modul SPI kommunikációt használ, létrehoztunk egy SPI kommunikációt az OLED modul és az Arduino Nano között. A csatlakozásokat az alábbi táblázat mutatja:
S.No |
OLED modul csap |
Arduino Pin |
1 |
GND |
Talaj |
2 |
VCC |
5V |
3 |
D0 |
10. |
4 |
D1 |
9. |
5. |
RES |
13. |
6. |
DC |
11. |
7 |
CS |
12. |
Az áramkör felépítése Perf Board-ra
A perf táblán az összes alkatrészt is beforrasztottam, hogy szép legyen. De kenyérlapon is elkészítheti őket. Az általam készített táblák lent vannak. Forrasztás közben ügyeljen arra, hogy ne válogassa szét a vezetékeket. Az általam forrasztott perf tábla az alábbiakban látható:
Kódmagyarázat a levegőminőség-figyelőhöz
A projekt teljes kódja a dokumentum végén található. Itt elmagyarázzuk a kód néhány fontos részét.
A kód az SDS011, Adafruit_GFX , és Adafruit_SSD1306 könyvtárak. Ezek a könyvtárak letölthetők az Arduino IDE könyvtárkezelőjéből, és onnan telepíthetők. Ehhez nyissa meg az Arduino IDE-t, és lépjen a Sketch (Könyvtár)> könyvtár beillesztése (Library)> Könyvtárak kezelése elemre . Most keresse meg az SDS011 fájlt, és telepítse R. Zschiegner SDS Sensor könyvtárát.
Hasonlóképpen telepítse az Adafruit GFX és az Adafruit SSD1306 könyvtárakat is.
Miután telepítette a könyvtárakat az Arduino IDE-be, indítsa el a kódot a szükséges könyvtárfájlok hozzáadásával.
#include
A következő sorokban adjon meg két változót a PM10 és a PM2,5 értékek tárolásához.
úszó p10, p25;
Ezután adja meg az OLED szélességét és magasságát. Ebben a projektben egy 128 × 64 SPI OLED kijelzőt használunk. Megváltoztathatja azt a SCREEN_WIDTH és SCREEN_HEIGHT változót a megjelenítésének megfelelően.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Ezután adja meg az SPI kommunikációs csapokat, ahová az OLED kijelző csatlakozik.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Ezután hozzon létre egy Adafruit megjelenítési példányt az SPI kommunikációs protokollal korábban meghatározott szélességgel és magassággal.
Adafruit_SSD1306 kijelző (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Most a setup () funkción belül inicializálja a soros monitort 9600-as sebességgel hibakeresés céljából. Inicializálja az OLED kijelzőt és az SDS011 érzékelőt a start () funkcióval.
my_sds.begin (3,4); Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC);
A void loop () belsejében olvassa le a PM10 és a PM2.5 értékeket az SDS011 érzékelőről, és nyomtassa ki az adatokat egy soros monitorra.
void loop () {hiba = my_sds.read (& p25, & p10); if (! hiba) {Serial.println ("P2.5:" + String (p25)); Serial.println ("P10:" + karakterlánc (p10));
Ezt követően állítsa be a szöveg méretét és színét a setTextSize () és a setTextColor () használatával .
display.setTextSize (2); display.setTextColor (FEHÉR);
Ezután a következő sorban adja meg a szöveg indításának helyét a setCursor (x, y) módszerrel. Itt a PM2,5 és a PM10 értékeket jelenítjük meg az OLED kijelzőn, így az első sor (0,15), míg a második sor (0, 40) koordinátánál kezdődik.
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);
És végül hívja meg a display () metódust a szöveg OLED kijelzőn való megjelenítéséhez.
display.display (); display.clearDisplay ();
Arduino levegőminőség-ellenőrző teszt
Miután elkészült a hardver és a kód, ideje tesztelni az eszközt. Ehhez csatlakoztassa az Arduino-t a laptophoz, válassza ki a Board és a Port elemet, majd nyomja meg a feltöltés gombot. Amint az alábbi képen látható, a PM2,5 és a PM10 értékeket jeleníti meg az OLED kijelzőn.
A teljes működő videó és kód az alábbiakban található. Remélem, tetszett a bemutató, és valami hasznosat tanultál. Ha bármilyen kérdése van, hagyja a megjegyzés rovatban, vagy használja fórumunkat egyéb technikai kérdésekhez.