ESP8266 (D1 mini) firmware to control up to 8 diffusers via a 74HC595 shift register.
- 8 channel output control (single channel + master on/off)
- Web UI for:
- live status
- channel names
- schedules
- MQTT settings
- MQTT integration with retained states
- Home Assistant auto-discovery
- WiFi onboarding via WiFiManager AP portal
- Persistent settings and schedules in LittleFS
Zebra_Scent/
├── Zebra_Scent.ino # Main application logic (setup, loop, APIs, MQTT, scheduling)
├── AppConfig.h # Shared constants, pin mapping, config/schedule structs
├── AppConfig.cpp # Global config and schedule storage instances
├── WebUi.h # Web UI declaration
└── WebUi.cpp # Embedded HTML/CSS/JS Web UI
- Board: ESP8266 (e.g. Wemos D1 mini)
- Arduino IDE 2.x (or PlatformIO with equivalent libraries)
- Libraries:
- ESP8266 core libraries (
ESP8266WiFi,ESP8266WebServer) LittleFSWiFiManagerPubSubClientArduinoJson
- ESP8266 core libraries (
- Open
Zebra_Scent/Zebra_Scent.inoin Arduino IDE. - Select your ESP8266 board and serial port.
- Ensure required libraries are installed.
- Compile and upload.
- Device starts a WiFiManager portal if no credentials exist.
- Connect to AP
ZebraScent-<chipid>. - Configure WiFi (and optional MQTT defaults).
- Open device IP in browser to use the Web UI.
- Time zone is configured to
Europe/Berlinin firmware. - MQTT is optional; leave host empty to disable.