ESP32-C3入门教程 网络 篇(三、 Wi-Fi 配网 — BlueIF方式)

924 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第22天,点击查看活动详情

经过上一篇的WiFI入门篇,我们知道了WiFi初始化方式 和学会了WiFi的几种工作方式,
在实际应用中,环境复杂多变,在固件中输入SSID 的方式太不通用了,
所以肯定是需要学习一下如何在不同的环境中联网,就是所谓的配网。
ESP32-C3的配网方式有多种,本文主要说明测试 Smart方式 和 BlueIF方式。

前言

学习 ESP32-C3 的WIFI 使用,不要用到其他外设。

1、BLE配网简介

在上面一篇文章中,我们已经做过简单的介绍:

BLE配网,使用蓝牙方式进行配网。ESP32-C3 会进行 BLE 广播。附近的手机收到该广播后会询问用户是否进行 BLE 连接,如选择连接,则手机即可将信息发送给 ESP32-C3。 在这个过程中用户无需切换 WiFi 网络,但是需要打开蓝牙,用户体验相对 SoftAP 配网好一些。 这种方式需要在设备端加入蓝牙相关代码,这会增加固件的大小,并在配网完成前占用一定内存。(使用 FreeRTOS 建立的配网任务,在配网完成后可以删除。)

在ESP32-C3 的蓝牙配网上,官方提供了一个完整的解决方案 —— BluFi 。 对于ESP32-C3 BluFi 的介绍,乐鑫的官网的说明如下:

在这里插入图片描述

本文会记录 使用 BluFi 方式给 ESP32-C3 配网。

2、BlueIF方式

BlueIF 方式官方示例如下:

图片.png

2.1 分区表的修改

按照上面的示例新建的工程,编译是没有问题的,但是烧录后运行会出现如下问题,一直重启:

图片.png

可以看到图中的提示,esp_image太大了,默认的分区表用户分区 放不下 image。

在 NVS 使用的博文中,我们简单介绍过分区表:

ESP32-C3 学习测试(八、NVS — 非易失性存储库的使用)

但是具体的还是建议去乐鑫查看官方的介绍。

根据以前的博文,我们知道默认的分区表中,app分区只有1M(也就是1048576KB),如下图:

图片.png

所以会出现上面的问题,那么我们就得自己修改一下分区表。

我们使用的是 VScode 插件开发,可以直接在 VScode 找到SDK的配置:

图片.png

在第一个栏目里面选择使用用户的 Partition Tables:

在这里插入图片描述

然后,在示例工程中添加一个名为 partitions.csv 的分区表文件:

图片.png

设置完成,刚开始编译有问题,问题如下:

图片.png

后来发现 partitions.csv 位置放错了,应该是和 main 文件夹同目录:

在这里插入图片描述

解决上面的问题,还得修改一下 flash size :

图片.png

还是在SDK设置里面,搜索 Serial Flasher Config,选择 4MB:

图片.png

编译成功,下载烧录,又发现一个问题,分区表里面有些名字不能乱改,因为默认的示例中有些分区的初始化是需要对应的Label的,错误如下:

图片.png

最后修改的 partitions.csv如下,才最终正常:

图片.png

partitions.csv文件:

# Name,   Type, SubType, Offset,   Size, Flags
# Note: if you change the phy_init or app partition offset, make sure to change the offset in Kconfig.projbuild
nvs,            data,   nvs,             0x9000,  0x6000,
phy_init,       data,   phy,             0xf000,  0x1000,
factory,        app,   factory,          0x10000, 2M,

2.2 示例配网测试

在完成上面的分区表修改以后,烧录程序运行效果如下:

图片.png

我们还是修改一下,添加一下按钮操作,删除 WiFi 配置信息,完整的体验一遍 BlueIF方式的配网,按键操作的代码和上面 配网一样,就是删除 WiFi配置:

图片.png

还需要改一个地方,就是使用 蓝牙方式,蓝牙总得有个名字,在blufi_init.c中修改:

图片.png

然后重启开始走一遍完整的流程,系统复位重启以后,如下图,会停在这个位置:

图片.png

接下来,在手机端通过 EspBlufi APP操作即可:

图片.png

图片.png

最后配网成功的 app 界面如下:

图片.png

在上述配网的过程中,设备端通过串口也可以观察到每一步的对应效果,如下图:

图片.png

至此,BlueIF 配网方式 我们也成功测试完成。这里我们主要学习如何使用方式,原理的话没去深究,在以后需要研究的时候再来补充把。遇到问题记得多看看官方的文档。

结语

本文我们测试了 ESP32-C3 的 BlueIF 配网方式。

我们除了测试了基本例程,还根据实际的应用情况进行了程序修改测试。

我们的开发板可以联网了,那么就可以和云平台进行一些互动操作,下一篇文章我们来学习一下在 ESP32-C3 上使用 MQTT 协议。

好了,本文就到这里,谢谢大家!