Skip to content

999Gabriel/SPL_Pixelboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 HTL Pixelboard

HTL Logo

Unified ESP32 Pixelboard System with PlatformIO + FreeRTOS

HTL Anichstraße PlatformIO FreeRTOS OpenWeatherMap Google%20Sheets License

StatusFeaturesHardwareProject StructureBuildTeam


📋 Über das Projekt

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.cpp als 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

🧭 Systemübersicht

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
Loading

🚦 Current Status

✅ Hauptprojekt

  • Unified Codebase vorhanden
  • PlatformIO-Projekt eingerichtet
  • Build erfolgreich geprüft
  • Menü auf dem Pixelboard integriert

✅ Laufende Funktionen

  • WiFi-Verbindung
  • NTP-Uhr
  • Wetter-API
  • Google-Sheets-Logging
  • Snake
  • Serial-Debug-Logging

Der aktive Hauptcode liegt in:

Code/PixelBoardUnified

✨ Features

🖥️ Display

  • 32x16 Dual-Panel Rendering
  • eigenes Panel-Mapping
  • zentrales Menüsystem
  • lesbare 5x7 Pixel-Font

🌐 Daten & Logging

  • OpenWeatherMap Integration
  • NTP-Zeitsynchronisation
  • Google Sheets Logging
  • Serial Runtime Logs

🎮 Interaktivität

  • Joystick-Navigation
  • kurzer/langer Tastendruck
  • Snake als App
  • Input-Diagnose-Ansicht

🛠️ Hardware

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

📌 Pin-Belegung

// LED panels
GPIO 25 -> upper data line
GPIO 26 -> lower data line

// Joystick
GPIO 32 -> button
GPIO 34 -> X axis
GPIO 35 -> Y axis

🧱 Project Structure

SPL_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

🧠 Unified Architecture

Die aktuelle Unified-Version verwendet FreeRTOS-Tasks für getrennte Verantwortlichkeiten:

  • InputTask: liest Joystick und Button
  • UiTask: Menülogik und App-Wechsel
  • WeatherTask: WiFi, NTP, Wetterdaten, Google-Sheets-Logging
  • SnakeTask: Spiellogik
  • ScrollTask: Laufschrift
  • RenderTask: finale Anzeige auf der Matrix

Damit ist die bisher verteilte Logik aus mehreren Projekten in einem konsistenten Runtime-Modell zusammengeführt.

🚀 Build & Flash

Wechsle in das Hauptprojekt:

cd Code/PixelBoardUnified

Build:

pio run -e esp32dev

Upload:

pio run -e esp32dev --target upload

Serial Monitor:

pio device monitor -b 115200

🔐 Konfiguration

Die produktive Konfiguration liegt in:

Code/PixelBoardUnified/include/secrets.h

Vorlage:

Code/PixelBoardUnified/include/secrets.example.h

Dort werden aktuell konfiguriert:

  • WIFI_SSID
  • WIFI_PASSWORD
  • WEATHER_API_KEY
  • WEATHER_CITY
  • GOOGLE_SCRIPT_URL

🎮 Bedienung

Im Menü

  • Joystick hoch/runter: zwischen Apps wechseln
  • kurzer Tastendruck: App öffnen

In Apps

  • langer Tastendruck: zurück ins Menü

In Snake

  • Joystick steuert die Richtung
  • kurzer Tastendruck startet nach Game Over neu

🧪 Debugging

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.

👥 Team

Gabriel Winkler
Gabriel Winkler
💻 Software & Project Management
Raphael Ortner
Raphael Ortner
🔧 Hardware Integration & Software
Clemens Walser
Clemens Walser
⚡ Elektronik & Software

🎓 Schule

HTL Anichstraße Innsbruck
Höhere Technische Bundeslehranstalt

🌐 www.htl.tirol

Abteilung

Wirtschaftsingenieure – Betriebsinformatik

📝 Lizenz

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.

⬆ Back to Top

About

Pixelboard SPL Unterricht Repo (Creo Files, Code usw)

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors