最近用ESP32开发板做了个卷帘门的钥匙遥控控制器,在手机的微信小程序中可以远程实现卷帘门的开、关、暂停等动作。
根据IOT平台的设备上下线信息记录,设备总是会有重复登录的情况。
通信机制描述
1. 设备上电初始化之后,会自动连接WIFI,等WIFI连接完成后,会自动连接IOT平台。
2. 当设备跟IOT平台建立TCP连接后,会发送登录指令,实现设备登录。
3. 然后就是正常的心跳数据,2S一条,向IOT平台发送数据。
4. ESP32设备会轮询检测收到的TCP数据并进行处理。
5. 部分时候,会因为收不到服务器的应答数据,导致心跳检测超时,会重新尝试登录IOT平台,然后连续发送多次登录指令,还是收不到服务器数据,但是忽然一个是时间点,批量收到了服务器的应答(实测看到过这个问题)
设备连续登录IOT平台上线的截图如下所示

TCP数据处理记录的标志,当lastTcpHandleTime在心跳线程超时后,会自动重新向IOT平台发送注册指令

检测已经登录,但是连续10S没有接收到服务器数据,会尝试重新发送登录指令。

接收IOT平台的数据

=============================
但是,因为昨天增加了FOTA升级机制,原来的分区是1个程序分区+1个文件分区,后来因为要做FOTA升级机制,直接改成了2个程序分区,对ESP32格式化之后,重新烧录,然后今早来公司查看上线记录,发现稳定的一笔,从昨晚的19点多到今天上午11点多,TCP一直就没断线过,很神奇很神奇。

1008

被折叠的 条评论
为什么被折叠?



