Elektronik_Header_3LŘftersteuerung mit ESP-01

 

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 ÔäŽ 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 sind keine PullUp-Widerst├Ąnde f├╝r die beiden I┬▓C-Leitungen vorgesehen, m├╝ssen aber angeschlossen werden, da das verwendete Breakoutboard des BH1750 diese nicht 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.

Update
Inzwischen existiert eine erwachsene Variante dieser Testschaltung mit allen notwendigen Widerst├Ąnden und vern├╝nftigen Anschlusspunkten f├╝r die externen Baugruppen. Etwas schmaler ist sie notgedrungen ebenfalls geworden.

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!


Nachtrag
Inzwischen gibt es eine auf das Wesentliche reduzierte Version dieser Platine. Sie ist in der 19er Wort-Uhr zum Einsatz gekommen.

 


Besucherzaehler

Besucher seit
25.11.2000

>