Badanie czystości powietrza z wykorzystaniu esp32 i czujnika PMS5003

Typ_projektu
microPython
Zdjecie główne
Pomiar czystośći/zanieczyszczenia powietrza pyłami. Czujnk pyłu umożliwia monitorowanie obecności w powietrzu pyłów: PM1.0, PM2.2, PM10. Sensor pozwala na wykrycie cząstek o średnicy powyżej 0.3 μm czyli np. dym papierosowy. Układ zasilany jest napięciem 5V a komunikacja z płytką esp32 odbywa sie przy wykorzystaniu interfejsu UART.
Krótki opis projektu

Pomiar czystośći/zanieczyszczenia powietrza pyłami. Czujnk pyłu umożliwia monitorowanie obecności w powietrzu pyłów: PM1.0, PM2.2, PM10. Sensor pozwala na wykrycie cząstek o średnicy powyżej 0.3 μm czyli np. dym papierosowy. Układ zasilany jest napięciem 5V a komunikacja z płytką esp32 odbywa sie przy wykorzystaniu interfejsu UART.

Niezbędne elementy

1.Płytka esp32

2.Czujnik pyłu PMS5003

3. Kable stykowe (3x męsko-męskie, 1x żeńsko-żeński)

4.Kabel MicroUSB B

Sprzęt

Komputer ze środowiskiem Thony

Opis projektu

Projekt ukazuje możliwość wykorzystania ogólnodostępnych czujników do samodzielnego badania jakości powietrza. Czujnik PMS5003 to urządzenie do pomiaru pyłów zawieszonych w powietrzu (PM - particulate matter). Jest to popularny czujnik stosowany w monitoringu jakości powietrza. Poniżej znajduje się krótka informacja na temat tego, jak działa czujnik PMS5003:

   - Czujnik PMS5003 wykorzystuje technologię laserową do pomiaru ilości pyłów zawieszonych w powietrzu. Wewnątrz czujnika znajduje się dioda laserowa, która emituje światło laserowe.

   - Cząstki pyłów zawieszone w powietrzu przechodzą przez obszar światła laserowego. W wyniku tego zjawiska światło ulega rozproszeniu, a czujnik mierzy ilość rozproszonego światła.

   - Czujnik PMS5003 jest zdolny do pomiaru cząstek pyłów o różnych rozmiarach. Mierzy ilość cząstek w kilku przedziałach rozmiarowych, takich jak PM1.0, PM2.5 i PM10, co odpowiada różnym kategoriom wielkości cząstek.

   - Czujnik PMS5003 zazwyczaj posiada interfejs komunikacyjny, tak jak np. UART (Universal Asynchronous Receiver/Transmitter), co umożliwia podłączenie go do mikrokontrolera, komputera lub innego urządzenia.

   - Dane z czujnika mogą być odczytywane i interpretowane przez odpowiednie oprogramowanie. Mogą być one wykorzystywane do monitorowania jakości powietrza w czasie rzeczywistym oraz do analizy trendów.

 

1.Połączyć układ zgodnie z opisem

2. Połączyć płytkę ESP32 do komputera za pomocą kabla USB

3.Pobrać na komputer a później przenieść na płytkę  plik __inity__.py : zapisując go pod nazwą pms5003.py

 

Największymi ograniczeniami w projekcie są same zdolności płytki której użyjemy jako bazy projektu. Używając esp32 jak i możliwie esp8266 musimy wziąć pod uwagę problemy przy komunikacji z wykorzystaniem UART, niektóre z pinów wykorzystane do podłączenia czujnika mogą blokować komunikacje. Jeżeli do komunikacji chcemy użyć innych pinów niż podane warto zapoznać się ze schematem wyjść zabronionych zamieszczoną w plikach.

Do obsługi biblioteki służącej do komunikacji z czujnikiem wykorzystane jest tzw. dziedziczenie-koncept programowania obiektowego pozwalający na definiowanie nowych klas w oparciu o istniejące, rozszerzając lub zmieniając ich funkcjonalność. Poniżej zamieszczono pliki pozwalające zgłębić to zagadnienie.

Zdjęcia
kod programu
import time
from pms5003 import PMS5003
from pms5003 import PMS5003Data
from pms5003 import PMS5003Response
import machine
 

print("""pms5003_test.py - Continously print all data values.
""")


# Configure the PMS5003 for Enviro+
pms5003 = PMS5003(
    uart=machine.UART(1, tx=machine.Pin(16), rx=machine.Pin(17), baudrate=9600),
    pin_enable=machine.Pin(3),
    pin_reset=machine.Pin(2),
    mode="active"
)


while True:
    data = pms5003.read()
    #print(data)
  
    variable1 = data.pm_ug_per_m3(2.5)
    variable2 = data.pm_ug_per_m3(1)

# Plotting two variables
    print("PM25",variable1,"PM1",variable2)
    time.sleep(1.0)

Schemat
Tagi
esp32 ESP32 PMS5003 PLANTOWER PM czujnik czystość powietrza
Odnośniki zewnętrzne
https://github.com/pimoroni/pms5003-micropython/blob/main/examples/pmsa003i_test.py

https://botland.com.pl/czujniki-czystosci-powietrza/6797-czujnik-pyluczystosci-powietrza-pm10-pm25-pm10-pms5003-5v-uart-5904422359041.html?cd=20567593583&ad=&kd=&gad_source=1&gclid=CjwKCAiA44OtBhAOEiwAj4gpOVi5RlScq4ijtAWn2Z9SibqBgDu_HW6XAHwIDt9W1DW51sNXiV6isBoCpeEQAvD_BwE

https://randomnerdtutorials.com/esp32-pinout-reference-gpios/

https://math.uni.wroc.pl/~jagiella/p2python/skrypt_html/wyklad8.html