Arduino ESP8266 WEB Server
WiFiServer server(80); //<== 若連上WIFI後取得IP為10.40.4.19 則連進此WEB SERVER的方式為 10.40.4.19:80 若成功,便會在瀏覽器看到 if (client1) 該區段內容的HTML
server.begin();
WiFiClient client1 = server.available(); //這個部分是簡易的靜態網路伺服器,可連線查詢
if (client1)
{
client1.println("HTTP/1.1 200 OK");
client1.println("Content-Type: text/html");
client1.println("Connection: close");
client1.println("Refresh: 10");
client1.println();
delay(1000);
Serial.println("Home Page...");
client1.println("<!DOCTYPE html>");
client1.println("<head>\n<meta charset='UTF-8'>");
client1.println("<title>ESP8266 Temperature & Humidity DHT11 Sensor</title>");
client1.println("</head>\n<body>");
client1.println("<H2>POWER DETECT SYSTEM</H2>");
client1.println("<H3>REAL DATA SHOW...</H3>");
client1.println("<pre>"); //<==開始 放入程式變數區
client1.print("Area : ");
client1.println(WiFi.macAddress());
client1.print("Address: ");
client1.println(Addr);
client1.print("V: ");
client1.println(V, 2);
client1.print("A : ");
client1.println(A, 2);
client1.print("Hz : ");
client1.println(Hz, 2);
client1.print("PF : ");
client1.println(PF, 2);
client1.print("P : ");
client1.println(P, 2);
client1.print("KWh : ");
client1.println(Wh, 3);
client1.println("</pre>"); //<== 結束 放入程式變數區
client1.print("</body>\n</html>");
Serial.println("Home Page...End");
delay(1000);
}
//-------------------------------------------------------
//可互動網頁,回傳網頁按下的需求到Arduino
if (client3)
{
String request = client3.readStringUntil('\r');
Serial.println(request);
client3.flush();
if (request.indexOf("/Action") != -1) {
value = 1;
}
if (request.indexOf("/Reset") != -1) {
value = 2;
}
if (request.indexOf("/LCDinit") != -1) {
value = 3;
}
Serial.print("value=");
Serial.println(value);
//digitalWrite(LED, value);
client3.println("HTTP/1.1 200 OK");
client3.println("Content-Type: text/html");
client3.println("");
client3.println("");
client3.println("");
client3.print("Value is now: ");
if (value == 1)
{
client3.print("1 <br>");
}
if (value == 2)
{
client3.print("2 <br>");
client3.print("Do power reset... <br>");
delay(5000);
client3.print("power reset OK <br>");
}
if (value == 3)
{
client3.print("3 <br>");
client3.print("do LCD init <br>");
lcd.begin(16, 2);
lcd.clear();
//delay(5000);
delay(5000);
client3.print("LCD init OK <br>");
}
client3.print("<br><br>");
client3.print("Click <a href='/Action'>here</a> to do 1 Action. <br>");
client3.print("Click <a href='/Reset'>here</a> to do 2 Reset KWh. <br>");
client3.print("Click <a href='/LCDinit'>here</a> to do 3 LCD Init. <br>");
client3.print("</p><p>");
delay(1);
Serial.println("Client disonnected");
Serial.println("");
value = 1;
} |