ESP8266 Arduino开发之路(2)— 连接到无线WiFi路由器

一、前言

ESP8266可以通过WiFi连接到无线路由器,这种方式和手机通过WiFi连接无线路由器的模式是相同的,我们称该模式为无线终端模式(Wireless Station),即STA工作模式。
参考自:NodeMCU开发板的无线终端模式

二、编写程序

编写程序如下所示

/*ESP8266-NodeMCU无线终端模式连接WiFi
*/#include <ESP8266WiFi.h>                        // 本程序使用ESP8266WiFi库const char* ssid     = "SixLab";                // 需要连接到的WiFi名
const char* password = "sixlab123";             // 连接的WiFi密码void setup() {Serial.begin(115200);                         // 初始化串口通讯波特率为115200WiFi.mode(WIFI_STA);                          // 设置Wifi工作模式为STA,默认为AP+STA模式WiFi.begin(ssid, password);                   // 通过wifi名和密码连接到WifiSerial.print("\r\nConnecting to ");           // 串口监视器输出网络连接信息Serial.print(ssid); Serial.println(" ...");   // 显示NodeMCU正在尝试WiFi连接int i = 0;                                    // 检查WiFi是否连接成功while (WiFi.status() != WL_CONNECTED)         // WiFi.status()函数的返回值是由NodeMCU的WiFi连接状态所决定的。 {                                             // 如果WiFi连接成功则返回值为WL_CONNECTEDdelay(1000);                                // 此处通过While循环让NodeMCU每隔一秒钟检查一次WiFi.status()函数返回值Serial.print("waiting for ");                          Serial.print(i++); Serial.println("s...");       }                                             Serial.println("");                           // WiFi连接成功后Serial.println("WiFi connected!");            // NodeMCU将通过串口监视器输出"连接成功"信息。Serial.print("IP address: ");                 // 同时还将输出NodeMCU的IP地址。这一功能是通过调用Serial.println(WiFi.localIP());               // WiFi.localIP()函数来实现的。该函数的返回值即NodeMCU的IP地址。
}void loop() {}

三、烧录实现

编译烧录到开发板,打开串口助手可以看到打印连接成功信息

然后我们可以尝试通过ping来检查esp8266确实连接到网络,如下所示,NodeMCU成功的对我们的ping指令做出应答,这样就可以确定当前NodeMCU已经成功连接WiFi了。

四、自动连接最强WiFi信号

我们可以通过编程让NodeMCU在它所处的网络环境里搜索预先存储好的WiFi,一旦找到预存的WiFi名称,NodeMCU将会使用预存的密码信息尝试连接该WiFi,如果同时找到多个预存WiFi,NodeMCU将会尝试连接信号最强的WiFi。编写程序如下所示

/*ESP8266-NodeMCU无线终端模式连接WiFiNodeMCU会使用预存的密码信息尝试连接WiFi, 如果同时找到多个预存WiFi,NodeMCU将会尝试连接信号最强的WiFi。
*/#include <ESP8266WiFi.h>                        // 本程序使用ESP8266WiFi库
#include <ESP8266WiFiMulti.h>                   // 预存多个WiFi需要使用ESP8266WiFiMulti wifiMulti;                     // 新建ESP8266WiFiMulti对象,对象名称是'wifiMulti'void setup() {Serial.begin(115200);                         // 初始化串口通讯波特率为115200/* 通过addAP函数添加需要存储的WiFi名称和密码 */wifiMulti.addAP("SixLab", "sixlab123");wifiMulti.addAP("SixLab1", "sixlab1234");wifiMulti.addAP("SixLab2", "sixlab1235");/* 可以添加更多的addAP函数来存储更多的WIFI连接信息 */WiFi.mode(WIFI_STA);                          // 设置Wifi工作模式为STA,默认为AP+STA模式Serial.println("\r\nConnecting to WiFi...");  // 串口监视器输出正在连接网络int i = 0;                                    // 检查WiFi是否连接成功while (wifiMulti.run() != WL_CONNECTED)       // 通过wifiMulti.run(),NodeMCU将会在当前环境中搜索addAP函数所存储的WiFi。{                                             // 如果搜到多个存储的WiFi那么NodeMCU将会连接信号最强的那一个WiFi信号。delay(100);                                 // 一旦连接WiFI成功,wifiMulti.run()将会返回“WL_CONNECTED”。Serial.print("waiting for ");                          Serial.print(i++); Serial.println(" times...");       }                                             Serial.println('\n');                         // WiFi连接成功后Serial.print("Connected to ");                // NodeMCU通过串口监视器输出连接的WiFI名称Serial.println(WiFi.SSID());Serial.print("IP address:\t");                // NodeMCU的IP地址Serial.println(WiFi.localIP());
}void loop() {}

编译烧录到开发板,运行如下所示

五、附录

上一篇:ESP8266 Arduino开发之路(1)— 搭建开发环境并点亮LED
下一篇:ESP8266 Arduino开发之路(3)— 作为TCP客户端连接到服务器

ESP8266 Arduino开发之路(2)— 连接到无线WiFi路由器相关推荐

  1. ESP32 Arduino开发之路(2)— 使用PWM实现LED呼吸灯

    ESP32 Arduino开发之路(2)- 使用PWM实现LED呼吸灯 一.前言 在ESP32上有一个LEDC外设模块专用于输出PWM波形,其介绍如下所示: 参考文章:在 ESP32 上使用 LEDC ...

  2. 使用Arduino开发ESP32-CAM系列1——连接ESP32-CAM,esp32-cam串口连接不上

    注:我买的开发板有大坑!如果有遇到esp32-cam串口连接不上或者esp32-cam串口不显示的童鞋可以参考参考. 开发环境:Arduino + ESP32库 附加开发板管理网址:https://d ...

  3. ESP8266 arduino开发 esp8266开启AP模式

    本文档为个人博客文档系统的备份版本.作者:小游.作者博客:点击访问 #include <ESP8266WiFi.h> // 设置热点的名字 #define AP_SSID "XI ...

  4. 「雕爷学编程」Arduino动手做(33)——ESP-01S无线WIFI模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...

  5. ESP32系列音频开发板方案,智能音箱无线WiFi技术升级应用

    移动互联网发展至今,视频及直播已成为主流传播方式.短视频及电商直播进一步黏合人们的碎片化时间,用户渗透率高达90.4%,视频的电商转化率也升至72%,各场景使用比例全线增长. 而相关硬件支持的智能音频 ...

  6. 360无线wifi路由器连接到服务器,360PI无线路由器怎么联接无线+有线?

    工具/原料 猫 无线路由 网线 猫和路由器的连接 1.首先我们需要把猫和无线路由连接到一起.网线首先一段连载猫上的lan,另一端连接到无线路由上的wan上面就可以了. 2.我的电脑系统xp,就以xp为 ...

  7. 【转】Android 手机连接台式电脑无线 Wi-Fi 上网

    为什么80%的码农都做不了架构师?>>>    小编的笔记本电脑不知道是什么原因无法连接隐藏 ssid 的 Wi-Fi  , 小编的手机 (Samsung Galaxy A3009) ...

  8. Ubuntu下有线连接开无线WIFI的3种方式

    2019独角兽企业重金招聘Python工程师标准>>> 原文链接: http://ubuntuhandbook.org/index.php/2014/09/3-ways-create ...

  9. 树莓派安装c语言IDE,树莓派安装 Arduino IDE 进行 Arduino 开发

    Arduino 与 树莓派是 Maker 们创作的两大利器.在接触树莓派之前,我们通常是在 PC 上安装 Arduino 的 IDE 进行 Arduino 开发,而今有了树莓派,PC 的在 Ardui ...

最新文章

  1. es获取最大时间的记录_ES查询一段时间内某一循环时间段的数据
  2. Agile Development
  3. 10、springboot之集成druid
  4. 【mathematical statistics】4 hypothesis testing
  5. 近期GitHub上最热门的开源项目(附链接)
  6. 今天的出了校门的即时通讯
  7. 一个数据库管理员的自我救赎之路
  8. fullpage.js(cndjs)
  9. BERT模型实战之多文本分类(附源码)
  10. [周榜单]极乐小程序榜单(第十一期)
  11. 第一个Spring冲刺周期团队进展报告
  12. Win10 专业版激活!
  13. 机器学习、神经网络、深度学习区别
  14. Hive: Reflect UDF
  15. Android实现获取未接来电和未读短信数量的方法
  16. 日落潭照树,川明风动花。
  17. 内网DNS报错:** server can‘t find ns1.aaa.com: SERVFAIL
  18. 2019计算机考研试卷难度,2019考研:计算机统考408院校及难度分析
  19. 文章标题ffmpeg文档37-视频滤镜
  20. 2023 年值得推荐的 Vue 库

热门文章

  1. clickhouse 生产集群部署之坑坑洼洼(二)
  2. 微信支付和支付宝支付所用应用签名如何获取
  3. 编译原理LR(1)语法分析器 C++实现
  4. 高一数学知识点复习:命题及其关系、充分条件
  5. Scrapy爬取新浪微博用户信息、用户微博及其微博评论转发
  6. python在姓名的左右_怎样用Python给宝宝取个好名字?
  7. 深度学习之CNN卷积神经网络详解以及猫狗识别实战
  8. Redis中“万金油“的string,为什么不好用了
  9. idea 项目jdk环境配置
  10. pythonscrapy爬虫 崔庆才_Python爬虫实战一之爬取糗事百科段子