Elektronik_Header_3LŘftersteuerung mit ESP-01

 

L├╝ftersteuerung mit ESP-01

Im Keller h├Ąngt ein Wechselrichter mit 5 kW an der Wand und wird im Sommer sch├Ân warm - so warm, dass es angeraten erscheint, einen L├╝fter zur W├Ąrmeabfuhr anzubauen.

Damit der L├╝fter nur bei Bedarf l├Ąuft, ist eine temperaturgef├╝hrte Steuerung Pflicht :-)

Da die Steuerung im Keller sitzt und ich von einem anderen Projekt noch ein paar ESP-01 Module herumliegen habe, habe ich mich entschlossen, die Steuerung damit aufzubauen und ein WEB-Interface zu programmieren, so dass ich die aktuelle Temperatur und ob der L├╝fter gerade l├Ąuft, ├╝ber WLAN abrufen kann. Die wesentlichen Parameter der Steuerung lassen sich ├╝ber das WEB-Interface ebenfalls anzeigen und ver├Ąndern, sie werden persistent ├╝ber eine EEPROM-Simulation im Flash des ESP8266 gespeichert.

Um die Temperatur und andere Informationen auch vor Ort erkennen zu k├Ânnen, bekommt die Steuerung ein OLED Display spendiert. Der L├╝fter ist ein 12V-Typ aus einem PC, versorgt wird das Ganze ├╝ber ein preiswertes 12 V LED-Netzteil.

F├╝r die Versorgung des ESP-01 wird ein Mini StepDown Wandler verwendet, der seinen Platz auf der Tr├Ągerplatine findet. Da die WLAN-Module mit ESP8266 recht stromhungrig sind, wird die 3,3 V Versorgung nach dem Schaltregler mit einem 2200 ┬ÁF Elko gepuffert, der die Stromspitzen beim Senden abf├Ąngt.

Der L├╝fter wird ├╝ber einen SMD FET geschaltet, dieser ist das einzige SMD Bauteil und sitzt somit auf der Unterseite der Platine, alle anderen Komponenten sind bedrahtet und werden von oben best├╝ckt. Die Platine ist einseitig entflochten.

Damit der ESP-01 anl├Ąuft m├╝ssen bestimmte Pins direkt nach dem Einschalten einen definierten Pegel haben:
GPIO0 muss f├╝r den Betrieb immer auf High-Potential liegen, Gleiches gilt f├╝r CH_PD. Diese beiden Anschl├╝sse des ESP-01 haben deshalb PullUps.
GPIO2 muss im Anlauf ebenfalls auf High-Potential liegen, der normalerweise an einem N-FET vorhandene PullDown zum Sperren des Transistors darf also nicht angeschlossen sein. Da der GPIO aber aktiv auf Low geschaltet wird, sobald das Programm l├Ąuft, ist der FET trotzdem zuverl├Ąssig gesperrt. Lediglich kurz nach PowerOn des ESP-01 wird der FET f├╝r einen Moment eingeschaltet, das l├Ąsst sich ohne ├Ąu├čere Beschaltung nicht ├Ąndern, h├Ąngt am Bootprozess des Microcontrollers.

ESP-01 Temperaturschalter V3.1         (Click auf das Bild f├╝r gr├Â├čere Darstellung)

Das OLED-Display wird auf der 4-poligen Buchsenleiste angesteckt und ragt ├╝ber die Platine hinaus. Der Betrieb der Steuerung ist auch ohne das Display m├Âglich.

Der fertige StepDown Spannungswandler (bei ebay nach “10 Stk Mini DC-DC Converter Step Down Module Adjustable” suchen) ist ├╝ber vier Dr├Ąhte mit der Platine verbunden, die Versorgungsspannung von 12 V wird ├╝ber den 2-poligen Schraubklemmenblock zugef├╝hrt.

ESP-01 Temperaturschalter V3.1

Die LED leuchtet, wenn der L├╝fter eingeschaltet ist.


Der ESP-01 hat normalerweise lediglich zwei frei nutzbare IOs. ├ťber einen wird der Temperatursensor per OneWire Interface angesteuert, der andere schaltet den L├╝fter.

Das OLED-Display hat ein I┬▓C Interface, ben├Âtigt also weitere zwei Anschl├╝sse am Microcontroller. Bereits bei der Proof of Concept Version meiner ESP-01 WordClock habe ich die beim ESP-01 ebenfalls vorhandenen aber mit der seriellen Schnittstelle belegten Anschl├╝sse Rx und Tx f├╝r das I┬▓C Interface verwendet, so auch hier.

Damit sind alle auf dem 8-poligen Stecker vorhandenen IOs des ESP-01 in Verwendung, einen Taster zum Einschalten des Display konnte ich also nicht mehr implementieren, dazu sp├Ąter mehr.

Hintergrund f├╝r diese Idee war die deutliche Helligkeitsabnahme der l├Ąngere Zeit eingeschalteten Pixel des OLED Display. Die L├╝ftersteuerung lief in einer ├Ąlteren Version bereits mehrere Monate, das Display war dabei immer eingeschaltet und zeigte konstant einen Text sowie die sich ├Ąndernde Temperatur an. Die statischen Texte werden jetzt dunkler dargestellt als - an anderen Stellen - neu Hinzugekommene.

Der Anschluss für den Lüfter hat drei Pins, der normale Stecker eines PC-Lüfters passt hier ohne Änderung, der Sense-Ausgang für die Drehzahlüberwachung wird nicht verwendet.

Das Board hat zwei Steckverbindungen f├╝r DS18B20 Temperatursensoren, verwendet wird im gegebenen Projekt nur einer davon.


Bei der Software habe ich mich auf den Stabilen HTTP 1.1 WLAN Webserver von Stefan Thesen verlassen und nur die dargestellten Inhalte ge├Ąndert. Zus├Ątzlich habe ich die Aufbereitung des Seiteninhalts auf einzelne client.print() Befehle umgestellt, das erscheint mir einfacher als alle Inhalte vor dem Senden in einen String zu packen.

Das Interface ist sehr minimalistisch und geradeaus programmiert:

WEB-Interface Status

Angezeigt wird die aktuell gemessene Temperatur und der Status des L├╝fters. ├ťber die Buttons ein und aus kann die Automatik ├╝bersteuert werden. In diesem Fall hat die Temperatur keinen Einfluss mehr auf den L├╝fter.

Bei Click auf den Button Einstellungen wird die Seite erweitert:

WEB-Interface Einstellungen

Hier kann die Einschalttemperatur sowie die Hysterese eingestellt werden. Dar├╝ber hinaus l├Ąsst sich das Verhalten des Display einstellen.

Wie bereits oben beschrieben ist das Derating der OLED Displays offenbar nicht vernachl├Ąssigbar, so dass ich jetzt das Display nach einer gewissen Zeit abschalte. Leider kann das Display, mangels eines freien IO, nicht mehr vor Ort an der Steuerung aktiviert werden, das passiert nur nach einem Zugriff ├╝ber das WEB Interface.


Der hinterlagerte Code liegt als Download bereit. Im Projekt wird die OLED-Library OLED_Functs.ino sowie die zugeh├Ârige Headerdatei font.h des ESP8266Basic Projekts verwendet.

Die Entwicklung und vor allem die Fehlersuche ist bei einem ESP-01 nicht sehr komfortabel, zum Programmieren muss er auf den Programmieradapter gesteckt werden, um den Code zu testen wandert er wieder auf die Zielhardware. Einfacher geht das vonstatten, verwendet man bis zur Fertigstellung des Code einen Wemos D1. ├ťber den USB-Anschluss wird das Programm deutlich schneller als beim ESP-01 ins Flash gepumpt, anschlie├čend sind Debugausgaben ├╝ber die serielle Schnittstelle m├Âglich. Der Code kann per #define auf Wemos D1 oder ESP-01 als Ziel umgeschaltet werden.

Um den Code auf den ESP-01 zu flashen ist zus├Ątzliche Hardware notwendig.

 


Besucherzaehler

Besucher seit
25.11.2000

>