上篇文章我们详细介绍了如何用esp8266来设置wifi,今天我们来了解下如何用esp8266搭建一个web服务器,搭建的web服务器如果要与其他设备通讯,那么esp8266必须与其他设备在同一个局域网内,这里我们使用esp8266的终端模式,将其连入附近的wifi,那么同一wifi下的设备就能访问到esp8266的服务器了。
esp8266搭建服务器需要使用ESP8266WebServer,具体如何使用呢?看如下代码:
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266WebServer.h>
ESP8266WiFiMulti wifiMulti;
ESP8266WebServer esp8266_server(80);
void setup(void){
Serial.begin(9600);
wifiMulti.addAP("wifi1", "12345678");
wifiMulti.addAP("wifi2", "87654321");
wifiMulti.addAP("wifi3", "13572468");
while (wifiMulti.run() != WL_CONNECTED) {
delay(100);
}
Serial.println(WiFi.localIP());
//--------"启动网络服务功能"程序部分开始-------- //
esp8266_server.begin();
esp8266_server.on("/", handleRoot);
esp8266_server.onNotFound(handleNotFound);
//--------"启动网络服务功能"程序部分结束--------
Serial.println("HTTP esp8266_server started");// 告知用户ESP8266网络服务功能已经启动
}
void loop(void){
esp8266_server.handleClient();
}
void handleRoot() {
esp8266_server.send(200, "text/plain", "Hello from ESP8266");
}
void handleNotFound(){
esp8266_server.send(404, "text/plain", "404: Not found");
}
代码主要分为两大部分,一部分为链接wifi,一部分为建立web服务器,链接wifi部分大家可以去看这篇文章,我们这里主要讲解如何建立服务器。步骤如下:
1、引入ESP8266WebServer库。
2、利用ESP8266WebServer实例化一个esp8266_server对象,同时传入参数80,代表服务器监听80端口。
3、调用esp8266_server.begin(),开启服务器。
4、调用esp8266_server.on("/", handleRoot),分发请求,此处的handleRoot是一个函数,负责处理请求的函数。
5、esp8266_server.onNotFound(handleNotFound),分发404请求,handleNotFound是一个函数,负责处理404。
6、定义handleRoot和handleNotFound函数的具体功能。
我们看到用esp8266搭建一个web服务器与使用其他开发环境搭建web服务器基本没有多大区别,基本套路都差不太多,通常都是实例化一个webserver对象,监听端口,分发路由,定义路由函数等等。
以上便是用esp8266搭建一个简易的web服务器,希望对你有所帮助。
我是挥刀北上,下期再见。