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

单片机所有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. 新版本,ggplot2 v3.3.0 新特性来袭
  2. python基础代码事例-零基础学习Python开发练习100题实例(2)
  3. MySQL 优化原理(三)
  4. 网易青果后端系统设计窥探(含直播方案踩坑往事)
  5. FreeMarker缓存处理
  6. 198. 打家劫舍 golang 动态规划 数组越界
  7. Mr.J -- yield关键字生成器产生值
  8. 力学 计算机辅助教程,实验力学课程计算机辅助教学软件
  9. Exadata 18.1新特性--计算节点升级增强
  10. Elasticsearch学习4《Elasticsearch的各种查询》
  11. 什么是好用的身份证实名认证api接口?其应用场景有哪些?
  12. 多角度解读新兴公链Sui:团队、架构、代币、生态等
  13. VUE实现华视身份证阅读器读取身份证信息(本文分两种情况,第一中是点击按钮读取信息,一种是自动读取信息)
  14. html 浮动脱离文档流,脱离文档流(正常流-文档流)
  15. 转:网络带宽测量工具之iperf
  16. Tomcat-war包部署
  17. 用python制作专属有声小说
  18. AutoCAD Civil 3D-创建道路模型(3 有关道路的逻辑目标)
  19. 相对论为什么不正确呢?
  20. maven实战--读书笔记之第一章和第二章

热门文章

  1. 03 VS项目编译报错warning C4005: “AF_IPX”: 宏重定义warning C4005: “AF_IPX”: 宏重定义
  2. js回调函数(超详细)
  3. 慧通教育——python进阶习题第二关(二)
  4. python networkx教程_Python NetworkX 学习笔记
  5. 使用华为手机,要记得调整这些设置,能大大提升性能
  6. 用Flutter实现一个涂鸦和加水印功能
  7. 逻辑右移和算术右移的区别
  8. qlib智能量化里的“因子分析“,“多空分析”
  9. Android开发----实现应用启动页
  10. 除了学历,你更需要有能力