关于ESP8266如何接入WiFi,并搭建网络服务器
对于ESP8266首先要知道它有三种接入点模式:
STA(无线终端模式)AP(接入点模式)STA+AP(混合接入点模式)。
这里主要讲的是如何利用Ardunio把esp8266接入局域网
先把要用到的WiFi库函数加入到Ardunio中 这一步极其重要,否则程序将无法运行。点击管理库,可以在里面查找要用到的库文件。还有一种办法就是自己手动添加库的压缩包。
<ESP8266wifiMulti.h>可以通过这个库函数来添加多个WiFi,ESP8266会自动加入一个信号最强的WiFi。
<ESP8266WebServer.h>可以通过这个函数实现网络服务器的搭建。
主要代码如下:
#include <ESP8266WiFi.h>
#include <ESP8266wifiMulti.h>
#include <ESP8266WebServer.h>
ESP8266WiFiMulti wifiMulti; //新建一个ESP8266WiFiMulti的类对象wifiMulti;
ESP8266WebServer WebS(80); //新建一个ESP8266WebServer的类对象WebS
//80为http标准端口号码;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
//端口传输波特率,这里也可以为115200
WiFi.mode(WIFI_STA);
//wifi模式为无线终端模式(l另外一种模式为接入点模式AP)
wifiMulti.addAP("WIFINAME","PASSWORD");
wifiMulti.addAP("WIFINAME_1","PASSWORD_1");
//输入多个wifi账号密码,esp8266会自动连接
//当wifi未接入网的时候等待连接入网并输出数字(可在串口监视器上查看)
int i=0;
while(wifiMulti.run()!=WL_CONNECTED){
delay(1000);
Serial.print(i++);
Serial.print(' ');
}
Serial.print("\n");
Serial.print("CONNECT TO:");
Serial.println(WiFi.SSID());//输出连接上的wifi名称
Serial.print("IP address:");
Serial.println(WiFi.localIP());//输出路由器为8266生成wifi的ip地址
//===================配置网络服务=======================
WebS.begin();//表示开始配置
WebS.on("/",handRoot);
//连接入网检测到‘/’表示网站首页的连接请求,利用handRoot函数来处理
WebS.onNotFound(handNotFound);
//找不到链接的情况下(404)用handNotFound函数来处理
Serial.print("esp8266 Webserver has beign");
//串口监视器输出表示网络服务器已经成功搭建
}
//=======处理网络连接请求函数====
void handRoot(){
WebS.send(200,"text/plain","SUCCESSFUL!!!");
//200为状态码(与常见的404类似,不过一个表示成功一个表示失败)
//在网站里面输出SUCCESSFUL,“text/plain”表示向网站里面输出的信息为纯文本
}
void handNotFound(){
WebS.send(404,"text/plain","404 NOT found");
//在网站里面输出404 NOT found,表示没有成功进到esp8266的网络服务器中
}
void loop() {
// put your main code here, to run repeatedly:
WebS.handleClient();//处理http服务器访问
}