very low cost Wallclock based on ESP01 and WS2812B Leds
- get current time from NTP (instead of buying a RTC-Modul)
- use free pixels as Color light (MQTT /Clock/colorRGB/set)
- use Alarm-time (MQTT /Clock/alarm/set)
- Animation-Alarm (MQTT /Clock/effect/set)
you will need an MQTT Broker (I tested with Mosquitto) Topics are:
- /Uhr/colorRGB/set Use the free frame pixel as Color Light
- /Uhr/effect/set 0..3 will imediatly start Animation
- /Uhr/timer/set Coutdown in seconds for next Timer/Alarm
- /Uhr/alarm/set ISO8601 for next Timer/Alarm
- /Uhr/TimerLimit/set seconds before event the timer is shown
- /Uhr/Rotation/set pixel to rotate the dial to be upright (I found it to be more convinient in the MQTT section than hardcoded.
- /Uhr/Csecond/set RGB of the second hand
- /Uhr/Cminute/set RGB of the minute hand
- /Uhr/Chour/set RGB if the hour hand
- /Uhr/Csegment5/set RGB of the 5-minutes marks (5, 10, 20, 25, 35, 40, 50, 55)
- /Uhr/Csegment15/set RGB of the 15-minutes marks (0, 15, 30, 45)
- /Uhr/Ctimer/set RGB of the timer shown
- /Uhr/NextAnimation/set 1..3 selects the next Timer/Alarm animaion
- /Uhr/AniTime/set time the timer/Alarm animation is shown in seconds
in addition to the WS2812B strip:
- ESP8266-01 (ESP-01)
- ESP8266 ESP-01/01S RGB-LED-Controller-Adapter.
- 5V Powersupply (or something like this https://www.amazon.de/dp/B0F9Y5LQJB?ref=ppx_yo2ov_dt_b_fed_asin_title)
when I created this Project it was nessesary to build your own PCB but now you can buy one, that is ready to go (most come with a ESP01 included) I will keep everything here in case someone wants to solder it himself
- PCB (60mm * 40mm)
- DC-DC Converter (set to 5V output) (e.g., for 60 LEDs this will be sufficient; for more LEDs, use a bigger one) https://www.amazon.de/AZDelivery-LM2596S-Netzteil-Adapter-Arduino/dp/B07DP3JX2X/
- Level Shifter (e.g., https://www.amazon.de/XCSOURCE®-Logisches-Konverter-Bi-Direktional-TE291/dp/B0148BLZGE/)
- Resistor 470 Ohm
- Capacitor 1000µF / 6.3V
- DC Power Supply**
- FS / SPIFFS
- WiFiManager
- WiFi / WiFiUDP
- TimeLib (Time)
- ArduinoJson (v6.x)
- NeoPixelBus
- NeoPixelAnimator
- PubSubClient
| Bibliothek | SPIFFS (File System) |
|---|---|
| Benötigt für: | Speichern von Konfigurationsdateien und Daten auf dem ESP8266. |
| Installieren: | Für ESP8266: FS ist standardmäßig enthalten, SPIFFS ebenfalls. |
| Für ESP32: SPIFFS über Bibliotheksmanager installieren. |
| Bibliothek | WiFiManager |
|---|---|
| Autor: | tzapu |
| Benötigt für: | WLAN-Konfiguration über Captive Portal (falls kein festes WLAN in Code). |
| Arduino IDE Installation: | |
| Menü: | Sketch → Bibliothek einbinden → Bibliotheken verwalten → Suche: WiFiManager → Installieren |
| GitHub: | https://github.com/tzapu/WiFiManager |
| Bibliothek: | WiFi (inkl. WiFiUDP) |
|---|---|
| Benötigt für: | WLAN-Verbindung und NTP (UDP) Kommunikation. |
| Hinweis: | Für ESP8266 ist standardmäßig enthalten. |
| Für ESP32: WiFi über Bibliotheksmanager. |
| Bibliothek: | Time (TimeLib) |
|---|---|
| Autor: | Michael Margolis |
| Benötigt für: | Zeitfunktionen wie now(), hour(), minute(), etc. |
| Arduino IDE Installation: | Bibliotheksmanager → Suche: TimeLib → Installieren |
| GitHub: https://github.com/PaulStoffregen/Time |
| Bibliothek: | ArduinoJson |
|---|---|
| Autor: | Benoit Blanchon |
| Benötigt für: | JSON-Parsing für MQTT Konfigurationen. |
| Hinweis: | Version 6.x empfohlen |
| Arduino IDE Installation: | Bibliotheksmanager → Suche: ArduinoJson → Installieren |
| GitHub: | https://github.com/bblanchon/ArduinoJson |
| Bibliothek: | NeoPixelBus |
|---|---|
| Autor: | Makuna |
| Benötigt für: | Steuerung der WS2812B LEDs |
| Arduino IDE Installation: | Bibliotheksmanager → Suche: NeoPixelBus → Installieren |
| GitHub: | https://github.com/Makuna/NeoPixelBus |
| Bibliothek: | NeoPixelAnimator |
|---|---|
| Benötigt für: | Animationen / Fade / Blending der LEDs |
| Hinweis: | Wird in der Regel automatisch mit NeoPixelBus mitinstalliert, sonst separat installieren |
| Arduino IDE Installation: | Bibliotheksmanager → Suche: NeoPixelAnimator → Installieren |
| Bibliothek: | PubSubClient |
|---|---|
| Autor: | Nick O'Leary |
| Benötigt für: | MQTT-Kommunikation |
| Arduino IDE Installation: | Bibliotheksmanager → Suche: PubSubClient → Installieren |
| GitHub: | https://github.com/knolleary/pubsubclient |