2-远程升级篇(自建物联网平台)-STM32通过EC800使用http或https下载程序文件升级程序(APP通过MQTT控制单片机更新)

说明

前面章节是单片机主动访问升级,这节使用Android软件控制更新单片机程序!

注意哈,只是在原先的基础上让APP把固件地址发给设备,而不是设备主动获取了;

其实就是远程升级和MQTT的结合;

整体升级流程如下:(APP和设备通过MQTT通信)

1,用户在APP上点击 "固件升级" 按钮, APP使用MQTT发送:  {"data":"updata","cmd":"DeviceInfo"} //询问设备固件信息

2,设备通过MQTT收到该消息以后,发送 {"data":"updata","cmd":"DeviceInfo","DeviceModel":"STM32EC800BKAPP","FirmwareVersion":"0.0.0"}

(STM32EC800BKAPP是设备的型号;  0.0.0是设备当前的固件版本)

3,APP收到以上消息以后,根据设备型号使用http请求云端记录的固件信息文件(info.txt)

提示:info.txt 存放的位置是固定的;    http://ota/hardware/设备型号/info.txt

4,APP把info.txt里面的固件版本和设备当前的进行对比, 如果不一致, 弹窗提示

对话框里面写的更新内容是 info.txt里面的  -----------"info":"1.解决了部分BUG 2.优化了部分程序"    

用户点击确认以后就把info.txt里面的固件版本和下载地址发送给设备(当然也可以直接发送这个命令让设备升级)

{"data":"updata","cmd":"start","version":"0.0.1","url":"http://mnif.cn/ota/hardware/STM32EC200BK/user_crc.bin"}

5,设备收到更新的命令以后,存储起来url, 并给APP发送开始升级  {"data":"updata","cmd":"start"}   ,然后开始重启升级

6,APP收到 {"data":"updata","cmd":"start"}  以后, 弹窗提示设备正在升级,

同时开始每隔1S通过MQTT发送查询设备版本指令   {"data":"updata","cmd":"version"} 

7,设备升级完了以后, 正常运行,设备就会通过MQTT收到APP的查询指令, 然后把当前的设备固件版本发送给APP

{"data":"updata","cmd":"version","FirmwareVersion":"0.0.1"}

8,最后APP提示升级完成

 

开始测试

1,GPRS模块和底板安装说明

单片机通过串口2和GPRS模块通信;  单片机PA8引脚作为复位模组使用;PB15连接模组的开机引脚

(单片机)PA2    ----   (EC800K)RX;

(单片机)PA3    ----   (EC800K)TX;

(单片机)PA8    ----   (EC800K)RST

(单片机)PB15  ----   (EC800K)PWR

注意: 单片机都是使用串口2和模组通信,所以需要拆掉ESP8266

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值