Hallo zusammen,
Ich beschäftige mich seit kurzem mit dem ESP8266. Ich programmiere ihn über einen Arduino Nano was soweit auch klappt.
Mein Problem ist meine unausgereifte Programmierkenntnis. Ich müsste eigentlich nur etwas ganz simples programmieren;
Eine LED, bzw. ein Schalter oder ein Signal (High) das ein Relais schaltet. Normal wäre das eigentlich auch kein Problem. Nur weiss ich nicht wie ich das über die IP des Routers optisch ausgeben kann, sodass ich einen Button habe den ich betätigen kann um das Relais zu schalten.
Kann mir da mit Code oder einer guten Seite weiterhelfen?
Hallo Diggimouse,
probier mal meinen Sketch.
Esp8266_Oneboard_Led_Toggeln
Den LEDPIN musst du vielleicht für deinen Esp8266 noch anpassen.
Gruß Fips
#include <ESP8266WebServer.h>
#include <ArduinoOTA.h>
const char* ssid = "........"; //Zugangsdaten deines Routers einfügen
const char* password = "........";
const int LEDPIN = 2; // Oneboard Led Esp8266
//const int LEDPIN = 16; // Oneboard Led Nodemcu
bool ledState = HIGH;
ESP8266WebServer server(80);
void handleRoot() { //Html Startseite
if (server.hasArg("ledoff")) {
digitalWrite(LEDPIN, 1); // LED umschalten *aus*
ledState = HIGH;
Serial.println("LED aus");
}
if (server.hasArg("ledon")) {
digitalWrite(LEDPIN, 0); // LED umschalten *ein*
ledState = LOW;
Serial.println("LED ein");
}
String content = "<!DOCTYPE html><html lang='de'><head><meta charset='UTF-8'><meta name= viewport content='width=device-width, initial-scale=1.0,' user-scalable=yes>";
content += "<title>Onboard Led</title>\r\n<style type='text/css'><!-- .button1 {height:40px; width:120px; background-color: #268FFF; font-size:16px} .button2 {height:40px; width:120px; background-color: #FE0320; font-size:16px} --></style></head>\r\n<body><h2>Onboard Led schalten
NodeMCU</h2><p>";
if (ledState == HIGH) {
content += "LED ist aus<p><form action='/' method='POST'><input class='button1' name='ledon' type='submit' value='LED Ein'></form></html>";
}
else {
content += "LED ist an<p><form action='/' method='POST'><input class='button2' name='ledoff' type='submit' value='LED Aus'></form></html>";
}
server.send(200, "text/html", content);
}
void setup(void) {
pinMode(LEDPIN, OUTPUT);
digitalWrite(LEDPIN, HIGH);
Serial.begin(250000);
WiFi.mode(WIFI_STA); //Stationst-Modus --> Esp8266 im Heimnetzwerk einloggen
WiFi.begin(ssid, password);
Serial.println("");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("SSID: ");
Serial.println(ssid);
Serial.print("Passwort: ");
Serial.println(password);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
server.on("/", handleRoot);
server.onNotFound([]() {
String header = "HTTP/1.1 303 OK\r\nLocation: /\r\nCache-Control: no-cache\r\n\r\n";
server.sendContent(header);
});
server.begin();
Serial.println("HTTP server started");
ArduinoOTA.begin(); // https://arduino-esp8266.readthedocs.io/en/latest/ota_updates/readme.html
}
void loop(void) {
ArduinoOTA.handle();
server.handleClient();
// Füge hier deinen Code ein:
}