...
- Arduino GUI installiert und Bibliotheken zugeführt
https://www.heise.de/ct/artikel/Arduino-IDE-installieren-und-fit-machen-fuer-ESP8266-und-ESP32-4130814.html Programm ergoogled:
https://www.instructables.com/id/ESP0101S-RELAY-MODULE-TUTORIAL/
configuriertCode Block language cpp title ESP8266_Control_Relay.ino *ORIGINAL mit bugfix* collapse true #include <ESP8266WiFi.h> const char* ssid = "HORN"; // fill in here your router or wifi SSID const char* password = "******"; // fill in here your router or wifi password #define RELAY 0 // relay connected to GPIO0 WiFiServer server(80); void setup() { Serial.begin(115200); // must be same baudrate with the Serial Monitor pinMode(RELAY,OUTPUT); digitalWrite(RELAY, LOW); // Connect to WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); // Start the server server.begin(); Serial.println("Server started"); // Print the IP address Serial.print("Use this URL to connect: "); Serial.print("http://"); Serial.print(WiFi.localIP()); Serial.println("/"); } void loop() { // Check if a client has connected WiFiClient client = server.available(); if (!client) { return; } // Wait until the client sends some data Serial.println("new client"); while(!client.available()) { delay(1); } // Read the first line of the request String request = client.readStringUntil('\r'); Serial.println(request); client.flush(); // Match the request int value = LOW; if (request.indexOf("/RELAY=ON") != -1) { Serial.println("RELAY=ON"); digitalWrite(RELAY,HIGH); value = HIGH; } if (request.indexOf("/RELAY=OFF") != -1) { Serial.println("RELAY=OFF"); digitalWrite(RELAY,LOW); value = LOW; } // Return the response client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); // this is a must client.println("<!DOCTYPE HTML>"); client.println("<html>"); client.println("<head><title>ESP8266 RELAY Control</title></head>"); client.print("Relay is now: "); if(value == LOW) { client.print("OFF"); } else { client.print("ON"); } client.println("<br><br>"); client.println("Turn <a href=\"/RELAY=OFF\">OFF</a> RELAY<br>"); client.println("Turn <a href=\"/RELAY=ON\">ON</a> RELAY<br>"); client.println("</html>"); delay(1); Serial.println("Client disonnected"); Serial.println(""); }Code Block language cpp title ESP8266_Control_Relay.ino *MEINE VERSION* collapse true #include <ESP8266WiFi.h> const char* ssid = "HORNn"; // fill in here your router or wifi SSID const char* password = "dd-EK9754"; // fill in here your router or wifi password #define RELAY 0 // relay connected to GPIO0 WiFiServer server(80); void setup() { Serial.begin(115200); // must be same baudrate with the Serial Monitor pinMode(RELAY,OUTPUT); digitalWrite(RELAY, LOW); // Connect to WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); // Start the server server.begin(); Serial.println("Server started"); // Print the IP address Serial.print("Use this URL to connect: "); Serial.print("http://"); Serial.print(WiFi.localIP()); Serial.println("/"); } void loop() { // Check if a client has connected WiFiClient client = server.available(); if (!client) { return; } // Wait until the client sends some data Serial.println("new client"); while(!client.available()) { delay(1); } // Read the first line of the request String request = client.readStringUntil('\r'); Serial.println(request); client.flush(); // Match the request int value = LOW; if (request.indexOf("/RELAY=ON") != -1) { Serial.println("RELAY=ON"); digitalWrite(RELAY,HIGH); value = HIGH; } if (request.indexOf("/RELAY=OFF") != -1) { Serial.println("RELAY=OFF"); digitalWrite(RELAY,LOW); value = LOW; } // Return the response client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); // this is a must client.println("<!DOCTYPE HTML>"); client.println("<html>"); client.println("<head><title>ESP8266 RELAY Control</title></head><body>"); client.println("<h1>ESP8266 RELAY Control</h1><I>Development version 0.0.0.1 pre alpha :-)</I><br>"); client.println("<I>© UH 02/2019</I><br><br>"); client.println("<table border=\"0\"><TR><TH bgcolor=\"#D0D0D0\">parameter</TH><TH bgcolor=\"#D0D0D0\">value</TH></TR>"); client.print("<tr><td bgcolor=\"#E0E0E0\"><I>MAC-Adresse:</I></td><td bgcolor=\"#F0F0F0\">"); client.print(WiFi.macAddress()); client.println("</td></tr>"); client.print("<tr><td bgcolor=\"#E0E0E0\"><I>IP-Adresse:</I></td><td bgcolor=\"#F0F0F0\">"); client.print(WiFi.localIP()); client.println("</td></tr>"); client.print("<tr><td bgcolor=\"#E0E0E0\"><I>Netmask:</I></td><td bgcolor=\"#F0F0F0\">"); client.print(WiFi.subnetMask()); client.println("</td></tr>"); client.print("<tr><td bgcolor=\"#E0E0E0\"><I>Gateway:</I></td><td bgcolor=\"#F0F0F0\">"); client.print(WiFi.gatewayIP()); client.println("</td></tr>"); client.print("<tr><td bgcolor=\"#E0E0E0\"><I>Status:</I></td><td bgcolor=\"#F0F0F0\">"); client.print(WiFi.status()); client.println("</td></tr></table><br><hr>"); client.print("Relay is now: "); if(value == LOW) { client.print("OFF"); } else { client.print("ON"); } client.println("<br><br>"); client.println("Turn <a href=\"/RELAY=OFF\">OFF</a> RELAY<br>"); client.println("Turn <a href=\"/RELAY=ON\">ON</a> RELAY<br>"); client.println("</body></html>"); delay(1); Serial.println("Client disonnected"); Serial.println(""); }
- festgestellt, dass die eingetragene IP im Originalcode (hier oben isses gefixt) nix zu sagen hat, da das Teil DHCP kann und auch macht - zum Glück man die Daten aber per Intuition aber erkennen kann dank
Serial.print(WiFi.localIP());
- versucht zu programmieren und dabei festgestellt, dass dem 1-EURO-Ebay-Programmier-Adapter der Taster fehlt, um in den Programmiermodus zu kommen:
versus der von mir erstandenen Version (halt ohne Taster) - Lötkolben angeworfen und fachmännisch einen Taster eingeklebt
...
Wenn man das Modul samt Chip jetzt mit gedrücktem Taster in den USB-Port steckt ist das Modul im Programmiermodus... - Programmiert - gesteckt - geht.
...
