Elektronik_Header_3Lüftersteuerung mit ESP-01

 

Iskra-ZĂ€hler auslesen

Mit dem Einbau unserer PV-Anlage hat auch einer der modernen, digitalen StromzĂ€hler Einzug in unser Heim gehalten und wartet seitdem darauf, dass die Daten, die er ĂŒber eine IR-LED dem interessierten Anwender zu morst, auch entgegengenommen werden.

Im Netz bekommt man fertig aufgebaute Adapter angeboten, die per Magnet auf die Schnittstelle am ZĂ€hler geheftet werden und den seriellen Datenstrom als Digitalsignal zur VerfĂŒgung stellen. Alle diese Angebote haben Eins gemeinsam, sie sind allesamt ziemlich hochpreisig angesiedelt. Schaut man sich die Innereien solch eines Adapters an oder hat man alternativ bereits eine Vorstellung davon, was sich darin befindet, kommt man ins GrĂŒbeln... und entscheidet sich spontan, den Adapter lieber selbst zu bauen.

Es existieren Mengen von BauvorschlĂ€gen fĂŒr den Eigenbau eines Adapters, an vorderster Front zu nennen ist hier Volkszaehler.org. Im Wiki Teil wird unter Hardware ein universeller IR-Adapter vorgestellt, aber auch viele andere beherzte Bastler haben ihre Bauanleitungen online gestellt.

Außerdem haben sich bereits ganze Heerscharen von Neugierigen ĂŒber die Dechiffrierung der gesendeten Daten Gedanken gemacht - erfolgreich.
Die ausfĂŒhrlich dokumentierte Analyse des SML-Telegramms (Smart Message Language) von Stefan Weigert hat mir bei meiner Umsetzung auf die SprĂŒnge geholfen.


Solchermaßen vorgebildet bin ich an das Thema herangegangen und habe eine IR-Reflexlichtschranke halbiert und den InfrarotempfĂ€nger vereinzelt. Mit einem PullUp, im einfachsten Fall dem im Microcontroller Enthaltenen, wird das positive Ende des IR-EmpfĂ€ngers HIGH vorgespannt. Bei Lichteinfall zieht er den Pegel auf LOW. Dieses Signal wird auf den RX-Eingang, den Empfangskanal der seriellen Schnittstelle, des Microcontrollers gegeben und mit der passenden Software lassen sich die gelieferten Daten auswerten.

Ich verwende zur Programmentwicklung zuerst einmal einen Arduino, spÀter wird ein ESP-01 die Daten auswerten und per WLAN weitergeben.

Um den IR-EmpfĂ€nger am ZĂ€hler zu fixieren habe ich eine einfache Halterung fĂŒr vier Magnete aus der Krabbelkiste entworfen. Gemeinhin verwenden Selbstbauer einen Ringmagneten, geschuldet wohl der Form der großen “Beilagscheibe”, die am ZĂ€hler fĂŒr die Befestigung des Adapters vorgesehen ist, aber vielleicht auch, weil die Konstruktion von VolkszĂ€hler so ausgerĂŒstet ist... wer weiß? Ich wollte keinen Ringmagneten kaufen, also habe ich vorhandenes Material verwendet. Zur Sicherheit habe ich vier der kleinen Rechteckmagnete vorgesehen, der Adapter hĂ€lt aber prima mit nur zwei Magneten.

Iskra IR-Adapter Unterseite

Die Ausschnitte passen fĂŒr Magnete 10 x 5 x 2 mm und fixieren die Magnete rastend, es ist kein Kleber notwendig.

Iskra IR-Adapter mit Deckel

Die beiden VorsprĂŒnge neben dem Loch fĂŒr das Datenkabel sollen den Kabelbinder gegen Verdrehen fixieren, der als Zugentlastung dient. Der Gedanke war hier ein mindestens vieradriges, rundes Kabel fĂŒr Sender und EmpfĂ€nger. Bei meiner einfachen Lösung mit nur dem EmpfĂ€nger habe ich das dĂŒnne, zweiadrige Kabel nicht weiter am Loch fixiert, sondern nur den eigentlichen IR-EmpfĂ€nger mit Pattex immobilisiert.

Iskra-Adapter

Iskra-Adapter mit IR-Fotodiode

Der Auswerteteil erhĂ€lt ein eigenes GehĂ€use mit OLED Display zur lokalen Anzeige der vom ZĂ€hler empfangenen Werte. Damit das OLED Display nicht frĂŒhzeitig den Heldentod durch gealterte Pixel stirbt, kommt an den letzten freien Eingang des ESP-01 ein Taster zum temporĂ€ren aktivieren des Display.

Das neue Zuhause des ESP-01 wird, wie der Adapter fĂŒr den ZĂ€hler, 3D gedruckt.

Um die passenden Maße zu erhalten musste zuerst die Platine entworfen werden, die den ESP-01, das Display, den Taster und eine passende Spannungsversorgung trĂ€gt.

Das Schaltbild des AuslesegerÀtes.

Iskra MT175 Sender         (Click auf das Bild fĂŒr grĂ¶ĂŸere Darstellung)

Die Spannungsversorgung kann wahlweise mit einem monolithischen 230 V – 3,3 V Netzteil oder mit einem StepDown Wandler, gespeist ĂŒber ein handelsĂŒbliches USB-Steckernetzteil, erfolgen. Die Netzteillösung habe ich schon frĂŒher bei der Zeitschaltuhr realisiert, der Stepdownwandler wurde bei verschiedenen Wortuhren eingesetzt (die Version mit FestwiderstĂ€nden). Beide Varianten sind auf der Platine realisiert, fĂŒr die Speisung ĂŒber USB ist eine Mini-USB Buchse vorgesehen. Diese USB-Buchse ist das einzige SMD -Bauteil und sitzt folgerichtig auf der Unterseite der Platine, alle anderen Bauteile sind TH-Elemente. Der ESP-01 und das Display sind steckbar, der Rest ist fest eingelötet.

Iskra MT175 Sender

Der Schraubanschluss X6 fĂŒr die Netzleitung entfĂ€llt wie gesagt, wenn die Schaltung mittels USB Netzteil ĂŒber die Mini-USB Buchse versorgt wird. In diesem Fall wird der Spannungswandler auf den dreifach Stecker in der Mitte der Platine aufgelötet und sitzt dann unterhalb des OLED Display. Mir ist diese Version sympathischer, man muss beim Hantieren mit der Schaltung nicht so aufpassen :)


Die fertig bestĂŒckte Platine in unterschiedlichen Ansichten.

Iskra MT175 Sender PLatine

Unter dem Display sitzt der StepDown Wandler von 5 V auf 3,3 V.

Iskra MT175 Sender

Auf der Kupferseite der Platine befindet sich nur die Mini-USB-Buchse.

Iskra MT175 Sender


Hier das fertige GehĂ€use, gedruckt mit 0,2 mm Auflösung und 20% Infill. Der ebenfalls gedruckte Taststift passt in die FĂŒhrung im Deckel und bedient den Microschalter auf der Platine. Der Stift sollte liegend gedruckt werden, damit sich die Riefen von Stift und FĂŒhrung im Deckel nicht verhaken. So flutscht der Stift ohne Probleme.

AnzeigegehÀuse

Momentan liegt das GehÀuse nur lose im Schaltschrank.

Iskra MT175 Sender eingebaut

Die Anzeige in Aktion. Rechts oben rotiert ein ASCII Propeller als AktivitÀtsanzeige. Nach 25 Sekunden wird die Anzeige ausgeschaltet, damit die Zeichen nicht einbrennen.

Iskra MT175 Sender Anzeige

Die WEB-OberflÀche ist relativ unspektakulÀr, zeigt nur drei Werte aus dem SML-Telegramm des ZÀhlers. Die Werte werden nach jeweils 5 Sekunden aktualisiert.

WEB-OberflÀche

Das kleine Dreieck zeigt nach unten, wenn Energie aus dem öffentlichen Netz entnommen wird. Wird eingespeist, zeigt das Dreieck nach oben.

Die Design Files fĂŒr den IR-Adapter und das GehĂ€use fĂŒr den Sender im Designspark mechanical Format biete ich zum Download an, ebenso die Unterlagen im EAGLE V7 Format zur Erstellung der Platine sowie das Programm fĂŒr den ESP-01.


Wie oben bereits angedeutet, habe ich das Programm zuerst auf einem Arduino zum Laufen gebracht, bevor ich den Umstieg auf einen ESP8266 in Angriff nahm. Als Startpunkt habe ich den Entwurf von slaven1337 aus dem Arduino Forum verwendet.

Nachdem ich meine drei Werte aus dem Telegramm herausgefieselt hatte, stand deren Darstellung auf dem OLED auf der ToDo Liste. Hier zeigte sich dann, dass die von slaven1337 angewandten Shift-Operationen auf 64-Bit Variablen auf einem Arduino Nano nicht funktionieren. Ich habe deshalb fĂŒr die Umwandlung der einzelnen Byte in die gewĂŒnschten long- bzw. int32-Werte Unions eingesetzt, was den Code zusĂ€tzlich deutlich verschlankt.

ErwĂ€hnung finden soll noch, dass bei meinem ZweirichtungszĂ€hler das elfte Byte in den Vergleichsstrings unterschiedliche Werte annimmt, je nach Richtung des Stromflusses, Bezug oder Einspeisung. Das 11. Byte muss also bei den Vergleichen ausmaskiert bzw. ĂŒbersprungen werden.

Ebenfalls bemerkenswert ist, dass im Arduino Umfeld zwar eine erkleckliche Anzahl von Libraries fĂŒr die Ansteuerung von OLED Displays existiert, dass ich aber nur eine einzige Lib gefunden habe, die zwei wesentliche Anforderungen aus diesem Projekt erfĂŒllt:
Ansteuerung des Display ĂŒber den IÂČC Bus auf zwei beliebigen Portpins und LauffĂ€higkeit auf einem ESP8266. Die gesuchte Lib ist U8g2 von Oliver Kraus, hier die Variante ohne Screenbuffer im RAM des Microcontrollers.

Um das Programm im eigenen WLAN anzuwenden mĂŒssen die beiden Defines

// Credentials fĂŒr das eigene WLAN
#define OwnSSID "OwnSSID"          // -->> hier die eigenen Credentials eintragen <<--
#define OwnPassword "OwnPassword"  // -->> hier die eigenen Credentials eintragen <<--

vor der Compilierung passend gesetzt werden.

Bei der Auswertung der SML Telegramme habe ich mir die Auswertung der CRC Bytes erspart. Sollte tatsĂ€chlich ein Übertragungsfehler auftreten, ist das nicht so schlimm, die Werte werden ja alle paar Sekunden erneut ĂŒbertragen.

 


Beim Aufruf dieser Funktion werden Daten an Google in USA ĂŒbermittelt. Neben Ihrer IP-Adresse wird auch die URL der besuchten Seite ĂŒbertragen.
Besucherzaehler

Besucher seit
25.11.2000