INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Sonoff WiFi Wireless Switch per Webserver vom Tablet oder Smartphone aus schalten
03.08.2017, 12:30
Beitrag #1
Lightbulb Sonoff WiFi Wireless Switch per Webserver vom Tablet oder Smartphone aus schalten
Programmvorstellung Sonoff WIFI Relais mit Arduino IDE --> auch ausserhalb des Heimnetzes im Wochenendhaus oder bei Freunden auf der Party nutzbar

Du kannst das Sonoff Relais ganz normal im Heimnetz nutzen.
Aber auch überall sonst, wo mindestens 90V Wechselstrom zur Verfügung stehen.
Also im Urlaub, Garten, Wohnwagen oder auf ner Party.
Das Programm ist so gestaltet, das es, sollte die SSID nicht zu empfangen sein, automatisch ein eigenes Netzwerk aufbaut. Dieser sogenannte Acess Point wird mit den selben Zugangsdaten wie dein Heimnetz gestartet. Dein Smartphone verbindet sich deshalb ohne dein zutun. 192.168.4.1 Gib ausserhalb des Heimnetzes diese Adresse in deinen Browser ein. Optional kannst du im Sketch auch die vom Sonoff im Heimnetz verwendete IP eingeben, um die selbe auch ausserhalb zu verwenden. Dazu musst du die vier optionalen Zeilen im Code aktivieren und die, IP Adresse, Standartgateway und Subnetzmaske die im Heimnetz verwendet werden eingeben.
Ob du damit im Sommer deine Poolpumpe oder den Bachlauf vom Gartenteich und im Winter die Weihnachtsbaumbeleuchtung schaltest bleibt deiner Fantasie überlassen.

Die erste Programmierung erfolgt mittels eines USB to TTL Serial Adapter, der für 3.3V geeignet ist. Danach über Arduino OTA.

Anleitungen wie das Sonoff zum ersten mal zu Programmieren ist gibt es genug im Netz. Ich möchte nur noch mal explizit darauf hinweisen das beim Programmieren mit dem Ftdi Adapter das WiFi Switch vom Netz zu trennen ist.
Und im allgemeinen gilt die Anschlüsse sind von einer Fachkraft auszuführen.

               

Code:
#include <ESP8266WebServer.h>
#include <ArduinoOTA.h>

const char* ssid = "........";          //Zugangsdaten deines Routers einfügen
const char* password = "........";
// IPAddress local_ip (192, 168, 179, 52);    // optional um mit der selben IP ausserhalb des Heimnetz auf das Sonoff zugreifen zu können
// IPAddress gateway_ip (192, 168, 179, 1);   // optional kannst du hier die IP Adresse, Standartgateway und Subnetzmaske vom Heimnetz eingeben
// IPAddress subnet_ip (255, 255, 255, 0);    // optional oder auch eine beliebige IP Adresse um die Standart IP des Esp8266 zu umgehen
const int LEDPIN = 13;                // Oneboard Led Sonoff
const int RELPIN = 12;                // Oneboard Relais Sonoff
bool relState = LOW;
ESP8266WebServer server(80);

void handleRoot() {                  //Html Startseite
  if (server.hasArg("reloff")) {
    digitalWrite(LEDPIN, 1);        // LED als Zustandsanzeige
    digitalWrite(RELPIN, 0);        // Relais umschalten *aus*
    relState = LOW;
    Serial.println("Relais aus");
  }
  if (server.hasArg("relon")) {
    digitalWrite(LEDPIN, 0);        // LED als Zustandsanzeige
    digitalWrite(RELPIN, 1);        // Relais umschalten *ein*
    relState = HIGH;
    Serial.println("Relais ein");
  }
  String content = "<!DOCTYPE html><html lang='de'><head><meta charset='UTF-8'><meta name= viewport content='width=device-width, initial-scale=1.0,'>";
  content += "<title>Sonoff Switch</title>\n<style type='text/css'><!-- .button1 {height:40px; width:120px; background-color: #00FF00; font-size:16px} .button2 {height:40px; width:120px; background-color: #FE0320; font-size:16px} --></style></head>\n<body><h2>Sonoff schalten</h2><p>";
  if (relState == LOW) {
    content += " Relais ist aus<form action='/' method='POST'><input class='button1' name='relon' type='submit' value='Relais Ein'></form></body></html>";
  }
  else {
    content += " Relais ist an<form action='/' method='POST'><input class='button2' name='reloff' type='submit' value='Relais Aus'></form></body></html>";
  }
  server.send(200, "text/html", content);
}

void setup() {
  pinMode(LEDPIN, OUTPUT);
  pinMode(RELPIN, OUTPUT);
  digitalWrite(LEDPIN, HIGH);
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);                      //Stationst-Modus --> Esp8266 im Heimnetzwerk einloggen
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {   // Im Heimnetz blinkt die Led im Sonoff bis WIFI Status Verbunden ist
    digitalWrite(LEDPIN, LOW);
    delay(250);
    digitalWrite(LEDPIN, HIGH);
    delay(250);
    Serial.print(".");
    if (WiFi.status() == WL_NO_SSID_AVAIL) {  // ist die oben eingegebene SSID nicht erreichbar, wird ein eigenes NW mit den selben Zugangsdaten
      digitalWrite(LEDPIN, LOW);              // (SSID Passwort) erstellt. Dein Smartphone loggt sich dadurch automatisch ein.
      WiFi.disconnect();                      // Soft-Access-Point-Modus --> Access-Point Adresse http://192.168.4.1/
      WiFi.softAP(ssid, password);
      // WiFi.softAPConfig(local_ip, gateway_ip, subnet_ip);   // optional nur erforderlich wenn nicht die vorgegebene IP verwendet werden soll
      delay(1000);                            // Die Led im Sonoff leuchtet eine Sekunde um den AP Modus anzuzeigen.
      digitalWrite(LEDPIN, HIGH);
      break;
    }
  }
  server.on("/", handleRoot);
  server.onNotFound([]() {
    server.sendContent("HTTP/1.1 303 OK\r\nLocation: /\r\nCache-Control: no-cache\r\n\r\n");
  });
  server.begin();
  Serial.println("HTTP server started");
  ArduinoOTA.begin();                      // https://arduino-esp8266.readthedocs.io/en/latest/ota_updates/readme.html
}

void loop() {
  ArduinoOTA.handle();
  server.handleClient();
  // Füge hier deinen Code ein:
}

Viel Spass damit
Gruß Fips

Esp8266 Info
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Einfacher Webserver Nodemcu Esp8266 Onboard Led (Pin) schalten Fips 0 251 18.07.2017 08:10
Letzter Beitrag: Fips
  [Vorstellung] ESP8266 Webserver mit AJAX Tommy56 19 644 03.07.2017 12:09
Letzter Beitrag: Tommy56
  ESP im normalen Bereich oder weiter unter sonstiges? Tommy56 8 369 28.06.2017 05:38
Letzter Beitrag: Bitklopfer
  Messdatenausgabe auf Webserver über NanoESP RivaDynamite 10 1.063 10.01.2017 15:49
Letzter Beitrag: renid55
  ESP8266 ESP12-E Webserver-Frage Claus_M 8 1.256 14.11.2016 22:02
Letzter Beitrag: Claus_M
  ESP-32S WiFi Bluetooth Module Dual-Core CPU backcup 0 1.813 29.10.2016 02:13
Letzter Beitrag: backcup
  Gartenbewässerung mit Arduino und/oder ESP8766 alpenpower 6 1.245 02.09.2016 19:30
Letzter Beitrag: NetRap
  ESP8266 Webserver Programmieren HDT 11 2.159 23.08.2016 13:28
Letzter Beitrag: HDT
  ESP8266 Webserver Marc2014 0 826 30.07.2016 20:15
Letzter Beitrag: Marc2014
  Schalten mit dem ESP-Webserver und dem Purebasicprogramm und dem Arduino arduinofan 10 1.484 28.12.2015 12:16
Letzter Beitrag: Bitklopfer

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste