本帖最后由 book123 于 2022-10-12 17:23 编辑
最近用D1 MINI、ESP32、ESP32 MINI做一些人在传感器,过程中出现一些传感器间歇性“不再可用”的问题。
这个现象出现的比较随机,时间不到1秒。尽管对自动化没有大的影响,但是还是感觉不完美。
后来搜集资料、用排除法不断排除有关因素,最后终于解决了。
首先是现象:如下图
分析的原因与解决办法:
1、网上说是API的问题,是home assistant 与ESP的bug。这个我看了一些国外论坛的分析,确实是存在的。根治这个问题看来得等home assistant升级。
2、出现问题的时候,都是我用ESP32读写某类雷达串口的时候,不读写串口数据则不出现问题。可能这类串口数据的读写导致esp芯片功耗在某个时刻增大,如果电源质量不好,可能会造成问题。我尝试把5V0.6A的杂牌电源换成5V2A的品牌电源,有效果,有的完全解决。
3、与wifi信号有很大的关系,信号差,则出现问题的概率极大的增大。信号好,则不出现问题。
4、与GPIO管脚的使用有关,我开始把红外传感器接到ESP32的GPIO15,必会引起“不再可用”的问题,后来换成GPIO25就不再出现问题了。
5、D1 MINI基本都会出现,ESP32 和ESP 32 MINI出现的概率小很多。6、重要的一条,就是对esp设置wifi功率节约模式为:NONE
wifi:
ssid: "你的wifi"
password: "你的wifi密码"
power_save_mode: NONE #有NONE LIGHT HIGH三个选项,用第一个
前前后后折腾了一周时间,现把经验教训分享给大家,仅供参考。
|