Nasz projekt to mobilna, dwutrybowa stacja pogodowa z panelem LED, zasilana z powerbanków. Kod napisaliśmy w C++ (Arduino IDE). Pomiary lokalne (temperatura, wilgotność) realizuje Arduino UNO z czujnikiem DHT11, przesyłając je po WiFi do ESP32. ESP32 pobiera też dane z API OpenWeatherMap (temperatura, wilgotność + ciśnienie, opady, zachmurzenie). Stacja działa elastycznie: tylko z ESP32 (dane z sieci) lub w parze z Arduino dla precyzyjnych odczytów z otoczenia.
1. Płytka ESP32
2. Płytka Arduino UNO
3. Sterownik matryc LED RGB z interfejsem HUB75
4. 2 panele matrycowe LED RGB 64X32
5. Kabelki żeńsko-męskie
6. Czujnik DHT11
1. Wstęp i Cel Projektu
Projekt obejmuje zaprojektowanie i wykonanie mobilnej, dwutrybowej stacji pogodowej opartej na architekturze rozproszonej (mikrokontrolery Arduino UNO i ESP32). Urządzenie pozwala na jednoczesne monitorowanie lokalnych warunków klimatycznych oraz globalnych prognoz pogody. Dzięki zasilaniu bateryjnemu z powerbanków oraz czytelnemu panelowi LED, stacja jest w pełni autonomicznym, elastycznym i przenośnym systemem, który idealnie sprawdza się zarówno w warunkach domowych, jak i terenowych.
2. Architektura Systemu i Tryby Pracy
Sercem projektu jest unikalna modułowość oraz elastyczność operacyjna. System został napisany w języku C++ przy użyciu środowiska Arduino IDE i zaprojektowany do pracy w dwóch niezależnych trybach, które dostosowują się do aktualnej dostępności sprzętu:
- Tryb Autonomiczny (Globalny): W tym scenariuszu działa wyłącznie moduł ESP32. Wykorzystując wbudowaną łączność bezprzewodową, nawiązuje on połączenie z siecią Wi-Fi i pobiera aktualne dane oraz prognozy pogodowe bezpośrednio z zewnętrznego serwisu OpenWeatherMap za pomocą zapytania API. Odczytane informacje (temperatura, wilgotność, ciśnienie atmosferyczne, opady oraz poziom zachmurzenia) są natychmiast przetwarzane i wyświetlane na panelu LED.
- Tryb Hybrydowy (Lokalno-Globalny): W tym trybie oba mikrokontrolery pracują w duecie. Arduino UNO odpowiada za warstwę fizycznych pomiarów – pobiera precyzyjne, rzeczywiste dane o temperaturze i wilgotności z otoczenia za pomocą czujnika DHT11, a następnie przesyła je za pomocą WIFI do ESP32. ESP32 pełni rolę jednostki centralnej: agreguje lokalne odczyty z Arduino, łączy je z danymi globalnymi z API OpenWeatherMap i prezentuje pełen, zbalansowany pakiet informacji pogodowych na panelu LED.
3. Specyfikacja Komponentów i Funkcjonalności
Pod kątem sprzętowym (Hardware) system składa się z mikrokontrolera ESP32 (zarządzanie siecią, parsowanie danych i wysterowanie wyświetlacza), Arduino UNO wyposażonego w moduł łączności bezprzewodowej, cyfrowego czujnika DHT11, panelu matrycowego LED do prezentacji wyników oraz niezależnych powerbanków .
W warstwie oprogramowania (Software) kluczową rolę odgrywa optymalizacja kodu w C++. Wykorzystano zaawansowane biblioteki do sprawnego dekodowania plików JSON przesyłanych z sieci, dedykowane biblioteki do obsługi czujnika DHT oraz biblioteki graficzne zarządzające płynnym wyświetlaniem komunikatów na panelu LED.
4. Etapy Tworzenia Projektu
Proces realizacji projektu został przeprowadzony w sposób metodyczny i podzielony na pięć kluczowych faz:
- Analiza i Planowanie: Zdefiniowano strukturę przesyłanych pakietów danych oraz zarejestrowano unikalny klucz dostępu do API OpenWeatherMap.
- Implementacja Oprogramowania: Napisano niezależne programy dla obu mikrokontrolerów. Po stronie Arduino zaimplementowano algorytm odczytu i transmisji danych, natomiast po stronie ESP32 stworzono klienta HTTPS, parser struktur JSON oraz logikę odpowiedzialną za automatyczne przełączanie trybów pracy.
- Integracja i Mobilność: Połączono oba układy w jedną sieć lokalną oraz zsynchronizowano protokoły komunikacyjne.
- Testy i Kalibracja: Przeprowadzono testy stabilności transmisji bezprzewodowej oraz zweryfikowano poprawność interpretacji danych pogodowych w czasie rzeczywistym.
ZIP poniżej