通过 ESP-IDF 连接 Wi-Fi 入门指南

学习目标

本教程将深入探讨如何通过 ESP-IDF 框架实现乐鑫芯片与 Wi-Fi 接入点 (AP) 的连接。

完成本教程后,您将能够:

  • 了解 Wi-Fi 的相关背景知识;
  • 明确启用 Wi-Fi 连接所需的关键组件;
  • 学会利用乐鑫芯片配置一个基本的 Wi-Fi 连接;
  • 在 ESP-IDF 平台上从零开始实现 Wi-Fi 连接的完整过程。

推荐学习方式

本教程将广泛使用 ESP-IDF 框架,因此提前安装本框架并对其具有一些基本的熟悉程度很重要。

要安装并开始使用 ESP-IDF,请参阅此处的教程。 

简介

Wi-Fi 技术是 Wireless Fidelity 的缩写,作为无线局域网络 (WLAN) 的一种实现方式,通过无线电波为设备提供高速互联网接入和网络连接。它使得智能手机、笔记本电脑、平板电脑以及物联网设备等能够无线接入互联网,实现了设备的互联互通。

Wi-Fi 技术极大地促进了信息获取和通信方式的革新,使得用户无需依赖物理电缆即可享受无缝的网络连接体验。作为现代通信技术的核心组成部分,Wi-Fi 持续发展,以更快的速度、更高的可靠性以及增强的安全功能来满足日益增长的数字连接需求。

乐鑫提供了多种支持 Wi-Fi功能 SoC 系列,从支持 Wi-Fi 4 标准的 ESP32-S3 到支持 Wi-Fi 6 标准的 ESP32-C6 ,乐鑫的产品线为各种基于 Wi-Fi 技术的项目提供了丰富的选择。

对于您想深入了解 Wi-Fi 技术的操作机制和配置选项,我们推荐阅读由乐鑫工程师编写的 ESP32-C3 Wireless Adventure 第七章。此外,我们还提供了详尽的 ESP32 Wi-Fi 驱动程序文档,深入阐述了如何利用 Wi-Fi 应用程序接口 (APIs) 来实现高效稳定的无线连接。

所需硬件

  • 运行 Windows、Linux 或 macOS 的计算机
  • ESP32-C3-DevKitM-1 开发板
  • 适配开发板的 USB 线(供电+数据通信)

其他具有 Wi-Fi 功能的硬件包括:

  • ESP32-S 系列 SoC
  • ESP32-C 系列 SoC
  • ESP32 系列 SoC

以下 SoC 系列不支持 Wi-Fi 技术。

  • ESP32-P 系列 SoC
  • ESP32-H 系列 SoC

如果您需要乐鑫产品支持哪些无线技术的更多相关信息,可以查询 ESP 产品选型工具

所需软件

本教程将使用以下软件:

  • ESP-IDF 版本 v5.2.2

分步指南

在本教程中,我们将通过两种方法在乐鑫芯片上建立 Wi-Fi 连接:

  • 使用简化的辅助函数 example_connect()(有关该函数的更多信息,点击此处查看)
  • 使用 Wi-Fi API

对以上两种方法进行对比:

  • example_connect() 函数旨在简化用户将 Wi-Fi 功能集成到项目中的流程。而无需深入理解 Wi-Fi 协议的底层细节,适合快速基于乐鑫 SoC 进行开发
  • 使用 Wi-Fi API 则允许用户对乐鑫芯片上的 Wi-Fi 功能进行高级配置和管理。这包括但不限于调整 beacon 间隔、设置信道切换公告计数以及定义 FTM 响应模式等。这种方式适合开发规模更大、需求更复杂的应用程序

第一部分:学习使用 example_connect() 函数

第 1 步:设置项目

对于 Linux 和 macOS 用户,在使用 idf.py 命令时,请确保您已在相应的终端会话中配置了ESP-IDF环境。您可以通过执行以下命令来实现这一点:

. $HOME/esp/esp-idf/export.sh

有关 ESP-IDF 环境变量设置的更多信息,请参阅此处。建议创建别名来设置 ESP-IDF。

首先,我们需要新建一个 ESP-IDF 项目,将它命名为 simple_connect。为此,我们可以运行:

idf.py create-project simple_connect

此命令将创建一个最小的空白 ESP-IDF 项目,结构如下:

├── CMakeLists.txt  # Build configuration declaring entire project
├── main            # Contains project source code
│   ├── CMakeLists.txt   # File that registers the main component
│   └── simple_connect.c # Contains the main entry point of the program
└── README.md            # File to describe the project

以下是创建文件的简要概述:

  • 顶层项目 simple_connect/CMakeLists.txt 文件:此文件设置项目范围的 全局 CMake 变量,并将项目与构建系统的其余部分集成。
  • main 目录:此目录包含项目的源代码。
  • 项目目录 main/CMakeLists.txt 文件:此文件设置变量定义来控制项目的构建过程。
  • simple_connect.c:此文件包含程序的主入口点 app_main() 我们将在这里编写源代码。
  • 要了解 ESP-IDF 项目的结构,请参阅此处。有关 idf.py 命令行工具中可用命令的列表,请参阅此处

第 2 步:添加依赖项

首先,转到项目目录的根目录(在该情境下指 simple_connect 文件夹),然后运行idf.py create-manifest。

这将创建一个定义项目依赖关系的清单文件 (main/idf_component.yml)。有关 ESP-IDF 中依赖关系和组件管理的更多信息,请参阅此处

在 idf_component.yml 添加以下内容的 protocol_examples_common 依赖项:

dependencies:
  protocol_examples_common:
    path: ${IDF_PATH}/examples/common_components/protocol_examples_common

第 3 步:设置目标 SoC

我们需要配置 ESP-IDF,为所使用的特定目标 (SoC) 构建项目。

在项目目录的根目录中,运行 idf.py set-target esp32XX

注意:esp32XX 指的是使用的目标芯片。在该案例中,我们使用的是 ESP32-C3-DevKitM-1,因此我们运行命令idf.py set-target esp32c3。

您的 ESP-IDF 版本中支持的目标的完整列表可以通过运行 idfidf.py --list-targets 查看。

第 4 步:配置 Wi-Fi 认证信息

  • 要配置 Wi-Fi 认证信息,请完成以下操作(另请参阅下面的 asciinema 视频):
  • 通过运行打开 ESP-IDF 项目配置工具 idf.py menuconfig;
  • 转到 Example Connection Configuration,填入想要连接的 ssid 和 password

小贴士:

  • 按 Enter 键保存对 SSID 和密码的更改
  • 按 S 键保存所有所做的更改
  • 按 Q 退出项目配置工具

第 5 步:编辑源代码

现在,让我们编写一个简单的程序,该程序旨在实现与 Wi-Fi 接入点的连接,并在断开连接后进行相应的处理。完整的源代码位于 main/simple_connect.c 文件中,而接下来的部分将提供详细的解释说明。

头文件和宏

我们将包含以下头文件并定义一些宏:

#include "esp_log.h"
#include "nvs_flash.h"
#include "esp_netif.h"
#include "esp_event.h"

#include "protocol_examples_common.h"
#include "esp_wifi.h"

#define TAG "simple_connect_example"
系统初始化

在我们使用任何资源进行 Wi-Fi 连接之前,都需要一些初始化步骤。

// System initialization
ESP_ERROR_CHECK(nvs_flash_init());
ESP_ERROR_CHECK(esp_netif_init());
ESP_ERROR_CHECK(esp_event_loop_create_default());

解析&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值