阅读原文可以访问我的个人博客

把NodeMCU连接到路由器网络上

NodeMCU可以被配置为Station模式和softAP模式或者Station + AP模式,当它被配置为Station模式时,就可以去连接Access Point(如路由器)。当它被配置为Soft Access Point模式时,其他的Station(如手机、电脑)就可以连接到它,并与它进行通信。当它被配置为Station + AP模式时,即可作为Station也可以作为Access Point。

图3-1 模块被配置为Station模式

图3-2 模块被配置为SoftAP模式

如下程序配置NodeMCU将其连接到路由器上:

 1 /*--------------------------------------------------
 2                   written by helio, 2019
 3   ConnectToWifi.ino - 串口打印NodeMCU连接到路由器WiFi
 4 名称和密码,并打印自身ip地址
 5 --------------------------------------------------*/
 6 #include "ESP8266WiFi.h"
 7
 8 void setup()
 9 {
10   Serial.begin(115200);
11   Serial.println();
12
13   WiFi.begin("CEET305", "office305");  // 设置连接到的WiFi名称和密码
14   Serial.print("Connecting...");
15
16   while (WiFi.status() != WL_CONNECTED)
17   {
18     delay(500);
19     Serial.print(".");
20   }
21
22   Serial.println();
23   Serial.print("Connected Succeful to ");
24   Serial.println(WiFi.SSID()); // 打印连接到的WiFi名称
25   Serial.print("The Password of this WiFi is:");
26   Serial.println(WiFi.psk()); // 打印连接到的WiFi的密码
27   Serial.print("IP-address is:");
28   Serial.println(WiFi.localIP()); // 打印NodeMCU的IP地址
29 }
30
31 void loop()
32 {
33
34 }

ConnectToWifi.ino解析

通过函数 WiFi.begin() 设置即将连接的WiFi名称和密码并连接到给定的WiFi。随后根据函数 WiFi.status() 的返回值判断是否连接得到WiFi上,如果此函数的返回值WL_CONNECTED 则说明已经连接到给定WiFi上,否则没有连接上,通过一个循环来等待NodeMCU连接到WiFi上。当连接成功后在串口中通过函数WiFi.SSID()打印连接到的WiFi的名称,通过函数WiFi.psk()打印连接上的WiFi的密码,同时通过函数WiFi.localIP()打印此时NodeMCU的IP地址。

程序烧录到NodeMCU中后,打开串口监视器,可以看见NodeMCU成功连接到了设置的网络中。

图3-3 NodeMCU成功连接到路由器网络

 

其他设备连接到NodeMCU上

将NodeCMCU设置为SoftAP模式时,其他设备就可以在网络中发现它,并且可以连接到它上面。通过如下程序即可将NodeMCU设置为SoftAP模式:

 1 /*-------------------------------------------------
 2              written by helio, 2019
 3   SoftAp.ino - 将NodeMCU设置为soft-AP模式(热点模式)
 4 其他设备可以连接到该热点
 5 -------------------------------------------------*/
 6 #include <ESP8266WiFi.h>
 7
 8 void setup()
 9 {
10   Serial.begin(115200);
11   Serial.println();
12   Serial.println("Setting soft_AP...");
13   if (WiFI.softAP(“NodeMCU”, “Helioi1122”))
14     Serial.println("Ready");
15   else
16     Serial.println("Failed!");
17 }
18
19 void loop()
20 {
21   Serial.printf("Stations connected = %d\n", WiFi.softAPgetStationNum());
22   delay(3000);
23 }

SoftAP.ino解析

 通过函数WiFi.softAP()设置将要设置的热点名称和密码,如果将函数的第二个参数值设置为 NULL 时,则其他设备不需要设置密码即可连接该热点,同时,根据函数的返回值判断是否创建成功,同时在串口中打印反馈信息。设置成功后在,可以通过函数WiFI.softAPgetStarion() 获知连接到其上的设备数。

打开电脑或者手机的WiFi管理界面即可发现它设置的网络。

图3-4 可以在电脑的WiFi管理中心中发现之前设置的网络

打开串口监视器,可以在看到连接到NodeMCU上的设备数量。

图3-5 串口监视器中可以查看NodeMCU设置的WiFi状态

转载于:https://www.cnblogs.com/Helio/p/10656401.html

NodeMCU学习(三) : 进入网络世界相关推荐

  1. java aio socket_java核心学习(三十三) 网络编程---AIO实现异步Socket通信

    AIO需要操作系统的支持,在linux内核2.6版本中加入了对真正异步IO的支持,java从jdk1.7开始支持AIO 核心类有AsynchronousSocketChannel .Asynchron ...

  2. 论文阅读2018-Deep Convolutional Neural Networks for breast cancer screening 重点:利用迁移学习三个网络常规化进行分类

    论文阅读2018-Deep Convolutional Neural Networks for breast cancer screening 摘要:我们探讨了迁移学习的重要性,并通过实验确定了在训练 ...

  3. 【学习笔记】元宇宙:虚实相生的网络世界

    混沌大学 2021.12.04+元宇宙:虚实相生的网络世界(问答部分补充) 原文 元宇宙的语言和趋势分析 未来已来 没有job照样work 清华女生华智冰 元宇宙必然到来 从在线到在场 大规模.远距离 ...

  4. Tensorflow实战学习(三十八)【实现估值网络】

    Q-Learning,学习Action对应期望值(Expected Utility).1989年,Watkins提出.收敛性,1992年,Watkins和Dayan共同证明.学习期望价值,从当前一步到 ...

  5. VMWare学习总结(2)——VMware中三种网络连接的区别

    1.概述 大家在安装完虚拟机后,默认安装了如下图的两块虚拟网卡--VMnet1和VMnet8,其中VMnet1是host网卡,用于host方式连接网络:VMnet8是NAT网卡,用于NAT方式连接网络 ...

  6. Azure学习笔记1.——三种网络流量分配的方法

    Azure的三种网络流量分配的方法: 一.Azure Load Balancer 1.位于OSI第4层 2.支持任何协议 3.支持的服务器端点:Azure的虚拟机和云服务角色实例 4.VNet sup ...

  7. 深度学习三巨头也成了大眼萌,这个一键转换动画电影形象的网站竟因「太火」而下线...

    机器之心报道 作者:魔王.杜伟 想不想在动画电影中拥有自己的角色?这个网站一键满足你的需求,不过竟因流量太大成本过高而下线. 近期热映的电影<花木兰>总是让人回想起 1998 年上映的同名 ...

  8. 实至名归!ACM宣布深度学习三巨头共同获得图灵奖

    昨日晚间,ACM(国际计算机学会)宣布,有"深度学习三巨头"之称的Yoshua Bengio.Yann LeCun.Geoffrey Hinton共同获得了2018年的图灵奖,这是 ...

  9. 【技术综述】图像与CNN发家简史,集齐深度学习三巨头

    文章首发于微信公众号<有三AI> [技术综述]图像与CNN发家简史,集齐深度学习三巨头 没有一个经典的发现会是突然之间横空出世,它总是需要一些积淀. 提起卷积神经网络,我们总会从LeNet ...

最新文章

  1. Spring学习系列(二) 自动化装配Bean
  2. Map存值问题的研究
  3. ansible备份mysql_ansible做mysql备份和安全加固
  4. java中的字符串_java中字符串的操作
  5. Python 函数式编程,从入门到放弃
  6. python编程入门经典-总算理解python编程入门经典教程
  7. HTML5 FileAPI读取实例---(一)
  8. tomcat 7下spring 4.x mvc集成websocket以及sockjs完全参考指南(含nginx/https支持)
  9. Mac下配置Nginx负载均衡
  10. 微软手机远程桌面使用
  11. 基于深度学习的视频质量分析 深度学习视频质量诊断 图像质量诊断
  12. linux下查看硬盘型号、大小等信息(含Raid)
  13. 优化算法之粒子群优化
  14. 支付宝支付php开发demo下载地址,tp使用支付宝接口demo
  15. Python3.7安装Geenlet
  16. EXCEL2003版无法运行2007以上版本VBA程序
  17. 记一次被“呼死你”电话骚扰的反骚扰经历
  18. security基于数据库的认证(二)
  19. 分享2022武体考研一战上岸学习心得
  20. 计算机毕业设计asp.net校园二手物品交易平台(源码+系统+mysql数据库+Lw文档)

热门文章

  1. 宏转录组方法_高级转录组分析和R语言数据可视化第十二期 (线上线下同时开课)...
  2. python绘制散点图、如何选两列作为横坐标_Python利用matplotlib绘制散点图的新手教程...
  3. mysql group 分页_【MySQL】条件查询之排序聚合分组分页查询
  4. mysql单单写join_MySQL系列之Join大法
  5. windows下搭建hadoop+eclipse开发环境
  6. Python+Opencv分水岭算法
  7. [深度学习] 自然语言处理 --- Bert开发实战 (Transformers)
  8. 探索C++的秘密之详解extern C
  9. 浏览器页面关闭事件获取及处理--onbeforeunload
  10. 第五章 随机事件及其概率