- Wymagane składniki
- Czujnik Nova PM SDS011
- 0,96 'moduł wyświetlacza OLED
- Schemat obwodu dla analizatora jakości powietrza
- Tworzenie obwodu na tablicy perf
- Objaśnienie kodu dla monitora jakości powietrza
- Testowanie monitora jakości powietrza Arduino
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. Według Agencji Ochrony Środowiska (EPA) powietrze w pomieszczeniach może być 2 do 5 razy bardziej toksyczne niż powietrze zewnętrzne. Więc tutaj budujemy urządzenie do monitorowania jakości powietrza poprzez pomiar cząstek PM2,5 i PM10 w powietrzu.
Wcześniej używaliśmy czujnika gazu MQ135 do monitora jakości powietrza i czujnika Sharp GP2Y1014AU0F do pomiaru gęstości pyłu w powietrzu. Tym razem do budowy Analizatora Jakości Powietrza wykorzystujemy czujnik SDS011 z Arduino Nano. Czujnik SDS011 może obliczyć stężenia cząstek PM2,5 i PM10 w powietrzu. Tutaj wartości PM2,5 i PM 10 w czasie rzeczywistym zostaną wyświetlone na wyświetlaczu OLED.
Wymagane składniki
- Arduino Nano
- Czujnik Nova PM SDS011
- 0,96 'moduł wyświetlacza SPI OLED
- Przewody połączeniowe
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 osiągnąć stężenie cząstek w powietrzu od 0,3 do 10 μm. Ten czujnik składa się z małego wentylatora, zaworu wlotu powietrza, diody laserowej i 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.
Dane techniczne czujnika SDS011:
- Wyjście: PM2,5, PM10
- Zakres pomiarowy: 0,0-999,9 μg / m3
- Napięcie wejściowe: 4,7 V do 5,3 V.
- Maksymalny prąd: 100mA
- Prąd uśpienia: 2mA
- Czas reakcji: 1 sekunda
- Szeregowa częstotliwość wyjściowa danych: 1 raz / sekundę
- Rozdzielczość średnicy cząstek: ≤ 0,3 μm
- Względny błąd: 10%
- Zakres temperatur: -20 ~ 50 ° C
0,96 'moduł wyświetlacza OLED
OLED (organiczne diody elektroluminescencyjne) to technologia samoemitacji światła, skonstruowana przez umieszczenie szeregu cienkich warstw organicznych między dwoma przewodnikami. Po przyłożeniu prądu elektrycznego do tych filmów wytwarzane jest jasne światło. Diody OLED wykorzystują tę samą technologię co telewizory, ale mają mniej pikseli niż większość naszych telewizorów.
W tym projekcie używamy monochromatycznego 7-pinowego wyświetlacza OLED SSD1306 0,96 ”. Może pracować na trzech różnych protokołach komunikacyjnych: trybie SPI 3 Wire, trybie czteroprzewodowym SPI oraz trybie I2C. Piny i ich funkcje wyjaśniono w poniższej tabeli:
Nazwa pinu |
Inne nazwy |
Opis |
Gnd |
Ziemia |
Pin uziemienia modułu |
Vdd |
Vcc, 5 V. |
Pin zasilania (tolerowane 3-5 V) |
SCK |
D0, SCL, CLK |
Działa jako pin zegara. Używany zarówno dla I2C, jak i SPI |
SDA |
D1, MOSI |
Pin danych modułu. Używany zarówno do IIC, jak i SPI |
RES |
RST, RESET |
Resetuje moduł (przydatne podczas SPI) |
DC |
A0 |
Pin polecenia danych. Używany do protokołu SPI |
CS |
Chip Select |
Przydatne, gdy w protokole SPI używany jest więcej niż jeden moduł |
Omówiliśmy tutaj cały artykuł dotyczący wyświetlaczy OLED i ich typów.
Specyfikacje OLED:
- Układ scalony sterownika OLED: SSD1306
- Rozdzielczość: 128 x 64
- Kąt widzenia:> 160 °
- Napięcie wejściowe: 3,3 V ~ 6 V.
- Kolor piksela: niebieski
- Temperatura pracy: -30 ° C ~ 70 ° C
Dowiedz się więcej o OLED i jego interfejsach z różnymi mikrokontrolerami, klikając łącze.
Schemat obwodu dla analizatora jakości powietrza
Schemat obwodu do pomiaru cząstek PM2,5 i PM10 za pomocą Arduino jest bardzo prosty i przedstawiony poniżej.
Czujnik SDS011 i moduł wyświetlacza OLED są zasilane napięciem + 5 V i GND. Piny nadajnika i odbiornika SDS011 są połączone z pinami D3 i D4 Arduino Nano. Ponieważ moduł OLED Display wykorzystuje komunikację SPI, ustanowiliśmy komunikację SPI między modułem OLED a Arduino Nano. Połączenia przedstawiono w poniższej tabeli:
S.Nr |
Pin modułu OLED |
Pin Arduino |
1 |
GND |
Ziemia |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Tworzenie obwodu na tablicy perf
Przylutowałem również wszystkie komponenty na płycie perf, aby wyglądała schludnie. Ale możesz też zrobić je na płytce stykowej. Deski, które zrobiłem, są poniżej. Podczas lutowania uważaj, aby nie posortować przewodów. Płyta perf, którą przylutowałem, jest pokazana poniżej:
Objaśnienie kodu dla monitora jakości powietrza
Pełny kod tego projektu znajduje się na końcu dokumentu. Tutaj wyjaśniamy kilka ważnych części kodu.
Kod wykorzystuje SDS011, Adafruit_GFX , a Adafruit_SSD1306 bibliotek. Biblioteki te można pobrać z Menedżera bibliotek w środowisku Arduino IDE i stamtąd zainstalować. W tym celu otwórz Arduino IDE i przejdź do Szkic> Uwzględnij bibliotekę> Zarządzaj bibliotekami . Teraz wyszukaj SDS011 i zainstaluj bibliotekę SDS Sensor autorstwa R. Zschiegnera.
Podobnie zainstaluj biblioteki Adafruit GFX i Adafruit SSD1306 firmy Adafruit.
Po zainstalowaniu bibliotek do Arduino IDE, uruchom kod, dołączając potrzebne pliki bibliotek.
#zawierać
W następnych wierszach zdefiniuj dwie zmienne do przechowywania wartości PM10 i PM2,5.
pływak p10, p25;
Następnie zdefiniuj szerokość i wysokość OLED. W tym projekcie używamy wyświetlacza SPI OLED 128 × 64. Możesz zmienić te zmienne SCREEN_WIDTH i SCREEN_HEIGHT zgodnie z wyświetlanym ekranem.
# zdefiniować SCREEN_WIDTH 128 # zdefiniować SCREEN_HEIGHT 64
Następnie zdefiniuj piny komunikacyjne SPI, do których podłączony jest wyświetlacz OLED.
# zdefiniować OLED_MOSI 9 # zdefiniować OLED_CLK 10 # zdefiniować OLED_DC 11 # zdefiniować OLED_CS 12 # zdefiniować OLED_RESET 13
Następnie utwórz instancję wyświetlacza Adafruit o szerokości i wysokości zdefiniowanej wcześniej za pomocą protokołu komunikacyjnego SPI.
Wyświetlacz Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Teraz w funkcji setup () , zainicjuj monitor szeregowy z szybkością transmisji 9600 w celu debugowania. Zainicjuj również wyświetlacz OLED i czujnik SDS011 za pomocą funkcji begin () .
my_sds.begin (3,4); Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC);
Wewnątrz pustej pętli () odczytaj wartości PM10 i PM2,5 z czujnika SDS011 i wydrukuj odczyty na monitorze szeregowym.
void loop () {error = my_sds.read (& p25, & p10); if (! błąd) {Serial.println ("P2.5:" + String (p25)); Serial.println ("P10:" + String (p10));
Następnie ustaw rozmiar i kolor tekstu za pomocą setTextSize () i setTextColor () .
display.setTextSize (2); display.setTextColor (BIAŁY);
Następnie w kolejnym wierszu określ pozycję, od której ma się zaczynać tekst, za pomocą metody setCursor (x, y) . Tutaj wyświetlimy wartości PM2,5 i PM10 na wyświetlaczu OLED, więc pierwsza linia zaczyna się od (0,15), a druga linia zaczyna się od (0, 40) współrzędnych.
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);
Na koniec wywołaj metodę display () , aby wyświetlić tekst na wyświetlaczu OLED.
display.display (); display.clearDisplay ();
Testowanie monitora jakości powietrza Arduino
Gdy sprzęt i kod są gotowe, czas przetestować urządzenie. W tym celu podłącz Arduino do laptopa, wybierz kartę i port, a następnie naciśnij przycisk przesyłania. Jak widać na poniższym obrazku, wyświetli wartości PM2,5 i PM10 na wyświetlaczu OLED.
Pełen działający film i kod podano poniżej. Mam nadzieję, że spodobał Ci się samouczek i nauczyłeś się czegoś przydatnego. Jeśli masz jakieś pytania, zostaw je w sekcji komentarzy lub skorzystaj z naszych forów w celu uzyskania innych pytań technicznych.