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
1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(方案总揽)相关推荐
- 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(为域名申请SSl证书)
3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(购买域名,域名绑定IP) 然后就是等着..... 假设可以了 咱呢是配置MQTT实现SSL安全加密通信,所以 ...
- 2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(监听Wi-Fi和APP的数据)
1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(来看一下怎么样监听网络数据,监听电脑上位机软件的数据) 因为那个软件只能监听咱自己电脑上的数据,所以咱就用电 ...
- 6-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(远程升级STM32程序,基于Wi-Fi,同时支持升级Wi-Fi,APP控制版)...
https://www.cnblogs.com/yangfengwu/p/10456306.html 视频教程 https://www.bilibili.com/video/av54942955/ 请 ...
- 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(远程升级WIFI内部程序)
https://www.cnblogs.com/yangfengwu/p/10360618.html 演示视频: https://www.bilibili.com/video/av54894356/ ...
- 19-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(APP程序部分说明)
https://www.cnblogs.com/yangfengwu/p/10991907.html 其实更新WIFI和更新单片机都是一样的流程 当点击更新的时候,APP用MQTT发信息给WIFI.询 ...
- 1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案微信小程序篇(域名备案)
如果自己的域名有没备案使用域名访问http的时候会报错 微信小程序如果要发布,也需要有备案过的云服务器和域名 我的不能详细写了,因为已经备案过了,展示的信息不一样了,我拷贝过来别人写的 <ign ...
- 基于stm32物联网开发板(1)
基于stm32物联网开发板(1) 本开发板采用了STM32F103RET6作为核心CPU,72MHZ工作频率,512KB flash,64KB Sram.本开发平台外设模块有ESP8266 WIF ...
- 基于stm32物联网开发板(2)--LCD屏幕
基于stm32物联网开发板(2)–LCD屏幕 LCD应用展示: LCD屏幕应用 1.概述 屏幕尺寸为1.3寸,分辨率240*240,颜色格式RGB565,驱动IC:ST7789VW: 超大可视角度:大 ...
- OneNET Studio云平台STM32物联网开发(2)- STM32+Air724UG(4G模组)数据采集显示上报
实现效果视频 STM32 Air724UG 4G OneNET数据传输 本章教学视频(1) OneNET StudioSTM32+Air724UG -1 本章教学视频(2) OneNET Studio ...
最新文章
- ViT(vision transformer)原理快速入门
- Rotate Image
- 共享文件夹加密专家_文件加密软件哪家靠谱?
- conda 常用操作 镜像管理
- Grafana + Zabbix --- 部署分布式监控系统
- Google布隆过滤器与Redis布隆过滤器详解
- mysql 存储过程cursor_MySQL 的存储过程写法和Cursor的使用
- python字符串出栈方法_1.Python实现字符串反转的几种方法
- python excel详解_Python - excel 详解
- 关于zend framework控制器中action命名的问题
- Axure原型模板CRM客户关系管理系统高保真原型设计
- Neo4j下载(linux系统)
- matlab根据y标注x,知道y的值,怎么标注出对应x值所对应曲线的坐标啊;matlab
- nagiso中nsca的配置
- 在C语言aceg什么意思,#8203;给定关系模式R,U={A,B,C},F={AB-C,C-B}.关系R(1) ,且分别有(2)给定关系模式R,U={A,B,C},F={AB-C,C-B}...
- 区间类动态规划(dp)
- HTML-浮动(float)
- RT-Thread物联网操作系统介绍:10、计数信号量
- 【贪心-单调栈】中山纪念中学暑期游Day12——灵知的太阳信仰
- 使命召唤10计算机丢失,快速设置win10系统玩使命召唤9 xinput1 3.dll丢失的解决教程...