1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(方案总揽)
我的这个升级篇的代码适用于自己所有的带WIFI和GPRS模块的开发板,升级功能实质上是通过MQTT把数据发给WIFI和GPRS模块,然后模块进行保存和运行.
这个升级程序是当时自己花了两个星期的时间写的,当时自己写的时候给自己定了很多要求.
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设备.(由于路由器连接个数的限制,无法测试更多)
目前升级程序 徐工 帮我优化了一版(主要目的是省内存)
这是徐工给的方案(徐工已经优化好了,并运行在自己的设备上,听徐工说,他的方案彻底解决了内存问题)
很佩服徐工,前天晚上给我说优化方案,隔了一天他就优化好了,徐工底下肯定下了很大的功夫.

杨工,有关远程升级的考虑: 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部分程序;升级成功后的运行程序

咱们的教程还是使用徐工优化前的哈,因为程序确实挺复杂的,当然大家也可以不需要管程序,会用也可以.
等弄懂了优化前的,咱再用徐工优化后的.
上述升级方案可参考,升级方案已经优化为MQTT+http方式
新版升级方案:MQTT+Http方式
下面是流程图

2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(视频总揽)
板子链接
https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.3e3b1deb80xzYz&id=569295486025
1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(方案总揽)的更多相关文章
- 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(为域名申请SSl证书)
3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(购买域名,域名绑定IP) 然后就是等着..... 假设可以了 咱呢是配置MQTT实现SSL安全加密通信,所以 ...
- 3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(购买域名,域名绑定IP)
2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(监听Wi-Fi和APP的数据) 因为安全连接是和域名绑在一块的,所以需要申请域名 有没有不知道域名是什么的, ...
- 2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(监听Wi-Fi和APP的数据)
1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(来看一下怎么样监听网络数据,监听电脑上位机软件的数据) 因为那个软件只能监听咱自己电脑上的数据,所以咱就用电 ...
- 1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(来看一下怎么样监听网络数据,监听电脑上位机软件的数据)
首先安装网络监听软件 运行这个软件 这个软件安装到电脑上,默认是监听咱电脑上的网络通信 咱们先监听电脑的软件的网络通信数据,然后再说怎么监听Wi-Fi和APP的软件的网络通信数据 咱就监听咱基础篇的 ...
- 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(云端电脑(Windows)安装配置数据库,使用本地Navicat for MySQL和手机APP 远程连接测试)
3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(安装配置数据库,使用Navicat for MySQL和手机APP 连接测试) 根据前面的教程把软件复制到云 ...
- 3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(安装配置数据库,使用Navicat for MySQL和手机APP 连接测试)
2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(数据库简单说明) https://www.mysql.com/ 咱用安装版的 我把自己下载的放在了这里 现在 ...
- 2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(数据库简单说明)
1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(视频总揽) 这里有个教程 http://www.cnblogs.com/best/p/6517755.h ...
- 1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(视频总揽和功能演示)
主要实现的功能 其它视频和资料稍候再补充上 我先写后面的文章 2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(安装数据库,数据库简单说明)
- 2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(视频总揽)
1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(方案总揽) https://v.youku.com/v_show/id_XNDE0Njk3Njg2OA==. ...
随机推荐
- Nginx 增加 Image 缩略图 功能
Nginx 增加 Image 缩略图功能,需要使用Nginx Image 缩略图 模块 官网地址:https://github.com/3078825/ngx_image_th ...
- Ansible--常用模块使用
ansible命令解释 通过ansible命令执⾏的任务称为ad-hoc命令(任务),其实它是相对playbook⽽⾔的.通常,命令⾏⽤来实现ansible的批量管理功能,playbook⽤来实现批量 ...
- Android中的padding和margin的区别
在Android的布局中,常常有人将padding和margin搞混,他们其实不一样的,padding是该控件的内部距离. magin是该控件与其他控件之间的距离.例如 <LinearLayou ...
- Apache POI导出excel表格
项目中我们经常用到导出功能,将数据导出以便于审查和统计等.本文主要使用Apache POI实现导出数据. POI中文文档 简介 ApachePOI是Apache软件基金会的开放源码函式库,POI提供A ...
- C#语言————选择结构
int[] num = new int[] {23,76,54,87,51,12 }; //冒泡排序 for (int i = 0; i < num.Length - 1; i++) { for ...
- [PC]两个蓝牙耳机同时输出相同音源
需求:和老婆一起玩双人同屏游戏(以撒的结合:抗生),但需要带上蓝牙耳机玩. 设备:2个蓝牙耳机.1个蓝牙接收器.1台Win10系统电脑. 通过关键字搜索出一个解决方案(Output audio to ...
- tidb在DDL语句方面的测试
Mysql与tidb测试数据为8000万行. 1.修改一个字段的列名,比如将“ctime”修改为“cctime”. Tidb测试: MySQL测试: 2.同一属性之间切换,即修改一个字段的属性大小.比 ...
- 01LaTeX学习系列之---TeX的介绍与认识
目录 01TeX的介绍与认识 目录 前言 (一)TeX 的宣传 TeX - Beauty and Fun 1. TeX 是什么? 2. TeX 是哪家公司生产的? 3. 我们今天主角的名字怎么念啊?& ...
- Mybatis&orcale update语句中接收参数为对象
Mybatis的 mapper.xml 中 update 语句使用 if 标签判断对像属性是否为空值. UserDTO是传过来参数的类型,userDTO是在mapperDao接口中给更新方法的参数起的 ...
- Beta冲刺! Day3 - 砍柴
Beta冲刺! Day3 - 砍柴 今日已完成 晨瑶:追查进度:确定推荐算法 昭锡:查看Note模块的处理逻辑.查找主页UI的解决方案 永盛:数据库的大量整合和新建,备份和还原:完成部分新的逻辑 立强 ...