Czujniki dymu to urządzenia elektroniczne, które wykrywają obecność cząstek dymu w powietrzu. Obok czujników jakości powietrza (VOC), które także są w stanie reagować na dym, na rynku są dostępne również specjalizowane moduły przeznaczone do tego celu.
Czujnik pyłu GP2Y1010AU0F
Czujnik zanieczyszczeń powietrza GP2Y1010AU0F firmy Sharp [1] wykrywa cząsteczki o średnicy powyżej 0,8 μm. Składa się z diody emitującej podczerwień (IRED) i fototranzystora, który wykrywa światło odbite od pyłu. Moduł szczególnie skutecznie wykrywa bardzo drobne cząstki, takie jak dym papierosowy. Czujnik charakteryzuje się relatywnie niskim poborem prądu, a napięcie na jego wyjściu jest liniowo skorelowane z wykrytym poziomem zanieczyszczeń. GP2Y1010AU0F znajduje zastosowanie w takich obszarach, jak systemy klimatyzacji oraz domowe stacje monitorujące jakość powietrza.
Parametry czujnika GP2Y1010AU0F [3]:
- wyjście analogowe o napięciu proporcjonalnym do zmierzonej gęstości pyłu,
- rozmiar wykrywanego pyłu: >0,8 μm,
- czułość: 0,5±0,15 V/(100 μg/m³),
- zakres pomiaru: 500 μg/m³,
- napięcie wyjściowe bez pyłu (Voc): 0/0,9/1,5 (min./typ./maks.),
- zakres napięcia wyjściowego (RL=4,7 kΩ): 3,4 V (min.),
- temperatura pracy: od –10 do 65°C,
- gotowość po włączeniu zasilania: <1 s,
- czas impulsu pomiarowego (diody LED) Pw: 0,32±0,02 ms,
- odstęp powtarzania impulsu T: 10±1 ms,
- prąd kluczowania diody LED: 10/20 mA (typ./maks.),
- pomiar po włączeniu diody LED Tp: 0,28 ms,
- napięcie zasilania: 5±0,5 V,
- pobór prądu: 11/20 mA (typ./maks.),
- czas życia: 5 lat (przy 50% spadku sygnału wyjściowego).
Światło z emitera (diody elektroluminescencyjnej) jest skupiane przez soczewkę i ograniczane za pomocą szczeliny (rysunek 1). Układ soczewki i szczeliny jest także umieszczony przed detektorem światła (fotodiodą), aby odciąć światło zakłócające i wykryć skutecznie tylko odbicie światła od kurzu. Obszar, w którym te dwie osie optyczne się przecinają, jest obszarem detekcji czujnika. Napięcie wyjściowe – przy braku kurzu – jest określone w specyfikacji jako Voc. Dzieje się tak, ponieważ światło emitowane przez diodę LED odbija się od obudowy urządzenia, a część z niego dociera do detektora. Gdy we wnętrzu czujnika znajduje się kurz i/lub dym papierosowy, to detektor wykrywa światło odbite od cząstek. Prąd, proporcjonalny do ilości światła wykrytego przez detektor, jest wzmacniany i urządzenie generuje analogowy sygnał napięciowy na wyjściu impulsowym.
Potencjometr Rs do regulacji czułości jest ustawiany zgodnie ze specyfikacją przed firmę Sharp (rysunek 2). Dlatego nie należy zmieniać jego ustawienia, ponieważ może ono być niezgodne ze specyfikacją.
Do wejścia zasilania V-LED należy dołączyć rezystor R1=150 Ω i za nim kondensator C1=220 μF. Są one wymagane do sterowania impulsowego diody LED. W sprzedaży dostępny jest adapter z tymi elementami i potrzebnymi złączami [4].
Czujnik wymaga impulsowego sterowania diodą LED. W dokumentacji do kluczowania zalecany jest tranzystor MOS [2]. Impulsy sterowania Pw = 0,32 s są powtarzane co T=10 ms. Pomiar napięcia wyjściowego powinien być wykonywany w czasie 0,28 ms po włączeniu diody LED (rysunek 3).
Dostępny jest także moduł firmy Waveshare [5] z czujnikiem GP2Y1010AU0F oraz z wszystkimi potrzebnymi elementami zewnętrznymi. Do kluczowania zastosowano tranzystor NPN (100 MHz). Do zasilania czujnika wybrano przetwornicę podwyższającą DC/DC.
Czujnik GP2Y1010AU0F, przeznaczony jest do kontrolowania czystości powietrza i odznacza się bardzo dobrymi własnościami pod względem dokładności pomiaru, to w mocno zapylonym środowisku powstaje ryzyko zafałszowania pomiaru wskutek przylegania kurzu do powierzchni detekcyjnej czujnika. Jeśli na powierzchni pojawi się nadmiar kurzu, wówczas czujnik należy wyczyścić sprężonym powietrzem. Ponadto należy zadbać, aby czujnik nie został zabrudzony substancjami o lepkiej i oleistej konsystencji [1].
Odpowiedź czujnika może zostać zakłócona, gdy światło zewnętrzne przedostanie się przez otwór na kurz po stronie z napisami (tworzywowa część obudowy). Aby uniknąć wpływu światła zewnętrznego, trzeba umieścić tę stronę czujnika skierowaną do wnętrza urządzenia. Aby uniknąć wpływu przywierania kurzu do wnętrza modułu, należy zamontować czujnik w urządzeniu tak, aby wyjście złącza na czujniku było skierowane w dół. Instalacja filtra o grubych oczkach przed otworem na kurz jest skuteczna w wychwytywaniu dużych fragmentów kurzu.
Napięcie wyjściowe Vo czujnika jest sumą napięcia wyjściowego przy braku pyłu (Voc) i przyrostu napięcia proporcjonalnego do gęstości pyłu (ΔV). Przykładowa zależność napięcia wyjściowego od gęstości pyłu jest pokazana na rysunku 4.
Do prób został zastosowany czujnik GP2Y1010AU0F z dołączonym rezystorem 150 Ω i kondensatorem 220 μF. Do kluczowania wybrano tranzystor NMOS typu NDS355AN (1,7 A, 10 ns).
Trudnym problemem jest zrealizowanie stabilnego i czystego zasilania 5 V dla czujnika. Szczególnie jeśli jest dołączany do systemu 3,3 V z zasilaniem akumulatorowym. Wtedy do uzyskania napięcia 5 V z zasilania 3,5…4,2 V trzeba zastosować przetwornicę podwyższającą. Niestety zakłócenia szpilkowe napięcia wyjściowego, spowodowane przełączaniem wewnętrznym przetwornicy, mogą być bardzo trudne do usunięcia. Zastosowanie tanich, popularnych płytek przetwornic (chińskich) daje typowo duże zakłócenia wyjściowe (nawet 0,5...1,5 V) oraz duże, wsteczne zakłócenia, wnoszone do źródła zasilania. Dodatkowym istotnym problemem jest często bardzo duży prąd rozruchowy (po włączeniu zasilania), nawet powyżej 1 A (bez obciążenia).
Zastosowanie droższych płytek dobrych producentów poprawia sytuację. Jednak dalej trzeba usuwać szpilki. Rozwiązaniem jest zastosowanie na wyjściu układu LDO o dużym współczynniku tłumienia PSRR w szerokim paśmie. Do badań został zastosowany układ LT3045 firmy Analog Devices (PSRR 76 dB przy 1 MHz). Dodatkowo na wyjściu umieszczono filtr zasilania BNX029-01 firmy Murata (tłumienie min. 35 dB w paśmie od 15 kHz do 1 GHz).
Do prób wybrano płytkę z przetwornicą MP3424A firmy Monolithic Power Systems (580 kHz, 3,1 A) z dołączoną na wyjściu płytką LT3045 (LDO 5 V) i następnie z filtrem BNX029. Przykład pomiaru takiego toru zasilania jest pokazany na rysunku 5. Tor jest zasilany z zasilacza laboratoryjnego (3,7 V, 473 mA). Takie same rezultaty zostały uzyskane przy zasilaniu z jednego ogniwa LiPo (3,7 V). Kanał 1 to wyjście MP3424 (5,63 V), kanał 2 – wyjście BNX029 (4,97 V, obciążenie ok. 320 mA), kanał 3 – wyjście analogowe czujnika. Zakłócenia szpilkowe zniknęły i pozostał szum biały (łatwy do odfiltrowania z zastosowaniem uśredniania). Pomiary zostały wykonane oscyloskopem DSO-X 3024A o paśmie 350 MHz, współpracującym z sondami 700 MHz [9].
Odpowiedź napięciowa czujnika GP2Y1010AU0F w czystym powietrzu została pokazana na rysunku 6. W kanale CH2 widać sygnał sterowania diody LED czujnika (320 μs). W kanale CH3 mierzona jest natomiast odpowiedź napięciowa czujnika. Jest ona prawie zgodna z katalogową.
Na rysunku 7 pokazano odpowiedź czujnika na serię pomiarów (co 10 ms), wykonywaną w odstępie co 2,14 s. Pierwsza wartość jest wyraźnie większa. Następne odczyty maleją do relatywnie stabilnego poziomu. Dlatego wykonywanych jest dziesięć pierwszych, dodatkowych pomiarów. A dopiero następnych dziesięć jest uwzględnianych we właściwym odczycie i uśrednianych.
Do odczytu wyjściowego sygnału analogowego został zastosowany moduł z przetwornikiem ADC typu ADS1115 [6]. Jest to przetwornik sigma-delta z najkrótszym czasem przetwarzania na poziomie 1,25 ms, co jest czasem zbyt długim do spełnienia wymagań producenta czujnika. Jednak poziom sygnału wyjściowego czujnika pomiędzy impulsami pomiarowymi jest bardzo niski. Dlatego wartość średnia napięcia wyjściowego w tak długim czasie jest stabilna i dokładnie proporcjonalna do pomiaru zgodnego ze specyfikacją fabryczną. Oczywiście uzyskany pomiar to część wartości (ok. 15%) pomiaru punktowego. Jednak przy 16-bitowej rozdzielczości przetwornika i możliwości dobrego skalowania zakresu pomiarowego wykonywany pomiar jest dokładny i stabilny.
Czujnik BME688
Czujnik gazu układu BME688 firmy Bosch jest wytwarzany w technologii MOX. Gazy, które mogą być wykrywane przez BME688, obejmują (niemal wszystkie) lotne związki organiczne, lotne związki siarki oraz inne gazy, jak tlenek węgla (CO) i wodór (H2) w zakresie na poziomie ppb (parts per billion). Czujnik ma w obudowie otwór o średnicy mniejszej niż 1 mm. Dyfuzja gazu do środka i na zewnątrz obudowy trwa kilka sekund. Nie ma potrzeby stosowania wymuszonego przepływu gazu [11].
Moduł BME688 Breakout Board firmy pi3g zawiera układ BME688 firmy Bosch skonfigurowany do pracy z szyną I²C [8]. Układ scalony BME688 jest zamontowany daleko od złączy płytki, co pozwala na poprawną pracę czujnika z dala od źródeł ciepła. Moduł pobiera maksymalnie 50 mA prądu. Złącze X1 ma wyprowadzone sygnały SCL, SDA oraz masę i zasilanie 3,3 V w sposób kompatybilny ze złączem GPIO płytki Raspberry Pi Pico 2. W celu połączenia modułów wystarczy wyrównać piny 3,3 V na obydwu złączach. Raspberry Pi ma dwa wyprowadzenia I²C na GPIO 2 (SDA) i GPIO 3 (SCL) interfejsu I2C0 (master) – piny układu scalonego o numerach 27 i 28.
Aby uzyskać stabilny odczyt rezystancji czujnika, konieczne jest zapewnienie czystego napięcia zasilania. Nie nadaje się do tego napięcie 3V3 dostarczane przez płytkę Pico 2, gdyż zawiera ono silne tętnienia. Dobrym sposobem jest pobranie zasilania 3,3 V ze zmodyfikowanej płytki przetwornika ADS1115 (opis w [7]).
Czujnik MQ-2
MQ-2 jest jednym z powszechnie używanych czujników gazu z serii MQ. Jest to sensor typu Metal Oxide Semiconductor (MOS). Czujnik gazu MQ-2 wymaga zasilania 5 V±0,1 V prądu stałego i zużywa około 800 mW mocy. Wykrywa kilka rodzajów gazów, w tym LPG (gaz płynny), dym, alkohol, propan, wodór, metan i tlenek węgla. Został już dokładnie omówiony w artykule „Czujniki gazu i dymu” [7].
Czujnik SEN0570
Czujnik MEMS Smoke Gas Detection Sensor (SEN0570) firmy DFRobot z układem GM-202B firmy Winsen bazuje na technologii MEMS (omówiliśmy go już w [7]). Czujnik służy do wykrywania dymu i alkoholu. Wymaga czystego zasilania 3,3…5 V przy poborze prądu 17 mA.
Czujnik podczerwieni
Do detekcji podczerwieni został zastosowany „czujnik płomieni” firmy Waveshare służący do wykrywania ognia [10]. Zasilany jest napięciem od 3,3 V do 5,3 V. Na płytce został zastosowany fototranzystor YG1006 firmy Sunrom Electronics. Zakres wykrywanej fali: od 760 nm do 1100 nm (940 nm w punkcie maksymalnej czułości). Wyjściem jest napięcie analogowe zmieniające się w szerokim zakresie. Podobnie jak inne sensory analogowe, element wymaga czystego napięcia zasilania.
Płytka RPi Pico 2 firmy Raspberry Pi
Mikrokontroler RP2350 zawiera dwa rdzenie Arm Cortex-M33, 150 MHz z obsługą obliczeń zmiennoprzecinkowych i DSP oraz dwa rdzenie RISC-V Hazard 3, 150 MHz. Nowe płytki Pico 2 i Pico 2W firmy Raspberry Pi z procesorem RP2350A są zgodne elektrycznie z płytkami Pico z pierwszej serii (Pico/Pico W). Dokładny opis jest zamieszczony w artykule „Płytka Raspberry Pi Pico 2/2W z procesorem RP2350” [13].
Pico 2 zawiera przetwornicę buck-boost, która dostarcza 3,3 V (do zasilania RP2350 i obwodów zewnętrznych) z szerokiego zakresu napięć wejściowych (od 1,8 do 5,5 V). Umożliwia to znaczną elastyczność w zasilaniu urządzenia z różnych źródeł, takich jak pojedyncze ogniwo litowo-jonowe lub 3 ogniwa AA połączone szeregowo. Najprostszym sposobem zasilania Pico 2 jest podłączenie kabla do gniazdka microUSB. W dokumentacji Pico 2/2W jest pokazane, jak poprzez dodanie tranzystora MOS można zrealizować podtrzymanie bateryjne zasilania płytki.
Wykrywanie dymu
Układ prototypowy został skompletowany z płytki Raspberry Pi Pico 2, modułu ADS1115, ekspandera szyny Pico Omnibus, wyświetlacza e-Paper typu Pico Inky Pack, toru zasilania 5 V (opisanego powyżej) oraz dołączonych czujników.
Płytka Pico 2 była obsługiwana w środowisku Thonny. Zastoso-wany w niej został najnowszy interpreter MicroPythona ze strony firmy Pimoroni. Interpreter MicroPython firmy Pimoroni dla Pico 2 zawiera dodatkowo sterowniki wielu czujników (w tym BME688) oraz wyświetlaczy. Do pracy z układem ADS115 została zastosowana biblioteka języka MicroPython opracowana przez Wolfganga (Wolle) Ewalda w języku Python. Całość była już dokładnie omówiona w artykule „Czujniki gazu i dymu” [7] oraz „Detekcja pożaru z płytką Raspberry Pi Pico 2 w języku Python” [12]. Załączone tam oprogramowanie można (prawie) bezpośrednio zastosować do pracy z obecną konfiguracją sprzętową.
W ramach testów została przeprowadzona próba wykrywania dymu. Pomiary były wykonywane jednocześnie z czujnikiem GP2Y1010AU0F (w skrócie GP2Y) oraz z czujnikami: SEN-570 (dym), BME688 (gaz), IR (podczerwień) i sensorem MQ-2 (dym), opisanymi dokładnie w artykule [7]. Wszystkie czujniki zostały wcześniej wstępnie wygrzane przez kilka godzin. Jest to konieczne do wykonania wiarygodnych pomiarów (zobacz [7]). Do wytwarzania dymu została zastosowana trociczka zapachowa. Dym był niestabilny.
Wynik pierwszego badania pokazano na rysunku 8 (skala pionowa mV, podzielone wartości wyników: dla BME688: /100, dla IR: /10). Dla czujnika GP2Y było wykonywanych 10 kolejnych pomiarów z uśrednianiem wyniku (według opisu powyżej). Pozostałe kanały odczytywano jednokrotnie z czasem przetwarzania 125 ms. Odczyty były powtarzane co 2,149 s. Po włączeniu zasilania czujnik BME688 wymaga dosyć długiego czasu (ok. 11 min) na ustabilizowanie wartości odczytu. W trakcie długotrwałej pracy (godziny, dni) ten poziom się stabilizuje i wzrasta powoli. Czujnik za to szybko i bardzo mocno zareagował na dym. Powrót do poziomu stabilnego trwał dosyć długo (ok. 7 min). Czujnik SEN-570 nie zareagował praktycznie wcale. Moduł GP2Y1010AU0F zareagował bardzo dobrze, dając w odpowiedzi duże szpilki sygnału wyjściowego. Czujnik MQ-2 także zareagował, ale słabo – dobrze wykrywał natomiast obecność tlenku węgla CO [7]. Czujnik IR był podczas próby częściowo przesłonięty. Należy podkreślić, że dym był bardzo niestabilny.
Dla sprawdzenia słabej odpowiedzi czujnika SEN570 została wykonana druga próba (rysunek 9). Zastosowano dosyć spory dym, generowany blisko czujników poprzez trzykrotne zapalenie zapalniczki, co dosyć wyraźnie pokazuje sygnał czujnika IR. Tym razem widać szybką odpowiedź czujnika BME688 oraz MQ-2. Czujnik BME688 dosyć wolno wraca do wartości początkowych (minuty). Brak jest odpowiedzi czujnika SEN-570. Odsunięcie otworu pomiarowego czujnika GP2Y1010AU0F od smugi dymu spowodowało brak jego reakcji. Czujnik reaguje tylko na dym przez niego przepływający. Jest to spory problem, sugerujący konieczność stosowania wymuszonego przepływu powietrza w celu uzyskania wiarygodnych pomiarów otoczenia.
Podsumowanie
Podłączenie analogowych czujników dymu SEN570 i MQ-2, czujnika pyłów GP2Y1010AU0F, czujnika podczerwieni oraz cyfrowego czujnika gazu BME688 do płytki Pico 2 okazało się dosyć proste (z wyjątkiem wytworzenia czystego napięcia zasilania 5 V, co okazało się nieco bardziej skomplikowane).
Przeprowadzone pierwsze próby zakończyły się pomyślnie. Największą czułość na dym wykazał czujnik BME688 (przy długim czasie powrotu do stanu początkowego) oraz czujnik GP2Y1010AU0F (pomijając problem ze słabym przepływem powietrza). Czujnik MQ-2 wykazał szybką i wyraźną odpowiedź, ale dopiero na dosyć wysoki poziom dymu. Brak reakcji czujnika SEN570 wymaga dodatkowych badań. Czujnik IR został dołączony dodatkowo i zachęca do zajęcia się zagadnieniem wykrywania płomienia.
Czujnik GP2Y1010AU0F jest ciekawą i tanią propozycją rozwiązania przydatnego do wykrywania pyłów (w tym dymu), lecz wiarygodne porównywanie jego działania do czujników innych firm (np. SEN55) można wykonywać tylko w warunkach laboratoryjnych. Szczególnie że próby z trzema egzemplarzami czujnika pokazały różną czułość poszczególnych egzemplarzy.
W dokumentacji [2] producent czujnika GP2Y1010AU0F ostrzega, aby nie stosować go do instalacji wykrywania pożaru.
Henryk A. Kowalski
Instytut Informatyki
Politechnika Warszawska
Literatura:
- Application note of Sharp dust sensor GP2Y1010AU0F, Sharp Global, https://global.sharp/products/device/lineup/data/pdf/datasheet/gp2y1010au_appl_e.pdf
- GP2Y1010AU0F Compact Optical Dust Sensor, Data Sheet, Sharp https://global.sharp/products/device/lineup/data/pdf/datasheet/gp2y1010au_e.pdf
- Sharp GP2Y1010AU0F Compact optical Dust Sensor – optyczny czujnik pyłu, Kamami, https://kamami.pl/czujniki-jakosci-powietrza/581671-sharp-gp2y1010au0f-compact-optical-dust-sensor-optyczny-czujnik-pylu-sen0144-5906623406685.html
- Gravity: Dust Sensor Adapter, DfRobot, https://www.dfrobot.com/product-1063.html
- Dust Sensor, SKU:10500, Waveshare, https://www.waveshare.com/dust-sensor.htm
- Gravity: I²C ADS1115 16-Bit ADC Module, DFR0553, DFRobot, https://www.dfrobot.com/product-1730.html
- Czujniki gazu i dymu, EP 6/2025, https://ep.com.pl/projekty/moduly-w-aplikacjach/16536-internet-rzeczy-w-pomiarach-srodowiskowych-18-czujniki-gazu-i-dymu
- Systemy dla Internetu Rzeczy (54): Czujnik gazu Bosch BME688 ze sztuczną inteligencją, EP 11/2021, https://ep.com.pl/kursy/15078-systemy-dla-internetu-rzeczy-54-bosch-bme688-czujnik-gazu-ze-sztuczna-inteligencja
- DSOX3024A Oscilloscope: 200 MHz, 4 Channels, https://www.keysight.com/zz/en/product/DSOX3024A/oscilloscope-200-mhz-4-channels.html
- Flame Sensor, Waveshare, https://www.waveshare.com/product/Flame-Sensor.htm
- Czujnik gazu Bosch BME688 ze sztuczną inteligencją, EP 11/2021, https://ep.com.pl/kursy/15078-systemy-dla-internetu-rzeczy-54-bosch-bme688-czujnik-gazu-ze-sztuczna-inteligencja
- Detekcja pożaru z płytką Raspberry Pi Pico 2 w języku Python, EP 04/2025, https://ep.com.pl/projekty/moduly-w-aplikacjach/16496-internet-rzeczy-w-pomiarach-srodowiskowych-16-detekcja-pozaru-z-plytka-raspberry-pi-pico-2-w-jezyku-python
- Płytka Raspberry Pi Pico 2/2W z procesorem RP2350, EP0 3/2025, https://ep.com.pl/projekty/moduly-w-aplikacjach/16453-internet-rzeczy-w-pomiarach-srodowiskowych-15-plytka-raspberry-pi-pico-2-2w-z-procesorem-rp2350