WordClock mit WS2812
Mit diesem Projekt ist der Bau einer 12-Stunden WordClock und einer minutengenauen 24-Stunden WordClock möglich.
Um die beiden Varianten zu unterscheiden, wird die 12-Stunden-Variante im folgenden WordClock12h und die 24-Stunden-Variante WordClock24h genannt.
Zugehöriger Thread im Forum: https://www.mikrocontroller.net/topic/385955
Tutorial zum Aufbau der WordClock: Tutorial - Aufbau WordClock mit WS2812 - im Moment noch in der Entstehung
WordClock24h:
Software
Die Software ist sowohl auf dem STM32F401RE oder STM32F411RE Nucleo-Board als auch auf einem STM32F103-Mini-Development-Board lauffähig.
Features
Die Software wird ständig weiterentwickelt. Folgende Punkte wurden bereits umgesetzt:
- Lauffähig auf STM32F4x1 Nucleo, STM32F4x1 BlackPill, und STM32F103 BluePill
- Anbindung eines ESP8266-WLAN-Moduls mit speziell abgestimmter Firmware
- WPS-Button zum schnellen Anbinden des ESP8266-WLAN-Moduls an das vorhandene Netzwerk
- Konfiguration über Webserver-Interface
- Holen der Uhrzeit per NTP-Protokoll aus dem Internet
- Fernsteuerung über IR-Fernbedienung mittels IRMP
- Fernsteuerung per Android App
- Einstellen des Anzeigemodus ("Sprache"), Helligkeit und der Farbe per IR-Fernbedienung/App/Web
- Konfigurierbare Nachtschaltzeiten - d.h. automatisches Abschalten zur Nachtzeit, separat auch für das Ambilight
- Abspielen von MP3-Dateien zu bestimmten Ereignissen oder zu Alarmzeiten (Wecker) über optionalen Mini-DFPlayer
- Anbindung von LED-Stripes des Typs WS2812, WS2812B, APA102 und SK6812 (RGB- und RGBW-RLEDs)
- Sanftes Überblenden der Uhrzeiten oder verschiedene Animationen bei Uhrzeitwechsel, z.B. "Explode" oder "Matrix"
- Farbanimationen, z.B. Automatischer Farbverlauf durch alle Regenbogenfarben ("Rainbow")
- Einblendung von Overlays (Icons, Laufschriften) zu bestimmten festen oder beweglichen Kalenderdaten wie Geburtstag/Ostern/Weihnachten/Advent/Silvester etc.
- Erstellen von eigenen Overlays als dynamische Erweiterung
- NEU: Hochladen eigener Display-Layouts über das Webinterface
- Automatische Helligkeitsregelung mittels LDR (optional)
- Anbindung einer externen DS3231-RTC
- Anbindung eines externen I2C-EEPROM
- Optionaler Anschluss eines DCF77-Moduls
- Manuelles Stellen der Uhrzeit per Webserver-Interface oder Android App, wenn kein Internet/DCF77 verfügbar
- Optionale Temperaturmessung und -Anzeige mit DS18xxx-Sensor
- Optionale Wetteranzeige über openweathermap.org, auch als Piktogramm (Overlay)
- Separate Farbauswahl für Display und Ambilight
- Separat einschaltbares Ambilight mit auswählbaren Animationen: Keine, "Clock" (Umlaufende Sekundenanzeige) und "Rainbow"
- Konfiguration einer "Zeitschaltuhr" für das Ambilight, um dieses zum Beispiel generell nachts abzuschalten
- Laufschriften - eigene Texte und Wettermeldungen
- Optionale Steuerung der Stromversorgung für die LED-Stripes
- Einspielen von Updates für ES8266 ESP-12F und STM32 über OTA ("over the air").
- Spiele: WCtris (Tetris Clone) und Snake zum Spielen auf der Uhranzeige
Features Version 3.x
- Unterstützung des STM32F407VET6 BlackBoards
- BlackBoard: Unterstützung von 7" SSD1963 TFT-Displays
- BlackBoard: Bedienung auch per Touch auf TFT-Display (geplant)
- BlackBoard: Simulation eines EEPROMs in eigenem Flash-Speicher auf dem Board
- BlackBoard: Benutzung der CPU-internen RTC als RTC-Ersatz
- Neues Layout-Tabellen-Format, alte Tabellen sind weiterhin verarbeitbar
- Ein-/Abschalten von ES-IST nun auch möglich, wenn verschiedene Kombinationen vorliegen - momentan nur relevant für Spanisch ("ES LA" / "SON LAS") und Italienisch ("E L" / "SONO LE")
- Diverse neue Layouts wie Italienisch (WC12h 10x11), Spanisch (WC12h 10x11), Polnisch (WC24h 20x20)
- WC24h: Anzeige der Temperatur als Overlay nun auch mit großen Ziffern möglich
- Bugfix: Automatische Helligkeitssteuerung bei Temperatur-Overlays abschalten
- Einheitliches Programm für ESP8266, sowohl für WordClock als auch für uClock
Weitere geplante Features
- Menü Ambilight: Zusätzlicher Haken "Use Display Brightness" für unterschiedliche Farben, aber gleiche Helligkeit
- Hintergrundfarbe/Helligkeit für Ambilight.
- Anzahl der leuchtenden LEDs beim Fading im Clock-Modus
- Daylight Color Animation: fließender Übergang.
- Timer-Tabelle für DFPlayer
- Negative Korrekturwerte für die Temperatur
- WC24h: Digitale Anzeige Uhrzeit und Temperatur
- Neues Overlay "Time", welches als Ticker "Es ist hh:mm Uhr" durchlaufen lässt...
- Wetter-Ticker: Mehrere Orte auswählbar.
- Automatisches Aktivieren eines Anzeigemodus zu einem bestimmten Datum, z.B. Jester am 1. April
- Overlays: Neben von-bis-Daten auch noch Uhrzeitbereiche, z.B. 10:00 - 12:30
- Bei Ticker-Texten einen Gong o.ä. per DFPLayer ausgeben.
- Daylight-Tabelle über Webinterface änderbar.
- STM32-Logbook im Web-Interface.
- Export/Import der (EEPROM-)Einstellungen.
- Optimierung der Rainbow-Animation für SK6812 (Weiß).
- Harlekin-Farbanimation (jeder Buchstabe hat eine eigene Farbe).
- Weitere Farbanimation: Jedes Wort hat eine eigene Farbe - evtl. mit Regenbogeneffekt.
- Neue Animation "Implode".
- Verschiedene Lautstärken für Alarme, Bell-Mode, Speak Mode, Overlay-DFPlayer
- Beim Ad-Hoc-Abspielen von MP3s über Web-Interface Lautstärke angebbar
- Mood-Light-Funktion.
- Hintergrundfarbe/Helligkeit für Display
- Demo-Modus: Abspielen aller Gimmicks
- Vereinfachtes Bedienkonzept für IR-Fernbedienung.
- WC24h: Einblendung der Punktmatrix "°C" (als Icon?) bei der Temperaturanzeige.
- Spiele wie TRON und PONG.
Download
WICHTIG
Es ist unbedingt erforderlich, dass die passende ESP8266-Firmware zur STM32-Firmware eingespielt wird! Ältere ESP8266-Firmware-Versionen führen auf jeden Fall zu Fehlverhalten!
Regel ist dabei: Die STM32-Version A.B.C muss mit der ESP8266-Firmware in den ersten beiden Ziffern A.B übereinstimmen, die dritte Ziffer C darf unterschiedlich sein.
Aktuelle STM32-Version: 2.9.5 vom 09.02.2019
Aktuelle ESP-Version: 2.9.5 vom 16.02.2019
EmBitz-Projekt für STM32 und Sources für ESP8266: Sources auf Github
Achtung: Ab Version 2.9.0 müssen im SPIFFS die Anzeigetabellen zwingend gespeichert werden, siehe SPIFFS. Bei einem Update von 2.8.x oder älter ist sicherzustellen, dass das SPIFFS im ESP8266 korrekt formatiert ist! Im Zweifel flasht man erst den ESP8266, formatiert dann das SPIFFS über das Web-Interface und flasht dann erst den STM32.
Die SPIFFS-Webseite muss dann unter anderem die nebenstehende Dateisystem-Parameter-Übersicht zeigen. Läuft allerdings bereits eine Version 2.9.0 oder neuer, dann muss das SPIFFS nicht neu formatiert werden. |
Hex- und Bin-Dateien, wenn man - ohne zu compilieren - direkt flashen will:
Firmware | Version | Datum | Download | Alle Versionen |
---|---|---|---|---|
WordClock STM32 Firmware alle Varianten | 2.9.5 | 09.02.2019 | Wordclock-hex.zip | Versionshistorie |
WordClock Icons | 2.8.4 | 28.12.2017 | Wordclock-icons.zip | Versionshistorie |
NEU: WordClock Tables | 2.9.5 | 12.02.2019 | Wordclock-tables.zip | Versionshistorie |
NEU: Quelltexte WordClock Tabellengenerator | 2.9.5 | 12.02.2019 | Make-tables.zip | Versionshistorie |
ESP8266 ESP-01 Firmware | 2.9.5 | 16.02.2019 | ESP-WordClock-512K.bin | Versionshistorie |
ESP8266 ESP-12F Firmware | 2.9.5 | 16.02.2019 | ESP-WordClock-4M.bin | Versionshistorie |
Android App | 2.9.4 | 26.05.2018 | WC24h.apk | Versionshistorie |
WCTris Windows-/Linux-Console-Programm | 2.9.4a | 02.06.2018 | Wctris.zip | Versionshistorie |
Icon Editor | 2.9.4 | 26.05.2018 | icon-editor.zip | Versionshistorie |
Welche WordClock STM32 Firmware für die jeweilige Hardware zu verwenden ist, wird hier erklärt: WordClock-Varianten
Um die App unter Android zu installieren (ausserhalb Google Play Store), muss man zunächst am Handy unter Android die Installation von Apps "aus unbekannten Quellen" freigeben. Über den Webbrowser auf dem Android-Gerät clickt man auf den Download-Link und kann die Installation nach dem download durchführen. Alternativ nutzt man ein APK Installations Programm. Einfach und gut ist APKInstaller für Android, welches man über den Google Play Store leicht installieren kann. Dies unterstützt den Installationsprozess (Informationen über die *.apk-Version, Installation von SD-Karte..), ist aber nicht unbedingt notwendig.
WordClock-Varianten
Es werden folgende Hardware-Varianten unterstützt:
- Uhrenanzeige WC24h und WC12h
- Mikrocontroller: STM32F103 (Mini-Development Board aka BluePill), STM32F401 (Nucleo und BlackPill) und STM32F411 (Nucleo und BlackPill)
- LED-Streifen: WS2812-GRB, WS2812-RGB, SK6812-RGB, SK6812-RGBW und APA102
Für jede dieser Kombinationen gibt es eine spezielle Hex-Datei zum Flashen des STM32. Der Dateiname setzt sich aus den oben genannten drei Teilen zusammen.
1. Teil - WordClock
- wc12h - WordClock 12H
- wc24h - WordClock 24H
2. Teil - Mikrocontroller Board
- stm32f103 für STM32F103 BluePill
- stm32f401 für STM32F401 Nucleo
- stm32f411 für STM32F411 Nucleo
- stm32f401cc-8 für STM32F401CC BlackPill mit 8MHz Quarz
- stm32f401cc-25 für STM32F401CC BlackPill mit 25MHz Quarz
- stm32f411ce-8 für STM32F411CE BlackPill mit 8MHz Quarz
- stm32f411ce-25 für STM32F411CE BlackPill mit 25MHz Quarz
3. Teil - LEDs
- ws2812-grb für WS2812 in der Farbreihenfolge GRB (Standard)
- ws2812-rgb für WS2812 in der Farbreihenfolge RGB
- sk6812-rgb für SK6812 in der Farbreihenfolge RGB
- sk6812-rgbw für SK6812 in der Farbreihenfolge RGBW
- apa102 für APA102 LEDs
Damit ergeben sich folgende Dateinamen:
Controller | Dateiname | Eigenschaften |
---|---|---|
WordClock12h STM32F103 BluePill | ||
wc12h-stm32f103-ws2812-grb.hex | WS2812 mit Farb-Reihenfolge GRB (Standard) | |
wc12h-stm32f103-ws2812-rgb.hex | WS2812 mit abweichender Farb-Reihenfolge RGB | |
wc12h-stm32f103-sk6812-rgb.hex | SK6812 RGB ohne weiße LED | |
wc12h-stm32f103-sk6812-rgbw.hex | SK6812 RGBW mit zusätzlicher weißer LED | |
wc12h-stm32f103-apa102.hex | APA RGB LEDs | |
WordClock12h STM32F401 Nucleo | ||
wc12h-stm32f401-ws2812-grb.hex | WS2812 mit Farb-Reihenfolge GRB (Standard) | |
wc12h-stm32f401-ws2812-rgb.hex | WS2812 mit abweichender Farb-Reihenfolge RGB | |
wc12h-stm32f401-sk6812-rgb.hex | SK6812 RGB ohne weiße LED | |
wc12h-stm32f401-sk6812-rgbw.hex | SK6812 RGBW mit zusätzlicher weißer LED | |
wc12h-stm32f401-apa102.hex | APA RGB LEDs | |
WordClock12h STM32F401 BlackPill 8MHz | ||
wc12h-stm32f401cc-8-ws2812-grb.hex | WS2812 mit Farb-Reihenfolge GRB (Standard) | |
wc12h-stm32f401cc-8-ws2812-rgb.hex | WS2812 mit abweichender Farb-Reihenfolge RGB | |
wc12h-stm32f401cc-8-sk6812-rgb.hex | SK6812 RGB ohne weiße LED | |
wc12h-stm32f401cc-8-sk6812-rgbw.hex | SK6812 RGBW mit zusätzlicher weißer LED | |
wc12h-stm32f401cc-8-apa102.hex | APA RGB LEDs | |
WordClock12h STM32F401 BlackPill 25MHz | ||
wc12h-stm32f401cc-8-ws2812-grb.hex | WS2812 mit Farb-Reihenfolge GRB (Standard) | |
wc12h-stm32f401cc-25-ws2812-rgb.hex | WS2812 mit abweichender Farb-Reihenfolge RGB | |
wc12h-stm32f401cc-25-sk6812-rgb.hex | SK6812 RGB ohne weiße LED | |
wc12h-stm32f401cc-25-sk6812-rgbw.hex | SK6812 RGBW mit zusätzlicher weißer LED | |
wc12h-stm32f401cc-25-apa102.hex | APA RGB LEDs | |
WordClock12h STM32F411 Nucleo | ||
wc12h-stm32f411-ws2812-grb.hex | WS2812 mit Farb-Reihenfolge GRB (Standard) | |
wc12h-stm32f411-ws2812-rgb.hex | WS2812 mit abweichender Farb-Reihenfolge RGB | |
wc12h-stm32f411-sk6812-rgb.hex | SK6812 RGB ohne weiße LED | |
wc12h-stm32f411-sk6812-rgbw.hex | SK6812 RGBW mit zusätzlicher weißer LED | |
wc12h-stm32f411-apa102.hex | APA RGB LEDs | |
WordClock12h STM32F411 BlackPill 8MHz | ||
wc12h-stm32f411ce-8-ws2812-grb.hex | WS2812 mit Farb-Reihenfolge GRB (Standard) | |
wc12h-stm32f411ce-8-ws2812-rgb.hex | WS2812 mit abweichender Farb-Reihenfolge RGB | |
wc12h-stm32f411ce-8-sk6812-rgb.hex | SK6812 RGB ohne weiße LED | |
wc12h-stm32f411ce-8-sk6812-rgbw.hex | SK6812 RGBW mit zusätzlicher weißer LED | |
wc12h-stm32f411ce-8-apa102.hex | APA RGB LEDs | |
WordClock12h STM32F411 BlackPill 25MHz | ||
wc12h-stm32f411ce-8-ws2812-grb.hex | WS2812 mit Farb-Reihenfolge GRB (Standard) | |
wc12h-stm32f411ce-25-ws2812-rgb.hex | WS2812 mit abweichender Farb-Reihenfolge RGB | |
wc12h-stm32f411ce-25-sk6812-rgb.hex | SK6812 RGB ohne weiße LED | |
wc12h-stm32f411ce-25-sk6812-rgbw.hex | SK6812 RGBW mit zusätzlicher weißer LED | |
wc12h-stm32f411ce-25-apa102.hex | APA RGB LEDs | |
WordClock24h STM32F103 BluePill | ||
wc24h-stm32f103-ws2812-grb.hex | WS2812 mit Farb-Reihenfolge GRB (Standard) | |
wc24h-stm32f103-ws2812-rgb.hex | WS2812 mit abweichender Farb-Reihenfolge RGB | |
wc24h-stm32f103-sk6812-rgb.hex | SK6812 RGB ohne weiße LED | |
wc24h-stm32f103-sk6812-rgbw.hex | SK6812 RGBW mit zusätzlicher weißer LED | |
wc24h-stm32f103-apa102.hex | APA RGB LEDs | |
WordClock24h STM32F401 Nucleo | ||
wc24h-stm32f401-ws2812-grb.hex | WS2812 mit Farb-Reihenfolge GRB (Standard) | |
wc24h-stm32f401-ws2812-rgb.hex | WS2812 mit abweichender Farb-Reihenfolge RGB | |
wc24h-stm32f401-sk6812-rgb.hex | SK6812 RGB ohne weiße LED | |
wc24h-stm32f401-sk6812-rgbw.hex | SK6812 RGBW mit zusätzlicher weißer LED | |
wc24h-stm32f401-apa102.hex | APA RGB LEDs | |
WordClock24h STM32F411 Nucleo | ||
wc24h-stm32f411-ws2812-grb.hex | WS2812 mit Farb-Reihenfolge GRB (Standard) | |
wc24h-stm32f411-ws2812-rgb.hex | WS2812 mit abweichender Farb-Reihenfolge RGB | |
wc24h-stm32f411-sk6812-rgb.hex | SK6812 RGB ohne weiße LED | |
wc24h-stm32f411-sk6812-rgbw.hex | SK6812 RGBW mit zusätzlicher weißer LED | |
wc24h-stm32f411-apa102.hex | APA RGB LEDs | |
WordClock24h STM32F401 BlackPill 8MHz | ||
wc24h-stm32f401cc-8-ws2812-grb.hex | WS2812 mit Farb-Reihenfolge GRB (Standard) | |
wc24h-stm32f401cc-8-ws2812-rgb.hex | WS2812 mit abweichender Farb-Reihenfolge RGB | |
wc24h-stm32f401cc-8-sk6812-rgb.hex | SK6812 RGB ohne weiße LED | |
wc24h-stm32f401cc-8-sk6812-rgbw.hex | SK6812 RGBW mit zusätzlicher weißer LED | |
wc24h-stm32f401cc-8-apa102.hex | APA RGB LEDs | |
WordClock24h STM32F401 BlackPill 25MHz | ||
wc24h-stm32f401cc-25-ws2812-grb.hex | WS2812 mit Farb-Reihenfolge GRB (Standard) | |
wc24h-stm32f401cc-25-ws2812-rgb.hex | WS2812 mit abweichender Farb-Reihenfolge RGB | |
wc24h-stm32f401cc-25-sk6812-rgb.hex | SK6812 RGB ohne weiße LED | |
wc24h-stm32f401cc-25-sk6812-rgbw.hex | SK6812 RGBW mit zusätzlicher weißer LED | |
wc24h-stm32f401cc-25-apa102.hex | APA RGB LEDs | |
WordClock24h STM32F411 | ||
wc24h-stm32f411-ws2812-grb.hex | WS2812 mit Farb-Reihenfolge GRB (Standard) | |
wc24h-stm32f411-ws2812-rgb.hex | WS2812 mit abweichender Farb-Reihenfolge RGB | |
wc24h-stm32f411-sk6812-rgb.hex | SK6812 RGB ohne weiße LED | |
wc24h-stm32f411-sk6812-rgbw.hex | SK6812 RGBW mit zusätzlicher weißer LED | |
wc24h-stm32f411-apa102.hex | APA RGB LEDs | |
WordClock24h STM32F411 BlackPill 8MHz | ||
wc24h-stm32f411ce-8-ws2812-grb.hex | WS2812 mit Farb-Reihenfolge GRB (Standard) | |
wc24h-stm32f411ce-8-ws2812-rgb.hex | WS2812 mit abweichender Farb-Reihenfolge RGB | |
wc24h-stm32f411ce-8-sk6812-rgb.hex | SK6812 RGB ohne weiße LED | |
wc24h-stm32f411ce-8-sk6812-rgbw.hex | SK6812 RGBW mit zusätzlicher weißer LED | |
wc24h-stm32f411ce-8-apa102.hex | APA RGB LEDs | |
WordClock24h STM32F411 BlackPill 25MHz | ||
wc24h-stm32f411ce-8-ws2812-grb.hex | WS2812 mit Farb-Reihenfolge GRB (Standard) | |
wc24h-stm32f411ce-25-ws2812-rgb.hex | WS2812 mit abweichender Farb-Reihenfolge RGB | |
wc24h-stm32f411ce-25-sk6812-rgb.hex | SK6812 RGB ohne weiße LED | |
wc24h-stm32f411ce-25-sk6812-rgbw.hex | SK6812 RGBW mit zusätzlicher weißer LED | |
wc24h-stm32f411ce-25-apa102.hex | APA RGB LEDs |
Zu beachten: Die normalen WS2812-LED-Streifen benutzen die Farbreihenfolge GRB (Grün-Rot-Blau)!
Software für Windows
Die Software zum Flashen des Programms:
- ST-Link/V2 , siehe: http://www.st.com/web/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168
Alternativ kann das STM32MiniBoard (nicht Nucleo!) auch über UART geflashed werden. Dann braucht man keinen ST-Link und verwendet folgende Software: http://www.st.com/web/en/catalog/tools/PF257525
Alternativer Link:
Zum Flashen des STM32MiniBoard über UART muss beim Einschalten des STM Boot0 über einen Jumper auf „1“ gesetzt sein. Bei Verwendung eines ESP8266-ESP12F-WLAN-Moduls ist aber der mittlere Anschluss von Boot0 schon durch eine Drahtverbindung für das OTA-Flashen belegt – deshalb wird für das Flashen ein ST-Link-Adapter über die SWD-Schnittstelle des STM32MiniBoard empfohlen.
Die Software für das Flashen über UART wird auch zum Aufspielen der ESP8266 Firmware des WLAN-Moduls benötigt.
Möchte man die Sources selber übersetzen:
- EmBitz IDE, siehe https://www.embitz.org/
Möchte man die Debug- und Log-Meldungen als Entwickler oder zur Diagnose verfolgen, braucht man noch
- STM32 Virtual COM Port Driver: http://www.st.com/web/en/catalog/tools/PF257938 für das Nucleo-Board
- oder einen zusätzlichen USB-UART Adapter nebst Treiber für das STM32F103 Mini Development Board
- PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) oder andere Terminal-Emulation
WordClock-Quellcode selbst übersetzen
Dieser Vorgang ist nur notwendig, wenn man an den Quellen etwas ändern möchte. Im Normalfall braucht man lediglich eine der oben im Download-Kapitel angegebenen Hex-Dateien auszuwählen und diese auf den Prozessor flashen.
Wenn man an dem Programm etwas ändern oder erweitern möchte, dann startet man die zuvor installierte EmBitz-IDE. Aus dem SVN lädt man sich den Tarball (Link siehe Kapitel Download) und entpackt diesen unter C:\EmBitzProjects.
Nach dem Entpacken findet man dann im Unterverzeichnis wclock24h die Projekt-Datei wclock24h.ebp, um den Quellcode für ein Nucleo-Board zu compilieren. In der EmBitz-Ide kann man nun mit File -> Open die Projekt-Datei laden.
Möchte man jedoch den Quellcode für das STM32F103-Mini-Board übersetzen, dann lädt man die Projektdatei wclock24h-F103.ebp aus dem Unterverzeichnis wclock24h-F103.
Anschließend wählt man in der oberen Zeile in der Mitte das Ziel aus, wofür man den Quellcode übersetzen möchte.
Beim Nucleo-Projekt werden folgende Alternativen angeboten:
WC24h:
- WC24h-Nucleo401-Debug
- WC24h-Nucleo401-Release
- WC24h-Nucleo411-Debug
- WC24h-Nucleo411-Release
WC12h:
- WC12h-Nucleo401-Debug
- WC12h-Nucleo401-Release
- WC12h-Nucleo411-Debug
- WC12h-Nucleo411-Release
In der F103-Projektdatei können folgende Varianten ausgewählt werden:
WC24h:
- WC24h-STM32F103-Debug
- WC24h-STM32F103-Release
WC12h:
- WC12h-STM32F103-Debug
- WC12h-STM32F103-Release
Die Debug-Varianten sind lediglich für die Bugsuche im Programm vonnöten. Es empfiehlt sich daher im Normalfall, die entsprechende Release-Variante auszuwählen.
Nach der Auswahl kann man dann unter Build -> Rebuild all target files den Übersetzungsvorgang starten. Danach findet man im Unterverzeichnis bin\\Release die dazugehörige Hex-Datei mit dem ST-Link-Programm dann auf dem Ziel geflasht werden kann. Das wars!
Hardware
STM32F103C8T6 Mini-Development Board
Dieses Board wird für die "klassische" 10x11 WordClock12h empfohlen.
Dies ist ein kleines, platzsparendes Board mit ausreichendem 32Bit-Mikrocontroller. Der STM32F103C8T6 hat 64 KB Flash und 20KB RAM. Bei ebay ist er für kleines Geld (unter 4 EUR) zu haben: Einfach dort nach "STM32F103C8T6" suchen. Die Anbieter sind meist in China. Aber es gibt auch Anbieter aus Deutschland, wo das bestellte Board dann auch schon nach 2 Tagen im Briefkasten steckt. Meist sind die deutschen Anbieter aber etwas teurer.
Der Vorteil dieses Boards gegenüber dem Nucleo ist der geringe Platzbedarf: Das Board passt zusammen mit dem Shield in die Aussparungen der Zwischenplatte für die WC12h (siehe Sammelbestellungen). Rechts sind der Anschluss eines ST-Link V2-Clones zum Flashen und die Anschluss-Skizze der WordClock an das STM32F103-Mini-Development-Board zu sehen.
Bei den Shields ab V3 für das STM32-Mini-Development Board muss noch eine Drahtbrücke eingelötet werden: Vom STM32 wird der obere Jumper abgezogen und der mittlere Anschluss über eine Drahtbrücke mit dem BOOT0 Pin auf dem Shield verbunden. |
STM32F401RE Nucleo und STM32F411RE Nucleo
Es kann sowohl das 401er als auch das 411er Nucleo-Board verwendet werden. Beide werden identisch genutzt.
Damit das Board später für den Einbau nur noch (incl. Shield) 2cm hoch ist, sollte man die überstehenden Enden der Steckerleisten auf der Unterseite mit einer Kneifzange kürzen. Die beiden Jumper auf der Unterseite (beim ST-Link-Device-Teil) können dabei auf die Oberseite gesteckt werden. Es gibt mittlerweile vier verschiedene Revisionen von den Nucleo-Boards:
Damit auch das Board mit der Revision "MB1136 C01" zuverlässig im HSE-Modus mit 84MHz läuft, sind folgende Hardware-Änderungen notwendig:
C33 und C34 können auch normale THT-Bauteile sein, wenn man die Drähte vorher kürzt. Ich habe sie auf der Unterseite direkt an den Quarz-Anschlüssen angebracht und mit einem Draht zu CN6, Pin7 (GND) die nötige Masseverbindung hergestellt, siehe Foto rechts. Es geht aber auch auf der Oberseite direkt an den dafür vorgesehenen Lötstellen - dann aber vorzugsweise mit 0603 SMD-Kondensatoren. In diesem Falle ist die Masseverbindung bereits im PCB Layout vorhanden und die Drahtbrücke nach CN6, Pin7 (GND) entfällt. Man sollte auf jeden Fall erst die beiden Drahtbrücken R35 & R37 einlöten, bevor man den Quarz bestückt. Dann hat man wesentlich mehr Platz für den Lötkolben ;-) Es empfiehlt sich jedoch, diese Änderungen auch mit dem Board der Revision "MB1136 C02" und höher durchzuführen, da wir später für die endgültige Uhr den ST-Link-Teil der Platine absägen werden. Dafür ist extra eine Bruchstelle vorgesehen. Nur so ist das Board dann schmal genug, damit es hinter den 7,5cm schmalen Rand der Frontplatte passt. Nicht wundern: Je nach Revision des Boards sind einige der oben genannten Lötbrücken erst gar nicht bestückt. Dann braucht da auch nichts entfernt zu werden. Das hier beschriebene stellt also den gewünschten Endzustand dar. Diese Arbeit ist in ca. 10 Minuten erledigt. Besondere SMD-Lötkenntnisse benötigt man dafür nicht. Damit das Board (nach dem Abtrennen des ST-Link) über die Stiftleiste mit Spannung versorgt werden kann (z.B. durch das Nucleo-Shield), muss "JP5" noch von "U5V" auf "E5V" umgesteckt werden. (Zusätzlich auf dem ST-Link "JP1" entfernen, falls noch nicht abgetrennt.) Bevor man den ST-Link-Teil abtrennt, sollte man den STM32F4xx und das ESP8266-Modul flashen und auch testen. Nach dem Abtrennen werden dann Updates über OTA geflasht. |
Wenn das STM32F411 Nucleo-64 geflasht ist, muß der ST-Link Teil
des Nucleo Boards abgetrennt werden,damit die Shield / Nucleo Board Kombination
in den Zwischenrahmen der WC24h passt.
Folgendes ist dafür zu tun:
A.
ST Link absägen
B. die Brücken SB62/SB63 auf dem Nucleo Board einlöten. Damit werden RX/D0 und TX/D1 auf der einreihigen Arduino Pfostenbuchse C9 und die Pins 35 und 37 auf CN10 (Morpho Connector) angebunden.
C. Auf dem ST Link sind die beiden Jumper CN2 zu entfernen. Damit wird der ST Link von interner auf externe Programmierung umgestellt.
D. Die Brücken Brücken SB12-SB15 auf dem ST Link sind zu entfernen. Dies dient zum Schutz des ST Links falls beim Absägen die Verbindungsleitungen ST Link - Nucleo Board kurzgeschlossen wurden.
Wie der ST Link wieder an die Shield/Nucleo Board Kombination angeschlossen wird, wird später beschrieben.
STM32F4x1 BlackPill Board
TODO
TSOP31238
Zum optionalen Steuern per IR-Fernbedienung.
Anschlüsse am Mini-Shield bzw. Nucleo-Shield: TSOP-Pin1 an GND, TSOP-Pin2 an 3V3, TSOP-Pin3 an Data Dabei wird zusätzlich ein Tiefpassfilter (C/R) - wie auch im Datenblatt angegeben - verwendet. Es kann auch der kleinere Bruder TSOP4838 angeschlossen werden. Dieser hat den Vorteil, dass er besser hinter einem "Loch" im Zwischenboden untergebracht werden kann, weil er einfach vom Gehäuse her kleiner ist. Allerdings ist dann die Anschlussreihenfolge anders: TSOP-Pin1 an DATA, TSOP-Pin2 an GND, TSOP-Pin3 an 3V3 Der TSOP4838 kann also nicht direkt 1:1 an einem der beiden Shields angeschlossen werden. Da aber sowieso ein 3-poliges Kabel an die Pin-Header geführt wird, sollte das kein Problem sein. |
Wird kein IRMP-Empfänger benutzt, sollte R5 (siehe Schaltplan rechts) mit 100k Ohm statt 100 Ohm auf dem Shield bestückt werden. Der zum Tiefpass gehörende Kondensator C1 entfällt dann. Zwischen den Pins 3V3 und Data wird schlussendlich eine Drahtbrücke eingelötet, um einen stabilen Zustand am Daten-Pin des µCs zu gewährleisten. |
Ab der Shield Version 4 wird ohne TSOP R5/C1 nicht bestückt und stattdessen R15 (NucleoShield) bzw R16 (MiniDevShield) mit 100k bestückt. |
WS2812
Bei der WordClock24h wird eine 16x18-Matrix verwendet plus eine Status LED, bei der WordClock12h eine 10x11-Matrix plus 4 Stück Minuten LED.
Die WS2812-LEDs werden dabei folgendermaßen verdrahtet:
Anschluss WS2812-Streifen für WordClock12h
Hier wird eine Spezialanfertigung von WS2812-Stripes eingesetzt - nämlich mit einem Rastermaß von 28,1mm. Damit ist die WordClock12h von den Maßen her kompatibel zum bisherigen Word_Clock-Projekt. Das hat den Vorteil, dass bisherige Frontplatten und Zwischenböden weiterverwendet werden können.
Bei der Wordclock12h steht jeder zweite Streifen "auf dem Kopf". Folgende Zeichnung ist von der Vorderseite der Uhr aus gesehen, beim Verkabeln von Hinten muss man es natürlich gedanklich umdrehen.
M4 M1 O---------+ µC Data --------------------O | | | | | | | 1 2 3 4 ... 11 | | O--O--O--O--O--O--O--O--O--O--O--+ | | | | | 22 12 | | | O--O--O--O--O--O--O--O--O--O--O--+ | | | | | | | | O--O--O--O--O--O--O--O--O--O--O-- | | 23 24 .... | | | | | O----------------------------------------------------O M3 M2
Dabei sind M1-M4 die 4 Minutenpunkte in den Ecken. Es wird keine Status-LED wie bei der WordClock24 verwendet. Tatsächlich werden hier dafür die Minutenpunkte zur zusätzlichen Statusausgabe mitbenutzt.
Beim Nucleo-Board und beim STM32-Mini-Board werden bis zu 120 weitere LEDs als Ambilight hinter der Buchstabenkette unterstützt (ab Software-Version 2.6.6). Diese müssen einfach hinter der LED für den letzten Buchstaben in der Kette angeschlossen werden. Am besten unten links beginnend (da ist man mit LED 114 ja eh) und dann im Uhrzeigersinn. Die Anzahl der Ambilight-LEDs ist variabel, maximal 120 sind möglich. Wegen des Ambilight-Modus' "Clock" (ab Software-Version 2.0.0) sind exakt 60 LEDs als Ambilight sinnvoll - auf jeder Seite 15. Dann können diese nämlich zur Sekunden-Anzeige verwendet werden. Die zusätzlichen Ambilight LED müssen bei der Dimensionierung des Netzteils berücksichtigt werden. |
Anschluss WS2812-Streifen für WordClock24h
Verwendet werden Standard-WS2812-Stripes mit 60 LEDs pro Meter. Dabei steht - wie bei der WC12h - jeder zweite Streifen "auf dem Kopf":
+-------------------------------------------------------+ | | 1 2 3 4 ... 18 | O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--+ | | | 36 20 19 | | O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--+ | | | | | O--O--O--O--O--O--O--O--O--O--O--O--O--O--O--O-- | 37 38 .... | | | Status-LED | µC Data -----------------------------O-------------------------------+
Auch für die WC24h gilt: Beim (für die WC24 primär empfohlenen) Nucleo-Board und beim (ebenfalls für die WC24h nutzbaren) STM32-Mini-Board werden ab Software-Version 2.6.6 bis zu 120 weitere LEDs als Ambilight hinter der Buchstabenkette unterstützt. Diese müssen einfach hinter der LED für den letzten Buchstaben in der Kette angeschlossen werden. Am besten unten links beginnend (da ist man mit LED 289 ja eh) und dann im Uhrzeigersinn. Die Anzahl der Ambilight-LEDs ist variabel, maximal 120 sind möglich. Wegen des Ambilight-Modus' "Clock" (ab Software-Version 2.0.0) sind exakt 60 LEDs als Ambilight sinnvoll - auf jeder Seite 15. Dann können diese nämlich zur Sekunden-Anzeige verwendet werden.
Die zusätzlichen Ambilight LED müssen bei der Dimensionierung des Netzteils berücksichtigt werden.
WS2812-Anschlüsse am Shield
Der DI-Eingang des LED-Streifens wird per möglichst kurzem Kabel am WS2812-Pin des Shields verbunden, siehe Bild rechts. In seltenen Fällen kommen die WS2812-LEDs mit einem 3,3V-Pegel an ihrem Eingang nicht zurecht. Die Folge sind dann Falsch-Farben bzw. Ausfälle bei einzelnen LEDs. Für diesen Fall ist auf den Shields ab Version v3 zwischen DI und 5V ein 1k8 Pullup-Widerstand angebracht. Die STM32-Software erkennt beim Boot den Pullup-Widerstand automatisch und schaltet dann den Daten-Ausgang auf Open-Drain-Betrieb um. Damit ist dann der High-Pegel an der ersten angeschlossenen LED nahezu 5V statt 3,3V. |
Jede zweite Reihe (1., 3., 5. usw.) der Streifen wird per Flachbandkabel an die Spannungsversorgung der WS2812-Streifen angeschlossen. Dafür dient der Flachbandkabel-Stecker auf dem Shield. Hier werden 16 mal jeweils +5V und GND zur Verfügung gestellt, siehe nebenstehendes Bild.
Die 1 und damit die obere Reihe ist 5V, die 2 und damit untere Reihe GND. Ambilight: Werden zusätzlich Ambilight LED verwendet, wird ebenfalls jede Seite separat an die Spannungsversorgung angeschlossen um den Spannungsabfall entgegenzuwirken.
|
DS18xx
Optional: DS18xxx als Temperatur-Sensor
Es werden unterstützt:
Anschlüsse am Shield:
Ein 4,7k Pullup-Widerstand ist zum sicheren Betrieb des One-Wire-Busses auf den Shields vorgesehen. Der DS18xx sollte nicht in der Nähe von Wärmequellen angebracht werden, am besten also nicht direkt an das Shield löten, sondern in der unteren Tasche des Zwischenbodens anbringen. Die Litze am DS18XX dabei, z.B. mit Hilfe von Schrumpfschlauch, isolieren, damit es nicht zum Kurzschluss am Kühlkörper kommen kann. Weiterhin wird aufgrund der geringen Eigenerwärmung der DS18XX Sensoren empfohlen, den Sensor mit Wärmeleitpad/-kleber auf ein kleines Kühlblech zu kleben. Ist kein DS18xx Temperatur-Sensor angeschlossen, wird die Temperatur über die RTC (DS3231) ermittelt. |
Mini-DFPlayer
Mit dem optionalen Mini-DFPlayer können als Reaktion auf bestimmte Ereignisse oder zu bestimmten Uhrzeiten MP3-Dateien abgespielt werden.
Anschlüsse am Shield: Nucleo:
Mini-Shield:
In Einzelfällen kann es zu Brummen bei der Versorgung mit 5V kommen. Deshalb sollte man zwischen TX des STM32 und RX des DFPlayers einen 1K-Widerstand zwischenschalten. Dieser ist bereits auf den neueren Shields vorgesehen. Quelle: https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299 Sollte der DFPlayer trotzdem noch im "Standby" durchgehend rauschen, hilft folgender Tipp aus dem Forum weiter: Beitrag: WordClock mit WS2812 Weitere Infos: Konfiguration DFPlayer |
LDR
Optional: Fotowiderstand (LDR) zur Lichtstärkenmessung, welche die Leuchtstärke der LEDs in Abhängigkeit des Umgebungslichtes automatisch steuert. Als LDR sollte der LDR07 von Reichelt, ggf. der Ersatz "A 906011" verwendet werden. Wird noch der zwischenzeitlich empfohlene "A 906032" von Reichelt eingesetzt, ist R1 = 10K besser. Wird kein LDR benutzt, muss auf dem Shield der 10k-Pullup (R2) eingelötet werden, R1 wird dann nicht bestückt. Wird der LDR benutzt, darf der Widerstand R2 nicht eingelötet werden! |
DCF77
Optional: DCF77 Modul Anschlüsse am Shield:
Getestet wurde die Software mit dem Reichelt-DCF77-Modul, das aber lediglich ein befriedigendes Empfangsverhalten hat. PON kann beim Reichelt-Modul offen bleiben, beim Pollin DFCF77-1 sollte man PON jedoch anschließen. Wird ein DCF77-Modul benutzt, welches einen Open-Collector-Ausgang verwendet, muss an Data noch ein 100k Pullup (zu 3,3V) angeschlossen werden. Neu ab Version 2.8.3: Der DCF77-Empfang wird nur noch ausgewertet, wenn das LED-Display abgeschaltet ist. Grund: Die WS2812-LEDs stören in den meisten Fällen den DCF77-Empfang. |
Wird KEIN DCF-Modul verwendet, muss der 100k Widerstand R3 eingelötet werden, um den µC-Eingang auf stabilem Niveau zu halten - aber nur dann! Die sonstigen Komponenten auf dem nebenstehenden Schaltplan entfallen ersatzlos. |
ESP8266
Ab der Software-Version 2.5.0 ist das Aktualisieren der ESP- und STM32-Firmware auch über OTA ("over the air", also WLAN) möglich. Damit entfällt ein erneutes Anschließen der Uhr an entsprechende Programmiergeräte bei einem Update. Allerdings müssen dafür die bisher eingesetzten ESP8266 ESP-01 durch ein ESP-12F ersetzt werden. Deshalb wird generell ab der Version v3 der Nucleo- bzw. Mini-Shields das ESP8266 ESP-12F Modul statt ESP-01 verwendet. Es werden nun 2 USARTs vom STM32 benutzt: Das erste für die Kommunikation der beiden µCs zum Datenaustausch, das zweite zum Flashen des STM32 über OTA. Die Bedienung von 2 USARTs des STM32 geschieht durch eine Software-Umschaltung der ESP-UART-Pins. |
User-Taste
Die User-Taste wird für mehrere Funktionen genutzt.
Auf dem Nucleo-Board ist sie bereits vorhanden. Sie ist blau und mit "User" beschriftet. Wird das Mini-Development-Board benutzt, ist die Taste auf dem dazugehörenden Shield (ab v3). Bei älteren Mini-Shields ist die Taste nicht vorhanden, sondern lediglich als Jumper-Pin mit der Bezeichnung "Flash" (PA6) vorhanden. Hier kann man entweder eine Taste anschließen oder mit einem Jumper den Flash-Pin mit dem danebenliegenden Pin "GND" kurzschließen, was derselben Funktion entspricht. Die User-Taste wird für zwei Fälle benutzt:
Diese beiden Funktionen werden in den Kapiteln Flash des WLAN-Moduls und Start als Access-Point näher erläutert. |
WPS-Taste
Ab Software-Version 2.6.0 wird auch WPS unterstützt. Dann kann die Verbindung des ESP8266 über diese Taste vorgenommen werden. Ab der Shield-Version v3 ist dafür eine eigene Taste auf den Shields vorgesehen. Ältere Shields kann man aber auch nachrüsten.
Dazu schließt man an:
STM32F103C8T6 Mini-Development Board:
Wie dann die Verbindung zum WLAN-Gateway aufgebaut wird, ist hier beschrieben: Start per WPS-Button. |
RTC und EEPROM
I2C-Modul mit DS3231 als RTC und EEPROM Dieses Modul (siehe auch Foto rechts) findet man bei eBay oder Amazon ab ca. 2 EUR, wenn man als Suchbegriff "DS3231 EEPROM" eingibt. Es wird als Echtzeituhr und für die Speicherung der Konfigurationsparameter verwendet. Ist kein DS18xx als Temperatursensor angeschlossen, wird die RTC auch zur Temperaturmessung genutzt. Anschlüsse am Shield:
Von der Software werden auch ältere RTC/EEPROM-Module mit DS1307 erkannt, dennoch sollte man aus Kompatibilitätsgründen auf die Verwendung dieser älteren Module verzichten. Da die Module aus China teilweise auch ohne bestückte Batterien gesendet werden, sollte man sich genau überlegen, ob man die Batterie CR2032 oder den Akku LiR2032 einbaut. Sind sowohl die Diode 1N4148 als auch der Widerstand neben dem RTC-IC bestückt, dann kann man auch den Akku (relativ teuren) LiR2032 einsetzen. In diesem Fall muss das Modul aber mit +5V statt 3,3V betreiben, damit der Akku überhaupt geladen wird. Sonst ist er aufgrund der Selbstendladung irgendwann leer. Sinnvollerweise sollte man das Modul eher mit einer CR2032 Batterie betreiben. Dann sollte man aber sicherheitshalber die Diode oder den Widerstand (neben der Diode) auf dem Modul entfernen (falls vorhanden, siehe Bild), damit keine Ladung (und Überhitzung) der Batterie passiert. Das ist zwar eigentlich erst ab einer Betriebsspannung von ca. 3,7V möglich, aber sicher ist sicher. Im Normalfall reicht eine CR2032 Batterie für 5-10 Jahre. |
AMS1117-3,3V-Spannungsregler-Modul
Zur 3,3V-Versorgung des ESP8266-WLAN- Moduls sowie weiterer Peripherie wird ein AMS1117-3,3V-Spannungsregler-Modul eingesetzt. Die Shields aus der Sammelbestellung sind für die Spannungsregler-Module wie in der Abbildung rechts ausgelegt. Beispiele für Bezugsquellen sind in der Teileliste aufgeführt. Die leuchtende rote LED (D1) zeigt an, das die Ausgangsspannung von 3,3V vorhanden ist. |
Schalten der 5V-Versorgungsspannung für die LED-Stripes
Beim Abschalten der LED-Stripes kann neben den Daten, wenn gewünscht, auch die 5V-Versorgungsspannung abgeschaltet werden. Je nach Zahl des LEDs sinkt der Verbrauch um 1 W bis 2 W (--> ca. 3 - 5 EUR im Jahr). Ansonsten wird dem Controller auf den WS2812 nur mitgeteilt, dass gerade alle Kanäle aus sein sollen. Die Abschaltung der Versorgungsspannung erfolgt dann mit Hilfe der im Schaltplanauszug rechts gezeigten Bauteile. Die Diode begrenzt die Spannung an D IN auf 0,3 V, falls bei abgeschalteter Versorgungsspannung Datenimpulse anliegen – das wird auch durch die Software verhindert. Ab V3 der Shields muss bei Nichtverwendung der Spannungsabschaltung eine Drahtbrücke eingelötet werden. |
Netzteil
Zur Spannungsversorgung der WordClock24h wird ein (Stecker-)Netzteil mit einer Ausgangsspannung von 5V und einer Belastbarkeit von 4A benötigt. Ein Beispiel ist in der Teileliste aufgeführt – vergleichbare Netzteile anderer Lieferanten wie eBay oder AliExpress usw. können ebenfalls verwendet werden. Wichtig ist, schon vor der Inbetriebnahme der WordClock die Ausgangsspannung des Netzteils zu messen, da in seltenen Fällen die Ausgangsspannung des Netzteils höher ist als die für die WS2812B-LEDs maximal zulässige Spannung von 5,3V. Für eine Wordclock12h ohne Ambilight reicht ein Netzteil mit einer Belastbarkeit von 1A - 2A. Der Querschnitt der Verkabelung vom Netzteil zur WordClock ist so zu wählen, dass an den Anschlussklemmen des Shields auch bei angeschalteten LEDs eine Spannung von mindestens 4,75V anliegt. Bei einer WordClock12h ohne Ambilight und einer Kabellänge 2m reicht ein Querschnitt von 2x0,5mm². Der für eine WordClock24h, ggf. mit Ambilight, notwendige Querschnitt kann mit einem Tool wie z. B. https://www.opendcc.de/info/verdrahtung/wiring.html abgeschätzt werden. Wer nicht über entsprechende Kenntnisse und Erfahrungen im Umgang mit 230V-Netzspannung verfügt, sollte unbedingt ein Stecker- oder Tischnetzteil verwenden. Anschluss USB-UART-AdapterMan benötigt in folgenden Fällen einen USB-UART-Adapter:
Beim Nucleo ist ein USB-UART-Adapter bereits integriert - und zwar im oberen ST-Link-V2-Teil des Boards. Hier ist also kein weiterer Anschluss notwendig. Erst wenn das ST-Link-V2-Teil vom Rest des Boards abgetrennt wird, müssen RX und TX wieder verbunden werden, wenn man den UART-Adapter nutzen will. Also einfach das Board mit dem PC über USB verbinden - fertig. Eventuell muss man noch den STM32 Virtual COM Port Driver installieren. Der entsprechende Link zum Herunterladen steht unter Download. Beim Mini-Development Board wird ein externer USB-UART-Adapter benötigt. Dabei schließt man ihn folgendermaßen an:
Solche Adapter (am besten einen, der mit 3,3V-Pegeln arbeitet) gibt es bei eBay oder Amazon für unter 5 EUR. Anschlusstabelle
Auf dem Nucleo-Board ist USART2 bereits fest mit dem auf dem ST-Link-V2-Teil des Boards integrierten UART-USB-Adapter verbunden. Hier sind also keine extra Verbindungen mehr notwendig - erst wenn das ST-Link-V2-Teil abgesägt wird. Und auch dann kann man den USB-UART-Adapter vom ST-Link-V2 weiterverwenden. Beim Mini-Development Board benötigt man allerdings einen externen USB-UART-Adapter - am besten einen, der mit 3,3V-Pegeln arbeitet. Diese findet man zuhauf bei Amazon oder eBay für ca. 5 EUR. Teileliste für WC12h oder WC24h und BezugsquellenWird kein Rahmen (siehe unten) verwendet werden zusätzliche Teile (z.B. Magnete) zur Befestigung der Frontplatte benötigt.
StartDieses Kapitel beschreibt den Download der Software auf das verwendete Board und die erstmalige Prüfung und Konfiguration. Geflasht wird mit dem ST-Link-Programm, siehe oben. Zur Überprüfung sämtlicher Funktionen und zur Konfiguration dient die Web-Oberfläche. Dazu nimmt man eine WLAN-Verbindung mit dem ESP8266-Modul auf. Für die erste Konfiguration wird das ESP8266 zunächst als eigener Access-Point gestartet. Anschließend kann man über das Web-Interface die Zugangsdaten zu dem eigenen WLAN-Router einstellen. Im Folgenden läuft das ESP8266-Modul dann als WLAN-Client. Für Entwickler und zur Diagnose kann man ein Terminal-Emulationsprogramm (wie zum Beispiel PuTTY) verwenden, um über ein Mini-USB-Kabel Debug- und Log-Meldungen mitzuschneiden. Laut http://www.mikrocontroller.net/topic/356203#3979181 sollte man dabei die "blauen" USB3.0-Buchsen möglichst meiden. Ablauf
Flashen des STM32 MiniDevBoardsHier eine ausführliche Schritt für Schritt Anleitung um die Software vom .HEX File aus dem Artikel in das STM32 MiniDevBoard zu bekommen: Benötigt werden neben dem STM32 MiniDevBoard:
Upgrade der Firmware des ST-Link v2 - DFU modeWenn versucht wird die Firmware des ST-Link v2 zu aktualisieren und dies scheitert mit der Meldung "Not in DFU Mode", so kann folgende Vorgehensweise helfen:
LoggingDieser Ablauf ist nur notwendig, wenn man die Log-Meldungen aus Diagnose-Zwecken mitschneiden möchte.
Wichtig für Nucleo-Board: Die COM-Schnittstelle ist immer aktiv, egal, ob das Programm gerade läuft oder nicht. Wird PuTTY erst nach dem Programmstart gestartet, sieht man im Terminal nicht die bereits ausgegebenen Log-Meldungen. Um den Ablauf des Programms von Anfang an zu verfolgen, drückt man auf dem Board einfach den Reset-Knopf. Dann beginnt die Ausgabe ganz von vorn. Wichtig für STM32F103-Mini-Development-Board: Für das Logging sollten lediglich RX und GND des externen USB-UART-Adapters angeschlossen werden. TX vom Adapter bzw. RX auf dem STM32F103-Mini-Development-Board sollten offen bleiben. Sonst kann es bei Verwendung des ESP8266 ESP-12F dazu kommen, dass dieser nicht mehr bootet. Sollte man Probleme mit dem Finden der richtigen COM-Schnittstelle haben, hilft der Geräte-Manager aus der Systemsteuerung weiter. Der Hintergrund im PuTTY ist normalerweise schwarz. Möchte man lieber eine Ausgabe in schwarz auf weiß, kann man das folgendermaßen umstellen: Change Settings -> Window -> Colours: Default Foreground: 2 2 2 Default Bold Foreground: 0 0 0 Default Background: 245 245 245 Default Bold Background: 255 255 255 Cursor Text: 0 0 0 Cursor Color: 255 0 0 (Rest kann man so lassen) Anschließend zurück über "Session" oben links und: "Save". Konfiguration des WLAN-ModulsFlash des WLAN-ModulsFür das ESP8266-Wlan-Modul wird eine spezielle auf die WordClock-Anwendung abgestimmte Firmware benutzt (siehe Download), die über das STM32-Board geflasht werden kann. Das ESP8266 kann also während des Flashens in der WordClock-Schaltung verbleiben. Das erstmalige Flashen des ESP8266 über UART ist zwingend notwendig. Spätere Updates können über OTA-Flash eingespielt werden, d.h. über WLAN aus der Web-Oberfläche heraus. Siehe dazu: OTA-Flash. Beim Nucleo wird zum Flash über UART der integrierte USB-UART-Adapter verwendet. Beim Anschluss des Nucleo-Board per USB an den PC wird automatisch ein COM-Device angelegt, z.B. COM12. Dafür braucht man aber den entsprechenden Virtual COM Port Driver, siehe Software für Windows. Beim STM32F103 Mini Development Board wird ein externer USB-UART-Adapter verwendet. Wie er angeschlossen wird, sieht man in der Anschluss-Skizze und auch in obiger Anschlusstabelle. Das Shield muss außerdem extern mit +5V versorgt werden. Anderenfalls ist zumindest das ESP-Modul ohne Spannungsversorgung. Wichtig: Handelt es sich hier um ein ESP8266 ESP-12F am STM32F103 Mini Development Board, darf TX vom USB-UART-Wandler erst dann angeschlossen werden, wenn der ESP8266 sich bereits im Flash-Modus befindet - nicht früher. Siehe Beschreibung unten. esp8266_flasher.exe
Flash Download Tool des Chipherstellers
NODEMCU Firmware Flasher
esptool.pyFür Linux oder Mac OS (aber auch Windows) bietet sich das Platform-unabhängige Utility esptool.py von der GitHub Seite des ESP8266 Herstellers Espressif. Download / Installation https://github.com/espressif/esptool/ esptool.py --port /dev/[Dein UART Adapter] write_flash -fs 4MB -fm dio 0x0 ESP-WordClock-4M.bin Flash-Vorgang
Das WordClock-Programm auf dem STM32 versetzt dann das ESP8266-Modul in den Flash-Modus und verbindet dann die beiden UARTs softwaremäßig 1:1, d.h. die Daten werden vom USB-Anschluss transparent an das ESP8266-Modul weitergegeben. Nun startet man das Flash-Programm esp8266_flasher.exe (bzw. NODEMCU Firmware Flasher) und wählt durch Klick auf die Schaltfläche Bin die Datei ESP-WordClock.bin aus - siehe Download. Außerdem muss der COM-Port an den tatsächlichen Anschluss angepasst werden. Beim ESP-01 stellt man die Flash-Size auf 4MBit (=512KB), beim ESP-12F auf 32MBit (=4MB). Nach Drücken auf Download (bzw. Start beim Alternativprogramm) sollte nun das Flashen des ESP8266-Moduls beginnen. Eine eventuell am Ende auftretende Fehlermeldung "Failed to leave Flash mode" kann dabei ignoriert werden. Anschließend startet den STM32 (und damit auch das WLAN-Modul) neu durch kurzes Drücken der Reset-Taste (beim Mini Shield >= v3 stellt man vorher den Jumper PROG/RUN wieder auf RUN). OTA-FlashWurde der ESP8266 einmal über UART geflasht, kann er bei späteren Update über das Netzwerk geflasht werden ("OTA-Flash"). Ein Firmware-Update ist dann möglich ohne erneuten Anschluss der Uhr an irgendwelche Programmier-Module. Erklärt wird der komplette Vorgang hier: Update Start als Access-PointFolgender Ablauf ist nur notwendig, wenn die Software-Version älter als 2.5.0 ist oder keine WPS-Taste (ab Shield v3) angeschlossen ist. Sonst kann direkt zu Start per WPS-Button gewechselt werden. Um für die Konfiguration der WLAN-Daten (Zugang zum WLAN-Router oder -Gateway) mit dem ESP8266 Kontakt aufzunehmen, muss man zunächst dafür sorgen, dass das ESP8266-Modul als Access-Point arbeitet. Dafür drückt man die User-Taste auf dem Nucleo-Board (blau) bzw. die User-Taste auf dem Mini-Shield (v3). Bei älteren Mini-Shields verbindet man den Jumper-Pin "Flash" (PA6) kurz mit dem danebenliegenden GND-Pin. Unmittelbar nach dem Drücken der Taste erscheint die IP-Adresse des ESP8266-Moduls als Laufschrift - und auch im Log. Nun sucht man auf dem PC oder Tablet nach dem WLAN-Netz mit dem Namen "wordclock" (kann beim allerersten Mal auch "ESPxxxx" oder "AI-Thinker_xxxxxx" heißen) und verbindet das Gerät mit diesem Netz. Als Netzwerkschlüssel gibt man "1234567890" ein (meldet sich das Modul als "AI-Thinker_xxxxxx" ist kein Passwort erforderlich). Sobald die Verbindung hergestellt ist, startet man einen Browser und gibt als URL die ausgegebene IP-Adresse ein, z.B. http://192.168.4.1/ . Sobald die Web-Oberfläche erscheint, wählt man den Menüpunkt "Network" aus, wählt "Wlan-Client" aus und gibt die SSID ("AP") und den Key des WLAN-Routers ein und bestätigt die Eingabe mit "Save". Das ESP8266-WLAN-Modul wird nun als WLAN-Client umkonfiguriert. War das erfolgreich, erscheint nun auf dem Display die neue IP-Adresse. Die Browser-Seite wird dann ungültig. Man kann seinen PC nun wieder mit dem bisherigen WLAN-Gateway verbinden und im Folgenden die neue IP-Adresse verwenden. Gibt es an dem Ort, wo die Uhr betrieben werden soll, kein WLAN, kann das ESP8266-WLAN-Modul auch weiterhin als Accesspoint ("AP") betrieben werden, damit man es über WLAN fernsteuern kann. In diesem Fall sollte nicht "WLAN-Client", sondern "AP" ausgewählt werden, eine entsprechende SSID und einen mindestens 10 Zeichen langen Key einstellen. Anschließend kann man sich mit PC/Handy/Tablet in das neue WLAN einklinken, um die Uhr per Browser oder Android-App fernzusteuern. Ein Zugriff auf einen externen Timeserver ist dann selbstverständlich nicht mehr möglich. Start per WPS-ButtonAb Software-Version 2.6.0 wird WPS unterstützt. Dazu drückt man die auf dem Shield (ab Shield-Version v3) befindliche WPS-Taste für einen kurzen Moment und anschließend auf dem WLAN-Gateway (bzw. Router). Bei der Fritzbox muss man die Taste solange drücken, bis die WLAN-LED blinkt. Im Normalfall wird dann die Verbindung innerhalb weniger Sekunden aufgenommen - erkennbar daran, dass auf dem LED-Display die vergebene IP-Adresse als Laufschrift ausgegeben wird. Befindet der ESP8266 bereits im AP-Modus, kann WPS auch im Browser über den Klick auf die Schaltfläche "WPS" im Reiter Network gestartet werden. Start als WLAN-ClientBei jedem folgenden Start wird nur noch die Einstellung "WLAN-Client" verwendet. Sobald sich das ESP8266-WLAN-Modul mit dem gewünschten Access-Point ("AP") verbunden hat, wird auf dem LED-Display die neue IP-Adresse des Moduls in Laufschrift ausgegeben. Tipp: Viele WLAN-Router sorgen automatisch dafür, dass ein WLAN-Client auch noch nach Tagen dieselbe IP-Adresse hat. Wenn das nicht der Fall sein sollte, kann man meist in den Router-Einstellungen dafür sorgen, dass der Client mit der MAC-Adresse xx-xx-xx-xx-xx-xx immer dieselbe IP-Adresse vom WLAN-Router zugeteilt bekommt. Hinweis: Ab der ESP-Software 2.9.5 sind ASCII-Sonderzeichen, die vom Browser anders behandelt werden wie z.B. "/", "+" und "&", in SSID oder im Key möglich. Umlaute funktionieren weiterhin nicht in der SSID oder im Key, weil die meisten Router mit UTF8 arbeiten, die WordClock aber nur mit dem ISO8859-Zeichensatz. Da werden Umlaute anders codiert. Web-InterfaceMain
Network
Temperature
Weather
LDR
Brightness
Ambilight Brightness
Display
Overlays
Animations
Ambilight
Timers
Ambilight Timers
DFPlayer
SPIFFS
Update
Local Update
TimeserverDer Timeserver muss ein RFC 958 konformer NTP-Server sein. Voreingestellt ist ntp3.ptb.de (192.53.103.103). Alternative Timeserver sind zum Beispiel ntp1.ptb.de (192.53.103.108), ntp2.ptb.de (192.53.103.104) oder time.nist.gov (216.229.0.179). Eine Liste von europäischen Timeservern findet man u.a. hier: http://www.pool.ntp.org/zone/europe Den Timeserver konfiguriert man folgendermaßen: Im Browser gibt man als URL die ausgegebene IP-Adresse ein, also z.B. http://192.168.10.1/ . Anschließend wählt man den Menüpunkt "Network" an und gibt in der entsprechenden Zeile die IP-Adresse des Wunsch-Timeservers ein und bestätigt mit "Save". Nun wird zunächst geprüft, ob der Timeserver das NTP-Protokoll unterstützt. Die aktuelle Uhrzeit wird alle 3800 Sekunden vom Timeserver geholt. Im Web-Interface kann man die Übertragung auch jederzeit per Mausklick starten. Das funktioniert auch mit einer angelernten IR-Fernbedienung. ZeitzoneIm Web-Interface Menüpunkt "Network" auswählen, in der Zeile "Timezone" die Abweichung von GMT eingeben. Für die mitteleuropäische Zeitzone wäre das einfach eine 1. Dies entspricht dann GMT+1. Bei einer negativen Abweichung wie GMT-1 muss dann entsprechend -1 eingegeben werden. IR-FernbedienungIn den ersten 3 Sekunden leuchtet die Status-LED mit der Farbe Weiß, um zu signalisieren, dass nun eine IR-Fernbedienung angelernt werden kann. Wird währenddessen irgendein gültiger IR-Code empfangen, wechselt die Status-LED für eine Sekunde auf rot (FB-Knopf loslassen!) und es wird in die Anlernroutine gesprungen. Wird kein IR-Signal empfangen, startet das Programm wie gewohnt. Die Anlernroutine kann auch über die Web-Oberfläche (Menü "Main") gestartet werden. Man wird nun über eine Laufschrift auf dem LED-Display aufgefordert, folgende FB-Tasten zu drücken:
Sind die FB-Tasten angelernt, kann man die Uhrzeit, den Anzeigemodus und auch die Farben mittels IR-Fernbedienung einstellen. Es sind nur die gebräuchlichsten IR-Protokolle aktiviert, nämlich:
IRMP "versteht" jedoch bis zu 40 Protokolle. Braucht man weitere - wie RC5 oder RC6 - kann man sie in irmp/irmp-config.h freischalten. Bei Problemen empfiehlt sich die Lektüre des IRMP-Artikels.
Passend beschriftet werden kann die Fernbedienung mit einem der folgenden Labels
Beispiele für geeignete Fernbedienungen sind:
Zum Anlernen wird die Taste so oft gedrückt, bis am Ende der Anlernroutine „Thank you“ als Laufschrift erscheint.
Android App
FAQOTABootloaderSTM32F103 Mini-Dev-Board, Flash STM32 über OTA: Es kommt die Meldung: "Trying to enter Bootloader Mode... Failed!" Beachte Shield für STM32 MiniDevBoard: "Vom STM32 wird der obere Jumper abgezogen und der mittlere Anschluss mit dem BOOT0 Pin auf dem Shield verbunden." Außerdem sollte der Pulldown-Widerstand R14 (10K) eingelötet sein. HEX-DateiFlash STM32 über OTA: Es kommt die Meldung: "Checking HEX file... Error: no EOF record found. HEX file may be incomplete." Entweder hat der Up-/Download der Hex-Datei nicht funktioniert oder das SPIFFS des ESP8266 ist nicht korrekt formatiert. Letzteres kann man über die Schaltfläche "Format ESP866 SPIFFS" auf der Web-Seite "SPIFFS" formatieren. Tutorial zum AufbauEin Tutorial zum Aufbau der WordClock findet man hier: Tutorial - Aufbau WordClock mit WS2812 - im Moment noch in der Entstehung. MechanikAnbringung der WS2812-Streifen
ZwischenbödenEs gibt insgesamt 4 Varianten der Zwischenböden. Word Clock 12hDie Word Clock 12h verwendet 4 Eckpunkte für die Minutenanzeige und zeitgleich auch zur Statusanzeige.
Word Clock 24hDie WC24h-Frontplatte besitzt unten drei Punkte. Diese sind ursprünglich für folgende Bauteile vorgesehen (bei Betrachtung der Zwischenplatte von vorne):
FrontplattenWC12h Edelstahl FrontplattenFür den Selbstnachbau hier die DXF-Datei Datei:EdelstahlFrontV2.dxf ACHTUNG: Diese Dateidaten müssen um Faktor 10 vergrössert werden! Sonst kommt eine 45x45mm Platte an. 8-( Eckdaten der Edelstahlblende: - Abmessungen: ca. 450x450x1 mm - gelasert gem. dxf Vorgabe, - Material 1.4301-2G, - eins. K320 geschliffen/gebürstet, - ohne weitere Nachbearbeitung, - Layout unterscheidet sich von der Originaluhr Verwendet wird hierbei die Schriftart Lucida Console allerdings erweitert. Die Schriftart hat Stege, so dass freie Inselteile (z. B. Innenteil O) nicht lose sind. Jeder Steg hat eine Breite von mind. 2mm. Die Buchstaben werden entsprechend ausgelasert und müssen von hinten noch mit einem Diffusor versehen werden. Der Diffusor ist nicht Bestandteil des Angebots. Hinweise zum Diffusor findet ihr hier: Er hat die Folien mit der schwarzen Platte getestet. Er sagt die besten Ergebnisse hatte er mit folgender Folie: Shields für STM32 MiniDev und Nucleo BoardHier werden nur die aktuellen Versionen der Shields beschrieben. Shield für STM32 MiniDevBoardVorgestellt wird hier das Shield für das MiniDevBoard in der aktuellen Version 5 - OTA - DPF.
Shield für STM32F411 Nucleo BoardVorgestellt wird hier das Shield für das Nucleo Board in der aktuellen Version 5 - OTA - DPF.
Tischversion der WC12h aus dem 3D DruckerWer Zugriff auf einen 3D Drucker mit einem Druckbereich >= 180x190mm hat, der findet bei Thingiverse 3D Modelle für alle unterstützten Sprachversionen der Software. Die Modelle der WC12h sind recht einfach zu drucken und sollten sich eigentlich mit so ziemlich jedem Gerät realisieren lassen. Wenn eine Version mit eingebautem Diffusor gedruckt werden soll, steht und fällt das Vorhaben mit der Ausrichtung des Druckbetts. Schon ein Versatz von 0.1mm über die gesamte Fläche kann hier das Druckergebnis ziemlich negativ beeinträchtigen. Aber in der Regel kennen die Besitzer solcher Geräte ja die Stolpersteine. Falls euer Druckbett nicht wirklich gerade, oder nicht sauber ausgerichtet ist, könnt ihr zur Not einfach eine Version ohne Diffusor drucken und diesen dann in Eigenregie erstellen (Butterbrotpapier, Milchglasfolie, usw.).
Hier geht es zur WordClock 12h (desk clock edition) bei Thingiverse SammelbestellungenSammelbestellung LED Stripes, Zwischenböden, ShieldsAufgrund der Tatsache das die Anfragen zu Sammelbestellungen bzgl LED Stripes, Zwischenböden und Shields komplett weggefallen ist, werden keine neuen Sammelbestellungen mehr angeboten. WC12h Sammelbestellung FrontplattenDie Patent- und Rechtsanwälte, welche die Biegert & Funk Product GmbH & Co KG vertreten, haben wegen möglicher Verletzung von angemeldeten Geschmacksmustern eine Unterlassungs- und Verpflichtungserklärung übersandt, die kurzfristig zu unterschreiben ist. Daher werden keine Bestellungen mehr angenommen, d.h. es werden auch keine Frontplatten mehr angeboten. WC24h Sammelbestellung LED StripesEine Sammelbestellung der LED-Stripes für die WC24h ist derzeit nicht geplant, da hier WS2812-Stripes mit dem Standard-Rastermaß von 60 LEDs/m benötigt werden. Diese sind sehr einfach bei eBay oder Amazon erhältlich. WC24h Sammelbestellung ZwischenbödenAuch für die WC24 Zwischenböden werden keine Sammelbestellungen mehr angeboten. WC24h Sammelbestellung FrontplattenDie Patent- und Rechtsanwälte, welche die Biegert & Funk Product GmbH & Co KG vertreten, haben wegen möglicher Verletzung von angemeldeten Geschmacksmustern eine Unterlassungs- und Verpflichtungserklärung übersandt, die kurzfristig zu unterschreiben ist. Daher werden keine Bestellungen mehr angenommen, d.h. es werden auch keine Frontplatten mehr angeboten. AnhangLayoutsFolgende Layouts werden unterstützt: WC12h (10x11):
ESKISTLFÜNF ZEHNZWANZIG DREIVIERTEL TGNACHVORJM HALBQZWÖLFP ZWEINSIEBEN KDREIRHFÜNF ELFNEUNVIER WACHTZEHNRS BSECHSFMUHR
ES#IST#FÜNF ZEHNZWANZIG DREIVIERTEL VOR####NACH HALB#ELFÜNF EINS###ZWEI DREI###VIER SECHS##ACHT SIEBENZWÖLF ZEHN####UHR
ESKISCHAFÜF VIERTUBFZÄÄ ZWÄNZGSIVOR ABOHAUBIEPM EISZWÖISDRÜ VIERIFÜFIQT SÄCHSISIBNI ACHTINÜNIEL ZÄNIERBEUFI ZWÖUFIAMUHR
ESKESCHAZÄÄ FÖIFCVIERTU ZWÄNZGSIVOR ABOHAUBIEGE EISZWÖISDRÜ VIERITFÖIFI SÄCHSISEBNI ACHTIENÜNIL ZÄNIERBRLFI ZWÖLFINAUHR
ITLISASAMPM ACQUARTERDC TWENTYFIVEX HALFSTENFTO PASTERUNINE ONESIXTHREE FOURFIVETWO EIGHTELEVEN SEVENTWELVE TENSEOCLOCK
ITKISGHALFE TENYQUARTER DTWENTYFIVE TOPASTEFOUR FIVETWONINE THREETWELVE BELEVENONES SEVENWEIGHT ITENSIXTIES TINEOICLOCK
ESONELASUNA DOSITRESOAM CUATROCINCO SEISASIETEN OCHONUEVEPM LADIEZSONCE DOCELYMENOS OVEINTEDIEZ VEINTICINCO MEDIACUARTO
ILNESTODEUX QUATRETROIS NEUFUNESEPT HUITSIXCINQ MIDIXMINUIT ONZERHEURES MOINSOLEDIX ETRQUARTPMD VINGT-CINQU ETSDEMIEPAM
KLOCKANTÄRK FEMYISTIONI KVARTQIENZO TJUGOLIVIPM ÖVERKAMHALV ETTUSVLXTVA TREMYKYFYRA FEMSFLORSEX SJUÄTTAINIO TIOELVATOLV
SONORLEBORE ERLUNASDUEZ TREOTTONOVE DIECIUNDICI DODICISETTE QUATTROCSEI CINQUEAMENO EKUNLQUARTO VENTICINQUE DIECILMEZZA WC24h:
ES#IST#VIERTELEINS DREINERSECHSIEBEN# ELFÜNFNEUNVIERACHT NULLZWEI#ZWÖLFZEHN UND#ZWANZIGVIERZIG DREISSIGFÜNFZIGUHR MINUTEN#VORUNDNACH EINDREIVIERTELHALB SIEBENEUNULLZWEINE FÜNFSECHSNACHTVIER DREINSUND#ELF#ZEHN ZWANZIGGRADREISSIG VIERZIGZWÖLFÜNFZIG MINUTENUHR#FRÜHVOR ABENDSMITTERNACHTS MORGENSWARMMITTAGS
ES#IST#NULL#EIN ZWEI#DREI#VIER# #FÜNF###SECHS## SIEBEN###ACHT## NEUN##ZEHN##ELF #ZWÖLF###UND### ZWANZIG#UHR#UND EINE#ZWEI#DREI# VIER#FÜNF#SECHS ##SIEBEN#ACHT## #NEUN#ZEHN#ELF# ###ZWÖLF##UND## ZWANZIG#DREIßIG #VIERZIG##NULL# FÜNFZIG#MINUTEN
JEST#TRZECIASZOSTA DZIEWIATADZIESIATA SIODMACZWARTAOSMA# PIATADRUGAPIERWSZA DWUNASTAJEDENASTA# #PIECDZIESIAT##### ####DWADZIESCIA### ZEROCZTERDZIESCI## #TRZYDZIESCI#ZERO# DZIESIECTRZYNASCIE JEDENASCIEDZIEWIEC #####SZESNASCIE### ###DZIEWIETNASCIE# CZTERNASCIE#SZESC# ######PIETNASCIE## OSIEMNASCIE#CZTERY PIECDWANASCIE##### SIEDEMNASCIE#PM#AM
JEST#SIEDEMNASTAZERO SIODMADZIESIATA#OSMA #CZWARTA#DWUDZIESTA# DRUGA#SZOSTA#TRZECIA TRZYNASTA##DWUNASTA# OSIEMNASTA#PIETNASTA JEDENASTA#SZESNASTA# #DZIEWIETNASTA#PIATA PIERWSZA#CZTERNASTA# DZIEWIATA#SZESNASCIE TRZYDZIESCI#DZIESIEC ZERO###DWADZIESCIA## PIETNASCIEJEDENASCIE ###CZTERDZIESCI#ZERO #PIECDZIESIAT##JEDEN OSIEMNASCIEPIECSZESC #CZTERY###TRZYNASCIE SIEDEMNASCIEDZIEWIEC CZTERNASCIEDWANASCIE ###DZIEWIETNASCIE#C# APIDie ESP8266-Firmware bietet eine API, über welche die Uhr konfiguriert werden kann. Diese API wird zum Beispiel von der Android-App genutzt, um die wichtigsten Einstellungen vorzunehmen. Allerdings ist die Kommunikation über die API momentan nur "One-Way", d.h. es können nur Befehle gesandt werden, aber keine momentanen Einstellungen abgerufen werden. Das wird zukünftig noch geändert, so dass auch sämtliche Konfigurationsparameter abgerufen und eingestellt werden können - analog zum Webinterface. Der ESP8266 horcht auf UDP-Port 2424, die UDP-Messages sind zwischen 1 und 7 Bytes lang. Das erste Zeichen ist immer ein Buchstabe, z.B. 'C'. Die weiteren Parameter sind jeweils Bytes, welche binär codiert sind, also 1 Parameter = 1 Byte. Es wird KEIN Abschluss-Zeichen, etwa ein '\n' oder sonstiges gesandt. API KommandotabelleC r g b [w] - Farben (Colors) setzen r = 0 ... 63 Rot g = 0 ... 63 Grün b = 0 ... 63 Blau w = 0 ... 63 Weiß (nur bei SK6812-RGBW) D m - Anzeigemodus (Display-Mode) setzen WC12h: m = 0 Wessi m = 1 Ossi m = 2 Rhein-Ruhr m = 3 Schwaben m = 4 Schweizerdeutsch 1 m = 5 Schweizerdeutsch 2 m = 4 Englisch 1 m = 5 Englisch 2
WC24h: m = 0 hh mm (12) m = 1 hh mm (24) m = 2 hh und mm (12) m = 3 hh und mm (24) m = 4 mm nach hh (12+) m = 5 mm nach hh (24) m = 6 Ossi/Berlin (12) m = 7 Ossi/Berlin (12+) m = 8 Oesi (12) m = 9 Oesi (12+) m = 10 Rhein/Ruhr (12) m = 11 Rhein/Ruhr (12+) m = 12 Schwaben (12) m = 13 Schwaben (12+) m = 14 Wessi (12) m = 15 Wessi (12+) A a - Animation setzen a = 0 Keine Animation a = 1 Keine a = 2 Fade a = 3 Roll a = 4 Explode a = 5 Random a = 6 Snake a = 7 Teletype a = 8 Cube a = 9 Matrix a = 10 Drop a = 11 Squeeze a = 12 Flicker F f - Farbanimation setzen f = 0 Farbanimation aus f = 1 Farbanimation Rainbow B b - Helligkeit (Britghtness) setzen b = 0 ... 15 Helligkeit L l - Automatische Helligkeitsregelung l = 0 Regelung aus l = 1 Regelung an P p - Power p = 0 Power off p = 1 Power on W - Temperaturanzeige aktivieren T y m d h i s - Datum/Zeit (Time) setzen: y = 0 ... 99 Jahr seit 2000 m = 1 ... 12 Monat d = 1 ... 31 Tag im Monat h = 0 ... 23 Stunde i = 0 ... 59 Minute s = 0 ... 59 Sekunde gT x - Tetris x = s Tetris starten x = l Links x = r Rechts x = d Unten x = u Hoch (hier: Drehen) x = m Fallenlassen x = q Quit: Beenden Ab Version 2.9.4: gS x - Snake x = s Snake starten x = l Links x = r Rechts x = d Unten x = u Hoch x = q Quit: Beenden f f t - MP3-Track über DFPlayer abspielen f = 0 ... 99 Ordner, 0 = 00, 1 = 01 usw. t = 0 ... 255 Track, 0 = 000.mp3, 1 = 001.mp3 usw. o n - Overlay anzeigen n = 0 ... 7 Overlay 0 bis 7 anzeigen WEB-FernsteuerungDie meisten Konfigurationen oder Kommandos, die per Webbrowser bedient werden, können auch durch einfache HTTP-Aufrufe ausgeführt werden. Anbei eine Liste der typischen Web-Kommandos - ohne Anspruch auf Vollständigkeit.
Historie der Hardware-VersionenShield für STM32 MiniDevBoard (ältere Versionen)Vorgestellt werden hier ältere Versionen des MiniDev Shields. Version 1:
Version 2:
Version 3:
Version 4:
Shield für STM32 Nucleo-Board (ältere Versionen)Vorgestellt werden hier ältere Versionen des Nucleo Shields. Version 1:
Version 2:
Das Shield muss über St-08 mit 5V versorgt werden. Die für die Schnittstellen benötigten 3,3V wird auf dem Shield selbst mit einem LM3940-3.3 erzeugt. Hier findet ihr die Stückliste zum Nucleo-Board und den Link zum öffentlichen Reichelt Warenkorb (noch ohne T1, T2, D1, R7, R8 und R9). Datei:Wc24wk.pdf Version 3:
Version 4:
Anschluss ESP8266 ESP-01Das ESP-01 Modul wurde lediglich bei den älteren Shields verwendet. Mittlerweile (ab Shield v3) wird es nicht mehr verwendet, weil es durch das ESP-12F ersetzt wurde.
Ab der Software Version 2.1.0 sind der HTML-Codegenerator und die Schnittstelle zu Android-Geräten (Kommando-Interpreter) auf den ESP8266 ausgelagert. Deshalb ist ein ESP-Modul für das Betreiben der WordClock unbedingt erforderlich. Umbau von ESP-01 auf ESP-12FDie älteren Shields, welche noch den Anschluss für den ESP-01 haben, können auf das ESP-12F umgebaut werden. Dafür besorgt man sich zusätzlich zum ESP-12F einen Adapter wie diesen hier: Dieser hat die Widerstände R2 und R3 auch schon direkt auf dem Adapter. Lediglich die Widerstände R1 und R4 (siehe Schaltbilder rechts) müssen beim STM32F103-Mini-Board zusätzlich angebracht werden, siehe unten. Beim Nucleo-Board ist der Pulldown an BOOT0 bereits auf der Nucleo-Platine integriert.
Ressourcen (.DXF, CAD/.STEP)WordClock 12h.DXF Vorlagen - Zwischenböden
.STEP Dateien - Zwischenböden
Hinweis: Die Zwischenböden aus den Sammelbestellungen basieren auf einer anderen Zeichnung und sind nicht komplett identisch. Für jemanden mit CNC Fräse, Lasercutter oder 3D Drucker hier aber eine DIY Grundlage, mit der auch Anpassungen schnell umsetzbar sind. Historie der Software-VersionenSTM32 WordClock SoftwareSTM32 Version 3.1.0
STM32 Version 3.0.1
STM32 Version 2.9.5
STM32 Version 2.9.4b
STM32 Version 2.9.4
STM32 Version 2.9.3
STM32 Version 2.9.2
STM32 Version 2.9.1
STM32 Version 2.9.0
STM32 Version 2.8.4
STM32 Version 2.8.3
STM32 Version 2.8.2
STM32 Version 2.8.1
STM32 Version 2.8.0
STM32 Version 2.7.3
STM32 Version 2.7.2
STM32 Version 2.7.0
STM32 Version 2.6.6
STM32 Version 2.6.5
STM32 Version 2.6.4
STM32 Version 2.6.3
STM32 Version 2.6.2
STM32 Version 2.6.1
STM32 Version 2.6.0
STM32 Version 2.5.0
STM32 Version 2.4.2
STM32 Version 2.4.1
STM32 Version 2.4.0
STM32 Version 2.3.5
STM32 Version 2.3.4
STM32 Version 2.3.3
STM32 Version 2.3.2
STM32 Version 2.3.1
STM32 Version 2.3.0
STM32 Version 2.2.4
STM32 Version 2.2.3
STM32 Version 2.2.2
STM32 Version 2.2.1
STM32 Version 2.2.0
STM32 Version 2.1.0
STM32 Version 2.0.7
STM32 Version 2.0.6
STM32 Version 2.0.5
STM32 Version 2.0.4
STM32 Version 2.0.3
STM32 Version 2.0.2
STM32 Version 2.0.1
STM32 Version 2.0.0
STM32 Version 1.9.0
STM32 Version 1.8.9
STM32 Version 1.8.8
STM32 Version 1.8.7
STM32 Version 1.8.6
STM32 Version 1.8.5
STM32 Version 1.8.4
STM32 Version 1.8.3
STM32 Version 1.8.2
STM32 Version 1.8.1
STM32 Version 1.8.0
Änderung: Damit das ESP8266-Modul direkt über das STM32-Board geflasht werden kann, ist die Verbindung ESP8266-GPIO0 zu STM32 PA4 herzustellen, siehe auch: Anschluss ESP8266 STM32 Version 1.7.0
STM32 Version 1.6.3
STM32 Version 1.6.2
STM32 Version 1.6.1
STM32 Version 1.6.0
STM32 Version 1.5.9
STM32 Version 1.5.8
STM32 Version 1.5.7
STM32 Version 1.5.6
STM32 Version 1.5.5
STM32 Version 1.5.4
STM32 Version 1.5.2
STM32 Version 1.5.1
STM32 Version 1.4.2
STM32 Version 1.4.1
STM32 Version 1.4.0
STM32 Version 1.3.1
STM32 Version 1.3.0
STM32 Version 1.2.0
STM32 Version 1.1.0
STM32 Version 1.0.0
STM32 Version 0.9.1STM32 Version 0.9
EEPROM-Version IRMP-Daten einer angelernten IR-Fernbedienung Aktuell eingestellte Farben und Anzeigemodus IP-Adresse des Timeservers Zeitzone STM32 Version 0.8
STM32 Version 0.7.1
STM32 Version 0.7
STM32 Version 0.6
ESP8266 FirmwareESP Version 3.0.0T5
ESP Version 2.9.5
ESP Version 2.9.2
ESP Version 2.9.0
ESP Version 2.8.3
ESP Version 2.8.2
ESP Version 2.8.1
ESP Version 2.8.0
ESP Version 2.7.3
ESP Version 2.7.2
ESP Version 2.7.1
ESP Version 2.7.0
ESP Version 2.6.6
ESP Version 2.6.4
ESP Version 2.6.3
ESP Version 2.6.2
ESP Version 2.6.1
ESP Version 2.6.0
ESP Version 2.5.0
ESP Version 2.4.0
ESP Version 2.3.0
ESP Version 2.2.0
ESP Version 2.1.0b
ESP Version 2.1.0a
ESP Version 2.1.0
ESP Version 1.2.0
ESP Version 1.1.0
Android AppAPP Version 2.9.4Änderungen:
APP Version 2.6.1Behobene Fehler:
Änderungen:
APP Version 2.6.0
APP Version 2.1.0
APP Version 1.9.0
APP Version 1.8.0
APP Version 1.7.0
|