Radiowa stacja pogodowa

Prosta aplikacja z interfejsem konsolowym napisana w języku C++ na platformę Raspberry Pi.

Inspiracją do jej powstania był dość popularny projekt SR0WX.

Idea mojego projektu jest taka sama czyli transmisja na częstotliwości radiowej (w moim przypadku 158.375MHz FM - zgodnie z pozwoleniem), komunikatów pogodowych co określony interwał czasowy. Komunikaty te są "czytane" przez automatycznego lektora, którego działanie polega na odtwarzaniu uprzednio wygenerowanych automatycznie z tekstu, plików dźwiękowych (wav lub mp3).

Na obecną chwile komunikaty nadawane są co 30 minut i składają się z danych z czujników lokalnych (temperatura, wilgotność, ciśnienie) oraz danych z serwisów Airly i Monitoring24.

Zasięg stacji jest niewielki (moc nadajnika ok 1W), ale pokrywa obszar dla którego komunikaty są przeznaczone.

Dodatkowo stacja przesyła dane za pomocą protokołu XMPP, które następnie wykorzystywane są między innymi przez inny mój projekt, a mianowicie Monitor stacji pogodowych.

Urządzenie zasilane jest napięciem 5V z zewnętrznego zasilacza impulsowego i mieści się w niewielkiej obudowie w której znajdują się głównie Raspberry Pi ZERO i Arduino PRO-MINI.

Arduino przede wszystkim pełni rolę zabezpieczenia przed zablokowaniem radiotelefonu gdy w czasie nadawania program stacji uległ by awarii.

W skrócie działa to następująco:
PTT w radiotelefonie sterowane jest przez port Arduino. Natomiast stan tego portu przełączany jest z kolei po przez komendy odebrane z Raspberry, po przez port szeregowy. Dodatkowo na jednym z portów Raspberry, program stacji generuje impulsy, które docierają na wejście przerwania zewnętrznego Arduino. W razie braku tych impulsów - Arduino ustawia "0" na porcie sterującym PTT w radiotelefonie przełączając go tymsamym na odbiór.

Drugim zadaniem modułu Arduino jest przetwarzanie odebranego przez radiotelefon sygnału APRS z wykorzystaniem przetwornika AC i wysłanie danych portem szeregowym do Raspberry w celu dalszej ich obróbki.

KONKLUZJA

Muszę się jeszcze wiele nauczyć w dziedzinie programowania i nie tylko.