Stacja pogodowa – PiWS

Stacja pogodowa – PiWS

Stacja pogodowa – zapragnąłem taką mieć dawno dawno temu – kamieniem węgielnym tego pomysłu był kolega m4sh ( dla starszych czytelników wyjaśnię że to nie imię czy nazwisko tylko xywa z IRCa 🙂 ) Pierwszy adres pod którym można było znaleść stronę to http://meteo.atpa.eu.org który został przez m4sh zamieniony na http://pogoda.bytom.pl.

Jego stacja pracowała pod kontrola Debiana który był źródłem serwera www oraz bazy danych MYSQL. Pomiarów dokonywał skrypt w bashu za pomocą Digitemp, i ładował wyniki do MYSQL i php robiło resztę. Sercem całego projektu było DS18B20 firmy Dallas Semiconductor w układzie DS9097e (ds9097e lub ds9097, piny, rs232 DB9). Użyta była również kamera Aiptek CIF (352×288) która robiła zdjęcia w odstępach 3 minutowych.

Stacja m4sh pracowała wiele lat start chyba nastąpił w 2004 roku ( udało się sprawdzić pierwszy pomiar 2003/12/31 ) , a pracowała do 2014 na pewno. ( Na zdjęciu po lewej front-end projektu wykopany z web-archive )

Moja stacja pogodowa powstała w styczniu 2015 roku , technologicznie bardzo różniła się od pierwowzoru opisanego powyżej.  Jeszcze przed świętami 2014 natknąłem się w Internetach na informacje o mikrokomputerach nazwanych Raspberry Pi – szukając drążąc przeczytałem że istnieje mnogość rozwiązań do tego mikrokomputera, masa dodatków, masa softu. Wtedy właśnie w mojej głowie urodził się pomysł.

Części zostały zamówione ale niestety wysyłka nie wyrobiła na święta właśnie wtedy miałem nadzieje mieć czas i chęci na dłubanie.

Zamówiona paczka zawierała :

  • RaspberryPi 2B+
  • Tp-Link karta wifi nano USB
  • Zasilacz do RPi
  • Przewody
  • Czujnik BMP280 – cyfrowy czujnik ciśnienia z dokładnością 1 hPa. Posiada wbudowany czujnik temperatury. Układ komunikuje się za pomocą magistrali I2C lub SPI. Zakres pomiaru od 300 do 1100 hPa.
  • Czujnik DHT22 – Moduł  z czujnikiem temperatury i wilgotności powietrza z interfejsem cyfrowym, jednoprzewodowym. Zakres pomiarowy: temperatura -40 do +80 °C, wilgotność 0-100 %RH.
  • Czujnik YL-83 – Czujnik służy do wykrywania opadów atmosferycznych.

Zabrałem się za produkowanie stacji pogodowej , nie wiedząc jeszcze co mnie czeka 😛 Okazało się że oprogramowanie czujników do najłatwiejszych zadań kiepskiemu programiście nie pójdzie za szybko. Choć jeśli mnie pamięć nie myli to pierwszą przeszkodą okazało się zainstalowanie systemu operacyjnego na RPi ponieważ wymagało to telewizora bądź monitora z hdmi którego nie posiadałem ( tak tak nadal nie mam telewizora ) Jak już ta przeciwność została pokonana , pojawiły się inne należące do dziedziny bardziej upierdliwych. Raspbian – predefiniowany system operacyjny dla RPi nie miał zamiaru współpracować z moja kartą wifi 🙂 Walka była nierówna bardzo , ale udało mi się wygrać tę potyczkę po kilku dniach walk. Przyszła pora na instalacje MYSQL , serwera www , przekierowania portów itd. Wszystko szło dobrze zostało podłączyć do RPi czujniki i magicznie sprawić aby zaczęły działać. Jak podłączenie okazało się dosyć prostym zadaniem , to już oprogramowanie tego to już była wyższa szkoła jazdy.

W pracach zawsze wspierał mnie mój dzielny przyjaciel Bartek. Który to wielokrotnie był ratunkiem dla mojego szarganego ego. Po próbach wykorzystania kilku klas do obsługi ww. czujników i częściowym sukcesie zacząłem szukać czegoś lepszego co pomogłoby mi w odczycie danych i znalazłem nettemp 🙂 Tak zaczął się nasz związek z wersja 2 tego oprogramowania.

Instalacja wtedy na kablach wystawiona za okno , a RPi w klipsowym pudełku na jedzenie na parapecie dojrzewała do kolejnego kroku budowy przechodząc swoje pierwsze beta testy.

Strona www które prezentowała wtedy wyniki była osadzona na wspomnianym sercu całej stacji czyli RPi 2B+ , dane nettemp przechowywał w swojej bazie opartej na sqlite , ja aby usprawnić sobie pracę całego systemu dodałem kilka plików .sh które zapisywały mi wartości pomiarów do .txt z których łatwiej było mi odczytać dane i wstawić na www.

Nadszedł jednak czas modyfikacji i części odpowiedzialnej za pomiary jak i silnika wyświetlania. Pierw na warsztat poszedł back-end była to jesień 2016 roku. nettemp służył w stacji już tylko w zakresie bibliotek do odczytu danych z czujników a dopisane skrypty .sh były wspomagane poprzez .php które za pomocą CRON na wykupionym do tego serwerze VPS uruchamiały się w zadanych odstępach czasu i pobierały dane do postawionej tam bazy danych MYSQL. Ten proces odciążył znacznie RPi z wielu niepotrzebnych czynności i przekazał wszystko do VPS ( pogoda.chinczyk.ovh )

Kolejnym etapem przebudowy była wymiana czujnika DHT22 bo czujnik po roku działania padł , oraz kupienie Pi Camera HD v2 8MPx. Snapshotowanie wykonałem w prosty sposób ( bo inaczej nie umiałem ) Z wiersza poleceń wymuszałem snapa oraz zapisywałem go lokalnie na RPi w katalogu widocznym na www i na VPS pobieram go automatycznie zmieniam mu nazwę i wyświetlam – taki proces trwa 15 min po tym czasie kolejny skrypt zmienia nazwę tego pliku i ładuje go do archiwum i pobiera kolejny i tak cały czas 🙂

W ostatnim czasie DHT22 po raz kolejny pokazał że jest szajsowaty i padł choć teraz nie całkowicie. Przestała działać tylko wilgotność, więc po raz kolejny czeka mnie wymiana. Na początku przyszłego roku planuję wymianę sprzętu pomiarowego na nowy , oraz zakup czujników analogowych.

A na koniec garść statystyk :

Stacja na dzień 2017/09/26 pracuje prawie 1007 dni czyli ponad 2,5 roku 🙂

Baza danych pomiarowych ma w tej chwili waży w tej chwili około 9mb i ma 210 000 rekordów.

Wszystkie czujniki wykonały łącznie 563 486 odczytów.

Katalogi snapów kamery ważą 4,5 gb i jest w nim 1566 zdjęć.

RPi oraz wszystkie elementy zostały zakupione w sklepie http://botland.com.pl

Adres www stacji – http://pogoda.chinczyk.ovh

 

 

 

 

 

Comments are closed.