HaaS物联网设备OTA解决方案

简介: 本文针对OTA升级在HaaS100上的的全链路进行了简单介绍。
  1. 案例简介

OTA升级是很多嵌入式产品必备的一个功能。HaaS提供了完备的OTA解决方案。本案例就是一个端云一体的例子。
本文将分几个部分介绍,具体包括:
设备端代码的修改、编译、烧录。
云端服务器的配置、新增、OTA升级包上传、OTA升级。
本文的设备连接情况如下:
image.png
本文的主要目标是,通过修改设备端代码和配置云端,完成对设备端版本的升级,如下图所示:
image.png

  1. 基础知识

OTA:(over the air)已成为物联网设备的刚需功能, AliIOS Things OTA有完备的升级方案,对各种升级场景都有很好的支持。
升级模式:整包升级、压缩升级、差分升级、安全升级。
支持的升级通道:http、https、BLE、3G/4G,NB等;
复杂场景支持:网关及子设备升级,连接型模组升级非连接主设备的间接升级;
OTA工具:差分工具、本地签名工具、ymodem辅助升级工具,多固件打包工具等;

HaaS100进行升级流程,如下图所示,当用户开启阿里云IOT物联网平台的安全升级功能,对应的产品就启动了针对这个产品的安全升级功能,云端会对这个产品的升级固件做秘钥、公钥管理并对这个产品的固件做数字签名;对应的设备端,在OTA的过程中,会用从云端获取的公钥对升级的固件做数字签名的验证;整个流程,用户不需要管理公私钥,使用起来也非常方便,下图为HaaS100 安全升级使用流程图:

image.png

  1. 物料清单

本实验不依赖于其他外围设备,主要是HaaS100开发板
image.png
image.png

  1. 案例实现

本案例依赖如下几个组件,具体定义放到了solutions/ota_demo/package.yaml的文件中。
image.png
1.打开云端安全升级功能并获取公钥
image.png
2.将公钥内嵌到代码中

如步骤1图示,通过复制按钮获取的公钥内嵌到 AliOS-Things/components/dm/ota/hal/ota_hal_digest.c文件中,覆盖如下的两个数组:

static const unsigned char ota_pubn_buf[256];
static const unsigned char ota_pube_buf[3];

3.编译烧录到HaaS100的基础固件

开发环境搭建
开发环境的搭建请参考 @ref HaaS100_Quick_Start (搭建开发环境章节),其中详细的介绍了AliOS Things 3.3的IDE集成开发环境的搭建流程;

用例和开发板选择
参考 @ref HaaS100_Quick_Start (选择解决方案和开发板章节),其中解决方案选择:ota_demo; 开发板:HaaS100

配置固件版本号
根据需求修改版本号,如app-1.0.0等
修改位置:solutions/ota_demo/otaappdemo.c中的,MY_APP_VER宏定义。

配置四元祖
修改位置:solutions/ota_demo/otaappdemo.c中的,mqtt_main函数中的char product_key, char device_name, char *device_secret;填入自己的pk,dn,ds;

开始编译固件并烧录
– 参考 @ref HaaS100_Quick_Start (3.1 编译工程章节),点击 ✅ 即可完成编译固件。
– 参考 @ref HaaS100_Quick_Start (3.2 烧录镜像章节),点击 “⚡️” 即可完成烧录固件。

配网连云
输入wifi账号和密码配网:在终端输入:
netmgr -t wifi -c wifi_ssid wifi_password
注意修改其中的wifi_ssid和wifi_password为需要连接的wifi名字和wifi密码。
连网成功后,登录物联网平台可以看到对应的设备在线:

image.png

4.编译上云固件及云端操作

本地烧录完成后,需要做一个高版本固件上传到云端,通过云端操作完成固件的升级,所以需要按照步骤3中修改版本号的方法,修改固件版本号,其他不用修改,再编译生成一个高版本的固件,然后登录物联网平台平台,按如下图顺序操作:
image.png
点击添加固件后,如下图将platform/mcu/haas1000/release/write_flash_gui/ota_bin/ota_bin/ota_rtos_ota.bin上传到云端:
image.png
点击确定后,选择验证固件即可开始固件升级;

5.升级结果验证

按照上面的操作步骤完成后,可以完成固件的数字签名验签进而实现固件升级,端侧的log如下图:
image.png
如果开启了安全升级,但HaaS100没有内嵌公钥,触发升级会怎么样呢?答案是HaaS100会数字签名验证失败,禁止固件升级,端侧的log会如下图所示:
image.png
云端升级结果可以通过点击“查看”获取详情;
物联网平台的OTA操作可参考文档阿里云物联网平台固件升级文档

  1. 总结

本文仅仅针对OTA升级在HaaS100上的的全链路进行了简单介绍。使用ota_demo代码例子外加一块HaaS100开发板,熟悉HaaS开发框架中对于OTA升级的能力支持。关于OTA升级的更多丰富功能,欢迎访问阿里云官网介绍 https://help.aliyun.com/document_detail/184188.html

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
6天前
|
Web App开发 网络协议 安全
基于Web攻击的方式发现并攻击物联网设备介绍
基于Web攻击的方式发现并攻击物联网设备介绍
|
18天前
|
安全 物联网 物联网安全
智能物联网安全:物联网设备的防护策略与最佳实践
【10月更文挑战第26天】随着物联网(IoT)技术的快速发展,智能设备已广泛应用于智能家居、工业控制和智慧城市等领域。然而,设备数量的激增也带来了严重的安全问题,如黑客攻击、数据泄露和恶意控制,对个人隐私、企业运营和国家安全构成威胁。因此,加强物联网设备的安全防护至关重要。
42 7
|
19天前
|
监控 安全 物联网
确保互联世界中物联网设备安全的三个技巧
确保互联世界中物联网设备安全的三个技巧
|
28天前
|
物联网
物联网卡不能使用在什么设备上
“物联网卡不能使用在什么设备上”这一操作或规定,通常基于物联网卡的特性、使用条款以及设备兼容性等因素。以下是对这一问题的详细分析和操作建议:
|
30天前
|
存储 监控 物联网
医疗物联网设备精细化管理系统解决方案
华汇数据智慧医院物联网管理系统解决方案是一种集物联网、云计算、大数据和人工智能等先进技术于一体的综合性解决方案,旨在提升医院的运营效率、医疗质量和患者满意度。
69 3
|
1月前
|
存储 边缘计算 物联网
阿里云物联网平台:推动万物互联的智能化解决方案
随着物联网技术的快速发展,阿里云物联网平台为企业提供了一体化的解决方案,包括设备接入、数据管理和智能应用等核心功能。平台支持海量设备接入、实时数据采集与存储、边缘计算,并具备大规模设备管理、高安全性和开放生态等优势。广泛应用于智能制造、智慧城市和智能家居等领域,助力企业实现数字化转型。
156 5
|
17天前
|
安全 物联网 物联网安全
智能物联网安全:物联网设备的防护策略与最佳实践
【10月更文挑战第27天】随着物联网技术的快速发展,智能设备已广泛应用于生活和工业领域。然而,物联网设备的安全问题日益凸显,主要威胁包括中间人攻击、DDoS攻击和恶意软件植入。本文探讨了物联网设备的安全防护策略和最佳实践,包括设备认证和加密、定期更新、网络隔离以及安全标准的制定与实施,旨在确保设备安全和数据保护。
34 0
|
4天前
|
存储 安全 物联网
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
66 50
|
4天前
|
安全 物联网 物联网安全
制定统一的物联网技术标准和规范的难点有哪些?
制定统一的物联网技术标准和规范的难点有哪些?
16 2
|
4天前
|
存储 数据采集 物联网
物联网技术在物流领域的应用会遇到哪些挑战?
物联网技术在物流领域的应用会遇到哪些挑战?
17 4

相关产品

  • 物联网平台