ESP8266-01 Relais mit Website steuern

In unserem eBook für den ESP8266-01 mit Relais haben wir euch erklärt, wie ihr mit den AT befehlen und einem Serial Terminal Programm das Relais schalten könnt. Heute möchten wir euch hier zeigen, wie das mit einer Website funktioniert. Am Ende haben wir 2 Buttons mit Ein und Aus.

Legen wir los:

Wir benötigen für dieses Projekt ein ESP8266-01 mit Relais und einen entsprechenden Programmieradapter.

Damit das Relais schalten wird, müssen wir 2 Befehle an das Relais (bzw. an den Steuer-IC des Relais) senden.

A00100A1                AUS

          byte open[] = {0xA0, 0x01, 0x00, 0xA1};
          Serial.write(open, sizeof(open));

 

A00101A2                EIN

          byte close[] = {0xA0, 0x01, 0x01, 0xA2};
          Serial.write(close, sizeof(close));


Das bauen wir nun in ein Arduino-Sketch:

 

#include <ESP8266WiFi.h>

const char* ssid     = "SSID";
const char* password = "PASSWORT";

WiFiServer server(80);

void setup()
{
  Serial.begin(9600);
  Serial.println("Starten");
    delay(10);
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
    }
    server.begin();
    Serial.println("IP: ");
    Serial.println(WiFi.localIP());
}
int value = 0;
void loop(){
 WiFiClient client = server.available();
  if (client) {
    String currentLine = "";
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        if (c == '\n') {
          if (currentLine.length() == 0) {
            client.println("HTTP/1.1 200 OK");
            client.println("Content-type:text/html");
            client.println();
            client.print("Relais <a href=\"/H\">Einschalten</a><br>");
            client.print("Relais <a href=\"/L\">Ausschalten</a><br>");
            client.println();
            break;
          } else {
            currentLine = "";
          }
        } else if (c != '\r') { 
          currentLine += c;
        }
        if (currentLine.endsWith("GET /H")) {
          Serial.println("EIN");
          delay(10);
          byte close[] = {0xA0, 0x01, 0x01, 0xA2};
          Serial.write(close, sizeof(close));
        }
        if (currentLine.endsWith("GET /L")) {
          Serial.println("AUS");
          delay(10);
          byte open[] = {0xA0, 0x01, 0x00, 0xA1};
          Serial.write(open, sizeof(open));
        }
      }
    }
    client.stop();
  }
}

Wenn wir diesen Sketch nun mit richtigen WLAN-Informationen abändern und auf den ESP übertragen, kann die Website gestartet werden und das Relais geschalten werden.

Viel Spass beim Nachbauen und entwickeln eigener Projekte.

Letzter Artikel ESP8266 mit MAX6675
Neuer Artikel DHT22 Vergleich

Kommentar

Dirk Schweitzer - August 13, 2018

Mir geht es ähnlich :-(

Benjamin - August 5, 2018

Hallo,

mein ESP-01 war fix geliefert, in der Arduino IDE eingerichtet und mit obigem Beispiel geflasht. Hab mich schon gefreut, dass ich bald einen meiner Monitore fernsteuern kann.

Leider funktioniert obiges Bespiel nicht wirklich. Der ESP hat eine IP, der Webserver läuft und die Webseite ist aufrufbar.

Jedoch wird das Relais nicht geschalten… Hab ich ein kaputtes erwischt? Hab ich etwas vergessen?

Über Hilfe würde ich mich sehr freuen.

Viele Grüße,
Benjamin

Hinterlasse einen Kommentar

Kommentare müssen vor der Veröffentlichung überprüft werden

Erforderliche Angabe