admin管理员组

文章数量:1572240

目录

一、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

如果调用函数 

本文标签: 入门网络wifi