阿里云物联网平台提供设备端SDK,设备使用SDK与平台建立通信。本文介绍使用平台提供的样例程序fota_posix_demo.c
,模拟设备接入和OTA升级。
使用前必读
本文操作步骤以普通用户权限为例。如果您在操作过程中涉及到管理员权限才能执行的操作,可尝试使用sudo
命令执行。
前提条件
已创建产品和设备,并获取设备证书(ProductKey、DeviceName和DeviceSecret)。具体操作,请参见创建产品和创建设备。
本示例需要创建一个设备SDevice1。
准备开发环境
本文使用Linux下的设备端C语言SDK。该SDK的编译环境推荐使用64位的Ubuntu16.04。
SDK的开发编译环境会用到以下软件:
make(4.1及以上版本)、gcc(5.4.0及以上版本)。
可以使用如下命令行安装:
sudo apt-get install -y build-essential make gcc
操作步骤
获取设备端C语言SDK。
登录物联网平台控制台。
在控制台左上方,选择物联网平台所在地域,然后在实例概览页面,单击实例。
在左侧导航栏单击文档与工具,然后在设备接入SDK区域的Link SDK下,单击SDK定制。
在高级能力下,单击OTA,其他参数使用默认配置,然后单击开始生成,将SDK的ZIP文件保存至本地。
解压本地的C语言SDK文件,修改
/LinkSDK/demos/fota_posix_demo.c
文件中的设备接入信息。此处修改为设备SDevice1的信息。
char *product_key = "g18***"; char *device_name = "SDevice1"; char *device_secret = "cefbebf00***"; ... ... char *url = "iot-***.mqtt.iothub.aliyuncs.com";
参数
示例
说明
url
iot-***.mqtt.iothub.aliyuncs.com
设备的接入域名。
新版公共实例:在实例详情页面单击右上方的查看开发配置,在开发配置面板查看接入域名。
旧版公共实例:接入域名格式为
${YourProductKey}.iot-as-mqtt.${YourRegionId}.aliyuncs.com
。
实例的更多详细说明,请参见查看实例终端节点。
product_key
g18***
设备认证信息。更多信息,请参见获取设备认证信息。
本例程的身份认证方式为一机一密。
device_name
SDevice1
device_secret
cefbebf00***
fota_posix_demo.c
文件中已提供设备进行OTA升级的代码示例,OTA升级前设备上报的版本号为1.0.0
。在实际业务中,您需从设备的配置区获取实际的版本号,并执行编写代码。更多信息,请参见示例代码说明。cur_version = "1.0.0"; res = aiot_ota_report_version(ota_handle, cur_version); if (res < STATE_SUCCESS) { printf("aiot_ota_report_version failed: -0x%04X\r\n", -res); }
登录Linux虚拟机,执行以下命令,安装所需软件。
sudo apt-get install -y build-essential make gcc
将步骤2中的已修改完成的
LinkSDK
文件,上传至Linux虚拟机的开发环境。在SDK根目录
/LinkSDK
下,执行make
命令,完成样例程序的编译。make clean make
生成的样例程序
fota-posix-demo
存放在./output
目录下。执行以下命令,运行样例程序。
./output/fota-posix-demo
查看设备运行日志和状态。
设备连接信息和上报版本号日志如下。
返回物联网平台控制台对应实例下,在左侧导航栏选择 ,找到目标设备,查看设备状态。设备状态显示为在线,则表示设备与物联网平台成功连接。
后续步骤
推送OTA升级包到设备端:物联网平台下发OTA升级任务到设备,在线设备获取升级信息,进行OTA升级。