Agent Tiny SDK是Huawei Agent Tiny软件开发工具包(Software Development Kit),通过Agent Tiny SDK端云互通组件,简单快速地实现与华为物联网平台安全可靠连接,可以大大减少开发周期,快速构建IoT产品。端云互通组件可以采用MQTT、CoAP和LWM2W协议接入物联网平台。
Agent Tiny SDK的全景图
根据设备中的接入地址,可以将接入物联网平台分为两种模式:-
直接接入物联网平台模式
-
通过设备发放服务接入物联网平台模式
两种接入方式的对比:
本章节以野火STM32F429IG开发板通过以太网直接接入物联网平台为例,详细讲述接入流程。总体操作流程参考下图
说明:
野火STM32F429IG开发板的详细资料可以从http://www.firebbs.cn/forum.php下载。
产品模型参考
设备信息参考
进入[开发中心](https://iot-dev.huaweicloud.com),根据上图,依次在开发中心中新建项目->新建产品->定义产品模型->注册设备。新建项目
点击“我的项目”中“+”,创建自己的项目
新建产品
选择产品开发新建产品,即可跳转到产品模型定义界面
补全产品的各类信息,点击“创建”,提示创建成功后点击“确定”,前往产品开发

定义产品模型
选择新建服务,开始添加产品的相关特性
给产品定义一个属性:batteryLevel,用于设备向平台上报,定义为int型,最大值设置为100,访问模式RWE全部勾选,完成后点击确定;
给产品增加一个命令:cmd,设置下发命令属性名称:ioswitch,用于平台向设备发送命令,定义为int型,最大值99。通过上报和下发,构成了我们演示的上行和下行通道。
添加完后保存:
创建设备
创建了产品模型之后,我们需要根据模型创建具体的设备。点击设备管理->添加真实设备,即可进入添加设备界面。
进入界面之后,选择我们刚才建立的产品模型“sdk_test_001”,进行设备创建。 设备标识(nodeid)是识别该设备的唯一标识符,要求唯一,此处为示范,用户使用时以实际命名为准。
此处注意,确认之后自动生成产品设备ID(deviceid)及密钥(password),请记录下设备标识(nodeid)、设备ID(deviceid)及密钥(password),这三个信息主要用于对接华为云时的设备鉴权。
创建完毕之后,即可在设备管理中看到刚刚创建的设备,此时设备状态为离线。
到此为止,平台侧开发完毕。
设备侧开发前准备- 下载SDK源码。
- 获取接入信息(进入开发中心的“sdk_test_098”项目中,在“应用 > 对接信息”页面查看“设备接入信息”中的“MQTT接入方式”)
- 硬件设备:野火STM32F429IG开发板,调试下载器(J-Link)、网线、USB转串口等。
- 软件:IDE(包含GCC编译器,JDK运行环境,make工具,Jlink驱动、Eclipse IDE),串口工具(QCOM_V1.6)
IDE开发环境安装配置
参考开发环境搭建指南,搭建设备端侧开发环境。
修改mk文件
集成开发环境搭建好后,修改targets\STM32F429IGTx_FIRE\config.mk
CONFIG_OS_TYPE := "liteos"
CONFIG_ARCH_CPU_TYPE := "armv7-m"
CONFIG_SHELL_ENABLE := y
CONFIG_STIMER_ENABLE := y
CONFIG_DRIVER_ENABLE := y
CONFIG_AT_ENABLE := y
CONFIG_CJSON_ENABLE := y
CONFIG_TCPIP_ENABLE := y
CONFIG_TCPIP_TYPE := "lwip_socket"
CONFIG_DTLS_ENABLE := y
CONFIG_DTLS_TYPE := "mbedtls_cert"
CONFIG_MQTT_ENABLE := y
CONFIG_MQTT_TYPE := "paho_mqtt"
CONFIG_OC_MQTT_ENABLE := y
CONFIG_OC_MQTT_TYPE := "soft"
CONFIG_OC_MQTT_VERSION := "V1"
CONFIG_OC_MQTTDEMO_ENABLE := y
CONFIG_OC_MQTTDEMO_BSENABLE := n
CONFIG_DEMO_ENABLE := y
修改接入信息
参考如下内容,修改demos/oc_mqtt_demo/oc_mqtt_demo.c
#define DEFAULT_LIFETIME 60
#define CN_SERVER_IPV4 "49.4.93.24" //物联网平台MQTT接入地址
#define CN_SERVER_PORT "8883" //物联网平台MQTT接入端口
#define CN_EP_NODEID "device_001" //平台侧新建的设备标识码
#define CN_EP_PASSWD "314483483108d92db143" //平台侧设备创建成功后提供的密钥
编译运行
修改完成,编译然后debug。
通过串口工具,可以看到设备已经和物联网平台建立连接。登录开发平台->“sdk_test_098”项目 ->设备管理,可以看到我们的设备已经上线,点击调试产品,可以进入我们平台的设备调试界面。
可以看到所创建的设备已经上报的数据
输入ioswitch值88,点击“发送”。
在串口工具可以看到接收到的命令
到此调测完成。
本章节以LINUX平台通过以太网经BS接入物联网平台为例,详细讲述接入流程。总体操作流程参考下图设备发放服务信息参考下表
进入[物联网平台](https://console.huaweicloud.com/iotOceanLink/?region=cn-north-4#/iotdmp/spMenu/iodps),选择设备发放->进入设备发放服务。根据上图,依次在设备发放服务中产品导入->设备导入->发放策略->发放设备。设备导入成功后,记住设备标识(nodeid),设备id(deviceid)和密钥(password),这三个信息主要用于对接华为云时的设备鉴权。 具体操作参考如下。进入设备发放平台
在物联网平台选择“设备发放”,公测期间需要申请公测权限,可在设备发放页面选择申请公测权限并填写相关信息,申请权限通过后,点击“进入设备发放服务”。
导入产品
在设备发放服务页面选择“产品导入”->从产品中心导入->选择最后一个源机固定端
设备导入
设备发放服务页面选择“设备导入”->点击页面右上角“单个导入”->弹出导入设备基本信息配置,产品信息选择上一步导入的产品、设置设备标识码、设备名称、访问方式选择“域名”
配置发放策略
在设备发放服务页面选择“发放策略”->点击“设备名称筛选”->添加实例->在添加实例配置框内填写关键字,关键字为设备导入中的设备名称、选择发放区域、点击“确定”。
发放设备
选择“设备仓库”->选择“发放设备”->弹出对话框点击“确定”->立即启动
设备侧开发前准备上传源码到linux平台
源码目录如下
修改mk文件
参考如下内容,修改targets/LINUX/GCC/config.mk
CONFIG_OS_TYPE := "linux"
CONFIG_ARCH_CPU_TYPE := "x86-64"
CONFIG_SHELL_ENABLE := n
CONFIG_STIMER_ENABLE := y
CONFIG_DRIVER_ENABLE := n
CONFIG_AT_ENABLE := n
CONFIG_CJSON_ENABLE := y
CONFIG_TCPIP_ENABLE := y
CONFIG_TCPIP_TYPE := "linux_socket"
CONFIG_DTLS_ENABLE := y
CONFIG_DTLS_TYPE := "mbedtls_cert"
CONFIG_MQTT_ENABLE := y
CONFIG_MQTT_TYPE := "paho_mqtt"
CONFIG_OC_MQTT_TYPE := "soft"
CONFIG_OC_MQTT_VERSION := "V1"
CONFIG_OC_MQTTDEMO_ENABLE := y
CONFIG_OC_MQTTDEMO_BSENABLE := y
CONFIG_DEMO_ENABLE := y
修改接入信息
修改demos/oc_mqtt_demo/oc_mqtt_demo.c的对接信息
#define BS_SERVER_ADDRESS "iot-bs.cn-north-4.myhuaweicloud.com" //设备发放服务提供的MQTT对接地址
#define BS_SERVER_PORT "8883" //设备发放服务提供的MQTT对接端口
#define DEMO_WITH_BOOTSTRAP_NODEID "mqtt_test_001" //设备发放时导入设备的设备标识码
#define DEMO_WITH_BOOTSTRAP_PASSWORD "ecc8dca5dfe4686bc71b" //设备发放时导入设备成功后提供的密钥
make编译生成Huawei_LiteOS.elf
运行Huawei_LiteOS.elf
在设备发放服务中选择“设备仓库”,查看设备的引导状态为“引导成功”登录设备管理服务,选择“设备管理”,进入设备管理服务
点击下图左下角图标,选择设备-所有设备,可以看到设备状态为“在线”

到此调测完成。















































