#include <Arduino.h>
#include <WiFi.h>
#include <WiFiMulti.h>
#include <WebServer.h>
WiFiMulti wifiMulti;
WebServer ESP32_server(80);
int key;
void hanshuyi();
void hanshuer();
void hanshuLED();
void setup()
{
Serial.begin(9600);
wifiMulti.addAP("502","abcd5002");
pinMode(2,OUTPUT);
pinMode(4,OUTPUT);
int i;
while (wifiMulti.run() != WL_CONNECTED)
{
i++;
Serial.print(i);
delay(1000);
}
Serial.println("\n");
Serial.print("ADD:");
Serial.println(WiFi.SSID());
Serial.print("IP:");
Serial.println(WiFi.localIP());
//ESP32 服务器
ESP32_server.begin();
ESP32_server.on("/",HTTP_GET,hanshuyi);
//HTTP_GET 请求的方法
//浏览器每次按回车时会向服务器发送一个GIT请求
ESP32_server.on("/LED",HTTP_POST,hanshuLED);
//HTTP_POST 请求的方法
//POST 浏览器通过POST方法向服务器/LED界面发送请求时执行
//hanshuLED函数
ESP32_server.onNotFound(hanshuer);
Serial.println("OK");
}
void loop()
{
ESP32_server.handleClient();//处理http服务器访问
key=digitalRead(4);
}
//点灯函数
void hanshuLED()
{
digitalWrite(4,!digitalRead(4));
ESP32_server.sendHeader("Location","/");
//跳回根目录
// Location 位置
// "/"这个是根目录界面标志
ESP32_server.send(303);//发送303,跳转
// 303 响应状态码 跳转
}
//服务器根
void hanshuyi()
{
String cdx;
if(key==1)
{
cdx="LED HELT";
}
else
{
cdx="LED LOW";
}
ESP32_server.send(200,"text/html","<form action=\"/LED\"method=\"POST\"><div style=\"margin-left:30%;width:500px;height:500px;margin-top:10%;\"><button action=\"/LED\"method=\"POST\" style=\"background:red;width:100px;height:100px;float:left;border-radius:50%;\">open</button><button style=\"background:green;float:right;height:100px;border-radius:50%;width:100px;\">off</button></div> </form>");
// ESP32_server.send(200,"text/plain",cdx);
// ""包含的代码 没有""就是文本 action=这种是html的标记
// \"\"是html 两个""里面的代码是在html里面的代码
//200 响应状态码
//"text/plain",数据类型 纯文本
//"text/html" 文本代码
//"Hello from ESP32"信息
}
//404
void hanshuer()
{
ESP32_server.send(200,"ext/plain","404 ON");
}