ESP32学习入门:WiFi连接网络

目录

一、ESP32简单介绍

二、ESP32 Wi-Fi模块介绍

三、ESP32 Wi-Fi 编程模型

四、ESP32 Wi-Fi 事件处理流程

 五、ESP32 Wi-Fi开发环境

六、ESP32 Wi-Fi具体代码

七、ESP32 Wi-Fi代码解读

6.1 主程序app_main

7.2 自定义代码wifi_init_sta()

八、ESP32 Wi-Fi连接验证

8.1 测试方法

8.2 服务器模拟工具sscom5

8.3 测试代码

8.4 测试结果


前言

为了开发一款亚马逊物联网产品,开始入手ESP32模块。为了能够记录自己的学习过程,特记录如下操作过程。


一、ESP32简单介绍

ESP32 是一套 Wi-Fi (2.4 GHz) 和蓝牙 (4.2) 双模解决方案,集成了高性能的 CPU 内核、超低功耗协处理器和丰富的外设。ESP32 采用 40 nm 工艺制成,具有最佳的功耗性能、射频性能、稳定性、通用性和可靠性,适用于各种应用和不同功耗需求。


二、ESP32 Wi-Fi模块介绍

乐鑫为用户提供完整的软、硬件资源进行 ESP32 设备的开发。乐鑫所研发的软件开发环境 ESP-IDF 能够帮助用户快速开发物联网 (IoT) 应用,满足用户对于 Wi-Fi、蓝牙、低功耗等性能的需求。

Wi-Fi 库支持配置及监控 ESP32 Wi-Fi 连网功能。

  • 基站模式(即 STA 模式或 Wi-Fi 客户端模式),此时 ESP32 连接到接入点 (AP)。
  • AP 模式(即 Soft-AP 模式或接入点模式),此时基站连接到 ESP32。
  • AP-STA 共存模式(ESP32 既是接入点,同时又作为基站连接到另外一个接入点)。
  • 上述模式的各种安全模式(WPA、WPA2 及 WEP 等)。
  • 扫描接入点(包括主动扫描及被动扫描)。
  • 使用混杂模式监控 IEEE802.11 Wi-Fi 数据包。

WiFi是在TCP/IP协议的基础之上实现的2.4GHz的一种通信方式,不同的实现标准对应的的频带和最大速率不一样。

标准

频率

最大速率

802.11b

2.4GHz

11Mbps

802.11a

5GHz

54Mbps

802.11g

2.4GHz

54Mbps

802.11n

2.4GHz,5GHz

450Mbps

802.11ac

5GHz

1300Mbps


三、ESP32 Wi-Fi 编程模型

Wi-Fi 驱动程序(WiFi Driver)可以看作是一个无法感知上层代码(如 TCP/IP 堆栈、应用程序任务、事件任务等)的黑匣子。通常,应用程序任务(Application task)负责调用 Wi-Fi 驱动程序 APIs 来初始化 Wi-Fi,并在必要时处理 Wi-Fi 事件。然后,Wi-Fi 驱动程序(WiFi Driver)接收并处理 API 数据,并在应用程序(Application task)中插入事件。

Wi-Fi 事件处理是在 esp_event 库 的基础上进行的。Wi-Fi 驱动程序(WiFi Driver)将事件发送至 默认事件循环,应用程序(Application task)便可以使用 esp_event_handler_register() 中的回调函数处理这些事件。除此之外,esp_netif 组件 也负责处理 Wi-Fi 事件,并产生一系列默认行为。例如,当 Wi-Fi station 连接至一个 AP 时,esp_netif 将自动开启 DHCP 客户端服务(系统默认)。

因此,整个WiFi的连接过程,其实是一个事件驱动和处理的过程。Wi-Fi 驱动程序将事件发送至 默认事件循环

在本次示例中,用的示例如下:

事件名称

触发条件

WIFI_EVENT_STA_START

如果调用函数 

  • 31
    点赞
  • 190
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
ESP32 WiFi模块是一种功能强大的模组,可以作为WiFi客户端(STA)连接到现有的WiFi网络,也可以作为软接入点(AP)建立自己的WiFi网络。\[1\]在STA模式下,ESP32连接到接入点(AP),可以实现与其他设备的通信。在AP模式下,ESP32作为接入点,其他设备可以连接到它。还有一种AP-STA共存模式,即ESP32既作为接入点,又作为基站连接到另一个接入点。\[2\]ESP32WiFi库支持各种安全模式,如WPA、WPA2和WEP等。它还支持扫描接入点,包括主动扫描和被动扫描,并可以使用混杂模式监控IEEE802.11 WiFi数据包。\[2\]在使用ESP32WiFi功能时,可以通过初始化和状态机来管理WiFi功能,并可以进行网络的建立、连接和搜索等操作。\[3\] #### 引用[.reference_title] - *1* [ESP32学习实例(四),WIFI模块的初步学习和遇到的问题,以及解决方法](https://blog.csdn.net/weixin_42619971/article/details/107770011)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [ESP32学习入门WiFi连接网络](https://blog.csdn.net/weixin_43880799/article/details/127128993)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ESP32学习实例(五),WIFI模块的初步学习和遇到的问题,以及解决方法(下),以及整体知识整理](https://blog.csdn.net/weixin_42619971/article/details/107895046)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PS_567

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值