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

单片机所有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)系统方案升级篇(方案总揽)相关推荐

  1. 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(为域名申请SSl证书)

    3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(购买域名,域名绑定IP) 然后就是等着..... 假设可以了 咱呢是配置MQTT实现SSL安全加密通信,所以 ...

  2. 2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(监听Wi-Fi和APP的数据)

    1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(来看一下怎么样监听网络数据,监听电脑上位机软件的数据) 因为那个软件只能监听咱自己电脑上的数据,所以咱就用电 ...

  3. 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. 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(远程升级WIFI内部程序)

    https://www.cnblogs.com/yangfengwu/p/10360618.html 演示视频: https://www.bilibili.com/video/av54894356/ ...

  5. 19-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(APP程序部分说明)

    https://www.cnblogs.com/yangfengwu/p/10991907.html 其实更新WIFI和更新单片机都是一样的流程 当点击更新的时候,APP用MQTT发信息给WIFI.询 ...

  6. 1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案微信小程序篇(域名备案)

    如果自己的域名有没备案使用域名访问http的时候会报错 微信小程序如果要发布,也需要有备案过的云服务器和域名 我的不能详细写了,因为已经备案过了,展示的信息不一样了,我拷贝过来别人写的 <ign ...

  7. 基于stm32物联网开发板(1)

    基于stm32物联网开发板(1)   本开发板采用了STM32F103RET6作为核心CPU,72MHZ工作频率,512KB flash,64KB Sram.本开发平台外设模块有ESP8266 WIF ...

  8. 基于stm32物联网开发板(2)--LCD屏幕

    基于stm32物联网开发板(2)–LCD屏幕 LCD应用展示: LCD屏幕应用 1.概述 屏幕尺寸为1.3寸,分辨率240*240,颜色格式RGB565,驱动IC:ST7789VW: 超大可视角度:大 ...

  9. OneNET Studio云平台STM32物联网开发(2)- STM32+Air724UG(4G模组)数据采集显示上报

    实现效果视频 STM32 Air724UG 4G OneNET数据传输 本章教学视频(1) OneNET StudioSTM32+Air724UG -1 本章教学视频(2) OneNET Studio ...

最新文章

  1. ViT(vision transformer)原理快速入门
  2. Rotate Image
  3. 共享文件夹加密专家_文件加密软件哪家靠谱?
  4. conda 常用操作 镜像管理
  5. Grafana + Zabbix --- 部署分布式监控系统
  6. Google布隆过滤器与Redis布隆过滤器详解
  7. mysql 存储过程cursor_MySQL 的存储过程写法和Cursor的使用
  8. python字符串出栈方法_1.Python实现字符串反转的几种方法
  9. python excel详解_Python - excel 详解
  10. 关于zend framework控制器中action命名的问题
  11. Axure原型模板CRM客户关系管理系统高保真原型设计
  12. Neo4j下载(linux系统)
  13. matlab根据y标注x,知道y的值,怎么标注出对应x值所对应曲线的坐标啊;matlab
  14. nagiso中nsca的配置
  15. 在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}...
  16. 区间类动态规划(dp)
  17. HTML-浮动(float)
  18. RT-Thread物联网操作系统介绍:10、计数信号量
  19. 【贪心-单调栈】中山纪念中学暑期游Day12——灵知的太阳信仰
  20. 使命召唤10计算机丢失,快速设置win10系统玩使命召唤9 xinput1 3.dll丢失的解决教程...

热门文章

  1. 直播多人连麦技术浅谈
  2. js中类数组对象转数组
  3. 以命令的方式打开模拟器
  4. Libcurl的一些基本介绍
  5. [Qt 教程之Widgets模块] —— QCheckBox复选框
  6. Spring中连接WebSocket报403错误
  7. java如何输入日期定义星座,求一个会java fx的大神 编写一个输入日期输出星座的代码 急急急...
  8. 凤凰金融12个月迈入百亿俱乐部
  9. web应用安全防御100技
  10. 资金方进退两难:借呗、度小满等助贷巨头不良猛涨,头部平台有钱也不敢放