Das HTL Pixelboard ist ein interaktives 32x16 LED-Matrix-System auf ESP32-Basis. Der aktuelle Hauptstand vereint die vorher getrennten Prototypen in einem zentralen PlatformIO-Projekt mit FreeRTOS-Tasks, einem sichtbaren Hauptmenü auf dem Panel und klarer Hardware-/Software-Struktur.
Die Unified-Version konzentriert sich auf einen sauberen produktiven Kern:
- ein gemeinsamer
main.cppals Einstiegspunkt - ein Menü direkt auf dem Pixelboard
- Uhrzeit via NTP
- Wetterdaten via OpenWeatherMap
- Logging der Wetterdaten nach Google Sheets
- Snake-Spiel
- Input-/Joystick-Diagnose
- Serial-Logging für Debugging und Runtime-Status
graph LR
A[Joystick Input] --> B[UI Task]
B --> C[Main Menu]
C --> D[Clock App]
C --> E[Weather App]
C --> F[Snake App]
C --> G[Input App]
C --> H[Scroll App]
D --> I[NTP Sync]
E --> J[OpenWeatherMap]
E --> K[Google Sheets Logging]
B --> L[Render Task]
D --> L
E --> L
F --> L
G --> L
H --> L
|
|
Der aktive Hauptcode liegt in:
Code/PixelBoardUnified
|
|
|
| Komponente | Beschreibung | Anzahl |
|---|---|---|
| 🎛️ ESP32 Dev Module | Hauptcontroller | 1 |
| 💡 WS2812B Panels | Zwei 8x32 Panels, kombiniert zu 32x16 | 2 |
| 🕹️ Joystick | Analogstick mit Taster | 1 |
| ⚡ 5V Versorgung | Externe Stromversorgung für LEDs | 1 |
// LED panels
GPIO 25 -> upper data line
GPIO 26 -> lower data line
// Joystick
GPIO 32 -> button
GPIO 34 -> X axis
GPIO 35 -> Y axisSPL_Pixelboard/
├── README.md
└── Code/
├── PixelBoardUnified/ # maintained main project
│ ├── platformio.ini
│ ├── src/main.cpp
│ └── include/
│ ├── secrets.h
│ └── secrets.example.h
├── WeatherAPI_PixelBoard/ # older reference version
├── Pixelboard/ # older experimental code
├── Zeit_anzeigen/ # older menu/time experiments
├── Snake/ # standalone snake prototype
└── joystick_test/ # joystick test project
Die aktuelle Unified-Version verwendet FreeRTOS-Tasks für getrennte Verantwortlichkeiten:
InputTask: liest Joystick und ButtonUiTask: Menülogik und App-WechselWeatherTask: WiFi, NTP, Wetterdaten, Google-Sheets-LoggingSnakeTask: SpiellogikScrollTask: LaufschriftRenderTask: finale Anzeige auf der Matrix
Damit ist die bisher verteilte Logik aus mehreren Projekten in einem konsistenten Runtime-Modell zusammengeführt.
Wechsle in das Hauptprojekt:
cd Code/PixelBoardUnifiedBuild:
pio run -e esp32devUpload:
pio run -e esp32dev --target uploadSerial Monitor:
pio device monitor -b 115200Die produktive Konfiguration liegt in:
Code/PixelBoardUnified/include/secrets.h
Vorlage:
Code/PixelBoardUnified/include/secrets.example.h
Dort werden aktuell konfiguriert:
WIFI_SSIDWIFI_PASSWORDWEATHER_API_KEYWEATHER_CITYGOOGLE_SCRIPT_URL
- Joystick hoch/runter: zwischen Apps wechseln
- kurzer Tastendruck: App öffnen
- langer Tastendruck: zurück ins Menü
- Joystick steuert die Richtung
- kurzer Tastendruck startet nach Game Over neu
Der Unified-Main loggt wichtige Laufzeitinformationen in den Serial Monitor:
- Boot-Konfiguration
- WiFi-Verbindungsstatus
- NTP-Synchronisation
- Wetter-Requests und Fehler
- Google-Sheets-Logging
- App-Wechsel
Das erleichtert Fehlersuche direkt auf dem ESP32 erheblich.
![]() Gabriel Winkler 💻 Software & Project Management |
![]() Raphael Ortner 🔧 Hardware Integration & Software |
![]() Clemens Walser ⚡ Elektronik & Software |
HTL Anichstraße Innsbruck
Höhere Technische Bundeslehranstalt
Wirtschaftsingenieure – Betriebsinformatik
Dieses Projekt steht unter der MIT-Lizenz. Details siehe LICENSE.
Built in Innsbruck with ESP32, LEDs and too many experiments that finally became one clean project.



