代码
//web界面控制板载的led灯光的开关以及打开,局域网控制;
#include <ESP8266WiFi.h>
#include<ESP8266WiFiMulti.h>
#include<ESP8266WebServer.h>
ESP8266WiFiMulti wifi_list;
ESP8266WebServer esp8266_server(80);
bool pinState;
void setup() {
//设置板载led
pinMode(LED_BUILTIN,OUTPUT);
//设定串口通讯波比率
Serial.begin(9600);
//设定需要连接的WiFi名称和密码列表可以多个;
wifi_list.addAP("wifi名称","wifi密码");
Serial.print("正在连接网络");
while (wifi_list.run()!=WL_CONNECTED)
//如果wifi_list.run()连接WiFi成功,则会返回WL_CONNECTED,也就结束了循环
{
delay(500);
Serial.print(".");
}
//WiFi连接成功后,向串口输入WiFi的名称以及IP地址
Serial.println("\n网络连接成功");
Serial.print("WIFI名称:");
Serial.println(WiFi.SSID());
Serial.print("IP地址:");
Serial.println(WiFi.localIP());
//启动网络服务
esp8266_server.begin();
esp8266_server.on("/",handleRoot);//定义网页根目录访问的函数
esp8266_server.on("/on",led_on);//定义on目录控制板载led灯打开
esp8266_server.on("/off",led_off);//定义off目录控制板载led关闭
esp8266_server.on("/led",led);//定义off目录控制板载led关闭
esp8266_server.onNotFound(handleNotFound); //页面请求不存在则请求的函数
Serial.println("HTTP esp8266_server 启动成功!");
}
void loop() {
esp8266_server.handleClient(); // 处理http服务器访问
}
void handleRoot() { //处理网站根目录“/”的访问请求
esp8266_server.send(200, "text/html", "Hello from ESP8266\nindex-YES\nLed-state:x"); // NodeMCU将调用此函数。
}
void led_on() { //打开led
digitalWrite(LED_BUILTIN,LOW);
esp8266_server.send(200, "text/html", "LED-on"); // NodeMCU将调用此函数。
}
void led_off() { //关闭led
digitalWrite(LED_BUILTIN,HIGH);
esp8266_server.send(200, "text/html", "LED-off"); // NodeMCU将调用此函数。
}
void led(){
pinState=digitalRead(LED_BUILTIN);
if (pinState==0){
//如果为LED此时的状态为打开则关掉,否则则打开led
led_off();
}
else{
//否则打开led
led_on();
Serial.println(htmlcode);
}
}
void handleNotFound(){ // 当浏览器请求的网络资源无法在服务器找到时,
esp8266_server.send(404, "text/html", "404: Not found"); // NodeMCU将调用此函数。
}