Ładowanie…

Myślenie boli ?

Moje zdanie na ten oraz inne tematy wewnątrz.
Zacznij eksplorować

PIWS ver. 3 – Amatorska Stacja Pogodowa

Jeśli ktoś śledzi informacje o pogodynce na blogu lub w social mediach , wie że to jak do tej pory najbardziej zaawansowany projekt jakim się zajmuję. Jakiś czas temu PiWS przeszło kolejne zmiany, liftingi i inne modyfikacje. W sierpniu 2019 stacja postanowiła się skończyć co bardzo umiejętnie ostudziło moje chęci do rozwijania projektu.

Z racji faktu iż szewc zawsze bez butów chodzi, aktualnej kopii bezpieczeństwa, ba co ja mówię 😛 nawet archiwalnej nie było. Uszkodzeniu uległa karta pamięci która zawierała szablon wynikowy całego systemu, systemy wykonywania zdjęć z kamery, opisywania ich itd. Jednym słowem padło wszystko. Potrzeba było miesiąca patrzenia na cały sprzęt aby przyszły chęci …

Wykonanie wszystkiego prawie od początku pozwoliło na zmianę oprogramowania do analizy z Cumulusa na weewx. Co zdecydowanie wyszło biednemu RPi na plus ponieważ weewx jest napisany w pythonie który zdecydowanie  łągodniej traktuje komputerek.

Na dzień pisania tych wypocin stacja zmieniła dodatkowo platformę sprzętową na RPi 4b , została dodana nowa obudowa komputera oraz nowa obudowa kamery oraz drukowany na drukarce 3d daszek do obudowy aby deszcz zacinający w stronę okna nie chlapał na obiektyw.

Rpi4 dało całemu systemowi niesamowitego kopa, większa ilość ramu oraz zmiana środowiska aplikacji głównej pomogła. Aby po raz kolejny nie zostać w czarnej dupie zrobiłem sobie obraz całej karty pamięci oraz napisałem system backupu plików źródłowych traktowanych jako szablon do generowania odczytów. Cały backup wysyła się na zewnętrzny serwer hostingowy.

Większość zmian programowych, tych które widać na stronie są modyfikowane dość często, aby być z nimi na bieżąco warto zaglądać  https://piws.ovh/wersja.php tam w miarę szczegółowy opis zmian.

Z powodu tego że sporo zmieniło się w budowie modułowej stacji od września 2018 roku kiedy pisałem o wersji v2 postaram się opisać dokładnie jak wszystko jest podłączone i działa.

Remont elewacji i ocieplanie kamienicy zmusił mnie do zmiany na lepsze, stacja zawisła na budynku gospodarczym niżej niż wcześniej i w pełni odsłonięta teraz jest co na pewno pozwala na lepsze odczyty.  Miejsce to miało być tymczasowe ale instalacja zostanie tam na stałe.

Więc w domu został komputer RPi , na parapecie kamera oraz czujnik smogu ( inny niż poprzedni )

Całość systemu na dzień 2021 przedstawia się następująco :

  • Jednostka pomiarowa WS0101 – jeszcze działa, nie wiem jak długo ale puki działa to niczego nie zmieniam.
  • Komputer RPi 4 – jego głównym zadaniem jest odbieranie danych za pomocą połączenia USB z jednostką centralną stacji pogodowej z którą czujniki jednostki pomiarowej komunikują się radiowo na częstotliwości 868 MHz. Do tego Rpi wysyła za pomocą protokołu rsync dane do serwera gdzie hostowana jest strona. A koniec końców jeszcze do Rpi podłączona jest za pomocą standardowego portu kamera która wykonuje co 5 min zdjęcie i umieszcza je na lokalnym serwerze www a za pomocą crontaba na serwerze hostingowym pobieram to zdjęcie, zmieniając nazwę poprzedniego pobranego aby zachowywać wszystko do zakładki archiwum.
  • Za pomiar tendencji zanieczyszczenia odpowiedzialny jest czujnik komercyjny Smogtok który wypycha dane JSONEM( nie, nie głównym bohaterem filmów HRejterów ), a ja je pobieram za pomocą crontaba bezpośrednio do bazy danych mysql na serwerze hostingowym.
  • Informacje o zorzy polarnej oraz rozbłyskach i wietrze słonecznym pochodzą z publicznych źródeł NOAA i także za pomocą JSONA są umieszczane w bazie.
  • Ostrzeżenia meteo pobierane są za pomocą skryptu napisanego w Pythonie ze strony meteoalarm.com. Skrypt „prasuje” dane jeszcze na Rpi i wysyła je podczas synchronizacji na serwer hostingowy.
  • Generowaniem oraz wyświetlaniem danych na stronie głównej oraz podstronie „Miesięczne” oraz „Roczne” zajmuje się oprogramowanie weewx, wykresy generowanie są za pomocą rrdtool i wszystkim tym zajmuje się Rpi.
  • Cała reszta danych pochodzi z bazy mysql na serwerze hostingowym, wykresy generowane są biblioteką highcharts.
  • Dane ze stacji wypychane są do mysql na serwerze hostingowym , do serwerów WU oraz PWS. Jak również znajdziecie je na FB, a konkretniej może Wam je podać Pan Chmurka bot na platformie Messenger.
  • Na FB znajdziecie także w formie postów na funpage stacji (https://www.facebook.com/piwsjg) aby tego dokonać użyłem usługi Zapier która odczytuje zmian kanału rss który generuje z alertem. Jeśli zobaczy zmianę publikuje jej wartość czyli nowy alert. Zapier jest darmowy do 100 postów per miesiąc więc starcza z powodzeniem.

Duża część całego systemu zrobiona jest w sumie ze zlepków czegoś napisanego w różnych momentach mojego życia i posiadania wiedzy lub posiadania znajomych którzy tę wiedzę posiadali.  Najwięcej projektu wnieśli Marcin oraz Darek którzy są współtwórcami kilku modułów.

Największe mankamenty projektu:

  • Port USB jednostki centralnej stacji – to jest dramat jak szybko się „wyrobił” i poruszenie wyświetlacza stacji powoduje od razu problemy komunikacyjne, a że niestety całość w moim wypadku nie posiada klimatyzowanej serwerowni to czasem zdarzy się mała awaria.
  • Karta SD – ojjjjj to jest hardkor nawet najlepsze karty SD klasy 13, 25 , 100 podczas pracy ciągłej muszą się kiedyś skończyć a specyfika Rpi jest taka że można próbować za pomocą polecenia dd robić kopie całej karty w locie ale mnie to rozwiązanie nie przekonuje. Więc robię kopie wszystkich konfigów i ustawień i wypycham je na serwer backupu a raz na jakiś czas ( sic! na rok 😛 ) wyciągam kartę z Rpi ( co niestety powoduje przestój w eksporcie danych ) i robię jej iso aby w razie padu mieć jakąś kopię a nie zaczynać zabawę od nowa.

No to pozostaje napisać tylko o tym co zostało do zrobienia:

  • Zmiana źródła pobierania informacji dla zakładki archiwum ( rodzi się w bólach, czyli nazwijmy że w trakcie )
  • Zmiana jednostki pomiarowej na coś pokroju WH2600 ( to jest raczej kwestia ceny )
  • Dokończenie pisania modułu odpowiadającego za generowanie podsumowania miesięcznego które byłoby wyświetlane jako post na FB ( utknęło w martwym punkcie )
  • Napisanie obsługi oraz wyświetlania czujnika wyładowań ( podłączyłem go, ale ilość interferencji jakie generowało moje amatorskie okablowanie była za duża i zwątpiłem )