概述

ESP8266支持连接到wifi,从而使得我们能够通过网络访问,做出一些简单而有趣的功能。因此,第一步工作便是连接到wifi网络。

一般情况下,我们要连接wifi,在手机上的操作是查到wifi的名称,然后输入密码。在esp8266中,也是需要提供相应的wifi名称和密码才能连接到wifi网络。然后就可以使用esp8266的sdk包中提供的接口函数连接上去。

连接方法

要连接到wifi,首先需要包含与wifi相关的头文件:#include <ESP8266WiFi.h>。

然后,就可以使用以下接口函数连接初始化连接。

WiFi.begin(ssid, pass); 

该函数的参数参考链接为:WiFi - WiFi.begin() - Arduino Reference。其中ssid为wifi的名称,即我们在手机上看到的wifi网络的名称,pass为连接wifi所用的密码。例如,我将esp8266连接到自家所在的wifi网络时,使用了以下配置。

const char * ssid = "ChinaNet-3QAA"; // wifi的网络名称const char * password = "cfaveqrm"; // wifi的密码WiFi.begin(ssid, password);

调用完成后,wifi并不会立即就连接上。就像我们在手机上连接wifi时通常要过一小会儿才连接上一样,esp8266也需要一段时间才能连接。我这边测试的是大概要几秒钟的样子。在这段时间内,我们可以使用以下接口函数检查wifi是否已经连接上。

WiFi.status();

该函数的参数参考链接为:WiFi - WiFi.status() - Arduino Reference。当返回值为WL_CONNECTED时表示已经连接上。该函数还有其它返回值,表示wifi连接失败等情况。

示例

下面是一段连接wifi的例子,其功能为尝试连接到本地的wifi网络。在连接过程中,为了便于观察连接进度,在串口中显示“....”来表示连接进度。当连接成功时,显示wifi所获得的ip地址、子网掩网、网关等地址信息。

/*** 功能:将esp8266连接到指定的wifi网络。* 详细:在连接过程中,如果连接失败,则提示连接超时失败信息;如果连接成功* 则显示获得的IP地址。* * 编写:李小童* 日期:2022-8-8* 开发型号:NodeMUC 1.0(ESP-12E)* 如需获取更多资料,以及相关的支持,可以联系:527676163@qq.com*/
#include <ESP8266WiFi.h>// 以下的wifi配置需要根据实际环境进行修改
const char * ssid = "ChinaNet-3QAA";      // wifi的网络名称
const char * password = "cfaveqrm";       // wifi的密码/*** 初始化函数,在启动后只运行一次*/
void setup() {// 开启8266的网络,连接到WIFI// wifi名称为:ssid指向的字符串,密码为password指向的串WiFi.begin(ssid, password);// 为了便于观察网络连接进度,在串口输出连接过程// 波特率设置成19200。Serial.begin(19200);// 显示正在连接到wifiSerial.print("\nconnecting to wifi:\n");// 在等待过程中,每隔1秒显示一个小点,以表示正在连接// 最多等待20秒,超过20秒则显示连接失败for (int i = 0; i < 20; i++) {// 检查连接状态是否已经连接上if (WiFi.status() == WL_CONNECTED) {// 显示连接成功信息, 包含从网络中获得的IP地址Serial.println("Wifi conntected.");// 然后就可以直接返回了return;}delay(1000);Serial.print(".");}Serial.print("\nConnect failed: timemout!\n");
}void loop() {
}

编译并下载程序,以19200的波特率观察输出,可以看到如下输出情况。

附注

ESP8266支持两种连接wifi连接模式。一种是STA模式,即将其连接到WIFI网络;另外一种是AP模式,即ESP8266自己可以建立起WIFI,从而让其它设备连接到自己。这篇文章中所讲的模式为STA模式。

如果你对我的文章感兴趣,欢迎关注我或在下方留言。

ESP8266开发实战之(4)-连接路由器的wifi相关推荐

  1. ESP8266开发之旅 应用篇⑧Arduino版本 WiFi杀手

    文章目录 1. 前言 授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... 共同学习成长QQ群 62 ...

  2. 开发板使用网线连接路由器,无法上网的解决办法

    输入命令 udhcpc 可以看到返回: root@imx6qsabresd:~# udhcpc udhcpc (v1.24.1) started Sending discover- Sending s ...

  3. ESP8266开发之旅 应用篇⑥ 检测周边WiFi杀手

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... 共同学习成长QQ群 622368884,不喜勿 ...

  4. 课程分享:鸿蒙HarmonyOS系统及物联网开发实战课程(附课程视频及源码下载)

    课程名称: 鸿蒙HarmonyOS系统及物联网开发实战课程 课程介绍: HarmonyOS 是一款面向万物互联时代的.全新的分布式操作系统.在传统的单设备系统能力基础上,HarmonyOS 提出了基于 ...

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

    ESP8266 Arduino开发之路(2)- 连接到无线WiFi路由器 一.前言 ESP8266可以通过WiFi连接到无线路由器,这种方式和手机通过WiFi连接无线路由器的模式是相同的,我们称该模式 ...

  6. esp笔记(4)esp8266 连接路由器

    本文开发环境: MCU型号:ESP8266 IDE环境 : Arduino IDE 本文内容: esp8266 连接路由器 简介 esp8266的应用比较多,本文先介绍非常简单的一个例子.esp826 ...

  7. 《树莓派开发实战(第2版)》——1.7 连接DVI或VGA显示器

    本节书摘来异步社区<树莓派开发实战(第2版)>一书中的第1章,第1.7节,作者:[英]Simon Monk(蒙克),更多章节内容可以访问云栖社区"异步社区"公众号查看. ...

  8. 3. ESP8266开发板自动连接室内Wi-Fi

    文章目录 硬件环境: 1.ESP8266开发板 2.室内Wi-Fi一个或手机热点一个 软件环境配置 1.在示例代码中导入WiFiEcho示例工程 ESP8266开发板自动连接室内Wi-Fi实验 1.程 ...

  9. ESP8266开发、ESP8266连接阿里云物联网、天猫精灵控制esp8266、esp8266一键配网、智能家居

    ESP8266开发.ESP8266连接阿里云物联网.天猫精灵控制esp8266.esp8266一键配网.智能家居 项目介绍 最近会 将arduino IDE开发ESP8266中一些值得记录得部分写下来 ...

最新文章

  1. UIButton长按事件
  2. pyhanlp 文本分类与情感分析
  3. 01-JDBC概念--JDBC(Java Database Connectivity:Java数据库连接):使用jdbc实现Java与数据库MySQL连接
  4. 【学习笔记11】动态方法调用和使用通配符定义action
  5. OJ1037: 四则运算
  6. 轻量级 Java Web 服务框架漫谈
  7. Python之爬虫(七)正则的基本使用
  8. 外星人到底在哪?普利茅斯大学新建AI寻系外生命系统
  9. Linux驱动开发 -- 打开dev_dbg()
  10. 2018.06.30 BZOJ1857: [Scoi2010]传送带(三分套三分)
  11. SylixOS Makefile 源代码解析
  12. (3)二进制文件方式部署Kubernetes高可用集群----------创建TLS证书和秘钥
  13. 第四届“传智杯”全国大学生IT技能大赛(初赛AB组题解)
  14. 孤城内,秋风秋雨抛荒了谁的一怀若水情思?
  15. 网课答题查询助手 内置多个接口
  16. python cv2图片剪裁
  17. LeetCode 每日一题 781. 森林中的兔子
  18. QT基础之位置相关的函数介绍
  19. 分享Silverlight/Windows8/WPF/WP7/HTML5周学习导读(5月27日-6月3日)
  20. CodeForces 332B Maximum Absurdity(线段树单点更新)

热门文章

  1. 编程进阶之路,虽无捷径但有长短
  2. Unity入门之U2D——FlappyBird游戏制作
  3. zuul配置请求拦截_spring cloud网关通过Zuul RateLimit 限流配置
  4. java多线程的创建和启动
  5. python列表长度可变吗_python中列表长度可变吗
  6. vue中如何自定义指令
  7. 怎么用计算机圣诞节快乐,苹果Mac使用技巧:让你的电脑在圣诞节飘起雪花
  8. mqtt压力测试软件,使用JMeter进行mqtt压力测试
  9. 这些神器,拯救了千千万万的苦逼程序员
  10. Tensorflow实现cnn模型的训练与使用