WordClock V2

Die erste Version meiner selbst gebauten WordClock wurde von einem Arduino Nano V3 befeuert und funktioniert dank der Vorarbeiten der Forumsmitglieder einwandfrei.

Ich habe dann den Fehler gemacht, die Uhr herumzuzeigen, was darin mündete, dass ich weitere Wort-Uhren bauen musste, jeder der das Teil sah, wollte ebenfalls eins haben.

Da ich ziemliche Probleme mit den in der Arduino-Version verbauten Echtzeituhr-Modulen und den DCF77-Empfängern hatte, bin ich für die weiteren Ausgaben der Uhr auf die Version von Manuel Bracher (bracci) umgestiegen, die als Hirn eine NodeMCU-Platine bzw. den “ESP8266 D1 mini” einsetzt.

Da ich weiterhin die auch bei der Arduino-Version verwendeten LED-Stripes einsetzen wollte und die Front des Display aufgrund der Einschränkungen meiner CNC-Fräse nicht größer als 23 x 23 cm sein durfte, passte eine normale NodeMCU- oder D1 mini-Platine nicht ins Konzept.

Die zuerst als Alternative ins Auge gefassten ESP-01-Module sind zwar schön klein und sehr preiswert, haben aber leider keinen Analogeingang für die Helligkeitsregelung.
Bleibt zu erwähnen, dass selbst diese Winzlinge die Firmware der QlockWiFive problemlos verarbeiten, wenn die Parameter in der Firmware passend eingestellt werden. Die automatische Helligkeitsregelung ist allerdings nicht möglich, meine Versuche, den A0-Pin direkt am IC abzugreifen sind ins Leere gelaufen. Man kommt mit Hobbymitteln nicht an den Anschluss heran um dort einen Draht anzulöten.

    Aktualisierung
    Der ESP-01 kann einen I²C-Anschluss zur Verfügung stellen, über den ein passender “Ambient Light Sensor”, der BH1750, für die Helligkeitsregelung angesprochen werden kann. Somit ist die Realisierung einer WordClock mit ESP-01 ebenfalls möglich.


Um diese ESP-Module programmieren zu können, musste ich zuerst die passende Infrastruktur schaffen.

Ein Adapter von USB auf 3,3V-TTL-Signale ist im Netz zu finden (z.B. bei einem bekannten Internet-Kaufhaus mit e suchen nach ”usb ttl ftdi”, darauf achten, dass der Adapter die Möglichkeit bietet, 3,3 V Pegel an den IOs einzustellen).

Basierend auf den Schaltunterlagen von Rui Monteiro, zu finden über Netz-Suche mit “FTDI ESP8266 Definitive Wiring” auf Instructables.com, habe ich dazu einen Adapter gebaut, der die Verbindung zwischen den acht Pins eines ESP-01 und dem USB-TTL-Adapter herstellt. Sinnvolle Erweiterungen sind hierbei ein Reset-Taster sowie ein Taster um den Pin GPIO0 des ESP für die Programmierung auf LOW zu legen. Um den Programmiervorgang weiter zu vereinfachen enthält die Schaltung noch ein paar Widerstände und Kondensatoren sowie einen MOSFET Transistor. Das erlaubt der Programmiersoftware über passend angesteuerte Signale der virtuellen seriellen Schnittstelle (DTR und RTS) den für die Einleitung des Programmiervorgangs notwendigen Reset sowie das LOW-Schalten des GPIO0 automatisch zu erzeugen, wie man das von den Arduinos gewohnt ist. Die Erweiterung erlaubt außerdem die Ausgabe von Debug-Informationen über die serielle Schnittstelle.

ESP-01 - Programmer - Click für größere Auflösung         (Click auf das Bild für größere Darstellung)


Das Layout ist so ausgelegt, dass auf der linken Seite der FTDI zu TTL Konverter, auf der gegenüberliegenden Seite der ESP-01 aufgesteckt werden kann.

Das Signal RTS ist auf dem stirnseitigen Stecker des FTDI-Adapters nicht vorhanden, weswegen ich dafür die Steckbuchse PAD1 auf dem Board vorgesehen habe. Hier wird ein Kabel gesteckt, das am entsprechenden Anschluss auf dem Adapter angelötet ist.

ESP-01 - Programmer         (Click auf das Bild für größere Darstellung)

Bis auf den 100µF Kondensator und den MOSFET Transistor sind alle Bauteile normale TH-Bauteile und auf der Oberseite platziert, die beiden SMDs sitzen auf der Unterseite.

Soweit vorbereitet kann, ohne irgendwelche Tasten betätigen zu müssen, der ESP-01 aus der Arduino-IDE heraus programmiert werden. Wie die Arduino-IDE vorbereitet werden muss, um einen ESP8266 programmieren zu können, ist im Netz auf vielen Seiten ausführlich beschrieben, darauf gehe ich hier nicht ein.

Die Schaltunterlagen im EAGLE Format sind hier bereit gestellt.


Die nächst größeren ESP8266-Module am Markt, ESP-12E, sind schmal genug um in den verfügbaren Platz zu passen und stellen alle notwendigen Anschlüsse zur Verfügung, meine WordClock wird also auf einem ESP-12E basieren.

Dafür habe ich einen weiteren Adapter entworfen, der eingangsseitig pinkompatibel zum oben beschriebenen ESP-01-Adapter ist und ansonsten als Breadboard für einen ESP-12E dient, dessen IOs - soweit frei nutzbar - auf Pins geführt sind. Zusätzlich sind noch für den Betrieb des ESP-12E notwendige PullUp- und PullDown-Widerstände sowie der Spannungsteiler-Widerstand für den LDR der WordClock implemetiert.

ESP-12E-Adapter - Click für größere Auflösung            (Click auf das Bild für größere Darstellung)


Das Board ist, wie der oben beschriebene Programmieradapter, einseitig entflochten, es sind lediglich 2 Brücken notwendig. Um das Board so schmal wie möglich auslegen zu können, habe ich das Layoutsymbol des ESP-12 geändert, so dass die asymmetrisch angelegten Pads nach innen statt nach außen zeigen. Auf diese Weise konnte ich die Breite der Platine auf etwas über 20 mm beschränken, was noch in den Rahmen der WordClock hinein passt.

ESP-12E-Adapter            (Click auf das Bild für größere Darstellung)


Die vier Lötpads am oberen Rand der Platine werden bei der WordClock nicht benötigt, die hierfür benutzten Anschlüsse sind auf den Stecker links geführt - im Wesentlichen der Data-Ausgang für die LED-Stripes und der Analogeingang für den LDR. Daneben liegen hier die Anschlüsse für 3,3V, GND sowie zwei nicht verwendete GPIOs des ESP8266. Hier könnten z.B. ein Piezo-Lautsprecher und ein IR-Empfänger Anschluss finden, was aber in meiner Version der Firmware nicht berücksichtigt ist.

Programmiert wird der ESP-12E über den links zwischen den beiden Lötbrücken sitzenden 8poligen Stecker. Alle Widerstände sind SMD-Typen und sitzen auf der Unterseite der Platine.

Die Schaltunterlagen im EAGLE Format sind hier bereit gestellt.

nota bene: Für den Betrieb des ESP-12E muss GPIO15 auf HIGH und CH_PD auf LOW gelegt werden. Die entsprechenden Widerstände sind in der oben dargestellten Schaltung enthalten.


Da die WordClock mit ESP keine Bedienelemente am Gehäuse benötigt - alle Einstellungen können über das WEB-Interface vorgenommen werden - habe ich die Front ohne Löcher für die Sensor-LEDs ausgeführt, alle anderen Eigenschaften entsprechen der ersten Version mit Arduino.

Die Bedienung ist natürlich vollkommen anders, weshalb ich hier eine auf meine Firmware-Version abgestimmte Anleitung zur Verfügung stelle. Auf Funktionen, die in der Firmware prinzipiell enthalten sind und per Compiler-Schalter ein- oder ausgeschaltet werden können, in meiner Version aber nicht enthalten sind, gehe ich nicht ein.


Ich weise nochmals ausdrücklich darauf hin, dass die Firmware für meine WordClock von Manuel Bracher stammt und von mir nur für meine Zwecke angepasst wurde.


 


Besucher seit
25.11.2000

>