ESP32基础系列
- ESP32初体验之环境搭建
- ESP32外设学习之GPIO
- ESP32外设学习之UART
- ESP32开发之给模块连上网络
- ESP32的一键配网与Airkiss配网
- ESP32使用NVS存储数据
- ESP32一键配网+自动重连
- ESP32之Cmake的介绍与组件的添加
- ESP32之为配网模式添加按键和指示灯
本文目录
写在前面:有了前面的基础,我们这一章想实现模块在smartconfig的基础上,实现掉电自动重连的功能。那么我们势必要将配网的信息存储在NVS中,上电读取,如果得到存储的配网信息,就直接去联网;如果没有,就启动smartconfig配网。
一.初步的实现方式
初步的想法是按照以下的方式实现:
二.代码改动
接下来就是设计代码了,这里我在上面几章的基础上做了下改进,具体见以下:
1.首先定义一个枚举,表示wifi配网信息是否又被存储的标记
2.读取NVS的部分,这里我加入了一个联网信息存储标记,读取到这个标记为wifi_configed标志着存储了ssid和key,可以直接联网
3.读取后的处理部分,根据是否读取到存储信息做不同的处理,如果有联网信息就直接联网,没有就启动smartconfig配网
4.事件处理部分,这里我做了点改动
然后编译下载,查看现象,第一次模块未配网肯定是读取不到信息的,所以会进入一键配网模块,配好之后我们重启模块,发现会自动重连
在实际的应用中可能会出些以下情况:
1. 将产品从一个地方带到另一个地方,这时候需要给模块重新配网,但是因为之前的配网信息一直还存储在NVS中,所以这时候我们需要想办法清除掉之前的配网信息,再重新配网。通常的做法是通过一个按键,长按或者短按清楚配网信息,重启模块重新配网。
2. 用户在进行配网时无法直白的看到配网的情形,通常的做法是加一个指示灯,不同的闪烁频率代表不同的情形。
OK,接下来我们我们会添加这两个功能。
纯手写文章,转载请注明出处,谢谢。有任何不当之处,欢迎指正!