600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 【物联网】基础篇 ESP8266-NodeMCU开发板的无线终端模式

【物联网】基础篇 ESP8266-NodeMCU开发板的无线终端模式

时间:2023-10-03 17:54:08

相关推荐

【物联网】基础篇 ESP8266-NodeMCU开发板的无线终端模式

大家好,我是皮皮猫吖。

每文一言:要变优秀,堵住那悠悠众口。

本篇文章:

NodeMCU作为终端接入到无线网络中,方便NodeMCU访问互联网,实现数据上传,变得非常方便。

正文如下:

无线终端模式

一、连接WiFi

ESP8266可以通过连接无线路由器,从而访问互联网。与手机,电脑联网的方式一摸一样。

1)Arduino IDE中代码实现:

/*NodeMCU无线终端模式连接WiFi本示例程序用于演示如何使用NodeMCU无线终端模式连接WiFi*/#include <ESP8266WiFi.h> // 本程序使用ESP8266WiFi库//此处的wifi名是你要连接的wifi名,家里面的wifi名const char* ssid= "FAST_0CC6";// 连接WiFi名(此处使用pipimaoya为示例)// 请将您需要连接的WiFi名填入引号中const char* password = "12345678";// 连接WiFi密码(此处使用12345678为示例)// 请将您需要连接的WiFi密码填入引号中void setup() {Serial.begin(9600); // 启动串口通讯WiFi.begin(ssid, password); // 启动网络连接Serial.print("Connecting to "); // 串口监视器输出网络连接信息Serial.print(ssid); Serial.println(" ..."); // 告知用户NodeMCU正在尝试WiFi连接int i = 0;// 这一段程序语句用于检查WiFi是否连接成功while (WiFi.status() != WL_CONNECTED) {// WiFi.status()函数的返回值是由NodeMCU的WiFi连接状态所决定的。 delay(1000); // 如果WiFi连接成功则返回值为WL_CONNECTED Serial.print(i++); Serial.print(' ');// 此处通过While循环让NodeMCU每隔一秒钟检查一次WiFi.status()函数返回值} // 同时NodeMCU将通过串口监视器输出连接时长读秒。// 这个读秒是通过变量i每隔一秒自加1来实现的。Serial.println("");// WiFi连接成功后Serial.println("Connection established!"); // NodeMCU将通过串口监视器输出"连接成功"信息。Serial.print("IP address: "); // 同时还将输出NodeMCU的IP地址。这一功能是通过调用Serial.println(WiFi.localIP()); // WiFi.localIP()函数来实现的。该函数的返回值即NodeMCU的IP地址。}void loop() {}

2)代码烧录到NodeMCU开发板中

3)烧录完成,查看Arduino IDE串口监视器内容,串口监视器无内容,按一次NodeMCU开发板RST,内容出现:

4)验证开发板是否真的连接该网络,我的电脑连接的也是该路由器,如果我的电脑和NodeMCU开发板可以通信,说明NodeMCU开发板确实连接上了WiFi。如何实现呢?

1)win+R

2)输入ping NodeMCU的IP地址(路由器分配的地址),我这里需要输入的是:ping 192.168.1.103

上图,可以看出,我的电脑可以和NodeMCU进行通信,说明NodeMCU连接到了指定的WiFi上面,NodeMCU开发板可以访问互联网了。

上面的步骤就实现了NodeMCU连接到网络。

我想到一个问题:在不同的地方,我需要连不同的WiFi。我的代码只是适合我家里面的WiFi,如果我想要在其他地方也让NodeMCU开发板联网的话,我就需要更改代码。我觉得好麻烦啊。在这里,我又找到了一种更方便的办法,开发板自动选择附近热度较强的WiFi网络连接,请看。

二、自动连接最强WiFi信号网络

1)Arduino IDE代码实现:

/*NodeMCU无线终端模式连接WiFi-2此程序将会控制NodeMCU在当前的网络环境里搜索预先存储好的WiFi。一旦找到预存的WiFi名称,NodeMCU将会使用预存的密码信息尝试连接该WiFi。如果同时找到多个预存WiFi,NodeMCU将会尝试连接信号最强的WiFi。*/#include <ESP8266WiFi.h>// 本程序使用ESP8266WiFi库#include <ESP8266WiFiMulti.h>// 本程序使用ESP8266WiFiMulti库ESP8266WiFiMulti wifiMulti;// 建立ESP8266WiFiMulti对象,对象名称是'wifiMulti'void setup() {Serial.begin(9600); // 启动串口通讯//通过addAp函数存储 WiFi名称 WiFi密码wifiMulti.addAP("FAST_5G_0CC6", "12345678"); // 这三条语句通过调用函数addAP来记录3个不同的WiFi网络信息。wifiMulti.addAP("FAST_0CC6", "87654321"); // 这2个WiFi网络名称分别是FAST_5G_0CC6, FAST_0CC6// 这2个网络的密码分别是123456789,87654321// 此处WiFi信息只是示例,请在使用时将需要连接的WiFi信息填入相应位置。// 另外这里只存储了2个WiFi信息,您可以存储更多的WiFi信息在此处。Serial.println("Connecting ..."); // 通过串口监视器输出信息告知用户NodeMCU正在尝试连接WiFiint i = 0; while (wifiMulti.run() != WL_CONNECTED) {// 此处的wifiMulti.run()是重点。通过wifiMulti.run(),NodeMCU将会在当前delay(1000); // 环境中搜索addAP函数所存储的WiFi。如果搜到多个存储的WiFi那么NodeMCUSerial.print('.'); // 将会连接信号最强的那一个WiFi信号。} // 一旦连接WiFI成功,wifiMulti.run()将会返回“WL_CONNECTED”。这也是// 此处while循环判断是否跳出循环的条件。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地址}void loop() {}

2)代码烧录到NodeMCU开发板中:

3)烧录完成,查看Arduino IDE串口监视器内容,串口监视器无内容,按一次NodeMCU开发板RST,内容出现:

4)验证开发板是否真的连接该网络,我的电脑连接的也是该路由器,如果我的电脑和NodeMCU开发板可以通信,说明NodeMCU开发板确实连接上了WiFi。如何实现呢?

1)win+R

2)输入ping NodeMCU的IP地址(路由器分配的地址),我这里需要输入的是:ping 192.168.1.103

上图,可以看出,我的电脑可以和NodeMCU进行通信,说明NodeMCU连接到了指定的WiFi上面,NodeMCU开发板可以访问互联网了。

在代码中,我们可以提前写入可能会连接到的WiFi网络的名字和密码,当NodeMCU开发板通电后,开发板自动查询WiFi网络,找到预存的WiFi信息,可以直接联网。

此次的NodeMCU无线终端模式连接网络如上就可以实现了。

参考:

http://www.taichi-/homepage/esp8266-nodemcu-iot/iot-c/station/

完结,撒花…

更多物联网知识学习,持续更新中…

作者:皮皮猫吖

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。