Die Nixie Uhr(en)
Inhalt
Diese Seite dokumentiert Entwicklung und Aufbau meiner Nixie-Uhren über mehrere Generationen hinweg – von der ersten aufgebauten Uhr bis zur aktuellen Version mit Websteuerung und externer Zeitquelle. Ausgangspunkt war ein Projekt, das mich damals nachhaltig geprägt und letztlich den Weg in die Mikrocontroller-Welt geöffnet hat.
Der Bau meiner ersten Nixie-Uhr liegt inzwischen einige Jahre zurück.
Es war gegen Ende 2005, als ich eher zufällig auf die Seite von Stefan Kneller gestoßen bin.
Mit dem dort hervorragend beschriebenen Projekt für seine Nixie-Röhren-Uhr wurde der Nachbau fast zum Kinderspiel.
Damals war ich noch in der Ausbildung zum staatlich geprüften Techniker für Elektrotechnik.
Aus Kostengründen entstand die Steuerung der ersten Uhr daher komplett auf einer Lochrasterplatine.
Darauf habe ich die Schaltung von Stefan nahezu 1:1 nachgebildet, lediglich den Hochspannungsteil habe ich aus einem anderen Projekt entliehen –
nicht weil Stefans Hochspannungsnetzteil schlechter gewesen wäre, sondern weil ich Respekt davor hatte, diesen einen sehr kleinen Widerstandswert exakt zu treffen.
Die Firmware des Controllers sowie die zugehörige PC-Anwendung wurden von Hans-Joachim Borchers entwickelt und sind Teil des auf der Seite von Stefan Kneller veröffentlichten Projekts. Im Folgenden spreche ich der Einfachheit halber von „Stefans Software“.
Im Nachhinein betrachtet bin ich wahrscheinlich genau durch diese Seite und den reibungslosen Nachbau zu den Mikrocontrollern gekommen. Während meiner ersten Ausbildung zum Elektroniker (Fachrichtung Informationstechnik) hatte ich noch mit dem 8085 zu tun – vielleicht kennt noch jemand den Mikrocomputer MFA. Dagegen kam mir ein Mikrocontroller wie der heilige Gral vor: Beim MFA brauchte man zahlreiche Platinen, Busse und Interfacekarten (für die allseits beliebte Ampelschaltung mit je drei LEDs). Im Mikrocontroller sind dagegen RAM, Flash, EEPROM und Schnittstellen wie UART, SPI oder I²C in einem einzigen Gehäuse integriert.
Die erste Nixie-Uhr (2005)
Die erste Uhr entstand vollständig auf Lochrasterbasis und begleitete mich viele Jahre. Auch wenn sie aus heutiger Sicht noch recht einfach aufgebaut war, hat sie zuverlässig funktioniert und war mein Einstieg in die Welt der Nixie-Röhren.
Platinenoberseite |
Platinenunterseite |
Netzteil |
Anprobe Gehäuse |
Rückseite |
Vorderseite |
Die zweite Nixie (2006)
Die zweite Nixie-Uhr entstand knapp ein Jahr später, da ich dann Zugriff auf eine Ätzanlage hatte. Allerdings hatte ich nie wirklich die Muße, ein passendes Gehäuse dafür zu bauen. Wie auch beim ersten Nachbau kam wieder ein anderer Hochspannungsteil zum Einsatz. Da das einer meiner ersten Layoutversuche war, wollte ich ihn vor dem Ätzen unbedingt testen. Deshalb gab es zunächst eine Papierplatine nur für den Netzteiltest.
Netzteil auf Papier |
frisch geätzt |
chemische Verzinnung |
ein recht aufgeräumter Basteltisch :-) |
Bestückung |
„fertig“ |
Die dritte Nixie-Uhr (aktuelles Projekt)
Der eigentliche Auslöser für das aktuelle Projekt war ein Fund auf dem Dachboden: ein Satz Nixie-Röhren vom Typ Z560M, die dort schon seit Jahren lagen. Damit war klar – daraus muss irgendwann wieder eine Uhr entstehen. Und dieses Mal habe ich tatsächlich mit dem Gehäuse begonnen. :-)
Gehäuse
Also zunächst Holz, Fräse und Leim – die Elektronik kam später.
frisch aus der Fräse |
Verleimen - Danke an Tobias für die Lamello Fräsungen |
Kanten gebrochen |
und geölt |
atmungsaktiver Deckel für die Unterseite |
fertig mit eingepassten Röhren |
Schaltplan und Layout
Die Nixie-Elektronik basiert wieder auf dem Schaltplan von Stefan. Ich habe seinen Schaltplan in EAGLE nachgezeichnet und daraus ein neues Layout erstellt – dieses Mal größtenteils in SMD. Der Hochspannungsteil stammt wieder aus dem anderen Projekt.
Der Schaltplan
![]() |
Bilder der virtuellen Platine
Oberseite |
Unterseite |
Stückliste Nixiesteuerung
(Preise Stand: 02/2026)| Bauteil | Bestellnummer | Menge | Einzelpreis | Gesamtpreis |
|---|---|---|---|---|
| Lieferant: Reichelt | ||||
| Anschlussklemme RM 5,08 | AKL 073-02 | 1 | 0,570 € | 0,57 € |
| Stiftleiste 20pol. RM 2,54 (zuschneiden) | BKL 10120500 | 2 | 0,400 € | 0,80 € |
| Buchsenleiste 20pol. RM 2,54 (zuscheinden) | MPE 115-1-020 | 2 | 1,800 € | 3,60 € |
| Buchsenleiste Micromatch 6pol. RM 1,27mm | MPE 369-1-006 | 1 | 0,400 € | 0,40 € |
| Stiftwanne Micromatch 6pol. RM 1,27mm | MPE 372-1-006 | 1 | 0,300 € | 0,30 € |
| Sicherrungshalter für TR5 Sicherungen | LITT 56000001009 | 1 | 0,970 € | 0,97 € |
| Sicherung T500mA TR5 | ESKA 887.114 | 1 | 0,670 € | 0,67 € |
| SMD Widerstand 0805 1M | SMD-0805 1,00M | 6 | 0,030 € | 0,18 € |
| SMD Widerstand 0805 33k | SMD-0805 33,0K | 1 | 0,030 € | 0,03 € |
| SMD Widerstand 0805 10k | SMD-0805 10,0K | 29 | 0,030 € | 0,87 € |
| SMD Widerstand 0805 1k | SMD-0805 1,0K | 1 | 0,030 € | 0,03 € |
| SMD Widerstand 0805 560R | SMD-0805 560 | 1 | 0,030 € | 0,03 € |
| SMD Widerstand 0805 470R | SMD-0805 470 | 1 | 0,030 € | 0,03 € |
| SMD Widerstand 1206 1k | SMD 1/4W 1,0K | 1 | 0,060 € | 0,06 € |
| SMD Widerstand MELF 207 100k | VIT ZC207 330K | 1 | 0,130 € | 0,13 € |
| SMD Widerstand MELF 207 220k | VIT ZC207 220K | 1 | 0,130 € | 0,13 € |
| SMD Widerstand MELF 207 100k | VIT ZC207 100K | 1 | 0,130 € | 0,13 € |
| Spindeltrimmer 64Y 1k | VIS M64Y102KB40 | 1 | 1,750 € | 1,75 € |
| Elektrolytkondensator 470µ 8mm RM 5 | FR-A 470U 35-3 | 1 | 0,460 € | 0,46 € |
| Elektrolytkondensator 100µ 7mm RM 2.5 | EB-A 100U 25 | 1 | 0,250 € | 0,25 € |
| Elektrolytkondensator 4µ7 350V axial | AX 4,7/350 | 1 | 0,550 € | 0,55 € |
| SMD Kerko 0805 100n | X7R-G0805 100N | 13 | 0,070 € | 0,91 € |
| SMD Kerko 0805 5n6 | WAL 0805B562K500 | 2 | 0,040 € | 0,08 € |
| SMD Kerko 0805 22p | NPO-G0805 22P | 2 | 0,020 € | 0,04 € |
| Folienkondensator 47p RM 5 | FKP2-1000 47P | 1 | 0,240 € | 0,24 € |
| Power Induktivität 330µ min. 1A | FAS 09HCP-331K-5 | 1 | 0,920 € | 0,92 € |
| Grundtonquartz 16MHz | 16,0000-HC18 | 1 | 0,500 € | 0,50 € |
| SMD Diode MiniMelf BAV103 | BAV 103 SMD | 10 | 0,040 € | 0,40 € |
| Diode BYW 56 | BYW 56 | 1 | 0,350 € | 0,35 € |
| TVS Diode | SM6T 15A STM | 1 | 0,230 € | 0,23 € |
| Transistor n-FET low RDSon | IPP60R190P6 | 1 | 1,690 € | 1,69 € |
| Transistor npn BD139 | BD 139 STM | 1 | 0,220 € | 0,22 € |
| SMD Transistor npn TA42 | SMBTA 42 SMD | 19 | 0,050 € | 0,95 € |
| SMD Transistor pnp TA92 | SMBTA 92 SMD | 6 | 0,060 € | 0,36 € |
| Festspannungsregler 5V SOT-223 MCP 1703-5002 | MCP 1703-5002 | 1 | 0,900 € | 0,90 € |
| UART Treiber MAX202 | MAX 202 EESE | 1 | 1,700 € | 1,70 € |
| Timer NE555 | NE 555 D SMD | 1 | 0,330 € | 0,33 € |
| Controller ATMega16 TQFP-44 | ATMEGA 16-16 TQ | 1 | 11,540 € | 11,54 € |
| Signalgeber 5V RM 7,6 | AL-60SP05HT | 1 | 1,200 € | 1,20 € |
| Kühlkörper TO-220 | FK 237 SA 220 O | 1 | 1,100 € | 1,10 € |
| Bauteile außerhalb der Platine | ||||
| Widerstand bedrahtet 1M Anoden Dots | METALL 1,00M | 4 | 0,070 € | 0,28 € |
| Widerstand bedrahtet 10k Anoden 0-9 | METALL 10,0K | 10 | 0,035 € | 0,35 € |
| Summe: | 36,23 € | |||
Nachdem die Platinen in China gefertigt wurden, und den weiten Weg zu mir gefunden hatten, konnte endlich mit dem Löten begonnen werden.
Bilder der realen Platine
Oberseite |
Unterseite |
Vorbereitung der Nixie-Matrix
Vorbereitung |
gelötet |
first light :-) |
eingepasst |
Zusammenbau der Komponenten
Taster leicht versenkt |
Taster eingebaut |
Einbau und Anschluss der Platine |
Inbetriebnahme
Dank der bewährten Schaltung von Stefan verlief die Inbetriebnahme erfreulich unspektakulär.
Größere Überraschungen blieben aus,
und die Uhr lief im Grunde auf Anhieb.
Lediglich am Hochspannungsnetzteil habe ich einige Anpassungen vorgenommen. Drossel und MOSFET wurden im Betrieb deutlich wärmer als erwartet. Daher habe ich beide durch besser geeignete Typen ersetzt und das Timing des NE555 experimentell angepasst. Dadurch ließ sich die Effizienz des Netzteils spürbar verbessern. Die entsprechenden Änderungen sind bereits im Schaltplan und in der Stückliste berücksichtigt. Der Drosseltyp wurde von axial auf radial geändert – das erforderte etwas Kreativität beim Einlöten. (Auf den Bildern ist noch die ursprüngliche Drossel zu sehen.)
Stefan’s Nixie Clock goes Webinterface
Für die Zeitsynchronisation hat Stefan in seiner Software mehrere Möglichkeiten vorgesehen, unter anderem DCF77. Das hat bei meinen beiden vorherigen Uhren problemlos funktioniert und wäre auch hier naheliegend gewesen. Dieses Mal wollte ich jedoch bewusst einen anderen Weg ausprobieren.
Alternativ unterstützt die Software auch die Synchronisation über ein NMEA-RMC-Telegramm,
wie es typischerweise von GPS-Empfängern geliefert wird. Ein echter GPS-Empfänger kommt hier allerdings nicht zum Einsatz.
Stattdessen übernimmt ein ESP8266 diese Rolle und „tut so“, als wäre er einer:
Er holt sich die aktuelle Zeit über das heimische WLAN von einem NTP-Server aus dem Internet und erzeugt daraus passende NMEA-Telegramme,
die anschließend an den eigentlichen Controller der Uhr weitergegeben werden.
Damit wird die Uhr letztlich über das Netzwerk synchronisiert – nur eben über den Umweg eines simulierten GPS-Empfängers.
Der Vorteil: keine zusätzliche DCF-Hardware, keine Empfangsprobleme und trotzdem eine saubere,
von der Uhrsoftware bereits unterstützte Schnittstelle.
Mit dem Webinterface beginnt ein neuer Abschnitt des Projekts – und wie so oft startet auch dieser wieder mit einer eigenen Platine.
Zunächst geht es darum, die Anforderungen an die Webinterface-Hardware zu definieren.
- Die Platine stellt die Hardwarebasis für das Webinterface bereit und bindet dieses funktional in die Nixie-Uhr ein.
-
Bereitstellung zweier Betriebsspannungen aus der 12V Versorgung.
- 3,3V für den ESP8266
- 5V für die Sensorplatine -> (Der von mir eingesetzte 5V Linearregler auf der Nixie-Platine ist mit der dortigen Logik bereits ausgelastet.)
- Auswertung des von der Sensorplatine kommenden Signals.
- Über zwei Optokoppler ist der ESP mit den Tastern der Uhr verbunden und kann diese quasi „fernsteuern“. Das wird später benötigt, um den Wecker der Nixie-Uhr automatisch zu quittieren und stattdessen den eigenen Alarm auszugeben.
- Ein weiterer Optokoppler ist mit dem Signalgeber(Buzzer) der Uhr verbunden. So erkennt der ESP, wann ein Alarm der Nixie-Clock aktiv ist. Die Unterscheidung zwischen Tastenton und echtem Alarm erfolgt über die Impulslänge und Impulsfolge des Signals. (Impulsdauer[1] - Pause[1] - Impulsdauer[2] müssen innerhalb gewisser Toleranzen liegen.)
- Ein MOSFET steuert die externe „Klingel“ später über eine in der Weboberfläche anpassbare PWM.
- Eine UART-Leitung liefert die NMEA-Zeitdaten an den Controller der Uhr.
- Ein zusätzlicher, derzeit nicht angesteuerter Optokoppler ist mit dem Reset-Pin des ATmega16 verbunden, um bei Bedarf auch hier eingreifen zu können.
Der Schaltplan
![]() |
Bilder der virtuellen Platine
Oberseite |
Unterseite |
Stückliste Webinterface-Platine
(Preise Stand: 02/2026)| Bauteil | Bestellnummer | Menge | Einzelpreis | Gesamtpreis |
|---|---|---|---|---|
| Lieferant: Reichelt | ||||
| JST Crimpkontakt für PH | JST PH CKB | 10 | 0,05 € | 0,50 € |
| JST Buchsengehäuse 4pol. | JST PH4P BU | 1 | 0,05 € | 0,05 € |
| JST Stiftleiste 4pol. | JST PH4P ST | 1 | 0,15 € | 0,15 € |
| JST Buchsengehäuse 2pol. | JST PH2P BU | 3 | 0,05 € | 0,15 € |
| JST Stiftleiste 2pol. | JST PH2P ST | 3 | 0,13 € | 0,39 € |
| Buchsenleiste Micromatch 6pol. RM 1,27mm | MPE 369-1-006 | 1 | 0,400 € | 0,40 € |
| Stiftwanne Micromatch 6pol. RM 1,27mm | MPE 372-1-006 | 1 | 0,300 € | 0,30 € |
| Buchsenleiste Micromatch 4pol. RM 1,27mm | MPE 369-1-004 | 1 | 0,550 € | 0,55 € |
| Stiftwanne Micromatch 4pol. RM 1,27mm | MPE 372-1-004 | 1 | 0,250 € | 0,25 € |
| Stiftleiste 8pol. RM 2,0mm | BKL 10120732 | 2 | 0,520 € | 1,04 € |
| Buchsenleiste 8pol. RM 2,0mm | BKL 10120721 | 2 | 0,790 € | 1,58 € |
| IC Sockel DIL 8pol. | MPE 001-1-008-3 | 2 | 0,350 € | 0,70 € |
| SMD Widerstand 0805 10k | SMD-0805 10,0K | 6 | 0,030 € | 0,18 € |
| SMD Widerstand 0805 1k | SMD-0805 1,0K | 6 | 0,030 € | 0,18 € |
| SMD Widerstand 0805 560R | SMD-0805 560 | 5 | 0,030 € | 0,15 € |
| Elko Tantal 220µ RM5 | TANTAL 220/10 | 1 | 1,850 € | 1,85 € |
| SMD Elko Tantal 22µ | SMD TAN.22/20 | 2 | 0,490 € | 0,98 € |
| SMD Kerko 0805 100n | X7R-G0805 100N | 6 | 0,070 € | 0,42 € |
| SMD Drossel PIS2816 330µ | L-PISA2816 330µ | 1 | 0,990 € | 0,99 € |
| SMD Diode MBRS 360 | MBRS 360 SMD | 1 | 0,240 € | 0,24 € |
| SMD Diode MBRS 140 | MBRS 140 SMD | 1 | 0,160 € | 0,16 € |
| SMD Diode 1N4148 | 1N 4148 SMD | 2 | 0,020 € | 0,04 € |
| Transistor n-FET ITLL 024N SOT-223 | IRLL 024N | 1 | 0,490 € | 0,49 € |
| Optokoppler SFH615 | SFH 615A-3 | 4 | 0,290 € | 1,16 € |
| Festspannungsregler 3,3V SOT-223 MCP1703-3302 | MCP 1703-3302 | 1 | 0,900 € | 0,90 € |
| Schaltregler 5V LM2574-5.0 | LM 2574 N5 | 1 | 1,850 € | 1,85 € |
| SMD LED 1206 rot | KBT KP-3216SURC | 2 | 0,170 € | 0,34 € |
| SMD LED 1206 gelb | KBT KP-3216SYC | 1 | 0,170 € | 0,17 € |
| SMD LED 1206 grün | KBT KP-3216MGC | 1 | 0,240 € | 0,24 € |
| SMD LED 1206 blau | LED EL 1206 BL | 1 | 0,120 € | 0,12 € |
| ESP8266 ESP12F (auf eBay vermutlich günstiger) | DEBO ESP8266-12F | 1 | 6,300 € | 6,30 € |
| Summe: | 22,82 € | |||
Bilder der realen Platine
Oberseite nur SMD bestückt |
Unterseite nur SMD bestückt |
Oberseite voll bestückt |
Oberseite ESP8266 gesteckt |
Einbau in die Uhr
in der Uhr |
und angeschlossen |
Stefan's NCC-Software (NixieClockControl)
Mit der NCC-Software lassen sich eine Vielzahl von Einstellungen vornehmen.
Ich betreibe die Uhr aktuell mit den Einstellungen wie sie im nächsten Bild zu sehen sind.
Außerdem sieht man in dem Bild, dass die Uhr das NMEA Telegram "verstanden" hat :-).
Die Sensorplatine
Ergänzend zur Webinterface-Platine entstand eine kleine Sensorplatine, über die sich der vom Webinterface erzeugte Alarm per Handbewegung abschalten lässt.
Als Sensorelement dient eine Mini-Reflexlichtschranke vom Typ CNY70, die Bewegungen im Nahbereich vor der Uhr erkennt und ein entsprechendes Signal an den ESP weitergibt. Die Schaltung basiert auf einem ELV-Bauvorschlag, wurde jedoch auf ein für dieses Projekt notwendige Minimum reduziert. Neben dem CNY70 arbeitet ein Ton-Decoder vom Typ NE567, der das Empfangssignal frequenzselektiv auswertet. Durch dieses Prinzip reagiert die Schaltung weitgehend unempfindlich auf Tageslicht oder allgemeine Helligkeitsänderungen. Nur wenn die vom Sensor empfangene Frequenz mit der erzeugten Referenzfrequenz übereinstimmt, schaltet der Ausgang. Zufällige Reflexionen oder konstantes Umgebungslicht führen somit nicht zu einer Fehlauslösung.
Der Schaltplan
![]() |
Bilder der virtuellen Platine
Oberseite |
Unterseite |
Stückliste Sensorplatine
(Preise Stand: 02/2026)| Bauteil | Bestellnummer | Menge | Einzelpreis | Gesamtpreis |
|---|---|---|---|---|
| Lieferant: Reichelt | ||||
| Buchsenleiste Micromatch 4pol. RM 1,27mm | MPE 369-1-004 | 1 | 0,550 € | 0,55 € |
| Stiftwanne Micromatch 4pol. RM 1,27mm | MPE 372-1-004 | 1 | 0,250 € | 0,25 € |
| SMD Widerstand 0805 1M | SMD-0805 1,00M | 1 | 0,030 € | 0,03 € |
| SMD Widerstand 0805 47k | SMD-0805 47,0K | 2 | 0,030 € | 0,06 € |
| SMD Widerstand 0805 10k | SMD-0805 10,0K | 1 | 0,030 € | 0,03 € |
| SMD Widerstand 0805 1k | SMD-0805 1,0K | 2 | 0,030 € | 0,06 € |
| SMD Widerstand 0805 470R | SMD-0805 470 | 5 | 0,030 € | 0,15 € |
| Spindeltrimmer 50k liegend | BOU 3006P-7-503 | 1 | 1,950 € | 1,95 € |
| SMD Elko Tantal 22µ | SMD TAN.22/20 | 2 | 0,490 € | 0,98 € |
| SMD Elko Tantal 2µ2 | SMD TAN.2,2/20 | 1 | 0,200 € | 0,20 € |
| SMD Elko Tantal 1µ | SMD TAN.1,0/16 | 1 | 0,200 € | 0,20 € |
| SMD Kerko 0805 100n | X7R-G0805 100N | 2 | 0,070 € | 0,14 € |
| SMD Kerko 0805 47n | X7R-G0805 47N | 1 | 0,020 € | 0,02 € |
| SMD Kerko 0805 10n | X7R-G0805 10N | 1 | 0,020 € | 0,02 € |
| SMD Transistor pnp BC856 | BC 856A SMD | 1 | 0,020 € | 0,02 € |
| Reflexlichtschranke CNY70 | CNY 70 | 1 | 0,750 € | 0,75 € |
| SMD Tondecoder NE567 | NE 567 D SMD | 1 | 0,990 € | 0,99 € |
| SMD LED 1206 rot | KBT KP-3216SURC | 1 | 0,170 € | 0,17 € |
| Summe: | 6,57 € | |||
Bilder der realen Platine
Oberseite |
Unterseite |
|
Funktionstest vor dem Einbau |
Die Klingel
Die Klingel ist wohl das kurioseste Bauteil dieser Uhr. Zum Einsatz kommt der Zylinder eines Simson S51 Motors inklusive Kolben, der über ein Solenoid (Tauchspulenmagnet) mechanisch bewegt wird. Die Grundidee dazu stammt nicht von mir selbst, sondern aus einem YouTube-Video von FLAGconnection alias Gunter Brecher, welches mich zu dieser Umsetzung inspiriert hat:
Trotz intensiver Recherche konnte ich eindeutig nachvollziehen, wie Gunter Brecher in seinem Aufbau die Bewegung des Kolbens konkret realisiert hat und auf welche Weise dort das Abschalten des Weckers mit dem Zuhalten des Zylinderauslasses funktioniert. Im Internet finden sich zwar verschiedene Nachbauten und eigene Interpretationen dieser Idee, eine Umsetzung, die für mich technisch und konzeptionell wirklich an das Original heranreicht, konnte ich jedoch nicht entdecken. So entstand schließlich meine eigene Lösung.
Adapter für die Laufbuchse |
mit Solenoid verschraubt |
Adapterplatte für einen Mikrotaster (Licht) direkt unter dem Choke |
Anprobe noch im Holzrohbau |
Für diesen Zweck wurde der Vergaser vollständig entkernt: Sämtliche demontierbaren Bauteile wurden entfernt, Messingkomponenten ausgeschlagen und störende Elemente gezielt abgefräst, sodass nur das für den weiteren Aufbau notwendige Grundgehäuse übrig blieb. Die gesamte Verdrahtung wird quasi unsichtbar über den Ansaugstutzen durch den Vergaser in das Holzgehäuse geführt.
Um auch akustisch möglichst nah an das Original heranzukommen, habe ich zunächst die Ansteuerfrequenz aus dem Video von Gunter Brecher ermittelt.
Dazu wurde die gekürzte Tonspur in Audacity importiert und die Impulse über einen möglichst
großen Zeitraum ausgezählt.
Die Frequenz ergibt sich anschließend aus der Anzahl der Impulse dividiert durch
die betrachtete Zeitspanne:
mit Werten z.B:
Test des Ansteuerkonzeptes
Bevor ich mit der Herstellung der ESP-Platine begonnen habe, stand zunächst der obligatorische Test an,
ob das geplante Ansteuerkonzept überhaupt funktioniert.
Im Video unten erfolgt die Ansteuerung des Elektromagneten noch von Hand – später wird diese Aufgabe
ein Halbleiter (FET) übernehmen.
ESP8266-Software
Die Software im ESP8266 hat die Aufgabe, alle Komponenten miteinander zu verknüpfen. Die ESP-Platine interagiert dazu mit der Uhr, der Sensorplatine und der Klingel.
|
interaktive Demo des Webinterfaces |
Das Webinterface besteht derzeit aus vier Seiten. Je nachdem, ob der ESP mit dem Internet verbunden ist, kann der dargestellte Inhalt variieren. Im iFrame links wird der STA-Mode simuliert, also die Ansicht bei bestehender Internetverbindung. Viel Spaß beim Klicken. :-)
|
Softwarebeschreibung
Wird der ESP mit Spannung versorgt, startet die Software darin.
Bevor das Hauptprogramm in einer Endlosschleife startet, wird eine Initialisierungsroutine ausgeführt, die folgende Aufgaben übernimmt:
- Ein- und Ausgänge definieren und ggf. Pullups setzen
- Baudrate der seriellen Schnittstelle passend für den Controller der Uhr einstellen (4800 Baud 8N1)
- virtuellen EEProm im Flash prüfen -> wenn korrupt -> Werkseinstellungen wiederherstellen.
- diverse Variablen mit den Werten aus dem EEProm befüllen
- Verbindungsversuch mit den gespeicherten WLAN-Daten (SSID und Passwort)
Kann auch nach zehn Versuchen keine Verbindung mit dem gespeicherten Heimnetz hergestellt werden, wird automatisch ein eigener Access-Point (AP) gestartet.
Verbindet man sich mit diesem AP (Mobiltelefon oder PC) und gibt danach folgende Adresse in den Browser ein:
http://192.168.4.1 (Default IP Adresse des ESP im AP-Mode)
gelangt man auf das (reduzierte) Webinterface des ESPs und kann dort u.a. die Zugangsdaten seines WLANs eintragen.
Sind diese Daten gespeichert und gültig, kann sich der ESP nach einem Reboot mit dem Heimnetz verbinden.
Dieses Verhalten führt jedoch zu einem neuen Problem, etwa nach einem Spannungsausfall:
Der ESP benötigt nur Sekunden um zu booten, eine FritzBox o.ä. üblicherweise deutlich länger.
Dadurch würde der ESP nach einem Spannungsausfall dauerhaft im AP-Mode verbleiben.
In diesem Zustand kann die Uhr nicht mit der Internetzeit versorgt werden.
Daher wird der ESP automatisch alle 15 Minuten rebootet, sollte er im AP-Modus betrieben werden.
Sollte sich der ESP erfolgreich mit dem heimischen WLAN verbunden haben, synchronisiert er zunächst seine Uhrzeit und Datum und führt anschließend das Hauptprogramm aus. Darin passiert Folgendes:
- Zeitsynchronisierung mit dem NTP-Server im vorgegebenen Intervall -> derzeit alle 15 min.
- Ausgänge nach Bedarf mit vorgegebenen Impulsdauern schalten (T1, T2, µC-Reset)
- Eingänge pollen (Uhren-Buzzer und CNY-Sensor)
- Berechnung der Uptime für die Darstellung im Webinterface
- Bei Erkennung einer neuen Sekunde wird ein NMEA-RMC-Telegramm seriell übertragen
- interne Weckzeit (Alarm) überwachen
- einen anstehenden Alarm nach der eingestellten Maximalzeit deaktivieren (extern oder intern ausgelöst)
- OTA-Steuerung nach Bedarf
Die Routine zur Ansteuerung des FETs für die Klingel arbeitet ebenfalls asynchron und wird über einen Timer-Interrupt gesteuert.
WLAN- und AP-Settings
Die Eingaben werden bereits während der Konfiguration auf Plausibilität geprüft. Dazu kommt eine einfache RegEx-Validierung zum Einsatz, die typische Fehleingaben erkennen soll.
Eine vollständige Fehlererkennung ist damit bewusst nicht verbunden. Bei ungültigen oder unvollständigen Eingaben wird das jeweilige Feld visuell hervorgehoben, sodass Korrekturen direkt möglich sind.
Parametrierung der PWM-Ansteuerung
Die mechanische Grundabstimmung erfolgt über den Parameter „On Time“, der die Einschaltzeit des Magneten festlegt. Dieser Wert bleibt während eines aktiven Alarms konstant und dient primär der Anpassung an Kolben, Feder und Mechanik.
Die eigentliche Dynamik des Alarms entsteht über die Abschaltzeiten. Mit „Off Time“ wird die Grundfrequenz der Kolbenbewegung definiert, während „Off Time max“ die maximal mögliche Verlängerung im Fading festlegt.
Wie lange das Ausklingen insgesamt dauert, bestimmt „Fade Time“. Der Verlauf selbst kann über „Fading Curve“ gewählt werden. Zur Verfügung stehen lineare, quadratische, logarithmische sowie umgekehrt logarithmische Kennlinien.
Wird während des Alarms der Auslass verdeckt, beginnt das Fade. Wird die Hand zu früh entfernt, kehrt die Ansteuerung sofort zur ursprünglichen Frequenz zurück. Erst wenn der Auslass lange genug verdeckt bleibt, endet der Alarm – signalisiert durch zwei abschließende, deutlich erkennbare Kolbenbewegungen.
Über „PWM Test“ lässt sich das Verhalten unabhängig vom Weckvorgang direkt prüfen und einstellen.
External Clock-Settings
Mit „ext. Alarm“ wird festgelegt, ob der ESP auf Alarme der Nixie-Platine reagieren soll. Ist diese Funktion deaktiviert, erfolgt keine automatische Quittierung über die Optokoppler – der Alarm der Nixie-Platine arbeitet dann vollständig autark.
Wird „NMEA RMC“ deaktiviert, sendet die ESP-Platine kein NMEA-Telegram mehr. Die Uhr läuft in diesem Fall ohne Synchronisation durch den ESP weiter.



