Modular ESP32-S2 weather station firmware for indoor or outdoor telemetry, MQTT transport, optional Home Assistant auto-discovery, and OTA-friendly operation.
SkySentinel is a builder-oriented firmware project for ESP32 weather stations. It currently targets the ESP32-S2 Saola and Kaluga boards and combines BME280 sensor readings, Wi-Fi connectivity, MQTT publishing, display support, and recent OTA integration work.
- reads temperature, humidity, and pressure from a BME280
- publishes weather data via MQTT
- supports an indoor display node and an outdoor sensor node
- can publish Home Assistant discovery payloads for MQTT entities
- keeps the firmware small enough to iterate on quickly in PlatformIO
The current codebase is focused on:
- ESP32-S2 outdoor station telemetry
- MQTT topic cleanup and shared topic constants
- OTA-triggered maintenance flows
- display updates for the indoor station
- incremental hardening with PlatformIO tests and GitHub Actions
Planned improvements remain tracked in ROADMAP.md.
- Clone the repository.
- Copy
src/credentials_template.htosrc/credentials.h. - Fill in Wi-Fi, MQTT, and optional hostname values.
- Build the firmware with
platformio run. - Upload it with USB or your configured OTA target.
See SETUP.md for the practical setup flow.
src/sensors/ sensor adapters such as BME280
src/network/ Wi-Fi and MQTT communication layers
src/visualization/ display communication
src/data_processing/ ring buffer and processing helpers
test/ PlatformIO unit tests
doc/ generated Doxygen output
- SETUP.md
- STATUS.md
- OPERATIONS.md
- TOPIC_CONTRACT.md
- ROADMAP.md
- generated API docs in doc
Before changing code, read:
MIT, see LICENSE.
SkySentinel ist ein firmware-orientiertes ESP32-Wetterstationsprojekt fuer Indoor- und Outdoor-Szenarien. Der aktuelle Schwerpunkt liegt auf ESP32-S2-Boards, MQTT-gestuetzter Telemetrie, optionaler Home-Assistant-Auto-Discovery und einem OTA-faehigen Betriebsmodell.
- Temperatur, Luftfeuchtigkeit und Druck per BME280 erfassen
- Wetterdaten per MQTT veroeffentlichen
- Indoor-Display- und Outdoor-Sensorknoten abbilden
- Home-Assistant-Discovery-Konfiguration per MQTT senden
- schnelle Firmware-Iteration mit PlatformIO ermoeglichen
- Outdoor-Telemetrie fuer ESP32-S2
- gemeinsame MQTT-Topics und konsistente Topic-Namen
- OTA-gestuetzte Wartung
- Anzeige-Updates fuer die Indoor-Station
- schrittweise Robustheit und Testabdeckung
- Repository klonen.
src/credentials_template.hnachsrc/credentials.hkopieren.- WLAN-, MQTT- und optionalen Hostnamen eintragen.
- Firmware mit
platformio runbauen. - Per USB oder konfiguriertem OTA-Ziel hochladen.
Details stehen in SETUP.md.
src/sensors/ Sensoranbindungen wie BME280
src/network/ Wi-Fi- und MQTT-Kommunikation
src/visualization/ Display-Ansteuerung
src/data_processing/ Ringpuffer und Datenverarbeitung
test/ PlatformIO-Unit-Tests
doc/ generierte Doxygen-Dokumentation
- SETUP.md
- STATUS.md
- OPERATIONS.md
- TOPIC_CONTRACT.md
- ROADMAP.md
- generierte API-Doku unter doc