Aus reiner Neugierde habe ich eine winzige und beinahe kostenlose ESP8266-Relaisplatine bei Aliexpress.com bestellt. Ich war mir allerdings des bevorstehenden Kampfes nicht bewusst, den ich bestehen musste, um das Ding so wie beschrieben funktionieren zu lassen. Doch ich habe überlebt und gesiegt - hier ist die Geschichte.

Von Somnath Bera

Die kleine Platine in Bild 1 wurde vom Anbieter mit einem fertigen Schaltprogramm versehen, so dass ich „nur ein Android-Handy benutzen“ musste, um das Relais zu steuern. Leider hat trotz mehrerer Versuche, verschiedene chinesisch- und englischsprachige Android-Apps zur Steuerung zu verwenden, nie etwas funktioniert! Sicher, die Schaltung wurde mit dem WLAN meines PCs oder Laptops verbunden und ihr wurde auch die dynamische IP-Adresse zugewiesen - aber danach passierte nichts mehr. Keine Serverseite oder Ähnliches öffnete sich irgendwo! Völlig frustriert beschloss ich dann, ein eigenes Programm zu entwickeln und zu installieren.

Bild 1. WLAN-Controller-Relais-Platine, wie sie bei Aliexpress gekauft wurde: Hardware simpel, Kosten niedrig, Software minimalistisch.

Auftakt

Ich habe den Schalter neu programmiert, um mich mit meinem WLAN-Router und einer festen internen IP-Adresse (192.168.1.99) sowie einem festen Port 8083 zu verbinden. Einmal verbunden, verhält sich das Board wie ein Webserver unter http://192.168.1.99:8083; der „Schalter“ war im Browser sichtbar und ließ sich durch Drücken der Ein- oder Ausschalttaste bedienen. Der besseren Bedienbarkeit halber habe ich einen Aktualisierungszähler und eine Relaisstatus-Anzeige hinzugefügt, die anzeigt, ob das Relais ein- oder ausgeschaltet ist.

Strategie

Als Nächstes habe ich auf meinem DSL-Router die Port-Weiterleitung des 8083-Ports auf den 8083-Port des Netzwerk-Teilnehmers 192.168.1.99 (also der Relaiskarte) eingerichtet. Wenn Ihr Laptop, Desktop oder Handy mit Ihrem WLAN verbunden wird, erhält das Gerät eine interne IP-Adresse, mit der sich das Gerät im Netzwerk identifiziert. Und genauso erhält Ihr DSL-Router eine IP-Adresse, wenn er mit dem Internet verbunden wird. Das ist die Adresse, die Sie kennen müssen. Sobald man diese externe IP-Adresse des Routers kennt, kann man sich von der anderen Seite des Universums aus mit dem Relais verbinden. So einfach!

Aber es gibt keinen Mangel an Problemen in Beras Elektronik-Welt. Wie soll man dort im Universum die externe IP-Adresse seines Routers erfahren? Natürlich könnten Sie Ihren Sohn/Tochter/Partner anrufen, der dann schnell auf der Admin-Seite des Routers nachschaut. Aber die externe IP-Adresse eines Routers kann sich recht häufig ändern - bis zu 10 Mal pro Tag ist keine Seltenheit. Sie bräuchten einen Diener in der Nähe des Routers, der die Admin-Seite permanent beobachtet und Sie jedes Mal informiert, wenn sich die IP ändert. Das schafft zwar einen Arbeitsplatz, ist aber sonst keine praktikable Lösung.

Aber wo es ein Problem ist, gibt es eine Lösung (zumindest in der Welt der Elektronik)! Glücklicherweise verfügen die meisten DSL-Router von Haus aus über eine eingebaute Dynamic-DNS-Tracking-Funktion. Sie geben lediglich den Namen des DNS-Hostservers, den DNS-Namen und die übrigen Autorisierungsdetails an und der Router verfolgt die Änderungen der externen Adresse selbstständig. Sie müssen sich nur den DNS-Namen merken, den Sie auf der Website des DNS-Hostservers registriert haben, und den Port, den Sie im Router weiterleiten - in meinem Fall berapi.ddns.net:8083 von noip.com (Bilder 2a und 2b).

Bild 2a. Portweiterleitung am D-Link-Modem.
Bild 2b. Dynamische DNS-Einstellung am D-Link-Modem.

Architektur

Der Basis-ESP8266 - auch ESP-01 genannt – besitzt acht Anschlüsse (Bild 3). Wenn man genau hinsieht, entdeckt man die insgesamt 32 Pins des Chips. Das bedeutet einfach, dass die anderen Anschlüsse auf der Platine dieses Herstellers nicht verwendet werden. Das 5-Volt-Relais ist über einen Schalttransistor mit dem GPIO0-Pin verbunden. Wenn GPIO0 auf Low fällt, wird das Relais betätigt; umgekehrt wird es deaktiviert, wenn GPIO0 auf High geht. Das Board besitzt einen internen 3,3-V-Spannungsregler, der problemlos 7...9 VDC an seinem VCC-Pin akzeptiert.

Bild 3. Das Basis-ESP8266 (ESP-01) mit acht auf Pins herausgeführten Anschlüssen.

Programmieren

Dies ist wirklich der einfachste Teil des Projekts. Man braucht nur einen Programmieradapter, um den Arduino-Sketch vom USB-Anschluss des Computers auf den Controller des ESP8266 zu übertragen. Ein solcher Programmieradapter ist bei Aliexpress für gut einen Euro erhältlich. Falls Sie ein Arduino-Uno-Board besitzen, können Sie sich sogar diese Ausgabe sparen. Wenn Sie nämlich den Reset-Pin an Masse anschließen, lässt sich auch das Arduino-Uno-Board als USB-to-Serial-Uploader einsetzten.

Bild 4 und Bild 5 zeigen für beide Varianten die erforderlichen Verbindungen. In beiden Fällen haben wir einen Push-to-On-Schalter hinzugefügt, der beim Hochladen des Sketches für etwa 10 s gedrückt werden muss. Danach lässt man ihn los und der Sketch wird in weiteren 60 s hochgeladen. Alle LEDs auf dem FTDI-Board blinken währenddessen.

Bild 4. Sketch-Upload mit dem FTDI-USB-to-Serial-Adapter.
Bild 5. Die Alternative: Programmieren mit einem Arduino Uno.

Programmausgang

Der zu programmierende Sketch steht als kostenloser Download auf der Projektseite zur Verfügung. Ersetzen Sie im Sketch meine WLAN-ID und mein Passwort durch Ihre WLAN-ID und Ihr Passwort und laden Sie den Sketch aus der Arduino-IDE hoch, indem Sie auf Sketch/Upload klicken.

Bild 6 zeigt die Ausgabe, wenn der Sketch hochgeladen wurde und die DDNS- und Portweiterleitung korrekt durchgeführt wurde. Durch den Aufruf dieser URL im Browserfenster, sei es auf einem Android- oder Apple-Handy, erhält man überall auf der Welt die Möglichkeit, die Stellung des Relais auf Knopfdruck zu verändern.

Bild 6. Der Mini-Relaisumschalter des Autors auf einem hauseigenen Webserver in Aktion.

Nachbereitung

Das Einzige, was bis jetzt noch zu tun bleibt, ist, die Verbindung abzusichern, sonst kann jeder, der die Switch-URL kennt, das Relais bedienen, mit eventuell fatalen Folgen. Ich weiß, dass Sie jetzt anfangen werden, dies zu erforschen. Viel Glück!

 

Stückliste und Preise

Preise von Aliexpress.com zum Zeitpunkt der Texterstellung.

FTDI-USB-to-Serial, CD2120: 1,10 € (optional)

WiFi ESP8266 Relais: 1,01 €

Gesamtsumme: 2,11 € (ohne 5-V-Netzteil)


 

Wollen Sie weitere Elektor-Artikel lesen? Jetzt Elektor-Mitglied werden und nichts verpassen!