AT开发FOTA远程升级:Air780EP低功耗4G模组
针对客户朋友的应用反馈,特本篇文章:基于Air780EP模组AT开发的FOTA远程升级指南。
AT版本的远程升级主要是对AT固件版本进行升级,实际方式为通过合宙官方IoT平台升级或者使用自己搭建的服务器进行升级服务。
Air780EP是合宙推出的一款低功耗4G全网通模组,兼容模组行业1618经典封装,支持OpenCPU开发及全功能数传AT开发,可广泛应用于多样化的物联网终端。
一、合宙IoT平台远程升级

1.1 如何查看升级日志
登录合宙IoT平台(iot.openluat.com),在主菜单【固件升级】下拉列表中选择升级日志,输入完整的IMEI并选择所需日期。

1.2 升级日志响应码列表(点击放大查看)

1.3 使用默认项目名配置
在向合宙采购4G模块时,如果采购人员没有告知这批模块应该放在IoT平台的哪个产品下,则默认账号密码如下:
默认账号:采购人的手机号
默认密码:888888
需要创建一个"Air7XXF标准模块"的项目。
特别注意:
以**"Air7XXF标准模块"**命名的项目,为Air780EP模块AT版本默认FOTA请求升级的IoT项目,并将此次所采购的所有模块都放在这个项目下。
如果模块不在该项目下或者需要更换项目,请联系合宙工作人员。


1.3.1 配置流程
本文以合宙Air780EP为例获取AT固件版本,下载到本地后解压并将dfota.bin文件上传到dfota中。
在合宙IoT平台【我的项目】页面点击固件列表:

创建固件,上传对应文件:


上传好文件之后会自动生成固件名称,不需要修改:

如果配置“升级全部设备”选项为“是”,则无需配置IMEI,按照上述内容配置即可。如果选择“否”,还需添加IMEI,如下图所示:

1.3.2 AT指令触发升级
手动触发升级
模块从V1006升级到V1007的流程示例如下:

自动升级(默认24小时内自动触发)
自动升级是模块定期向后台发送升级请求,来获取新固件进行更新的,大致流程如下:

可以通过AT+UPGRADE=“PERIOD”,60设置自动升级时间,这里设置为60s来作为演示:

1.4 使用自建项目名配置
从合宙采购完模块之后,注册登录合宙IoT平台。在IoT平台【我的项目】页面新建一个项目,并要求合宙工作人员将这批模块放入新建的项目中(注:客户本身无权限进行操作)。
本示例就以“远程升级模块”为项目名进行远程升级:

该项目下的模块可通过设备列表查看:


1.4.1 配置流程
参考上文【1.3 使用默认项目名配置】的1.3.1配置流程;注意此时的项目为“远程升级模块”。
1.4.2 AT指令触发升级
手动触发升级
通过下方图示操作,找到对应项目的项目Key。

复制项目Key:
用AT+UPGRADE="KEY",ProductKey进行配置,其中ProductKey为对应项目Key;
要注意的是该命令参数会写入nv,掉电保存;
然后再发送AT+UPGRADE进行远程升级。

自动升级(默认24小时内自动触发)
自动升级是模块定期向后台发送升级请求,来获取新固件进行更新的,大致流程如下:

可以通过AT+UPGRADE=“PERIOD”,60设置自动升级时间,这里设置为60s来作为演示:

二、自定义服务器远程升级
使用自己的服务器来升级模块和使用IoT平台升级,最重要的区别是下载固件的来源不同。其实FOTA的过程是新老版本生成差分包再进行升级的过程,那么这个差分的过程在哪里呢?
使用合宙IoT平台升级,差分的过程在IoT服务器后台,那使用自己的服务器该怎么办呢?——答案当然是自己来完成差分的过程,放在服务器等待模块来下载。
2.1 差分包生成工具
手动生成差分包的过程,使用doc平台工具中的差分工具。注意:升级文件为 xxxx.dfota.bin 文件。

下载生成的差分文件:

本次我们从V1006升级到V1007需要准备各自的bin远程升级文件,上传完成后等待差分完成,下载得到的差分文件,这里将名字改为dfota_final_AirM2M_AirM2M_V1007.bin。
2.2 配置流程
把生成的固件放到服务器上,然后通过:
**AT+UPGRADE="URL",""**指令设置对应的URL链接。
配置完差分包URL地址成功后,**AT+UPGRADE **主动触发升级。
升级流程如下:
这里选择了USB的另外一个端口,可以上报模块的升级过程。

AT开发FOTA远程升级:Air780EP低功耗4G模组的更多相关文章
- iTOP-4412开发板全新升级支持4G全网通模块
开发板支持4G,GPS,CAN,485,WIFI蓝牙,重力加速度计,陀螺仪等模块. 核心板参数 尺寸:6cm*7cm 高度:连同连接器在内0.26cm CPU:Exynos4412,四核Cortex- ...
- 基于IAP和Keil MDK的远程升级设计
写在前面:三个周之前,我突然想写一个远程升级的程序.那个时候我只是大概知道IAP的意思是在应用编程,但怎么编,我还一无所知.我给自己定下一个个阶段目标,从最基础的代码一点点写起,解决一个又一个的问题. ...
- 【转】 基于TFTP协议的远程升级设计
版权声明:本文为博主原创文章,未经博主允许不得转载.联系邮箱:zhzhchang@126.com 说明:由于CSDN博客编辑器对word格式近乎不支持,因此对表格使用了图片方式(最后一个表格未使用图片 ...
- 基于TFTP协议的远程升级设计
说明:因为CSDN博客编辑器对word格式近乎不支持.因此对表格使用了图片方式(最后一个表格未使用图片格式.大家能够看看效果),CSDN博客编辑器上传图片十分不人性化(直接复制图片是不显示的),因此本 ...
- STM32f103x IAP远程升级小结
最近在面试的时候遇到一个关于IAP远程程序升级的问题,由于之前所做的项目没有涉及到远程升级需求,当时一脸懵呆,不过回答的还是不错的,今天针对STM32F103系列调试了IAP的程序,这里做一下小结,如 ...
- Golang开发支持平滑升级(优雅重启)的HTTP服务
Golang开发支持平滑升级(优雅重启)的HTTP服务 - tabalt的博客 http://tabalt.net/blog/graceful-http-server-for-golang/ http ...
- Android零基础入门第10节:开发IDE大升级,终于迎来了Android Studio
原文:Android零基础入门第10节:开发IDE大升级,终于迎来了Android Studio 通过前面几期的学习,我们知道了Android的前世今生,也了解了Android的系统架构和应用组件,也 ...
- Altera FPGA 远程升级有关的几个IP的使用
在做在线远程升级的时候,一般需要两步:1.将数据写到外挂的flash中.2重新启动FPGA配置. 不过要做到远程升级,一般需要在原始程序中就考虑到加入远程升级模块,remote updata IP, ...
- 设备程序远程升级采用两种方式(优先采用IP方式)
设备程序远程升级采用两种方式(优先采用IP方式): 采用应急广播TS流传输技术规范的消息内容表携带升级包数据.当辅助数据类型值为44时,消息内容表传输的数据为程序升级包. 采用IP方式传输升级包数据. ...
- 制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)
实现的功能: l APP控制月球灯 l 本地月球灯控制 l APP控制"大白"颜色,实现各种颜色变身 l 门状态传感器状态APP显示 l 网络状态指示灯,连接服务器长亮, ...
随机推荐
- 初三年后集训测试---T1排序
初三年后集训测试 $T 1 $ 排序 $$HZOI$$ ·题意: 给定 \(4n\) 个整数,求 : \[\max\{\sum_{i=1}^{4n}(A_{i,1} \times A_{i,2} - ...
- python的dir()函数
dir()函数不带参数时,返回当前范围内的变量.方法和定义的类型列表:
- SciPy从入门到放弃
目录 SciPy简介 拟合与优化模块 求最小值 曲线拟合 线性代数模块 统计模块 直方图和概率密度函数 统计检验 SciPy简介 SciPy是一种以NumPy为基础,用于数学.工程及许多其他的科学任务 ...
- Centos7.9安装Docker和Docker compose
什么是docker环境 Docker环境是指在计算机中安装和配置了Docker引擎的运行环境.Docker是一种容器化平台,它提供了一种轻量级的虚拟化技术,能够将应用程序及其依赖项打包成一个独立的容器 ...
- logistic和softmax
一直觉得logistic regression就是softmax的一种特殊的形式,softmax是多类,logistic是两类. 但是今天仔细想了想logistic的意义以及softmax的意义,感觉 ...
- AI工具合集
以下工具来源于互联网,可能会失效,请参考使用 网红工具 名称 链接 说明 GPT-4 https://chat.openai.com/ 需要梯子,需要付费.功能最强大的聊天机 器人. 文心一言 h ...
- 为什么在EffectiveJava中建议用EnumSet替代位字段,以及使用EnumMap替换序数索引
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,在第37条中建议 用EnumMap替换序数索引,为什么? EnumSet 在EffectiveJava中的第 36条中 ...
- JDBC——案例
创建一个商品表 drop table if exists tb_brand; -- 创建tb_brand表 create table tb_brand( id int primary key auto ...
- FFmpeg开发笔记(五十四)使用EasyPusher实现移动端的RTSP直播
之前的文章<利用RTMP协议构建电脑与手机的直播Demo>介绍了如何使用RTMP Streamer实现完整的RTMP直播流程,另一篇文章<利用SRT协议构建手机APP的直播Demo ...
- 痞子衡嵌入式:为下一代AI边缘处理设备而生 - i.MXRT700
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的新品i.MXRT700. 四年前恩智浦官宣了面向下一代智能穿戴设备的 i.MXRT500 系列,这 ...