Pico Enviro+ Pack – płytka z czujnikami środowiskowymi dla Raspberry Pi Pico

W artykule zaprezentowana zostanie nakładka Pico Enviro+ Pack z czujnikami środowiskowymi. Płytka z oferty Pimoroni jest przeznaczona dla platformy Raspberry Pi Pico/Pico W. Wśród zainstalowanych czujników znajdziemy m.in. BME688, sensor oświetlenia LTR-559, a także mikrofon MEMS SPU0410HR5H. Całość uzupełnia wyświetlacz LCD IPS o przekątnej 1,54” i rozdzielczości 240×240.

Elementy Pico Enviro+ Pack

Nakładka została pomyślana przede wszystkim jako element stacji pogodowej opartej na Raspberry Pi Pico. Właśnie dlatego zastosowano w niej popularny sensor BME688 firmy Bosch, który mierzy trzy kluczowe w tej aplikacji parametry – temperaturę, ciśnienie atmosferyczną oraz wilgotność względną. Zaletami sensora są przyzwoitą dokładność (±1,0°C, ±3%RH, ±0,6 hPa), niewielkie wymiary, a także wielofunkcyjność, co przekłada się bezpośrednio na dobry stosunek ceny do możliwości układu.

Dodatkową, bardzo ważną funkcją jest skaner gazów, który może służyć do pomiaru jakości powietrza, ale jego możliwości są o wiele szersze. W szczególności dzięki szerokiemu zakresowi wykrywanych gazów oraz możliwości konfiguracji jest w stanie wykrywać specyficzne mieszanki gazów, a więc działać na zasadzie czujnika zapachu. Do takiego zastosowania pomocne będą biblioteki oraz oprogramowanie przygotowane przez producenta, które wykorzystują w pracy sztuczną inteligencję. Mogą więc „nauczyć” czujnik zapachów, które będzie on mógł potem zidentyfikować.

Więcej na temat czujnika oraz wykorzystania sztucznej inteligencji w artykule BME688 – czujnik gazu, wilgotności, temperatury i ciśnienia z wbudowaną sztuczną inteligencją

Drugim sensorem zawartym na płytce jest sensor optyczny LTR-559 produkcji firmy LITEON. Układ konwertuje zmierzone natężenie światła na dane cyfrowe i komunikuje się za pomocą interfejsu I2C. Oferuje liniową charakterystykę w zakresie od 0,01 do 64 lux i doskonale sprawdza się przy silnym świetle otoczenia. Dzięki wbudowanemu nadajnikowi światła i odbiornika pozwala na pracę jako czujnik wykrywający obiekt w pobliżu czujnika, w odległości do 5 cm.

Ostatnim sensorem dostępnym na module jest mikrofon MEMS SP0410HR5H-PB produkowany przez firmę Knowles. Jest to miniaturowy, energooszczędny czujnik z wyjściem analogowym. Rozwiązanie składa się z sensora akustycznego SiSonic™, bufora wejściowego oraz wzmacniacza wyjściowego. Ten konkretny model ma wyjście analogowe, co oznacza, że można dość łatwo dołączyć sygnał do przetwornika ADC mikrokontrolera. W pomiarach środowiskowych taki mikrofon może służyć np. do pomiaru szumów tła.

Rys. 1. Płytka Pico Enviro+: widoczny wyświetlacz oraz oznaczone wszystkie czujniki

Bardzo ważnym elementem rozwiązania jest kolorowy wyświetlacz LCD IPS o przekątnej 1,54” oraz rozdzielczości 240 x 240 px. Ekran jest podłączony do magistrali SPI i działa na sterowniku ST7789. Jest to bardzo wygodne rozwiązanie do wizualizacji odczytów czujników.

Wśród pozostałych elementów płytki znajdziemy cztery przyciski, które mogą służyć do sterowania interfejsem, diodę LED RGB, złącze QW/ST, które pozwalają na podłączenie dodatkowych modułów w systemie Qwiic (stosowanego m.in. w modułach SparkFun), a także dodatkowe złącze, które daje możliwość podłączenia sensora pyłu PMS5003, umożliwiającego monitorowanie czystości powietrza pod kątem cząstek zawieszonych.

Rys. 2. Spód płytki Pico Enviro+: widoczne złącza na sensor pyłu, moduły Qwiic oraz do podłączenia do Raspberry Pi Pico

Programowanie z nakładką Pico Enviro+

Pimoroni udostępnia własną, obszerną bibliotekę do obsługi Raspberry Pi Pico na portalu github. Ta biblioteka zawiera m.in. przykłady w języku MicroPython i C++ dla większości modułów rozszerzeniowych dla Pico. Dla tego konkretnego modułu przykład jest dostępny tylko w MicroPythonie, aczkolwiek dla języka C++ dostępne są biblioteki dla wszystkich komponentów, co oznacza, że łatwo można opracować w tym języku własną aplikację albo przykład.

Pimoroni udostępnia także specjalne pliki binarne z firmware do MicroPythona. Dostępne są one na stronie https://github.com/pimoroni/pimoroni-pico/releases/tag/v1.19.10. Dla obsługi płytki Pico należy wybrać plik pimoroni-pico-v1.19.10-micropython.uf2, natomiast dla Pico W: pimoroni-picow-v1.19.10-micropython.uf2. Warto użyć właśnie tych plików, gdyż są tam już wbudowane moduły Python do obsługi płytki rozszerzeniowej.

W celu sprawdzenia możliwości uruchomiłem jeden z przykładów dostępnych w bibliotece. Był to przykład z pliku enviro_all.py i oczywiście wykorzystuje on wszystkie dostępne elementy płytki: sensory, wyświetlacz oraz przyciski. Przykład zmodyfikowałem w ten sposób, że usunąłem odwołania do sensora PMS5003, ponieważ aktualnie nie dysponuję tym czujnikiem.

Przykład korzysta z biblioteki graficznej PicoGraphics, którą można lepiej poznać na stronie: https://github.com/pimoroni/pimoroni-pico/blob/main/micropython/modules/picographics/README.md. Pozwala ona w dość kreatywny i estetyczny sposób wyświetlać wyniki pomiarów na ekranie LCD. Dodatkowo sygnał audio jest przedstawiany w postaci widma częstotliwościowego, który można uzyskać za pomocą modułu ADCFFT.

Przykład ma dwa okna – z wynikami pomiarów oraz widmem sygnału audio z mikrofonu. Okna można przełączać za pomocą przycisków X oraz Y. Dodatkowo podświetlanie ekranu można włączać i wyłączać za pomocą przycisków A oraz B.

Rys. 3. Przykład testowy – wyniki pomiarów z czujników

Rys. 4. Przykład testowy – widmo sygnału audio z mikrofonu

Podsumowanie

Pico Enviro+ Pack to nakładka na Raspberry Pi Pico umożliwiająca pomiar większości parametrów środowiskowych. Szeroka gama sensorów pozwala na wykorzystanie nakładki w roli stacji pogodowej, a wyświetlacz kolorowy daje okazję na łatwą i elegancką prezentację wyników. Producent, firma Pimoroni, udostępnia też szerokie zasoby programistyczne, które pozwalają łatwo opracować oprogramowanie dla nakładki w języku C/C++ oraz MicroPython.

Nakładka Pico Enviro+ Pack jest dostępna w ofercie sklepu Kamami.pl

O autorze