ESP32开发--一键配网+自动重连

时间:2024-04-02 16:47:41

ESP32基础系列

 

本文目录

一.初步的实现方式

二.代码改动  


 写在前面:有了前面的基础,我们这一章想实现模块在smartconfig的基础上,实现掉电自动重连的功能。那么我们势必要将配网的信息存储在NVS中,上电读取,如果得到存储的配网信息,就直接去联网;如果没有,就启动smartconfig配网。

一.初步的实现方式

  初步的想法是按照以下的方式实现:

  ESP32开发--一键配网+自动重连

二.代码改动  

 接下来就是设计代码了,这里我在上面几章的基础上做了下改进,具体见以下:

 1.首先定义一个枚举,表示wifi配网信息是否又被存储的标记

  ESP32开发--一键配网+自动重连

    2.读取NVS的部分,这里我加入了一个联网信息存储标记,读取到这个标记为wifi_configed标志着存储了ssid和key,可以直接联网

  ESP32开发--一键配网+自动重连

  3.读取后的处理部分,根据是否读取到存储信息做不同的处理,如果有联网信息就直接联网,没有就启动smartconfig配网

  ESP32开发--一键配网+自动重连

  4.事件处理部分,这里我做了点改动

  ESP32开发--一键配网+自动重连

  ESP32开发--一键配网+自动重连

  然后编译下载,查看现象,第一次模块未配网肯定是读取不到信息的,所以会进入一键配网模块,配好之后我们重启模块,发现会自动重连

  ESP32开发--一键配网+自动重连

 在实际的应用中可能会出些以下情况:

 1. 将产品从一个地方带到另一个地方,这时候需要给模块重新配网,但是因为之前的配网信息一直还存储在NVS中,所以这时候我们需要想办法清除掉之前的配网信息,再重新配网。通常的做法是通过一个按键,长按或者短按清楚配网信息,重启模块重新配网。

 2. 用户在进行配网时无法直白的看到配网的情形,通常的做法是加一个指示灯,不同的闪烁频率代表不同的情形。

 OK,接下来我们我们会添加这两个功能。

 


 纯手写文章,转载请注明出处,谢谢。有任何不当之处,欢迎指正!