ESP8266-NodeMCU开发板-------联网知识(3)
创始人
2025-05-31 14:25:25
0

目录

安装 ESP8266-NodeMCU开发板驱动

为ESP8266-NodeMCU搭建Arduino IDE开发环境

NodeMCU开发板的接入点模式

无线终端模式(Station)

连接WiFI

自动连接最强信号WiFi网络


安装 ESP8266-NodeMCU开发板驱动

3-1-1 安装 ESP8266-NodeMCU开发板驱动 – 太极创客 (taichi-maker.com)

为ESP8266-NodeMCU搭建Arduino IDE开发环境

3-1-2 为ESP8266-NodeMCU搭建Arduino IDE开发环境 – 太极创客 (taichi-maker.com)

NodeMCU开发板的接入点模式

 通过以下示例程序,NodeMCU将会建立一个名为taichi-maker的WiFI。您可以使用手机或电脑连接该WiFi从而实现与NodeMCU的网络通讯。

/*
NodeMCU接入点模式
此程序用于演示如何将NodeMCU以接入点模式工作。通过此程序,您可以使用
电脑或者手机连接NodeMCU所建立WiFi网络。网络名: taichi-maker
密码:12345678*/#include         // 本程序使用ESP8266WiFi库const char *ssid = "taichi-maker"; // 这里定义将要建立的WiFi名称。此处以"taichi-maker"为示例// 您可以将自己想要建立的WiFi名称填写入此处的双引号中const char *password = "12345678";  // 这里定义将要建立的WiFi密码。此处以12345678为示例// 您可以将自己想要使用的WiFi密码放入引号内// 如果建立的WiFi不要密码,则在双引号内不要填入任何信息void setup() {Serial.begin(9600);              // 启动串口通讯WiFi.softAP(ssid, password);     // 此语句是重点。WiFi.softAP用于启动NodeMCU的AP模式。// 括号中有两个参数,ssid是WiFi名。password是WiFi密码。// 这两个参数具体内容在setup函数之前的位置进行定义。Serial.print("Access Point: ");    // 通过串口监视器输出信息Serial.println(ssid);              // 告知用户NodeMCU所建立的WiFi名Serial.print("IP address: ");      // 以及NodeMCU的IP地址Serial.println(WiFi.softAPIP());   // 通过调用WiFi.softAPIP()可以得到NodeMCU的IP地址
}void loop() { 
}

当您将以上程序上传以后,NodeMCU在每次启动以后,都会自动启动接入点模式。接入点WiFi的详细信息会通过串口监视器输出给用户查看

上传成功后:打开串口监视器,按下复位按钮

以上截屏显示,NodeMCU所建立的WiFi名称是”taichi-maker”。“taichi-maker”只是示例WiFi名,您也可以通过修改源代码中的const char *ssid = "taichi-maker";语句来改变WiFi名称。假如您想要修改WiFi密码,可以修改const char *password = "12345678";语句。

接下来您就可以使用电脑或手机来连接NodeMCU所建立的WiFi。如下图所示:

成功连接NodeMCU所建立的WiFi后,如果您想要验证一下电脑是否可以与NodeMCU进行网络通讯,那么同样可以在Windows操作系统的“命令提示符”中输入:
ping 192.168.4.1

请注意:这里我们ping的IP地址是NodeMCU默认的接入点IP地址:192.168.4.1。这一信息在上面的 串口监视器截屏中可以看到。

下图为使用Ping指令验证成功连接NodeMCU的截屏。

成功连接NodeMCU所建立的WiFi后,如果您想要验证一下电脑是否可以与NodeMCU进行网络通讯,那么同样可以在Windows操作系统的“命令提示符”中输入:
ping 192.168.4.1

请注意:这里我们ping的IP地址是NodeMCU默认的接入点IP地址:192.168.4.1。这一信息在上面的 串口监视器截屏中可以看到。

下图为使用Ping指令验证成功连接NodeMCU的截屏。

 遗憾的是,当我们的电脑或手机连接了NodeMCU所建立的WiFi网络以后,手机和电脑是无法连接互联网的。这是因为NodeMCU建立的WiFi网络没有与互联网相互连接。这也是为什么当我们的电脑与NodeMCU建立的WiFi连接后会在任务栏的WiFi符号上看到一个惊叹号。

无线终端模式(Station)

连接WiFI

如下图所示,ESP8266可通过WiFi连接无线路由器。这与用您的手机通过WiFi连接无线路由器的模式相同。

/*
NodeMCU无线终端模式连接WiFi本示例程序用于演示如何使用NodeMCU无线终端模式连接WiFi
*/#include         // 本程序使用ESP8266WiFi库const char* ssid     = "Redmi K30S Ultra";      // 你要连接WiFi名// 请将您需要连接的WiFi名填入引号中
const char* password = "你的热点或者WIFI密码";          // 连接WiFi密码// 请将您需要连接的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() {                                   
}

在以上程序的控制下,您的NodeMCU将会连接名称是”Redmi K30S Ultra”的WiFi网络。当网络连接成功后,您可以通过串口监视器看到如下信息。其中最后一行“IP Address”信息就是NodeMCU连接WiFi以后的IP地址了。

打开串口监视器,右下角清空输出,然后按下复位键:

 如下图所示,为了确认NodeMCU的确已经联网,我们可以在Windows操作系统的“命令提示符”中输入:
ping 192.168.43.137

 当我们在“命令提示符”窗口中看到了这几条Reply from 192.168.0.106: bytes=32 ...以后,就可以确定电脑和NodeMCU可以彼此通讯了,这也就证明了NodeMCU已经成功联网。

相反,如果您的NodeMCU没有联网的话,在“命令提示符”窗口中将会看到Request timed out 信息。如下图所示。

自动连接最强信号WiFi网络

假如我们的NodeMCU只在一个地方使用,它也就只需要知道一个WiFi网络的连接信息。但是如果NodeMCU需要在多个地方使用,这时候就需要它能存储多个地点的WiFi信息。通过以下示例程序,NodeMCU可以在它所处的网络环境里搜索预先存储好的WiFi。一旦找到预存的WiFi名称,NodeMCU将会使用预存的密码信息尝试连接该WiFi。如果同时找到多个预存WiFi,NodeMCU将会尝试连接信号最强的WiFi。

以下这段示例程序将会实现这一功能。

/*
NodeMCU无线终端模式连接WiFi-2
此程序将会控制NodeMCU在当前的网络环境里搜索预先存储好的WiFi。
一旦找到预存的WiFi名称,NodeMCU将会使用预存的密码信息尝试连接该WiFi。
如果同时找到多个预存WiFi,NodeMCU将会尝试连接信号最强的WiFi。*/#include           // 本程序使用ESP8266WiFi库
#include    // 本程序使用ESP8266WiFiMulti库ESP8266WiFiMulti wifiMulti;     // 建立ESP8266WiFiMulti对象,对象名称是'wifiMulti'void setup() {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信息在此处。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() { 
}

3-1-4 NodeMCU开发板的无线终端模式 – 太极创客 (taichi-maker.com)

相关内容

热门资讯

进程间通信【Linux】 1. 进程间通信 1.1 什么是进程间通信 在 Linux 系统中,进程间通信...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
公司年会主持词范文 公司年会主...   以下是精彩的公司年会主持词范文的正文:  临近一年的结尾,年会成了一个企业、一个团队必不可少的盛...
最新或2023(历届)晚会主持...  主持人女:女士们!先生们!  主持人男:各位来宾、朋友们!  主持人女:大家!  合:晚上好!(鞠...
EL表达式JSTL标签库 EL表达式     EL:Expression Language 表达式语言     ...
超详细农村婚礼主持词 农村婚礼...   以下是超详细婚礼主持词的正文:  婚礼序曲  (在典礼正式开始前5分钟,新人和主宾都基本到齐以后...
关于婚礼主持词的开场白汇编 摄... 、尊敬的各位来宾、各位领导、女士们、先生们,大家好!金秋十月,阳光明媚,惠风送爽,欢声笑语,天赐吉祥...
经典校园文化艺术节主持人开场白...  主持人女:尊敬的各位领导、敬爱的老师!  主持人男:亲爱的同学们、各位来宾!  合:大家下午好! ...
最新或2023(历届)春晚二审...  网曝猴年春晚二审节目单 剧组辟谣:无趣(图)  今日,微博实名认证为“扒皮王”的娱乐评论人,发布了...
最新或2023(历届)有羊有马... 上联:画展春城描特色  下联:诗题羊石纪新春  上联:神骏回眸丰稔景  下联:灵羊翘首吉祥图  上联...
最新或2023(历届)鼠年春联... 上联:马蹄踊跃驰千里  下联:羊角扶摇上九霄  上联:马尾松劲承雨露  下联:羊毫妙笔点春光  上联...
最新或2023(历届)除夕跨年... 每天早晨,我都再一次提醒自己,生命短暂而美好,没时间纠结,没时间计较。只有放下那些无谓的负担,我们才...
最新或2023(历届)鼠年除夕... 最新或2023(历届)新年说说祝福大全一:过年要玩好,必须的;早餐别忘了,注意的;烟酒要减少,提醒的...
安全生产月主题标语 安全生产月... 1 强化安全基础,推动安全发展2 加强班组安全管理,弘扬企业安全文化。3 安全发展,科学发展4 事故...
建筑工地安全标语100条 建筑... 1、安全第一 预防为主2、人人讲安全 安全为人人3、人人讲安全,事事为安全;时时想安全,处处要安全 ...
交通安全警句标语 交通安全警句... 1、醉(罪)在酒中,毁(悔)在杯中。2、十次肇事九次快,莫和死神去比赛。3、文明礼让安全在,瞬间麻痹...
最新或2023(历届)跨年QQ... 【心情签名说说】 想找个坚强的理由,可诸多的疼该如何一笑而过;想有个慰藉的港口,可真正懂你的人又有几...
交通安全横幅标语,交通安全横幅... 街道办悬挂在路口的交通安全横幅标语:一人出车全家念 一人平安全家福
SpringBoot高校餐厅缴... SpringBoot高校餐厅缴费系统 帮朋友基于SpringBoot鲜花商城系统,订制...
【Spring从成神到升仙系列... 👏作者简介:大家好,我是爱敲代码的小黄,独...