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
相关文章
|
13天前
|
物联网
DC/AC电源模块:为物联网设备提供可靠的电力支持
DC/AC电源模块:为物联网设备提供可靠的电力支持
DC/AC电源模块:为物联网设备提供可靠的电力支持
|
13天前
|
安全 物联网
BOSHIDA DC/AC电源模块:为物联网设备提供可靠的电力支持
BOSHIDA DC/AC电源模块:为物联网设备提供可靠的电力支持
BOSHIDA DC/AC电源模块:为物联网设备提供可靠的电力支持
|
7天前
|
安全 物联网 网络安全
智能家居安全:物联网设备的风险与防护
【6月更文挑战第18天】随着科技的飞速发展,智能家居设备已经深入人们的日常生活。然而,这些便捷的智能设备背后隐藏着不容忽视的安全风险。本文将探讨智能家居中常见的安全威胁,并提供有效的预防措施,帮助用户构建一个更加安全的智能家居环境。
|
22天前
|
传感器 物联网 Linux
物联网设备的操作系统之争:Linux vs RTOS
【6月更文挑战第4天】在遥远的数码星球,物联网城中的Linux先生与RTOS小姐展开激烈角逐,分别在操作系统领域各显神通。Linux先生以其开源、兼容性强、功能丰富占据服务器、桌面及嵌入式设备市场,适合处理复杂任务和需要强大计算能力的设备。而RTOS小姐以实时性、高效响应和低资源占用见长,适用于资源有限、强调实时性的物联网设备。设备制造商在两者间抉择,引发物联网设备操作系统的选择大战。通过Python与FreeRTOS示例,展现了两者在智能家居和生产线控制等场景的应用。在物联网世界,Linux与RTOS共同推动设备智能化,为生活带来更多便捷。
65 3
|
24天前
|
物联网 传感器 安全
物联网设备的能效管理与优化
【6月更文挑战第2天】在物联网时代,能效管理成为关键议题。有效管理能避免设备过度消耗能源,减少浪费并保护环境。通过动态调整能源供应、选用低能耗硬件、智能算法优化及高效数据处理,可实现能效优化。示例代码展示了软件控制节能模式。能效管理应用于农业和城市,实现精准操作和节能。这是科技与环保的融合,助力可持续未来,让物联网世界更美好。
30 2
|
7天前
|
边缘计算 监控 物联网
边缘计算在物联网设备中的应用与优化
边缘计算在物联网设备中的应用与优化
12 0
|
26天前
|
存储 安全 物联网
物联网设备的安全挑战与解决方案
【5月更文挑战第31天】随着物联网技术的发展,大量设备联网带来严重安全挑战。设备计算能力有限,易受黑客攻击;多样性和复杂性增加管理难度;环境暴露及用户安全意识薄弱也是问题。解决方法包括:增强设备身份认证、定期更新软件、实施网络隔离和访问控制、加密数据以及建立安全监测机制。Python 示例展示了数据加密方法。提升用户安全意识同样关键。综合施策,强化安全研究,保障物联网设备安全,促进行业健康发展。重视物联网安全,打造安全可靠的数字环境。
29 0
|
5天前
|
供应链 监控 物联网
未来技术的潮流:区块链、物联网与虚拟现实的融合与创新
【6月更文挑战第20天】在技术不断进步的时代,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在逐渐改变我们的生活和工作方式。本文将深入探讨这些技术的发展趋势和应用场景,以及它们如何相互融合,创造出新的商业模式和用户体验。我们将看到,随着这些技术的成熟和应用,未来的世界将变得更加智能、互联和沉浸。
|
8天前
|
传感器 数据采集 存储
物联网技术在智能环境监测中的部署与优化
物联网技术在智能环境监测中的部署与优化
|
1天前
|
传感器 物联网 区块链
新技术趋势与应用:探讨新兴技术如区块链、物联网、虚拟现实等的发展趋势和应用场景
【6月更文挑战第24天】本文将深入探讨当前最为热门的新兴技术,包括区块链、物联网和虚拟现实等。我们将分析这些技术的发展趋势,并探讨它们在各种应用场景中的可能性。我们将看到,这些技术不仅改变了我们的生活方式,也正在重塑我们的未来。

热门文章

最新文章

相关产品

  • 物联网平台