Steuerung einer Bodet Klappzahlen-Nebenuhr mit dem ESP32
Ich muss gestehen, nach meinem letzten Artikel über die Siemens Uhr bin ich ein wenig den Nebenuhren verfallen. Schon kurze Zeit später habe ich auf einer Kleinanzeigenplattform gleich vier weitere Uhren ergattert. Diesmal haben die Uhren allerdings keine Zeiger, sondern es sind wunderschöne Klappzahlen-Uhren. Diese Uhren wurden Ende der 70er Jahre von der Firma Bodet hergestellt und sind auch oft von anderen Firmen wie Siemens oder TN vertrieben worden.
Das Besondere an diesen Klappzahlen-Uhren ist vor allem die Größe. Das Prinzip der Klappzahlen-Uhren kennt man vor allem von alten Radioweckern, wo die Anzeige allerdings nur wenige Zentimeter groß ist. Diese Uhren sind dagegen über 30 cm breit und 15 cm hoch und damit ein echter Blickfang. Auf verschiedenen Verkaufsplattformen werden für diese Uhren teilweise Preise von bis zu 500 Euro verlangt. Glücklichereise haben mich alle vier Uhren zusammen deutlich weniger gekostet, daher musste ich unbedingt zuschlagen, zumal sie alle in einem äußerst guten Zustand sind. Lediglich die Front war bei den Uhren ein wenig zerkratz.
Wie man auf den Fotos sieht, gibt es diese Klappzahlen-Uhren in unterschiedlichen Farben und auch die Frontabdeckung hat verschiedene Formen. Mein Eindruck ist, dass die gewölbte Variante die ältere Form ist.
Es gibt noch andere Farben wie Blau oder Gelb, doch leider konnte ich bisher keine Anbieter finden, bei denen man diese zu einem vernünftigen Preis kaufen kann. Auch der innere Aufbau der Uhren weist leichte Unterschiede auf. Ein Modell verfügt über Metallstreben, die mit Muttern verschraubt sind, während andere Modelle vollständig aus Kunststoff gefertigt sind.
Die Steuerung der Nebenuhr
Wie oben schon erwähnt, handelt es sich bei diesen Uhren um Nebenuhren, es ist also eine externe Steuerung nötig, um sie zu betreiben. Das Grundprinzip von Nebenuhren habe ich bereits in meinem Artikel über die Siemens-Uhr erläutert. Dieses Prinzip gilt auch für diese Klappzahlen-Uhr, mit dem Unterschied, dass hier keine Zeiger, sondern Fallblätter bewegt werden. Dazu erhält die Uhr jede Minute einen Impuls, der die Minutenanzeige antreibt. Die interne Mechanik der Nebenuhr schaltet stündlich (recht lautstark) die Stundenanzeige weiter.
Für die Steuerung verwende ich überwiegend wieder die gleichen Komponenten, die ich auch schon bei der Siemens Nebenuhr verwendet habe:
L293D Motortreiber
Der L293D ist ein 4-fach Halb-H-Brückentreiber zur Steuerung von Motoren, Relais und Solenoiden. Er ermöglicht eine bidirektionale Ansteuerung von bis zu zwei Motoren oder den einseitigen Betrieb von vier Motoren mit 600 mA pro Kanal. Jedes Ausgangs-Pinpaar bildet eine vollständige H-Brücke, wobei die Steuerung über separate Enable-Pins erfolgt. Zwei Halb-H-Treiber werden kombiniert, um eine H-Brücke für die Richtungssteuerung eines Motors zu bilden.
LILYGO T-Display ESP32 Mikrocontroller
Das LILYGO T-Display ist ein kompaktes ESP32-Entwicklungsboard mit integriertem 1,14-Zoll-Display (ST7789, 135x240 Pixel). Es bietet WLAN-Konnektivität, zwei frei nutzbare Tasten und einen auf der Platine integrierten 5V-Spannungsregler. Dank der Unterstützung durch die TFT_eSPI-Bibliothek lässt sich das Display leicht ansteuern. Günstige Clone mit 16 MB QSPI-Flash sind auf AliExpress für unter 7 Euro erhältlich.
Stromversorgung
Auf AliExpress habe ich einen günstigen Step-Up Konverter gefunden, der über USB-C betrieben werden kann und eine regelbare Ausgangsspannug von 4,3 - 27 Volt hat. Damit kann man sowohl 12 Volt, als auch 24 Volt Nebenuhren betreiben. Zusätzlich befindet sich ein Laderegler für 18650 Li-Ion Akkus auf dem Board. Dadurch kann die Steuerung auch Stromausfälle überbrücken.
Die Schaltung
Jetzt müssen nur noch die drei Platinen miteinander verdrahtet werden. Das folgende Bild zeigt, wie die einzelnen Pins verbunden werden müssen:
Da diese Schaltung sehr einfach ist, habe ich die drei Platinen einfach auf eine Lochrasterpatine gelötet und auf der Unterseite die entsprechenden Pins mit einem Kupferdraht verbunden. Die Steckerleiste des L293D Boards habe ich vorher ausgelötet und auf der Unterseite die notwendigen Pins wieder angelötet. Der Jumper für den Enable-Eingang muss entfernt werden, da ja der Mikrocontroller steuern soll, wann der Motor Strom bekommt. Der gesamte Aufbau der Nebenuhr-Steuerung sieht dann so aus:
Die Beschaltung des Schrittmotors
Der Schrittmotor in dieser Nebenuhr kann mit 12 oder 24 Volt betrieben werden. Da ich eine Steuerung mit 12 Volt verwende, müssen die Kontakte wie auf dem folgenden Bild verbunden werden:
Die vier Anschlüsse aus der Spule werden in der Uhr über Kabel nach außen an das Gehäuse geführt. Auf dem folgenden Bild sieht man die Stifte auf der Rückseite der Uhr.
Hier sieht man die vier Stifte noch einmal von nahem. Normalerweise gehört zu dieser Nebenuhr auch noch eine Aufhängung, die an die Wand geschraubt werden kann. In dieser Aufhängung befindet sich ein entsprechender Stecker, in den die Stifte dann einrasten, wenn man die Uhr aufhängt.
Diese Aufhängung war bei meinen Uhren leider nicht mehr dabei. Daher musste ich nach einer anderen Lösung suchen, wie ich die Steuerung mit den Stiften verbinden kann. Nach viel Herumprobieren habe ich schließlich eine gute Lösung gefunden. Die Buchsenkontakte in den 4-poligen Molex Steckern von alten PCs passen perfekt auf die Stifte und glücklicherweise habe ich davon noch einige in meinem Fundus.
Das Gehäuse
Natürlich muss die Elektronik auch noch in einem möglichst unauffälligen Gehäuse untergebracht werden. Dabei soll es sowohl die Möglichkeit geben, die Uhr an die Wand zu hängen als auch einfach auf ein Regal zu stellen. Das Ergebnis sieht wie folgt aus:
Die seitlichen Füße werden nur benötigt, wenn die Nebenuhr auf einem Regal stehen soll. Sie sind leicht schräg, damit die die Uhr ganz gerade steht, da das Gehäuse der Uhr keinen 90° Winkel bildet.
Die Halterung für den Akku wird einfach in die dafür vorgesehene Aussparung geklebt, der Rest wird verschraubt. Die Anschlüsse werden einfach durch eine Aussparung im Gehäuse geführt und an die Stifte der Uhr angesteckt.
Die Steuerungs-Software
Da die Hardware zur Ansteuerung der Nebenuhr identisch zu der Siemens-Uhr ist und sich am Prinzip der Ansteuerung nichts geändert hat, konnte ich die Software direkt übernehmen. Ich habe sie nur um eine Konstante erweitert, mit der definiert wird, ob es sich um eine 12 oder 24 Stunden Uhr. Für den Betrieb es das zwar nicht so wichtig, aber zumindest beim Einstellen der Uhr macht es einen kleinen Unterschied. Außerdem habe ich noch die SmartConfig Bibliothek eingebaut, damit man die WLAN-Zugangsdaten nicht im Code hinterlegen muss.
Die Software der Steuerung wurde in Visual Studio Code mit der PlatformIO-Erweiterung entwickelt. Als Framework kommt Arduino zum Einsatz, da die TFT_eSPI Grafikbibliothek dies voraussetzt. Die Software lässt sich grob in zwei Hauptbereiche unterteilen: den Setup-Modus und den Normalbetrieb.
Setup-Modus
Im Setup-Modus werden die Ziffern der Klappzahlen-Uhr manuell justiert, um sie auf die 0:00-Position zu bringen. Dies ist notwendig, um die Uhr mit der tatsächlichen Zeit zu synchronisieren. Mit der ersten Taste (BUTTON_MOVE_PIN, GPIO_NUM_0) werden die Ziffern minutenweise vorwärtsbewegt. Ein kurzer Klick schaltet um eine Minute weiter, während längeres Drücken die Ziffern kontinutierlich weiterschaltet. Die ButtonHandler Klasse übernimmt hierbei die Steuerung der Tasten.
Normalbetrieb
Sobald die Ziffern auf 0:00 eingestellt sind, wird die zweite Taste (BUTTON_START_PIN, GPIO_NUM_35) gedrückt, um in den Normalbetrieb zu wechseln. In diesem Modus verbindet sich der ESP32 mit dem WLAN, synchronisiert die Uhrzeit über einen SNTP-Server und startet zwei Tasks:.
WLAN-Verbindung: Die WifiSmartConfig Klasse übernimmt die Verwaltung der WLAN-Verbindung. Zunächst wird versucht, sich mit gespeicherten WLAN-Zugangsdaten zu verbinden. Falls dies fehlschlägt, wird der SmartConfig-Modus gestartet, um die Zugangsdaten über eine App zu empfangen
SNTP-Synchronisierung: Nach erfolgreicher WLAN-Verbindung wird die Uhrzeit über den SNTP-Server synchronisiert. Die initSNTP Funktion der WifiSmartConfig Klasse initialisiert den SNTP-Client und legt einen Callback fest, der aufgerufen wird, sobald die Zeit synchronisiert wird:
Move Task: Dieser Thread ist für die Bewegung der Ziffern verantwortlich. Er vergleicht kontinuierlich lede Minute die Ist- mit der Soll-Position der Ziffern und berechnet die Differenz. Um diese Differenz werden dann die Ziffern weitergedreht
Display Task: Dieser Thread zeigt die aktuelle Uhrzeit und den Verbindungsstatus auf dem Display an. Der Verbindungsstatus wird durch farbige Rechtecke dargestellt: Rot für keine WLAN-Verbindung, Orange für WLAN-Verbindung ohne Zeitsynchronisierung und Grün für erfolgreiche Zeitsynchronisierung.
Grundsätzlich ist die Software so aufgebaut, dass sie für alle Nebenuhren funktionierieren sollte, wenn der L293D als Treiber verwendet wird. Die Software der Nebenuhr-Steuerung ist auf GitHub verfügbar.
Fazit
Diese großen Klappzahlen-Uhren sind ein echter Hingucker und wirken trotz ihres Alters kein bisschen verstaubt. Ich habe lange überlegt, welche der vier Uhren ich behalten werde, weil mir leider alle gefallen. Schließlich habe ich mich für das rote Modell entschieden. Die anderen werde ich wohl im Freundeskreis verschenken.
Die Frontabdeckung habe ich noch mit einer Polierpaste behandelt und jetzt sind so gut wie keine Kratzer mehr zu sehen.
Inzwischen schmückt diese wunderschöne Uhr mein Büro. Allerdings sollte ich wohl langsam einsehen, dass ich jetzt genug Uhren in meiner Wohnung habe. Ich weiß gar nicht, warum mich diese alten Uhren so faszinieren. Vielleicht ist es das zeitlose Design oder einfach die Tatsache, dass die Technik von damals auch 50 Jahre später noch perfekt funktioniert.
Bei Fragen oder sonstigen Anregungen schreibt mir einfach eine Nachricht. Ich freue mich immer über Feedback!