Startseite
Erstes Hauptthema der Site
Bildergalerie und Stories
Nachbau eines Tricopters
Eigenkonstruktion eines Minatur-Quadrocopters
sNQ - Miniatur Quadrocopter mit Leiterplatten-Frame
xNQ - Miniatur-Quadrocopter mit XMega als Controller
Eigenkonstruktion eines Minatur-Hexacopters
xNH - Miniatur Hexacopter mit Leiterplatten-Frame
PET-Flasche in die Erdumlaufbahn bringen ... jedenfalls fast ;-)
Stirling-Motor Modell von Böhm-Stirling
Zweites Hauptthema der Site
Ladegeräte eben...
NC/NiMh-Lader mit ICS1702
Tipps zum Nachbau des NC2000
Bleigel-Lader und Überwinterer für Motorrad-Akkus
Programmer/Debugger für PIC 16F87x
Ideen zum Nachbau des Microchip ICD
Unterlagen zum Nachbau des Microchip ICD
Bilder meines Nachbaus des ICD und des Demo-Boards
Nachbau des Microchip ICD2
Einfache Schaltung für definiertes Entladen von NC-Akkus
Bilder des Video-Akku-Entladers
Elektronik für den Gameboy Advance
Beleuchtung mit weißen LEDs
Programmieradapter für Gameboy-Carts
Speichererweiterung für den Visor
Autoradio im Motorrad
Basteleien / Alles Mögliche ohne eigene Rubrik
Eisenbahn TT
Tipps und Tricks
Meine Mail-Adresse
Handverlesene Links auf meiner Seite zusammengefasst
Historie meiner Site

 

Besucher seit
25.11.2000

WordClock mit ESP-01

Nachdem ich mehrere WordClocks mit Arduino und ESP-12E aufgebaut hatte, kam mir die Idee, die Pin-Knappheit des ESP-01 mittels I²C-Bus zu umgehen. Der Vorschlag dazu findet sich an verschiedenen Stellen im Netz, ich habe die Ideen von Matthew Ford umgesetzt und einen kleinen Adapter entworfen, der die Anbindung des “Ambient Light Sensor BH1750” mittels I²C-Bus an den ESP-01 realisiert.

Die Schaltung ist unspektakulär und besteht aus zwei Steckern und drei Widerständen. R1 zieht den Anschluss CH_PD des ESP-01 auf High, das ist zum Betrieb des ESP notwendig. Die beiden 330 Ohm Serienwiderstände in der SDA- und SCL-Leitung sind normalerweise unnötig, es sei denn, der ESP-01 wird auch in dieser Schaltung programmiert. Dann verhindern die Widerstände schädliche Ströme zwischen Programmer und Sensor.

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

Die zugehörige Platine sieht so aus (Blick von oben auf die Stecker):

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

Rechts wird der BH1750 aufgesteckt, die Platine zeigt nach außen (nach Rechts), Pin 1 bleibt frei, das Sensor-Breakoutboard hat nur 5 Anschlüsse. Pin 1 führt das Datensignal für den LED-Stripe, Masse zwischen dem LED-Stripe und der Platine muss natürlich ebenfalls verbunden werden.

Hinweis:
In dieser einfachen Schaltung müssen keine PullUp-Widerstände für die beiden I²C -Leitungen vorgesehen werden, da das verwendete Breakoutboard des BH1750 diese bereits aufweist.

Hinweis:
Die Versorgungsspannung des LED-Stripe darf nicht für den ESP bzw. für diese Erweiterungsplatine verwendet werden, die LEDs laufen mit 5 V, der ESP verträgt maximal 3,6 V. Die anderen Komponenten in dieser Schaltung sind alle kompatibel zu der 3,3 V Versorgung des ESP, es müssen also keine Pegelwandler vorgesehen werden.

Die Versorgungsspannung (Achtung, nur 3,3 V anschließen!!) wird über zwei Drähte zugeführt, die an Pins 5 und 6 auf der Unterseite des Boards angelötet werden müssen.

GPIO0 ist noch unbenutzt und kann ggf. für das Einlesen der IR-Fernbedienung genutzt werden. Auch dieser Anschluss muss, falls gewünscht, auf der Unterseite am Pin des ESP-01-Steckers angelötet werden.

Am jetzt implementierten I²C-Bus können natürlich weitere I²C-Slaves angeschlossen werden, verifiziert habe ich das mit einem parallel zum BH1750 angeschlossenen OLED -Display. Geeignet ist z.B. auch der AT42QT1070, ein Sensor-IC aus der Atmel QTOUCH-Serie für 7-Touchsensoren. Um zusätzliche Ein- und Ausgänge zu realisieren kann auch ein Remote IO Extender for I²C, der PCF8574 von Texas Instruments eingesetzt werden. Im Netz finden sich unzählige Anwendungsbeispiele für Arduino und dieses IC. Die Anbindung an die Firmware muss dann noch umgesetzt werden, es existieren Arduino-Libraries.

Somit ist die Verwendbarkeit dieses kleinen und sehr preiswerten ESP-Derivats deutlich erweitert. Die Schaltunterlagen im EAGLE Format stelle ich zur Verfügung.

Bleibt noch zu erwähnen, dass der ESP-01 ohne einen entsprechenden Adapter nicht programmierbar und nicht betreibbar ist. Er benötigt mindestens einen PullUp-Widerstand an Pin CH_PD, dieser ist auf dem oben beschriebenen Adapter bereits vorgesehen. Weitere Widerstände und/oder Taster werden für die Programmierung benötigt, siehe dazu auch die Beschreibung zu meinem Programmier-Adpater.


Damit die Firmware “QlockWiFive” von Manuel Bracher auf dem ESP-01 läuft müssen natürlich Anpassungen durchgeführt werden. Die umfangreichste Änderung ist die Implementierung der BH1750-Klasse in einer Weise, dass die vorhandenen Routinen zur Helligkeitsanpassung auch mit diesem Sensor anstelle des ursprünglich eingesetzten LDR funktionieren.

Bei Interesse bin ich gerne bereit, den funktionierenden Code zur Verfügung zu stellen, allerdings hoffe ich, dass Manuel diese Option in seine Sourcen einbaut. Meine Version der Firmware basiert auf der Bracci-FW vom 02.09.2018, inzwischen gibt es aktuellere Stände über seine Homepage (Stand 01/2019 noch ohne meine Erweiterung für den BH1750).


Ich habe mal auf die Schnelle einen Adapter entworfen, der alle oben beschriebenen Features unterstützt, also den ESP-01 als Gehirn der WordClock, einen BH1750 als Helligkeitssensor, einen DS3231 als RealtimeClock (falls das wirklich jemand benötigen sollte) sowie einen PortExpander PCF8574 um Tasten, Piezo-Lautsprecher oder sonstige Erweiterungen anschließen zu können.

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

 

Die Platine hat die Abmessungen 76,5 x 18,5 mm und passt damit auch in sehr schmale Rahmen einer WordClock hinein.

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

Die beiden roten Leitungen sind als Brücke auf der Oberseite vorgesehen, damit kann die Platine einseitig gefertigt werden.

Wie oben bereits erwähnt, dürfte der PortExpander für das Einlesen von IR-Signalen zu langsam sein, dafür muss dann ggf. der einzig verbliebene GPIO0 des ESP-01 herangezogen werden. Der Lötanschluss dieses Signals muss dann leider direkt am Pin des Steckers erfolgen, ich habe keinen Platz gefunden um diesen Anschluss auf einen Steckkontakt zu legen (ohne die Platine dafür verbreitern zu müssen).

Wird der IO-Expander nicht benötigt, kann die Platine rechts vom Stecker für den DS3231 abgesägt werden. Wird die RTC bestückt, sitzt das Breakout Board der RTC über dem PCF8574.

Randnotiz: Der IO-Expander hat drei Adresseingänge, prinzipiell können also über den I²C-Bus bis zu acht solcher Expander angeschlossen werden, mithin also 64 IOs.

Als RTC-Modul ist diese Variante vorgesehen:

DS3231 Mini RTC-Modul

Die Ausgänge des PCF8574 sind OpenCollector-Ausgänge, benötigen also für die Erzeugung eines High-Signals einen PullUp-Widerstand. Ich habe an allen IOs diesen PullUp als SMD Bauteil der Größe 0603 vorgesehen, wird ein IO als Eingang verwendet, muss der PullUp weggelassen werden. Um die Platine nicht verbreitern zu müssen, musste der achte IO auf einen einzelnen Pin wandern.

Alle SMD-Bauteile (Rs und PCF8574) sind auf der Unterseite der Platine platziert. Der PCF8574 muss das schmale SO16-Gehäuse haben.


Hinweis:

Ich habe dieses Board nicht aufgebaut und getestet, nur das Design entworfen. Falls jemand den unbändigen Wunsch verspürt, seine WordClock mit einen ESP-01 aufbauen oder von einer Arduino-Version umrüsten zu müssen und dafür die hier vorgestellte Lösung verwendet, bitte ich um Rückmeldung, ob die Platine wie vorgesehen funktioniert. Die Schaltunterlagen im EAGLE Format stelle ich gerne zur Verfügung.

Vielen Dank!


 

>