前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1-WIFI(ESP8266)模块远程升级程序,方案总揽

1-WIFI(ESP8266)模块远程升级程序,方案总揽

作者头像
杨奉武
发布2019-02-13 16:10:05
1.9K0
发布2019-02-13 16:10:05
举报
文章被收录于专栏:知识分享知识分享

我的这个升级篇的代码适用于自己所有的带WIFI模块的开发板,升级功能实质上是通过MQTT把数据发给WIFI模块,然后模块进行保存和运行.

这个升级程序是当时自己花了两个星期的时间写的,当时自己写的时候给自己定了很多要求.

1,可以方便每个人升级自己的设备

2,不能让用户自己去搭建服务器

3,保证每个人不能冲突

4,要在现有的远程通信的基础上,不能够再去走其它通信的路线

5,考虑以上条件,想到用户要在自己电脑上运行一个上位机软件(MQTT通信),设备是访问上位机的数据实现升级

6,那么上位机必须产生一个唯一码用做通信的主题

7,为了以后的GPRS模块,这个上位机也必须同时支持GPRS模块升级程序,而且操作步骤要和WIFI一样

8,由此通信主题中加入了 "设备的型号"(也是为了不同型号的设备升级程序,实质WIFI和GPRS也相当于不同的型号而已)

9,可以区域性的升级(升级一个型号的设备,升级用户自定义的一些设备,升级某一个设备)

10,加入程序版本控制(有的用户希望设备自动升级,用版本来控制)

11,上位机和用户手机APP都可以可以控制升级设备,但是APP只是通知设备升级(APP只是有选择权,上位机才具有控制权)

12,如果用来做产品,上位机提供给设备商,APP是用户使用

13,可扩展性,为以后升级单片机做准备

14,底层硬件程序有两部分,升级时不断的切换保存,保证底层硬件程序必须保留上一次的,升级出错后自动运行以前的备份

15,为避免意外情况,有一个按键可以用来切换程序,还可以清除除升级程序意外的程序

16,升级完先运行一下,如果没有错误才切换执行哪一部分程序的标志

17,由于MQTT最大传输的字节是1024(WIFI底层硬件设置的),所以要把每一个文件进行分段传输

18,为避免上位机用任务(任务的困难程度太高,设备多了不好控),所以采用一问一答

19,后期可以对底层的升级程序做修改(已经去掉,发现一直没用到)

20,后期又优化了一些细节的地方....

21,目前测试同时升级47个WIFI设备.(由于路由器连接个数的限制,无法测试更多)

目前升级程序 徐工 帮我优化了一版(主要目的是省内存)

这是徐工给的方案(徐工已经优化好了,并运行在自己的设备上,听徐工说,他的方案彻底解决了内存问题)

很佩服徐工,前天晚上给我说优化方案,隔了一天他就优化好了,徐工底下肯定下了很大的功夫.

代码语言:javascript
复制
杨工,有关远程升级的考虑:
1、目前的困惑点是因为内存不够引起的,我的想法是这样来考虑,你看是否可行:
2、把升级哪部分程序进行剥离单独出来,具体这样:
init.lua程序:按键处理和根据标识选择运行程序,(1)选择运行A程序,就是Aupdata1~7;
(2)运行升级程序,进行升级;(3)运行Bupdata1~7;
主要修改mqttconfig.lua程序,把其中有关升级的程序全部剥离出来。就是分成两部分程序:
分别是是mqttconfig.lua和mqttupdata.lua。
3、我尝试一下,把mqttconfig.lua中的升级部分注释后,再运行A部分程序就没有内存问题了。


这样可能解决内存的困惑,也完成升级:
出厂开机默认运行以下程序:
1、init.lua mqttconfig.lua A部分程序;升级前的运行程序

运行过程中,如果收到mqtt服务器的升级请求,置升级标志,重新复位运行。

复位运行,检测到升级标志,运行以下程序
2、init.lua mqttconfig.lua mqttupdata.lua;为升级的运行程序

如果升级成功,置成功标志,复位运行以下程序,
3、init.lua mqttconfig.lua B部分程序;升级成功后的运行程序

咱们的教程还是使用徐工优化前的哈,因为程序确实挺复杂的,当然大家也可以不需要管程序,会用也可以.

等弄懂了优化前的,咱再用徐工优化后的.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-01-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档