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 网络状态指示灯,连接服务器长亮, ...
随机推荐
- Win32 SDK 下的TreeCtrl控件的封装
自己照着MFC封装,半月前封装了一半,碰到问题就放下了,今天终于封装好了. [Ctree.h]文件 #pragma once #include <windows.h> #include & ...
- 关于对 Tomcat 进行小版本升级的快速解决方案
1.背景描述 原来的 Tomcat 在部署时,使用的是最新的版本 9.0.40 . 经过一段时间后,在原来的 Tomcat 版本中,发现存在漏洞. 因此,需要将旧版本(9.0.40)升级到没有漏洞的新 ...
- C# 读取excel数据到datatable
在项目中使用到遇到了需要将excel文件导入到数据库中,在此做个总结记录,防止后面人踩坑. 开发环境:VS2008+Win10 第一种方式:Office.Interop.Excel方式 数据量大时有 ...
- LaTeX 插入表格
普通表格 \begin{table}[h] % h: here \begin{center} % 一个字母代表一列 \begin{tabular}{|c|cccc|} % c: center, l: ...
- 😶🌫️ SpringBoot中MongoDB的骚操作用法
不知道大家在工作项目中有没有使用MongoDB,在哪些场景中使用.MongoDB作为NoSQL数据库,不像SQL数据库那样,可以使用Mybatis框架. 如果需要在SpringBoot中使用Mongo ...
- sublime text2自动编译编译less文件为css,并让less文件高亮的两种方法
方法一:通过命令安装 1.打开sublime,ctrl+shift+p打开命令面板,找到package control:install Package,然后选择less2css,回车.2.继续ctrl ...
- CSS – Houdini
介绍 简单说这个 Houdini 是一系列 CSS 底层 API,它可以让我们扩展 CSS,做出一些 Polyfill. 举一个例子,让大家有个画面. 我们可以通过 CSS + JS + Canvas ...
- HTML & CSS – Responsive Image 响应式图片 (完整版)
前言 之前就有写过关于 Retina 和 Responsive Image 响应式图片 (responsive image) Retina 显示屏 但写的太烂了, 所以有了后来的 屏幕, 打印, 分辨 ...
- Softmax 函数 详解
- Java实现随机抽奖的方法有哪些
在Java中实现随机抽奖的方法,通常我们会使用java.util.Random类来生成随机数,然后基于这些随机数来选择中奖者.以下将给出几种常见的随机抽奖实现方式,包括从数组中抽取.从列表中抽取以及基 ...