#include // 本程序使用 ESP8266WiFi库 #include // ESP8266WiFiMulti库 #include // ESP8266WebServer库 ESP8266WiFiMulti wifiMulti; // 建立ESP8266WiFiMulti对象,对象名称是'wifiMulti' ESP8266WebServer esp8266_server(80);// 建立ESP8266WebServer对象,对象名称为esp8266_server // 括号中的数字是网路服务器响应http请求的端口号 // 网络服务器标准http端口号为80,因此这里使用80为端口号 void setup(void){ Serial.begin(115200); // 启动串口通讯 //通过addAp函数存储 WiFi名称 WiFi密码 wifiMulti.addAP("bmy", "lb714500"); // 这三条语句通过调用函数addAP来记录3个不同的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("/", HTTP_GET, 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将调用此函数。 }