Almost no electronics needed.
Only ESP8266 (NodeMCU or WeMos D1 mini) and an LED-stripe.
Optional support for RTC, LDR, Buzzer and IR-remote.
Supports more than 30 types of LED stripes.
RGB and RGBW (experimental).
Horizontal and vertial LED layout.
16 Languages.
Timer.
Alarm.
NTP timesync.
RTC timesync as backup.
Timezones.
DST.
Webserver to controll the clock.
OTA.
WiFi manager for initial setup via accesspoint.
Log to Syslog.
(RGBW ist only tested with LPD8806 of the CLT2.)
Time.
AM/PM.
Seconds.
Date.
Temperature (with RTC only).
Timer.
Alarm 1.
Alarm 2.
Brightnesscontrol.
Color.
Fallbacktime.
Language.
Set Time.
"It is" on/off.
Set Date.
Nightmode on/off.
Testmode.
via Arduino:
WiFiManager by tzapu
DNSServer by Kristijan Novoselic
ArduinoOTA by Ivan Grokhotkov
ESP8266WebServer by Ivan Grokhotkov
ESP8266WiFi by Ivan Grokhotkov
FastLED by Daniel Garcia
RTC by Makuna
IRremoteESP8266 by Sebastien Warin
via Web:
https://github.com/PaulStoffregen/Time
https://github.com/JChristensen/Timezone
https://github.com/arcao/Syslog
There is a warning from FastLED about SPI when compiling. Just ignore it.
Sie gleicht die Zeit jede Stunde per NTP mit einem Zeitserver im Internet ab. Auf der Web-Seite kann man die Uhr steuern. Updates sind OTA moeglich. Dazu im Arduino IDE den ESP als Port auswaehlen.
WiFi Manager: Wenn die Uhr sich beim Start mit keinem WLAN verbinden kann, schaltet sie einen AccessPoint ein. Dann ein Handy oder Tablet mit diesem verbinden und die WLAN Daten eingeben.
Die Firmware gibt es hier: https://github.com/ch570512/Qlockwork
Zeitanzeige: Der Standardmodus der Uhr. Er zeigt die Zeit an. :)
Anzeige AM/PM: Zeigt an, ob es vormittags (AM) oder nachmittags (PM) ist.
Sekunden: Anzeige der Sekunden.
Datum: Anzeige des aktuellen Tages und Monats.
Temperatur: Anzeige der gemessenen Temperatur.
Timer Set: Setzt den Minuten-Timer. Null schaltet den Timer ab.
Der Timer startet sofort mit dem Druck auf + oder -.
Timer: Anzeige der Restzeit wenn ein Timer gesetzt ist.
Alarm1 ein/aus
Alarm1: Setzt den ersten 24-Stunden-Alarm wenn Alarm1 "ein" ist.
Alarm2 ein/aus
Alarm2: Setzt den zweiten 24-Stunden-Alarm wenn Alarm2 "ein" ist.
Titel MAIN: H+ und M+ druecken um direkt in die naechste oder vorhergehende Kategorie zu wechseln.
Automatische Helligkeitsregelung ein/aus
Helligkeitsregelung
Farbe
Ruecksprungverzoegerung (FB nn): Wie lange soll es dauern, bis z.B. aus der Sekundenanzeige wieder zurueck in die
Zeitanzeige gewechselt wird. (0 = deaktiviert.)
Sprache (DE/CH/EN/...): Die passende Sprache zur benutzten Front waehlen.
Titel TIME: H+ und M+ druecken um direkt in die naechste oder vorhergehende Kategorie zu wechseln.
Zeit einstellen: H+ und M+ druecken um die Zeit zu stellen. Die Sekunden springen mit jedem Druck auf Null.
"Es ist" anzeigen oder nicht (IT EN/DA)
Tag einstellen (DD nn): H+ und M+ druecken um den aktuellen Tag einzustellen.
Monat einstellen (MM nn): H+ und M+ druecken um den aktuellen Monat einzustellen.
Jahr einstellen (YY nn): H+ und M+ druecken um das aktuelle Jahr einzustellen.
Nachtauschaltung (NI OF): H+ und M+ druecken um die Ausschaltzeit des Displays einzustellen.
Nachtwiedereinschaltung (NI ON): H+ und M+ druecken um die Einschaltzeit des Displays einzustellen.
Titel TEST: H+ und M+ druecken um direkt in die naechste oder vorhergehende Kategorie zu wechseln.
LED-Test: Laesst einen waagerechten Streifen ueber das Display wandern.
#define HOSTNAME Der Name der Uhr.
#define OTA_PASS Kennwort fuer "Over the Air" Updates.
#define NTP_SERVER Abzufragender NTP-Server.
#define RTC_BACKUP Eine RTC als Backup verwenden.
#define RTC_TEMP_OFFSET Gibt an, um wieviel Grad die gemessene Temperatur (+ oder -) korrigiert werden soll.
Nur ganze Zahlen verwenden.
#define BOARD_LED Zeigt mit Hilfe der LED auf dem ESP die Funktion an. Sie blinkt einmal pro Sekunde.
#define NONE_TECHNICAL_ZERO Zeigt die Null ohne den diagonalen Strich.
Die Zeitzone in der sich die Uhr befindet. Wichtig fuer den GMT-Versatz und die Sommer-/Winterzeitumstellung.
#define TIMEZONE_PST
#define TIMEZONE_MST
#define TIMEZONE_CST
#define TIMEZONE_EST
#define TIMEZONE_GMT
#define TIMEZONE_CET
#define TIMEZONE_AEST
#define LDR Einen LDR fuer die Helligkeitsregelung verwenden.
#define MIN_BRIGHTNESS 10 Minimale Helligkeit der LEDs im Bereich von 0 bis 255.
#define MAX_BRIGHTNESS 255 Maxmale Helligkeit der LEDs im Bereich von 0 bis 255.
#define LED_LAYOUT_HORIZONTAL Waagerecht und Eck-LEDs am Ende des Stripes. (Von vorne gesehen.)
111 114 112
000 001 002 003 004 005 006 007 008 009 010
021 020 019 018 017 016 015 014 013 012 011
022 023 024 025 026 027 028 029 030 031 032
043 042 041 040 039 038 037 036 035 034 033
044 045 046 047 048 049 050 051 052 053 054
065 064 063 062 061 060 059 058 057 056 055
066 067 068 069 070 071 072 073 074 075 076
087 086 085 084 083 082 081 080 079 078 077
088 089 090 091 092 093 094 095 096 097 098
109 108 107 106 105 104 103 102 101 100 099
110 113
#define LED_LAYOUT_VERTICAL Senkrecht und Eck-LEDs innerhalb des Stripes. (Von vorne gesehen.)
000 114 102
001 021 022 041 042 061 062 081 082 101 103
002 020 023 040 043 060 063 080 083 100 104
003 019 024 039 044 059 064 079 084 099 105
004 018 025 038 045 058 065 078 085 098 106
005 017 026 037 046 057 066 077 086 097 107
006 016 027 036 047 056 067 076 087 096 108
007 015 028 035 048 055 068 075 088 095 109
008 014 029 034 049 054 069 074 089 094 110
009 013 030 033 050 053 070 073 090 093 111
010 012 031 032 051 052 071 072 091 092 112
011 113
#define LED_RGB
#define LED_RGBW Da RGBW von FAST-LED (noch) nicht unterstuetzt wird, ist dies ein Hack welcher nur mit dem
LPD8806 Treiber und dem Streifen der CLT2 getestet ist. Es ist zu vermuten, dass andere
Streifen eine abweichende Ansteuerung verwenden und dehalb nicht korrekt funktionieren.
Alle von FAST-LED unterstützten LED-Treiber koennen verwendet werden:
APA102, APA104, APA106, DOTSTAR, GW6205, GW6205_400, LPD1886, LPD1886_8BIT, LPD8806, NEOPIXEL,
P9813, PL9823, SK6812, SK6822, SK9822, SM16716, TM1803, TM1804, TM1809, TM1812, TM1829, UCS1903,
UCS1903B, UCS1904, UCS2903, WS2801, WS2803, WS2811, WS2811_400, WS2812, WS2812B, WS2813, WS2852.
#define IR_LETTER_OFF Schaltet die LED hinter dem IR-Sensor dauerhaft ab. Das verbessert den IR-Empfang.
Hier das K vor Uhr.
#define IR_REMOTE IR-Fernbedienung verwenden.
Jede Fernbedienung kann verwendet werden. Es werden 6 Tasten unterstützt.
Um die Fernbedienung anzulernen "#define DEBUG" einschalten und einen Knopf auf der Fernbedienung druecken.
Den in der seriellen Konsole angezeigten Code dann in die Datei "Configuration.h" schreiben.
#define IR_CODE_ONOFF 16769565
#define IR_CODE_TIME 16753245
#define IR_CODE_MODE 16736925
#define IR_CODE_EXTMODE 16748655
#define IR_CODE_PLUS 16754775
#define IR_CODE_MINUS 16769055
#define SERIAL_SPEED Geschwindigkeit der seriellen Schnittstelle fuer die serielle Konsole.
#define DEBUG Gibt technische Informationen in der seriellen Konsole aus.
#define DEBUG_MATRIX Rendert die Ausgabe der Matrix fuer die deutsche Front in der seriellen Konsole.
#define DEBUG_FPS Durchlaeufe der loop() pro Sekunde.