Zanieczyszczenie powietrza jest poważnym problemem w wielu miastach, a wskaźnik jakości powietrza pogarsza się każdego dnia. Według raportu Światowej Organizacji Zdrowia więcej ludzi ginie przedwcześnie na skutek niebezpiecznych cząstek unoszących się w powietrzu niż w wypadkach samochodowych. Więc tym razem budujemy przenośne urządzenie do monitorowania jakości powietrza. Wcześniej już używaliśmy czujnika SDS011 z wykorzystaniem esp8266 jak i domoticzem. Tym razem do budowy przenośnego analizatora wykorzystujemy Arduino oraz dane wyświetlimy na LCD OLED SSD1306 128X64 0,96 cala.
Potrzebne komponenty:
- Arduino UNO / Nano
- Czujnik Nova PM SDS011
- 0,96 'moduł wyświetlacza SSD1306 128X64 0,96 cala.
- przewody do połączenia wszystkiego
Potrzebne biblioteki:
- biblioteka Adafruit_SSD1306.h dodaje nam obsługę wyświetlacza SSD1306,
- biblioteka SDS011.h do obsługi czujnika SDS011
Czujnik Nova PM SDS011
Czujnik SDS011 to najnowszy czujnik jakości powietrza opracowany przez firmę Nova Fitness. Działa na zasadzie rozpraszania laserowego i może uzyskać informację na temat stężenie cząstek w powietrzu od 0,3 do 10 μm. Sam czujnik składa się z małego wentylatora, kanału wlotowego powietrza, diody laserowej oraz fotodiody. Powietrze wchodzi przez wlot powietrza, gdzie źródło światła (laser) oświetla cząstki, a rozproszone światło jest przekształcane w sygnał przez fotodetektor. Sygnały te są następnie wzmacniane i przetwarzane w celu uzyskania stężenia cząstek PM2,5 i PM10. Sam czujnik ma swoją niestety wytrzymałość u mnie wersja pracująca z Domoticzem padła po roku pomiarów, jednak nie mam co się czepiać skoro producent określa żywotność na 8000 roboczo godzin.
Parametry SDS010
- Typ pomiarów: PM2.5, PM10
- Zakres pomiarów: 0 – 999.9 μg /m³
- Napięcie zasilania: 5V (4.7 – 5.3V)
- Pobór prądu (praca): 70mA±10mA
- Pobór prądu (uśpienie lasera i wentylatora): < 4mA
- Temperatura przechowywania: -20 – +60C
- Temperatura pracy: do -10 do +50C
- Wilgotność (przechowywanie): Maks. 90%
- Wilgotność (praca): Maks. 70% (kondensacja pary wodnej fałszuje odczyty i to znacznie)
- Dokładność pomiaru:
- 70% dla 0.3μm
- 98% dla 0.5μm
Schemat połączeń:
Kod programu:
//Copyright © by swistak
//Wydawnictwo Tranzystor.pl
//https://www.tranzystor.pl/artykuly-i-schematy/arduino/analizator-jakosci-powietrza-wykorzystujacy-arduino-i-sensora-sds011-do-pomiaru-pm25-i-pm10.html
#include <SDS011.h>
#include <SPI.h>
#include <Adafruit_SSD1306.h>
float p10,p25;
int error;
SDS011 my_sds;
Adafruit_SSD1306 display(128, 64);
void setup() {
my_sds.begin(3,4);
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextColor(WHITE);
}
void loop() {
error = my_sds.read(&p25,&p10);
if (! error) {
Serial.println("P2.5: "+String(p25));
Serial.println("P10: "+String(p10));
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0,15);
display.println("PM2.5");
display.setCursor(66,15);
display.println(p25);
display.setCursor(0,40);
display.println("PM10");
display.setCursor(66,40);
display.println(p10);
display.display();
display.clearDisplay();
}
delay(1000);
}