位置导航: ESP8266库 / ESP8266WebServer库 / 本页
说明
此函数主要作用是检查有没有客户端设备通过网络向ESP8266网络服务器发送请求。每一次handleClient`函数被调用时,ESP8266网络服务器都会检查一下是否有客户端发送HTTP请求。因此建议将该函数放在loop函数中,从而确保它能经常被调用。
假如loop函数里有类似delay一类的函数延迟程序运行,那么就一定要注意了。如果handleClient函数长时间得不到调用,ESP8266网络服务器会因为无法经常检查HTTP客户端请求而导致服务器响应变慢,严重的情况下,会导致服务器工作不稳定。
语法
server.handleClient()
参数
无
返回值
无
示例程序
如需进一步了解本示例程序的详细使用方法,特别是addHandler函数的功能,请参考《零基础入门学用物联网》免费视频教程中“ESP8266-NodeMCU网络服务器”部分内容。
当您将以下示例程序中的WiFi连接信息修改并且将本示例程序上传ESP8266开发板后,开发板随即会自动连接WiFi。WiFi连接成功后,您将可以从串口监视器获取当前ESP8266开发板的IP地址。此时,ESP8266已经成功建立了网络服务器。您可以通过ESP8266的IP地址来访问该网络服务器。
假设您的ESP8266开发板IP地址是192.168.0.110。那么接下来您可以通过浏览器输入该IP地址。(如下图所示)
当您在浏览器地址栏中输入IP后并按下回车,这时您将看到浏览器中显示上图所示的网页页面。该页面即是通过ESP8266所建立的。以下示例程序中,我们使用了esp8266_server.handleClient(); 语句来让ESP8266检查浏览器的请求。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
/********************************************************************** 项目名称/Project : 零基础入门学用物联网 程序名称/Program name : 3_2_1_First_Web_Server 团队/Team : 太极创客团队 / Taichi-Maker (www.taichi-maker.com) 作者/Author : CYNO朔 日期/Date(YYYYMMDD) : 20191107 程序目的/Purpose : 使用NodeMCU建立基本服务器。用户可通过浏览器使用8266的IP地址 访问8266所建立的基本网页(Hello from ESP8266) ----------------------------------------------------------------------- 修订历史/Revision History 日期/Date 作者/Author 参考号/Ref 修订说明/Revision Description ***********************************************************************/ #include <ESP8266WiFi.h> // 本程序使用 ESP8266WiFi库 #include <ESP8266WiFiMulti.h> // ESP8266WiFiMulti库 #include <ESP8266WebServer.h> // ESP8266WebServer库 ESP8266WiFiMulti wifiMulti; // 建立ESP8266WiFiMulti对象,对象名称是'wifiMulti' ESP8266WebServer esp8266_server(80);// 建立ESP8266WebServer对象,对象名称为esp8266_server // 括号中的数字是网路服务器响应http请求的端口号 // 网络服务器标准http端口号为80,因此这里使用80为端口号 void setup(void){ Serial.begin(9600); // 启动串口通讯 //通过addAp函数存储 WiFi名称 WiFi密码 wifiMulti.addAP("taichi-maker", "12345678"); // 这三条语句通过调用函数addAP来记录3个不同的WiFi网络信息。 wifiMulti.addAP("taichi-maker2", "87654321"); // 这3个WiFi网络名称分别是taichi-maker, taichi-maker2, taichi-maker3。 wifiMulti.addAP("taichi-maker3", "13572468"); // 这3个网络的密码分别是123456789,87654321,13572468。 // 此处WiFi信息只是示例,请在使用时将需要连接的WiFi信息填入相应位置。 // 另外这里只存储了3个WiFi信息,您可以存储更多的WiFi信息在此处。 int i = 0; while (wifiMulti.run() != WL_CONNECTED) { // 此处的wifiMulti.run()是重点。通过wifiMulti.run(),NodeMCU将会在当前 delay(1000); // 环境中搜索addAP函数所存储的WiFi。如果搜到多个存储的WiFi那么NodeMCU Serial.print(i++); Serial.print(' '); // 将会连接信号最强的那一个WiFi信号。 } // 一旦连接WiFI成功,wifiMulti.run()将会返回“WL_CONNECTED”。这也是 // 此处while循环判断是否跳出循环的条件。 // WiFi连接成功后将通过串口监视器输出连接成功信息 Serial.println('\n'); // WiFi连接成功后 Serial.print("Connected to "); // NodeMCU将通过串口监视器输出。 Serial.println(WiFi.SSID()); // 连接的WiFI名称 Serial.print("IP address:\t"); // 以及 Serial.println(WiFi.localIP()); // NodeMCU的IP地址 //--------"启动网络服务功能"程序部分开始-------- // 此部分为程序为本示例程序重点1 esp8266_server.begin(); // 详细讲解请参见太极创客网站《零基础入门学用物联网》 esp8266_server.on("/", handleRoot); // 第3章-第2节 ESP8266-NodeMCU网络服务器-1 esp8266_server.onNotFound(handleNotFound); //--------"启动网络服务功能"程序部分结束-------- Serial.println("HTTP esp8266_server started");// 告知用户ESP8266网络服务功能已经启动 } /* 以下函数语句为本示例程序重点3 详细讲解请参见太极创客网站《零基础入门学用物联网》 第3章-第2节 3_2_1_First_Web_Server 的说明讲解*/ void loop(void){ esp8266_server.handleClient(); // 处理http服务器访问 } /* 以下两个函数为本示例程序重点2 详细讲解请参见太极创客网站《零基础入门学用物联网》 第3章-第2节 3_2_1_First_Web_Server 的说明讲解*/ void handleRoot() { //处理网站根目录“/”的访问请求 esp8266_server.send(200, "text/plain", "Hello from ESP8266"); // NodeMCU将调用此函数。 } // 设置处理404情况的函数'handleNotFound' void handleNotFound(){ // 当浏览器请求的网络资源无法在服务器找到时, esp8266_server.send(404, "text/plain", "404: Not found"); // NodeMCU将调用此函数。 } |
相关内容
– on – 可找到资源处理配置
– onNotFound – 未找到资源处理配置
– onFileUpload – 文件上传处理配置
– addHandler – 设置请求响应回调
位置导航: ESP8266库 / ESP8266WebServer库 / 本页