Advertisement
Seelenkind

NodeMCU ESP8266 WLAN-LED ON/OFF

Mar 2nd, 2020
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Schalte GPO0 mit Button und Java im Access Point modus  WLAN-Hotspot "astral" pass "12345678"
  2.  
  3. #include <ESP8266WiFi.h>
  4. #include <ESP8266WebServer.h>
  5.  
  6. String html1 = "<!DOCTYPE html>\r\n<html>\r\n\
  7. <head>\r\n<meta content=\"text/html; charset=ISO-8859-1\" http-equiv=\"content-type\">\r\n\
  8. <title>WebSchalter</title>\r\n\
  9. <form action=\"";
  10. // String((val)?"/1.html":"/0.html")
  11. String html2 = "\">\r\n<input value=\"ON/OFF\" style=\"";
  12. String html3 = " width:15em;height:8em; font-size: 64px;\" type=\"submit\">\
  13. </form>\r\n</head>\r\n<body>\r\n</body>\r\n</html>";
  14.  
  15. ESP8266WebServer server(80);    // Server Port  hier einstellen
  16. int val = 1;                    //Startzustand ausgeschaltet
  17. String Temp = "";
  18. int printed = 0;
  19. void Ereignis_SchalteON()       // Wird ausgefuehrt wenn "http://<ip address>/1.html" aufgerufen wurde
  20. {
  21.   val = 0;                      // Relais Aus
  22.   digitalWrite(0, val);         // GPIO0
  23.   Temp = html1 + String((val) ? "/1.html" : "/0.html");
  24.   Temp += html2 + String((val) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html3;
  25.   server.send(200, "text/html", Temp);
  26.   printed = 0;
  27. }
  28.  
  29. void Ereignis_SchalteOFF()  // Wird ausgefuehrt wenn "http://<ip address>//0.html" aufgerufen wurde
  30. {
  31.   val = 1;                      // Relais Ein
  32.   digitalWrite(0, val);         // GPIO0
  33.   Temp = html1 + String((val) ? "/1.html" : "/0.html");
  34.   Temp += html2 + String((val) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html3;
  35.   server.send(200, "text/html", Temp);
  36.   printed = 0;
  37. }
  38.  
  39. void Ereignis_Index()           // Wird ausgeuehrt wenn "http://<ip address>/" aufgerufen wurde
  40. {
  41.   Temp = html1 + String((val) ? "/1.html" : "/0.html");
  42.   Temp += html2 + String((val) ? "BACKGROUND-COLOR: DarkGray;" : "BACKGROUND-COLOR: Chartreuse;") + html3;
  43.   server.send(200, "text/html", Temp);
  44. }
  45.  
  46. void setup()
  47. {
  48.   digitalWrite(0, 1);           // Anfangszustand 1 (Relais ausgeschaltet)
  49.   pinMode(0, OUTPUT);           // GPIO0 als Ausgang konfigurieren
  50.   pinMode(2, INPUT_PULLUP);     // GPIO2 als Eingang mit Pullup konfigurieren
  51.   //attachInterrupt(digitalPinToInterrupt(2), schalter, RISING );
  52.   digitalWrite(0, 1);           // Anfangszustand 1 (Relais ausgeschaltet)
  53.  
  54.   Serial.begin(115200);         // Serielle schnittstelle initialisieren
  55.   Serial.println("");           // Lehere Zeile ausgeben
  56.   Serial.println("Starte WLAN-Hotspot \"astral\"");
  57.   WiFi.mode(WIFI_AP);           // access point modus
  58.   WiFi.softAP("astral", "12345678");    // Name des Wi-Fi netzes
  59.   delay(500);                   //Abwarten 0,5s
  60.   Serial.print("IP Adresse ");  //Ausgabe aktueller IP des Servers
  61.   Serial.println(WiFi.softAPIP());
  62.  
  63.   //  Bechandlung der Ereignissen anschlissen
  64.   server.on("/", Ereignis_Index);
  65.   server.on("/1.html", Ereignis_SchalteON);
  66.   server.on("/0.html", Ereignis_SchalteOFF);
  67.  
  68.   server.begin();               // Starte den Server
  69.   Serial.println("HTTP Server gestartet");
  70. }
  71.  
  72. void loop() {
  73.   server.handleClient();
  74.   if (!digitalRead(2))          //Wenn Taster an GPIO2 betetigt wurde
  75.   {
  76.     val = !val;                 // Schaltzuschtand andern
  77.     digitalWrite(0, val);
  78.     while (!digitalRead(2))server.handleClient(); // Warten bis der Taster losgelassen wird.
  79.   }
  80.   if ((val == 0) and (printed == 0)) {
  81.     Serial.println("Taster ON");
  82.     printed = 1;
  83.   }
  84.   if ((val == 1) and (printed == 0)) {
  85.     Serial.println("Taster OFF");
  86.     printed = 1;
  87.   }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement