Advertisement
Guest User

Untitled

a guest
Jan 20th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.05 KB | None | 0 0
  1. #include <ESP8266WiFi.h>
  2.  
  3. const char* ssid = "xxx"; //SSID aus dem Router
  4. const char* password = "1234"; //Passwort für den Zugang zum WLAN
  5.  
  6. const String htmlOK = "HTTP/1.1 200 OK";
  7. const String htmlContentType = "Content-Type: text/html";
  8. const String htmlBegin = "<!DOCTYPE HTML><html>";
  9. const String htmlLinks = "<head><link rel='stylesheet' href='http://progs.draeger-it.blog/wemosd1/d1.css'/><link rel='shortcut icon' href='http://progs.draeger-it.blog/wemosd1/favicon.ico' /></head><body>";
  10. const String htmlEnd = "</body></html>";
  11. const String htmlBreakLine = "</br>";
  12.  
  13. int ledPin = D5; //digitaler PIN 5 des Wemos D1 an welchem die LED angeschlossen ist.
  14. int ledStatus = LOW; //aktueller Status der LED (default / start -> AUS)
  15. WiFiServer server(80); //Port auf welchem der Server laufen soll.
  16.  
  17. //======================Funktion für die WLAN Verbindung====================
  18. void setup_wifi(){
  19. Serial.print("Aufbau der Verbindung zu: "); //Ausgabe der SSID auf der Seriellen Schnittstelle.
  20. Serial.println(ssid);
  21.  
  22. WiFi.begin(ssid, password); //Initialisieren der Wifi Verbindung.
  23.  
  24. while (WiFi.status() != WL_CONNECTED) { //Warten bis die Verbindung aufgebaut wurde.
  25. delay(500);
  26. //Einen Punkt auf der Seriellen Schnittstelle ausgeben so das der Benutzer erkennt dass, das Sketch noch läuft.
  27. Serial.print(".");
  28. }
  29. //Bei erfolgreicher Verbindung wird der folgende Text ausgeben.
  30. Serial.print("Mit ");
  31. Serial.print(ssid);
  32. Serial.print("erfolgreich verbunden!");
  33.  
  34. server.begin(); // Starten des Servers.
  35. Serial.println("Server gestartet"); //Ausgabe auf der Seriellen Schnittstelle das der Server gestartet wurde.
  36.  
  37. // Ausgabe der IP Adresse
  38. Serial.print("Adresse : http://");
  39. Serial.print(WiFi.localIP());
  40. Serial.println("/");
  41. }
  42. //==========================================
  43.  
  44. void setup() {
  45. Serial.begin(115200); //Baudrate für die Serielle Geschwindigkeit.
  46. delay(10); //10ms. Warten damit die Seriele Kommunikation aufgebaut wurde.
  47.  
  48. pinMode(ledPin, OUTPUT); //Den LEDPin als ausgang setzen.
  49. digitalWrite(ledPin, ledStatus); //Die LED initial auf den Status "AUS" setzen.
  50.  
  51. setup_wifi(); // Hier wird die neue Funktion aufgerufen und mit dem WLAN verbunden
  52. }
  53.  
  54. /**
  55. * Die Funktion gibt den HTML Kopf auf dem Client aus.
  56. * Dieses wird für jeden Respond verwendet.
  57. **/
  58. void printHtmlHeader(WiFiClient client){
  59. client.println(htmlOK);
  60. client.println(htmlContentType);
  61. client.println("");
  62. client.println(htmlBegin);
  63. client.println(htmlLinks);
  64. }
  65.  
  66. void loop() {
  67.  
  68. //Hier wird geprüft ob man noch mit den WLAN verbunden ist, falls nicht wird wieder ein Verbindungsversuch gestartet
  69. if (WiFi.status() != WL_CONNECTED) {
  70. delay(1);
  71. Serial.print("Vom W-LAN getrennt. Versuche neu zu verbinden...");
  72. setup_wifi();
  73. return;
  74. }
  75.  
  76. //Prüfen ob sich ein Client verbunden hat, wenn nicht die Loop "verlassen"
  77. WiFiClient client = server.available();
  78. if (!client) {
  79. return;
  80. }
  81.  
  82. // Wenn sich ein Client verbunden hat solange warten bis Daten gesendet werden.
  83. Serial.println("Neuer Client verbunden.");
  84. while(!client.available()){
  85. delay(1);
  86. }
  87.  
  88. //Lesen der Anfrage vom Client
  89. String request = client.readStringUntil('\r');
  90. Serial.println(request);
  91. client.flush();
  92.  
  93. printHtmlHeader(client);
  94.  
  95. //Ab hier wird die Webseite zusammengesetzt.
  96. client.println("<div class='mainWrapper'>");
  97. client.print("Die LED ist : ");
  98.  
  99. String value = "-undefined-";
  100.  
  101. //Die Adresse für die Bilder
  102. const String imgStartUrl = "http://progs.draeger-it.blog/wemosd1/";
  103. String imgUrl = imgStartUrl + "light_on.png";
  104.  
  105. if(ledStatus == HIGH) {
  106. value = "AN";
  107. } else {
  108. value = "AUS";
  109. imgUrl = imgStartUrl + "light_off.png";
  110. }
  111. client.print(value);
  112.  
  113. client.println(htmlBreakLine);
  114. client.println(htmlBreakLine);
  115.  
  116. client.println("<img src='"+imgUrl+"' widht='64' height='64'/>");
  117.  
  118. client.println(htmlBreakLine);
  119.  
  120. client.print("<div class='headline'>Klicke <a href=\"/toggle\">hier</a> um die LED ");
  121. client.print(value=="AN"?"aus":"an");
  122. client.print(" zuschalten.</div>");
  123. client.println("");
  124. client.println("</div>");
  125. client.println(htmlEnd);
  126.  
  127. delay(1); //1ms. Pause
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement