Ładowanie…

Moja autostrada wiedzy

jedziesz ze mną?
Zacznij eksplorować

Projekt PiMP – wprowadzenie

Projekt pod skróconą nazwą PiMP chodził mi po głowie od dobrych 6 może nawet 7 lat. Aby wyjaśnić czym to owo coś ma być wystarczy że rozwiniemy skrót (jakże genialny :)) PiMP to Raspberry Pi Mobilna Pogoda.

PiMP ma być mobilną stacją pogodową która można a nawet będzie trzeba zabrać ze sobą na długi spacer, górską wyprawę itd.

Założenia główne projektu to :

  • budowa urządzenia monitorującego podstawowe parametry meteorologiczne takie jak temperatura, wilgotność oraz ciśnienie.
  • wyposażyć urządzenie w zewnętrzny wyświetlacz pozwalający na prezentację pomiarów na obudowie urządzenia.
  • wyposażyć urządzenie w moduł GPS w celu dodawania do wyników pomiarów meteo dane geograficzne pozwalające w późniejszym etapie budowy projektu na wizualizację danych.
  • wyposażyć urządzenie w funkcjonalność kompasu.
  • pozwolić urządzeniu na połączenie z internetem.
  • zaprojektować i wykonać obudowę do urządzenia.

Przez te kilka lat rozmyślania o tym jak i z czego wykonać takie urządzenie wybór padł na :

Raspberry Pi Pico głównie z powodu na rozmiary i możliwości. Wcześniej myślałem o tym aby sercem urządzenia było Pi Zero ze względu na to że wykonałem już projekt wyświetlacza do PiWS za pomocą tego układu. Pi Zero wspiera jeszcze Linuxa i posiada wifi czyli dostałbym w zasadzie na talerzu połowę rozwiązania i miałbym większe możliwości wyboru platformy programistycznej. Ale ile plusów tyle minusów Zero to większy pobór prądu, większe rozmiary ale także w dzisiejszych czasach o wiele trudniej go kupić.

Pico dostępne było od ręki przy czym stawia sporo wyzwań od samego początku. Nie posiada swojego modułu wifi czy innego, wymaga programowania w C, C++ lub Micro Pythonie co wymagać pewnie będzie większego nakładu z mojej strony. Po za wspomnianym minimalistycznym wyglądem układu, posiada on spore możliwości obliczeniowe w porównaniu np. do podobnego Arduino. No jeszcze do tego wszystkiego trzeba wspomnieć o cenie która nie jest wygórowana i za podstawową wersje którą nabyłem trzeba zapłacić 25,90zł (11/11/2022).

Oczywiście zawsze jak to w takich projektach pojawił się problem amatora 🙂 Zacząłem się zastanawiać i głowić jeszcze przed zakupem płytki jak ja zrealizuję komunikację w celu wysyłania danych zebranych na serwer kolektujący. Znalazłem oczywiście przystawkę z modułem wifi do Pi Pico, a później w innym sklepie z elektroniką dowiedziałem się że to niepotrzebna kombinatoryka ponieważ jest też płytka z wbudowanym Wifi. Tak więc teraz jestem szczęśliwym posiadaczem dwóch Pico.

Jeśli serce układu mamy już za sobą to pora wspomnieć o głównym czujniku pomiarowym. Jak zazwyczaj jestem za tym aby elementy pomiarowe były osobne dla każdego mierzonego medium to w tej sytuacji biorąc pod uwagę rozmiary oraz pobór prądu zdecydowałem się na moduł zespolony.

Wybór padł na BME 280, biblioteka do Arduino daje już jakiś start podczas przystosowania do działania z Pico. Bardzo przyjemny zakres pomiarowy też przemawiał za zakupem właśnie tego układu. Jest mały i bardzo łatwy w użyciu. Minus jest jeden cena 🙂 99,00 zł (11/11/2022) to nie mało za taki czujnik. No ale czego się nie robi dla nauki:) Na tym etapie nie zakładam że moje urządzenie będzie wystawione na działanie niższej temperatury niż -20 °C , zaś wiem że z wilgotnością może być lekki problem ale zobaczymy co pokażą pierwsze testy.

Odrębnym zagadnieniem jest podawanie odczytów ciśnienia – na pewno będzie to musiało być ciśnienie bezwzględne i jeśli barometr w układzie będzie działał odpowiednio dokładnie to jeszcze postaram się podawać wysokość m. n.p.m.

Jak już mamy „jednostkę” centralną oraz element powiatowy to jeszcze trzeba to gdzieś wyświetlić do tego celu też w zasadzie błędnie ale wybrałem ponieważ można było wybrać optymalne rozwiązanie w całości nasadzane na gold piny ale kto wie może będą kiedyś dwie takie wersje 🙂 Tak czy owak bezpośrednie odczyty jak i komunikaty techniczne trzeba gdzieś pokazać, w tym celu do ekipy dołączył :

Wyświetlacz OLED o rozdzielczości 128x64px oparty na układzie SH1106, posiada także bibliotekę do Ardunio a to powinno ułatwić integrację z Pi. Wyświetlacz jak widać na zdjęciu jest malutki więc powinien idealnie się wpasować w obudowę.


Jak to ma działać?

To teraz może chwila na to aby dokładniej opisać po co ? jak ? gdzie ? A więc tak kiedyś nagminnie używałem Endomondo aplikacji która już nie istnieje, została zabita przez UA jakiś czas po jej zakupie po to aby minimalizować zapewne konkurencje na rynku wirtualnych trenerów, ale dlaczego o tym pisze bo „Endo” miało fajną możliwość którą póżniej przejęły inne aplikacje treningu a konkretnie chodzi o możliwość pokazywania warunków pogodowych w momencie odbywania rejestrowanej aktywności. To zawsze była dość przybliżona pogoda która niewiele w sumie mogła powiedzieć o zachowaniu organizmu podczas treningu no ale lepszy rydz niż nic jak to mówi przysłowie.

Chciałbym aby PiMP mogło rejestrować warunki atmosferyczne wykonując track GPS w interwale 1:1 czyli odczyt z czujnika meteo i w tym samym momencie odczyt długości i szerokości geograficznej. Do tego jeszcze wysokość która załatwi albo barometr albo GPS albo średnia obu odczytów. Wszystko to ma być dostępne na wyświetlaczu w formacie na żywo i ma być zapisywane do pliku który łatwo byłoby zaczytać do bazy danych i wyświetlić później na stronie. Wcześniej nie rozważałem wysyłania danych na żywo, ale zapisywanie i export, teraz zastanawiam się nad rozwiązaniem takim że każde urządzenie ma swój identyfikator dzięki któremu jest odpowiednio rozpoznawany na serwerze i to serwer wysyła zapytanie o dane do urządzenia co odpowiedni interwał czasowy. Takie rozwiązanie ma duży plus można śledzić track na żywo. Nie wiem natomiast czy uda się to osiągnąć ponieważ aby serwer mógł pobrać coś za pomocą funkcji GET urządzenie zbierające dane musi poprawnie wystawić te dane, czyli mieć adres IP, mieć odpowiednią stałą ścieżkę na której te dane będą pobierane.

Ale pisząc ten tekst wpadłem na ciekawy pomysł aby troszkę zmodyfikować to rozwiązanie, jeśli urządzenie otrzyma dostęp do internetu za pomocą hotspotu telefonicznego może nawiązać połączenie z serwerem kolektorem bezpośrednio lub za pomocą VPN i wypchnąć plik do konkretnej lokalizacji z drugi skrypt może go GET’em zassać do bazy.

Największy problem ? – zasilanie!

Ale to wszystko to jeszcze nie problemy, największym jest zasilanie wersje beta urządzenia na 100 % będą zasilane z powerbanków będziemy sprawdzać i obliczać jaki jest pobór i na ile starcza bateria. Jak już zoptymalizujemy pobór prądu to pomyślimy o akumulatorach do samego urządzenia wkładanego na zasadzie albo stałej albo kosza na ogniwo.

Obudowa

Od samego początku rozmyślań o projekcie wydawało mi się że albo będę potrzebował nabyć nowe umiejętności projektowania w 3d albo kogoś kto będzie ogarniał ten temat. Jak to powiadają że nie można potrafić wszystkiego i do tego jeszcze robić to bardzo dobrze ale …

Co prawda to wersja tylko mocno projektowa, ale wiemy już ze pierwszym materiałem z którego wydrukujemy obudowę będzie pet-g.

GPS

Niestety jak na razie to chyba największa bolączka całego projektu ponieważ jeszcze nie wybrałem modułu, jestem jeszcze w trakcie poszukiwań idealnego rozwiązania.

Podsumowanie

Jeśli jesteś zainteresowany projektem, zapraszam do śledzenia bloga wraz z rozwojem projektu będę umieszczał tutaj informacje na temat postępów prac.