Spisu treści:
- Krok 1: Aktualizacja bootloadera
- Krok 2: Lutowanie nagłówków
- Krok 3: Przykład instalacji CircuitPythona i kombinowanego plotera
- Krok 4: Połączony ploter
- Krok 5: Przypinki Enviro+ FeatherWing
- Krok 6: Zużycie energii
- Krok 7: Dodawanie czujnika materii Plantower PMS5003
- Krok 8: Idź dalej
Wideo: Używanie skrzydła Pimoroni Enviro+ z piórem Adafruit Feather NRF52840 Express: 8 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:26
Pimoroni Enviro+ FeatherWing to deska pełna czujników zaprojektowana do współpracy z serią desek Adafruit Feather. Jest to przydatne miejsce do rozpoczęcia dla wszystkich zainteresowanych monitorowaniem środowiska, zanieczyszczeniem atmosfery i gromadzeniem danych. Zawiera:
- Bosch BME280 - czujnik temperatury, ciśnienia, wilgotności;
- Lite-On LTR-559 - czujnik światła i zbliżeniowy;
- SensorTech MiCS-6814 - czujnik gazów utleniających, redukujących i amoniaku;
- Mikrofon analogowy - pomiar zanieczyszczenia hałasem;
- Złącze do czujnika cząstek stałych Plantower PMS5003 (brak w zestawie).
Trzy czujniki tlenków metali w MiCS-6814 obejmują mniej popularny czujnik gazów utleniających. Jest to przydatne ze względu na wrażliwość na dwutlenek azotu (NO2), zanieczyszczenie powszechne w miastach i w pobliżu głównych dróg.
Pimoroni polecają albo Adafruit
- Feather M4 Express (120 MHz, 192kB pamięci RAM) lub
- Piórkowy nRF52840 Express (64 MHz, 256 kB pamięci RAM).
Do tego przewodnika wybrano nRF52840, ponieważ obsługuje technologię Bluetooth Low Energy (BLE), co daje płytce możliwość wysyłania danych do innego urządzenia.
Zarówno Feather, jak i FeatherWing mają nieprzyłączone męskie nagłówki. Do układania desek wymagane są żeńskie nagłówki. W tym przewodniku pokazano użycie „nagłówków do układania w stos”, które umożliwiają włożenie płytki Feather do płytki prototypowej, co ułatwia eksperymentowanie z dodatkowymi czujnikami. Nagłówki muszą być przylutowane do płyt, ale jest to dość proste.
Enviro+ FeatherWing ma jedną subtelną różnicę w porównaniu do swojego kuzyna, Enviro+ Air Quality dla Raspberry Pi. Wersja FeatherWing wydaje się być zaprojektowana do pracy z napięciami poniżej 5V, co pozwala na użycie pojedynczej baterii litowo-polimerowej (LiPo) produkującej 3,7V-4,3V. Posiada konwerter DC-DC, który zapewnia 5 V dla opcjonalnego PMS5003 i może indywidualnie zasilać wewnętrzne grzałki MiCS-6814, aby poradzić sobie z tymi niższymi napięciami.
Główne zdjęcie przedstawia Enviro+ FeatherWing wyświetlające dane PM2.5 i PM10 z PMS5003. W połowie spisku doszło do zapałki Swan Vestas, aby zapalić świeczkę.
Drugi artykuł dotyczy wykreślania poziomu dwutlenku węgla za pomocą Pimoroni Enviro+ FeatherWing i Adafruit SCD-30.
Kieszonkowe dzieci:
- Pimoroni Enviro+ Skrzydło Z Piór - Pimoroni | Adafruit - (inna podobna płyta istnieje dla Raspberry Pi)
- Adafruit nRF52840 Feather Express - Pimoroni | Adaowoc
- Przystawki do układania w stosy - Pimoroni | Adafruit - można również użyć normalnych żeńskich nagłówków lub podwójnego/potrójnego FeatherWing
- Lutować
- Opcjonalnie: czujnik cząstek stałych Plantower PMS5003 - Pimoroni | Adafruit
Krok 1: Aktualizacja bootloadera
Płytkę Feather można sprawdzić przed lutowaniem podłączając ją do komputera za pomocą USB. Jest to przydatny czas na sprawdzenie bootloadera - stare wersje mogą powodować mylące, ale nieszkodliwe błędy w systemie Windows.
Dwukrotne kliknięcie przycisku resetowania Feather powoduje, że dysk o nazwie FTHR840BOOT zostanie przedstawiony komputerowi hostowi. Plik o nazwie INFO_UF2. TXT można otworzyć w celu sprawdzenia wersji, poniższy przykład pokazuje zawartość wskazującą wersję 0.2.6:
F2 Bootloader 0.2.6 lib/nrfx (v1.1.0-1-g096e770) lib/tinyusb (legacy-525-ga1c59649) s140 6.1.1
Model: Adafruit Feather nRF52840 Express Board-ID: NRF52-Bluefruit-v0 Bootloader: s140 6.1.1 Data: 21 grudnia 2018 r.
Wersje przed 0.2.9 cierpią na wspomniany wcześniej błąd. Nieco kłopotliwy proces aktualizacji opisano w Adafruit Learn: Przedstawiamy Adafruit nRF52840 Feather: Update Bootloader i omówiono na forach Adafruit: Błędy systemu Windows kopiują CircuitPython UF2 do FTHR840BOOT.
Krok 2: Lutowanie nagłówków
Skrzydło Enviro+ FeatherWing wymaga dołączonych nagłówków męskich, a do skrzydła Feather wymagane są dołączone nagłówki żeńskie.
Powszechną techniką umieszczania pinów we właściwej pozycji podczas lutowania jest włożenie ich do płytki stykowej. W przypadku tego piórowego skrzydła wymagana jest pewna ostrożność, ponieważ złącze pikoostrzowe na spodzie jest wyższe niż plastikowe elementy dystansowe na główce. Może to spowodować niezamierzone przylutowanie płyty pod kątem. Powyższy obrazek pokazuje kąt. Można to łatwo rozwiązać, podnosząc nagłówki równomiernie o 2-3 mm (0,1 cala) od płytki stykowej.
Nagłówki żeńskie układane w stos muszą być prostopadłe do deski. Można to osiągnąć, umieszczając je na płaskiej powierzchni i upewniając się, że deska Feather jest do nich mocno dociśnięta. Zdjęcie powyżej pokazuje nacisk ołówka z wystrzelonym przyrządem pomocniczym obciążającym ołówek. Niektóre zapasowe nagłówki zapewniają dodatkową pomoc w utrzymaniu odstępów.
Arkusz danych MiCS-6814 stwierdza:
Czujnik należy lutować rozpływowo w atmosferze obojętnej, bez oparów topnika lutowniczego. Czujnik nie może być narażony na wysokie stężenia rozpuszczalników organicznych, oparów silikonu lub dymu papierosowego w celu uniknięcia zatrucia warstwy wrażliwej.
Mały kawałek taśmy maskującej zakrywający czujnik gazu to mądry środek ostrożności podczas lutowania i czyszczenia topnika. Ochronę ekranu można również pozostawić na tym etapie, aby poradzić sobie z nieuniknionymi drobnymi rozpryskami topnika podczas lutowania żelazkiem. Mikrofon zyskałby również na ochronie taśmą maskującą podczas czyszczenia strumienia.
Długie rzędy pinów można łatwo wygiąć podczas wyjmowania ich z płytki stykowej lub innego gniazda. Uważaj, aby nie podważyć deski na jednym końcu.
Adafruit ma przewodnik na temat lutowania nagłówków w stos, Pimoroni ma ogólny przewodnik lutowania, który zawiera nagłówki, a na YouTube jest fajny film pokazujący, jak lutować nagłówki na podobnej płytce, GurgleApps: Raspberry Pi Pico Upgrade Number1 - Snazzy Header Pins!
Krok 3: Przykład instalacji CircuitPythona i kombinowanego plotera
Jeśli nie znasz CircuitPythona, warto najpierw przeczytać przewodnik Witamy w CircuitPython.
Poniższe kroki instalacji są oparte na pliku README pimoroni / EnviroPlus-FeatherWing oraz przewodniku Pierwsze kroki z późniejszą biblioteką do obsługi CircuitPython 6.x.
- Zainstaluj najnowszą wersję CircuitPython (6.0.0 w grudniu 2020 r.) ze strony https://circuitpython.org/ - ten proces jest opisany w CircuitPython dla Feather nRF52840.
- Sprawdź instalację, łącząc się z konsolą szeregową przez USB. Monit REPL pokazuje wersję. Wersję można również sprawdzić, sprawdzając plik boot_out.txt na dysku CIRCUITPY.
-
Zainstaluj te biblioteki z pakietu z https://circuitpython.org/libraries do katalogu lib na CIRCUITPY:
- adafruit_bus_device
- adafruit_bme280 (nie adafruit_bmp280)
- adafruit_st7735r (nie adafruit_st7735)
- adafruit_display_text
-
Zainstaluj te biblioteki z pliku EnviroPlus-FeatherWing-1.0.zip z GiHub: pimoroni/EnviroPlus-FeatherWing: Version 1.0 do katalogu lib na CIRCUITPY:
- i2cdevice (nie mylić z biblioteką i2c_device Adafruit)
- pimoroni_envirowing
- pimoroni_ltr559
- pimoroni_fizyczne_pióro_pins
- pimoroni_pms5003
- Nie instaluj tutaj pimoroni_circuitpython_adapter
- Zainstaluj najnowszą bibliotekę adapterów Pimoroni CircuitPython, pobierając plik _init_.py do nowo utworzonego katalogu lib/pimoroni_circuitpython_adapter na CIRCUITPY.
- Pobierz przykładowy program dla połączonego plotera do CIRCUITPY, klikając link Zapisz jako… na plotters_combined.py
- Zmień nazwę lub usuń dowolny istniejący plik code.py w CIRCUITPY, a następnie zmień nazwę plotters_combined.py na code.py. Ten plik jest uruchamiany, gdy interpreter CircuitPython jest uruchamiany lub ponownie ładowany.
Wersje użyte w tym przewodniku to:
- CircuitPython 6.0.0
- Pakiet biblioteki CircuitPython adafruit-circuitpython-bundle-6.x-mpy-20201208.zip
- Biblioteka EnviroPlus-FeatherWing w wersji 1.0
- pimoroni_circuitpython_adapter biblioteka 9-gru-2020 f062036
Krok 4: Połączony ploter
Połączony ploter posiada cztery ekrany:
- Dźwięk i światło.
- PM2,5 i PM10.
- Temperatura, ciśnienie i wilgotność.
- OX, RED i NH3.
Ekran cząstek stałych (PM) pojawia się tylko wtedy, gdy podłączony jest Plantower PMS5003. Program sprawdza jego obecność na starcie i wyświetla ten komunikat informacyjny, jeśli nie jest podłączony:
PMS5003 Limit czasu odczytu: Nie można odczytać początku bajtu ramki
Prawdopodobnie nie masz podłączonego pms5003, kontynuując bez rejestrowania cząstek stałych
W górnej części programu interwał wykresu jest ustawiony na 540 sekund. Można to dostosować, aby kontrolować tempo kreślenia.
Krok 5: Przypinki Enviro+ FeatherWing
Skrzydło piórowe Enviro+ wykorzystuje dużą liczbę szpilek pióra. Używane są następujące, nazwy w nawiasach pochodzą ze schematu nazewnictwa Pimoroni:
- A0 (pin5) - czujnik gazu amoniaku MiCS6814
- A1 (pin6) - czujnik redukcyjny MiCS8614
- A2 (pin7) - czujnik gazu utleniającego MiCS6814
- A3 (pin8) - mikrofon analogowy
- A4 (pin9) - włączenie MiCS6814
- D5 (pin19) - Polecenie ekranu magistrali SPI
- D6 (pin20) - wybór układu ekranu magistrali SPI
- D9 (pin21) - podświetlenie (PWM)
- D10 (pin22) - Włącz PMS5003
- D11 (pin23) - reset PMS5003
- D12 (pin24) - przerwanie LTR-559 (nieobsługiwane w bibliotece CircuitPython)
- SCK (pin11) - zegar magistrali SPI
- MO (pin12) - SPI bus master out slave in
- MI (pin13) - master magistrali SPI na wyjściu slave
- RX (pin14) - transmisja PMS5003 (odbiór przez Feather)
- TX (pin15) - odbiór PMS5003 (nadawanie z Feather)
- SCL (pin18) - zegar I2C
- SDA (pin 17) - dane I2C
To pozostawia A5, D2/DFU i D13 wolne do użytku.
Krok 6: Zużycie energii
Zużycie energii jest zgodne ze specyfikacją USB, nawet jeśli bateria LiPo jest podłączona i ładuje się. Użycie jest bardziej odpowiednie do planowania przejścia na zasilanie bateryjne. Niektóre bardzo przybliżone pomiary prądu to:
- 100mA w stanie bezczynności, podświetlenie wyłączone;
- Pracujący ploter 100mA, słabe podświetlenie;
- Pracujący ploter 120mA, duże podświetlenie.
Arkusz danych dla Plantower PMS5003 stwierdza, że prąd jest mniejszy niż 100mA, byłoby to uzupełnienie powyższych liczb. Użycie konwertera DC-DC w Enviro+ FeatherWing może nieznacznie zwiększyć tę liczbę.
Płyta Feather nRF52840 Express ma NeoPixel (RGB LED), ale poziomy jasności do domyślnego użycia jako wskaźnika stanu programu tylko nieznacznie zwiększają zużycie. Sama tablica Feather ma poniżej 10 mA, a FeatherWing jest płytą energochłonną.
Krok 7: Dodawanie czujnika materii Plantower PMS5003
Met One Instruments BAM 1020 to powszechny widok na całym świecie mierzący cząstki stałe w miastach. Istnieje szereg bardziej przystępnych cenowo urządzeń, a Enviro+ FeatherWing jest wyposażony w złącze do czujnika cząstek stałych Plantower PMS5003.
Kod biblioteki Pimoroni dla tego czujnika wydaje się obecnie delikatny. Prostym i szybkim usprawnieniem jest łapanie wyjątków w programie. Program plotters_combined.py można ulepszyć, dodając u góry:
importuj pimoroni_pms5003
I zastąpienie tej linii w głównej pętli while
# weź odczyty
pms_reading = pms5003.read()
z:
# weź odczyty
try: pms_reading = pms5003.read() oprócz pimoroni_pms5003. ChecksumMismatchError: print("błąd sumy kontrolnej")
Krok 8: Idź dalej
Istnieje wiele obszarów do zbadania po uruchomieniu Enviro+ FeatherWing.
- Dodanie zewnętrznego czujnika temperatury. Czujnik temperatury w BME280 podlega zarówno wewnętrznemu ogrzewaniu, jak i ogrzewaniu z pobliskich komponentów i jest przeznaczony do kalibracji innych czujników BME280. Wartość można przetworzyć, aby zapewnić przybliżoną miarę temperatury powietrza otoczenia, ale istnieje wiele niedrogich, lepszych opcji zewnętrznych.
- Kalibracja czujników. Ciśnienie jest łatwe dzięki obserwacjom pogody lub prognozom krótkoterminowym (będą one na 0 stóp nad poziomem morza), reszta jest trudna.
- Korekta wyjścia PMS5003 na wilgotność względną. Wzór jest przedstawiony na stronie 8 pliku PDF na EPA: PurpleAir PM2.5 US Correction and Performance during Smoke Events 4/2020
- Dodanie kodu do transmisji danych z czujnika przez Bluetooth Low Energy do innych urządzeń.
- Badanie, jak zminimalizować zużycie energii. Niektóre czujniki mają linie zezwalające, które mogą usuwać zasilanie z czujników lub przełączać je w tryb niskiego poboru mocy. W przypadku czujników z czasem nagrzewania okresowe próbkowanie może nie być praktyczne.
- Kupno, adaptacja lub wykonanie obudowy nadającej się do montażu na zewnątrz ze starannie zaprojektowanym wewnętrznym przepływem powietrza i odpowiednimi środkami zabezpieczającymi przed bezpośrednim działaniem promieni słonecznych. Czujnik gazu SensorTech MiCS-6814 działa najlepiej przy stałym, niskim przepływie powietrza przez niego.
- Badanie wpływu warunków atmosferycznych na zanieczyszczenie na poziomie gruntu. Podpowiedź: inwersje są znaczące.
- Konwersja do zasilania bateryjnego lub słonecznego z zasilaniem bateryjnym. Energia słoneczna jest trudniejsza niż zwykłe dodanie fotowoltaicznego panelu słonecznego, zobacz sekcję Uwagi do projektu w Adafruit Learn: Ładowarka USB, DC i słoneczna Lipoli.
- Dodanie innych czujników do pomiaru powszechnych zanieczyszczeń, takich jak ozon (O3) i dwutlenek siarki (SO2) lub gazy cieplarniane, takie jak dwutlenek węgla (CO2). Kilka czujników mierzy „eCO2” i nie nadaje się do pomiaru atmosferycznego CO2. Adafruit sprzedaje teraz świetny czujnik Sensirion SCD-30 NDIR CO2 na płytce ze złączami STEMMA QT i2c.
- Jeśli chcesz zbadać przesyłanie danych przez Internet za pomocą Wi-Fi, płyta FeatherS2 z mikrokontrolerem ESP32-S2 wydaje się być kompatybilna z Enviro+ FeatherWing. Istnieje problematyczne ograniczenie przetworników analogowo-cyfrowych (ADC) ESP32-S2, które uniemożliwiają prawidłowy pomiar czujników gazowych. Zobacz forum Adafruit: Porównanie piórkowego przetwornika ADC, w tym ograniczonego ESP32-S2 2,6 V, aby uzyskać więcej informacji.
Powiązane projekty:
- Adafruit Learn: Porównanie i eksperymentowanie z czujnikami gazów palnych
- Adafruit Learn: Czujnik temperatury TMP36
Dalsza lektura:
- Wytyczne Światowej Organizacji Zdrowia (WHO) dotyczące zanieczyszczenia powietrza
- British Lung Foundation - Jakość powietrza (PM2,5 i NO2)
- Breathe London - sieć uzupełniająca London Air Quality Network o „przystępne cenowo, łatwe w instalacji i utrzymaniu czujniki jakości powietrza dla każdego”, obecnie korzystająca z Clarity Node-S.
- World Air Quality Index - zbiera dane z wielu różnych źródeł wraz z widokami map i danymi historycznymi.
- Dziennik Atmosfery: Zanieczyszczenie powietrza w pomieszczeniach z pieców domowych: Badanie zalania domem cząstek stałych podczas użytkowania w świecie rzeczywistym - wykorzystuje wersję Raspberry Pi płyty Enviro+.
- Ustawodawstwo: Przepisy dotyczące standardów jakości powietrza 2010 (Wielka Brytania)
- Blog Pimoroni: Najbardziej zanieczyszczona noc w roku (w Wielkiej Brytanii)
- The Economist: Północne niebo – ogrzewanie domów opalanych węglem powoduje powszechne zanieczyszczenie (styczeń 2021)
- BBC News: Hałas drogowy upośledza zdolności ptaków śpiewających (zanieczyszczenie hałasem)
- Błędy oprogramowania w bibliotece czujników cząstek stałych - spojrzenie na staranność wymaganą do niezawodnego analizowania protokołu szeregowego PMS5003.