esp8266开发板wifi通信稳定不掉线设计思路

ZhangJian 2022-05-18 n次浏览 资源教程 编辑

在我简单的使用esp8266一段时间后总结出来的,我刷的是micropython,还算稳定。要能保证设备一直在线,两个舵机和一个继电器模块。 模块 舵机1 舵机2

学习拷贝网上代码,所有的代码都是教你怎么连接,并没有考虑到掉线以后该怎么做,设备又不会自动连接?后来学习到可以自己实现一个看门狗程序,一段时间网络不正常就会自动重启 最早开始使用的是巴法云第三方的通讯,再加上我写的代码也不理想,出现掉线情况是不能忍受的,因为继电器控制的灯,我的代码中网络不正常就会自动重启。每当晚上重启就黑灯瞎火的还要用手机开一下灯。。。

也出现过模块一直连不上无法控制,调试检查发现第三方服务不通,所以第三方免费的尽量不要使用。

模块的性能十分有限,和服务器TCP通讯需要维护心跳,发送心跳包,也加大了程序,过程中也会不稳定,所以后面自己搭了服务器,参照巴法云的协议自己实现了服务端,从服务端发送心跳包心跳包来维护链接,目前使用了两个月非常的稳定,掉线的情况也非常的少。这里掉线的原因不可避免,因为我是移动的宽带没有公网,一段时间的长链接之后移动会主动断开链接

模块上只做最少的事情

  1. 连接服务器
  2. 接受服务器发送过来的心跳(ping)并回复心跳(ping_ok)
  3. 接受命令控制舵机继电器回复命令执行成功
  4. 定时器 检测最后一次ping时间,间隔超过规定时间就重启 代码1 代码2

看了小爱的官方文档注册开发者还是比较麻烦的,还是使用巴法云的第三方服务。通过服务器和巴法连接,小爱的语音消息巴法云的api获取到然后服务器再发给设备。

自己实现服务端的好处是可以自定义功能,目前我所用到的是记录设备上线时间,是否掉线,命令是否执行成功,设备掉线后再次上线判断继电器之前的状态,如果是接通,则发送一次信号让继电器吸合。

控制端用网页实现,不会写app,使用微信权限验证

页面1 页面2 页面3