PixelTree to projekt inżynierski systemu sterowania łańcuchem adresowalnych diod LED. System składa się z mikrokontrolera ESP32-S3 z dedykowanym oprogramowaniem układowym, aplikacji mobilnej na platformy Android oraz iOS napisanej w technologii języku Dart i frameworku Flutter, a także obudowy zaprojektowanej w technologii druku 3D.
Projekt powstał w ramach pracy inżynierskiej pt. „Projekt i realizacja systemu oświetlenia dekoracyjnego ARGB LED z wykorzystaniem mikrokontrolera ESP32 wraz z dedykowaną aplikacją mobilną”.
Pełna dokumentacja projektowa
Szczegółowy opis architektury, poszczególnych modułów oraz warstwy sprzętowej znajdziesz w głównej dokumentacji: Projekt_inżynierski_Dominik_Porębski.pdf
- Złożone efekty świetlne – ponad 40 w pełni konfigurowalnych animacji generowanych z wykorzystaniem przestrzeni barw HSV oraz zoptymalizowanej biblioteki FastLED.
- Płynność i wydajność – płynne animacje generowane w 60 klatkach na sekundę. Wysoka wydajność zapewniona jest dzięki podziałowi zadań na wielordzeniowej architekturze układu.
- Aplikacja wieloplatformowa – jedna, spójna baza kodu dla systemów Android i iOS z dedykowanym, responsywnym interfejsem użytkownika i wsparciem dla dwóch języków (polski, angielski).
- Wykrywanie w sieci lokalnej – obsługa protokołu mDNS pozwala na bezproblemowe wyszukiwanie oraz zarządzanie wieloma instancjami PixelTree bez konieczności ręcznego wpisywania adresów IP.
- Bezpieczeństwo połączenia – wstępna konfiguracja danych sieciowych realizowana w oparciu o Bluetooth Low Energy z szyfrowaniem wymiany w standardzie ECDH + AES.
Poniższy diagram przedstawia ogólną architekturę rozwiązania i przepływ informacji w systemie:
graph LR
subgraph Aplikacja Mobilna
APP[Aplikacja Flutter<br/>Android / iOS]
end
subgraph Interfejsy Komunikacyjne
BLE[Bluetooth Low Energy<br/>Parowanie i Konfiguracja]
WIFI[WiFi / REST API<br/>Sterowanie i mDNS]
end
subgraph Sprzęt i Firmware
ESP[Mikrokontroler ESP32-S3<br/>Firmware C++ / FreeRTOS]
LED[Łańcuch LED<br/>WS2812D]
end
APP <-->|Uwierzytelnianie| BLE
APP <-->|Wymiana JSON| WIFI
BLE <--> ESP
WIFI <--> ESP
ESP -->|Protokół NZR| LED
| Element | Charakterystyka |
|---|---|
| ESP32-S3 Plus | Dwurdzeniowy mikrokontroler (Xtensa LX7, 240 MHz) ze zintegrowanym modułem WiFi 4 oraz Bluetooth 5.0. Stanowi główną jednostkę obliczeniową. |
| WS2812D | Adresowalne diody ARGB, sterowane kaskadowo za pomocą jednoprzewodowego protokołu NZR, połączone w łańcuch. |
| Obudowa FDM | Autorska obudowa zabezpieczająca elektronikę i złącza, wyprodukowana techniką druku 3D z tworzyw sztucznych. |
| Technologia | Opis zastosowania |
|---|---|
| C++ / Arduino | Język oraz środowisko użyte do budowy oprogramowania układowego. |
| FreeRTOS | System operacyjny czasu rzeczywistego. Oddziela obsługę stosu sieciowego (PRO_CPU) od głównej logiki sterowania efektami (APP_CPU). |
| FastLED | Wiodąca biblioteka w C++ odpowiedzialna za szybkie renderowanie animaci, zarządzanie paletami kolorów, zapewniająca mechanizm FastMath. |
| Flutter / Dart | Nowoczesny framework wykorzystany do stworzenia warstwy interfejsu wizualnego aplikacji. |
| mDNS / REST API | Mechanizm odkrywania usług połączony z bezstanową komunikacją po protokole HTTP. |
System PixelTree został zaprojektowany z naciskiem na łatwość obsługi, oferując dwa komplementarne scenariusze połączenia sieciowego:
| Tryb Sieciowy | Zasada działania | Główne zastosowanie |
|---|---|---|
| Station (STA) | Sterownik łączy się do istniejącej sieci domowej. Wstępne przekazanie danych WiFi jest bezpiecznie realizowane przez moduł BLE. | Standardowy tryb domowy. Umożliwia łatwy dostęp do sterowania wszystkim podłączonym domownikom. |
| Access Point (AP) | Mikrokontroler sam tworzy bezprzewodowy punkt dostępowy, do którego telefon musi podłączyć się bezpośrednio. | Brak dostępnej sieci LAN, zastosowania awaryjne oraz wstępne sprawdzenie działania. |
- Dominik Porębski
Politechnika Śląska (Gliwice, 2026)