1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(方案总揽)

这节只是简短介绍,详细请往后看具体文章

 

单片机所有BUG ,及其修正

1,执行用户程序错误时没有正常切换执行程序,忘记了增加 RunUser = GetRunUser();

    

 

 

 

 

 一,远程升级WIFI模块或者GPRS模块内部程序

Wi-Fi或者GPRS默认http访问Aupdata0.lua~Aupdata9.lua 文件  然后下载运行

协议如下:

设备订阅的主题

"user/设备MAC地址"      列如:  "user/dc:4f:22:11:5d:33"

设备发布的主题

"device/设备MAC地址"    列如:  "device/dc:4f:22:11:5d:33"



一,上位机获取设备型号
//获取设备型号
{"data":"updata","cmd":"model"}

//设备回复
{"data":"updata","status":"model","model":"wifi1"}//假设现在的型号是WIFI1


二,上位机根据型号http访问更新的信息
                                    "型号"
列如:"http://47.92.31.46/hardware/"+wifi1+"/"+"updatainfo.txt"


三,上位机把云平台的更新信息按照以下格式发给设备
/********************************************
上位机发送给设备平台的版本号和更新文件的位置(设备先记录下来)
{"data":"updata","cmd":"info","version":"1.0.1","url":"http://47.92.31.46/hardware/wifi1"}


设备接收到信息对比版本号以后回复
{"data":"updata","status":"unlike",version:XXXX} 或 {"data":"updata","status":"alike",version:XXXX} //回复是不是和发给它的版号一致,并回复自己的版本号
*********************************************/


/**********************************
上位机发送给设备升级指令
{"data":"updata","cmd":"start"}    


设备回复
{"data":"updata","status":"start"} //开始更新
**********************************/



更新过程中设备发送更新进度

{"data":"updata","status":"starting","percent":"百分比"} 百分比为数字 


更新完成设备发送
{"data":"updata","status":"finish"}


更新过程中的错误,设备发送
{"data":"updata","status":"error","code","-1"}//HTTP request failed
{"data":"updata","status":"error","code","-2"}//HTTP request data error



更新完成以后用新的版本号替换掉旧的版本号



注:
升级程序文件和关于升级的内容(内容里面含有版本号)放在云平台
APP或者wed或者上位机通过http获取关于升级的内容

设备通过http获取升级程序文件

 

 

二,远程升级STM32单片机程序(在WIFI或者GPRS实现基本的远程控制基础上增加的功能)

APP发送的数据,网络模块自动转发给单片机

网络模块http访问单片机程序文件,然后把访问的数据发给单片机

//APP发送获取设备型号(APP点击检查更新的时候)
{"datemcu":"updata","cmd":"model"}

//STM32设备回复
{"datemcu":"updata","status":"model","model":"STM32U"}//STM32U 设备的型号


二,上位机根据型号http访问更新的信息
             实际用域名代替           "型号"
列如:"http://47.92.31.46/hardware/"+STM32U+"/"+"updatainfo.txt"


//APP发送给设备平台的版本号和更新文件的位置,该url由WIFI模块进行记录
{"datemcu":"updata","cmd":"info","version":"1.0.1","url":"http://47.92.31.46/hardware/STM32U"}


//STM32回复是不是和发给它的版号一致,并回复自己的版本号
{"datemcu":"updata","status":"unlike",version:XXXX} 或 {"datemcu":"updata","status":"alike",version:XXXX} 
或者 {"datemcu":"updata","status":"unlike","version":"error"} //单片机接收版本出错

APP接收到此信息,提示用户是最新版本,或者提示这次升级的内容,用户可以选择升级

//APP发送给设备升级指令
{"datemcu":"updata","cmd":"start"}


1,单片机运行在IAP程序:(说明没有更新过)

stm根据自己当前的情况擦除Flash后回复
{"datemcu":"updata","status":"start","file":"bin1"} /
{"datemcu":"updata","status":"start","file":"bin2"}

同时置一个标志位,让串口下次接受的http数据直接写入Flash
Wi-Fi接收到该指令,停止MQTT透传(60S超时),防止多余的数据写入串口,
如果检测到TCP断开连接,允许MQTT透传

Wi-Fi接收到该指令根据上面的url,
连接TCP服务器(http服务器)
链接成功以后http访问bin1文件或者bin2文件

2,单片机运行在用户程序:
单片机接收到此命令后写入一个更新标志到Flash,复位重启
然后IAP判断有这个标志,先清除这个标志,然后执行上面的  1,单片机运行在IAP程序

 

 

三,其它版本远程升级单片机程序

 

 

 

最重要的是思路和方案,其它的都只是配合.

 

 

板子链接

https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.3e3b1deb80xzYz&id=569295486025

 

https://www.cnblogs.com/yangfengwu/p/10357564.html

转载于:https://www.cnblogs.com/yangfengwu/p/10271514.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
stm32+esp8266物联网开发板出教程了,教程从零讲起,从快速体验,硬件设计,实例源码,手机app制作,服务器开发五方面进行教学,淘宝独此一家。该云开发板采用stm32+esp8266方案,主控MCU采用性价比高的stm32f030c8t6,板载了可编程全彩RBG灯,可编程正反转及调速电机, 温湿度传感器等外围资源。 从简单的实例中,让用户学习物联网的神奇之处。更重要的是除了开发板外,我们还提供调试好的mcu源代码,手机app安卓,IOS源代码,入手即可开发物联网项目,更是新手学习之利器!据多年开发经验写了从零快速开发教程,同时本教程将持续更新新的技术。 一键配网,局域网和远程4G网络自由切换控制 演示视频观看:https://player.youku.com/embed/XMzQ2NjI4NDc4OA== 体验资料下载:https://pan.baidu.com/s/1qJ8LYXI1m23xh5C3SSjEbQ 重要的是此开发板提供技术支持服务!!! 详尽的教程,学习无忧: APP源码提供Eclipse和android-studio两种版本源代码。 五分好评送APP源码部分讲解视频: 第一节 :课程目录 第二节 : 搭建Android开发环境 第三节 :导入框架前的准备 第四节 : 导入框架,验证是否已经成功、 第五节 : 发送指令至云端&&基本的控件使用。 第六节 :checkBox等控件使用。 第七节 :同步从云端设备发送过来的设备信息到APP. 第八节 :揭开实战的APP的神秘面纱 第九节 :实战APP的基本信息修改,图标、名字等 第十节 :动态在设备列表显示当前设备信息 。 第十一节 :设备详细页面的逻辑控制处理(上)。 第十二节 :设备详细页面的逻辑控制处理(下)。 第十三节 :课程总结。 送四款智能APP源码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值