ich wollte nun einen Sonoff, 1. Generation, mit dem gleichen Skecht wie auf dem NodeMCU Clone am laufen bringen.
aber der will nicht. So einer ist das:
https://www.google.de/imgres?imgurl=https%3A%2F%2Fimages-na.ssl-images-amazon.com%2Fimages%2FI%2F41WZIHaWhBL.jpg&imgrefurl=https%3A%2F%2Fwww.amazon.com%2FSonoff-Wireless-Remote-Switch-Automation%2Fdp%2FB01IF1H1TI&docid=lC6v-dtuR4KmOM&tbnid=utIJM1aXIVzFKM%3A&vet=10ahUKEwib4s3Q6K3ZAhUB6KQKHXVVDkgQMwhEKAcwBw..i&w=500&h=500&client=firefox-b&bih=678&biw=1280&q=sonoff&ved=0ahUKEwib4s3Q6K3ZAhUB6KQKHXVVDkgQMwhEKAcwBw&iact=mrc&uact=8
habs mit der Generic 8266 modul und mit der NodeMCU Einstellung versucht.
Hab auch jede menge Anleitungen dazu im WWW quer gelesen.
Der USB-TTL Adapter läuft, hab damit ProMinis geflashed.
auch umgeschaltet auf 3.3V.
RX/TX gedreht.
Der upload auf den Sonoff läuft auch ohne Fehlermeldung durch.
Nu weiss ich nicht weiter und brauch ich nen Tipp.
Edit:
3.3V abgeklemmt, taster gedrückt und 3.3v wieder angelegt bei gdrückten Taster um in den Flash Modus zu kommen, hab ich auch gemacht.
//https://www.arduinoforum.de/arduino-Thread-Sonoff-WiFi-Wireless-Switch-per-Webserver-vom-Tablet-oder-Smartphone-aus-schalten
#include <ESP8266mDNS.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <WiFiClient.h>
#include <WiFiClientSecure.h>
#include <WiFiServer.h>
#include <WiFiUdp.h>
#include <ESP8266WebServer.h>
#include <ArduinoOTA.h>
const char* ssid = "xxxxxxxxxxxx"; //Zugangsdaten deines Routers einfügen
const char* password = "xxxxxxxxxxxxxxxxxxx";
// IPAddress local_ip (192, 168, 178, 36); // optional um mit der selben IP ausserhalb des Heimnetz auf das Sonoff zugreifen zu können
// IPAddress gateway_ip (192, 168, 178, 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 LED1PIN = 3; // Oneboard Led Sonoff
const int LED2PIN = 2; // Oneboard Led Sonoff
const int REL1PIN = 12; // Oneboard Relais Sonoff
const int REL2PIN = 10;
bool rel1State = LOW;
bool rel2State = LOW;
ESP8266WebServer server(80);
void handleRoot() { //Html Startseite
if (server.hasArg("rel1off")) {
digitalWrite(LED1PIN, 1); // LED als Zustandsanzeige
digitalWrite(REL1PIN, 0); // Relais1 umschalten *aus*
rel1State = LOW;
Serial.println("Relais1 aus");
}
if (server.hasArg("rel2off")) {
digitalWrite(LED2PIN, 1); // LED als Zustandsanzeige
digitalWrite(REL2PIN, 0); // Relais2 umschalten *aus*
rel2State = LOW;
Serial.println("Relais2 aus");
}
if (server.hasArg("rel1on")) {
digitalWrite(LED1PIN, 0); // LED als Zustandsanzeige
digitalWrite(REL1PIN, 1); // Relais1 umschalten *ein*
rel1State = HIGH;
Serial.println("Relais1 ein");
}
if (server.hasArg("rel2on")) {
digitalWrite(LED2PIN, 0); // LED als Zustandsanzeige
digitalWrite(REL2PIN, 1); // Relais2 umschalten *ein*
rel2State = HIGH;
Serial.println("Relais2 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 Schalter</title>\n<style type='text/css'><!-- .button1 {height:40px; width:170px; background-color: #00FF00; font-size:16px} .button2 {height:40px; width:170px; background-color: #FE0320; font-size:16px} --></style></head>\n<body><h2>Sonoff Schalter 1</h2><p>";
if (rel1State == LOW) {
content += " Relais1 ist aus<form action='/' method='POST'><input class='button1' name='rel1on' type='submit' value='Relais1 Ein'></form></body></html>";
}
if (rel1State == HIGH) {
content += " Relais1 ist an<form action='/' method='POST'><input class='button2' name='rel1off' type='submit' value='Relais1 Aus'></form></body></html>";
}
content += "</title>\n<style type='text/css'><!-- .button3 {height:40px; width:170px; background-color: #00FF00; font-size:16px} .button4 {height:40px; width:170px; background-color: #FE0320; font-size:16px} --></style></head>\n<body><h2>Sonoff Schalter 2</h2><p>";
if (rel2State == LOW) {
content += " Relais2 ist aus<form action='/' method='POST'><input class='button3' name='rel2on' type='submit' value='Relais2 Ein'></form></body></html>";
}
if (rel2State == HIGH) {
content += " Relais2 ist an<form action='/' method='POST'><input class='button4' name='rel2off' type='submit' value='Relais2 Aus'></form></body></html>";
}
server.send(200, "text/html", content);
}
void setup() {
pinMode(LED1PIN, OUTPUT);
pinMode(LED2PIN, OUTPUT);
pinMode(REL1PIN, OUTPUT);
pinMode(REL2PIN, OUTPUT);
digitalWrite(LED1PIN, HIGH);
digitalWrite(LED2PIN, 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(LED1PIN, LOW);
delay(250);
digitalWrite(LED1PIN, 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(LED1PIN, 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(LED1PIN, 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:
}