[技术干货] 漫谈LiteOS-端云互通组件-MQTT开发指南(下)

端云互通组件-MQTT开发指南(下)

摘要:本文介绍使用野火开发板通过Agent Tiny SDK的端云互通组件,使用MQTT协议快速接入华为云平台。通过平台侧、设备侧的开发以及调测过程来了解经BS接入物联网平台模式的具体流程,希望对你有所帮助。

1.介绍

SDK简介

Agent Tiny是部署在具备广域网能力、对功耗/存储/计算资源有苛刻限制的终端设备上的轻量级互联互通中间件,您只需调用API接口,便可实现设备快速接入到物联网平台以及数据上报和命令接收等功能。

Agent Tiny SDKHuawei Agent Tiny软件开发工具包(Software Development Kit),通过Agent Tiny SDK端云互通组件,简单快速地实现与华为物联网平台安全可靠连接,可以大大减少开发周期,快速构建IoT产品。端云互通组件可以采用MQTTCoAPLWM2W协议接入物联网平台。Agent Tiny SDK全景图如图1所示。

iot-architecture.png

2. 开发环境

2.1硬件需求

开发计算机、运行win7及以上操作系统

野火开发板STM32F429IG、数据线

Jlink下载器、网线、USB转串口

2.2软件需求

IDE(包括GCC编译器、JDK运行环境、make工具、Jlink驱动、Eclipse)

串口工具(QCOM-V1.6

实名认证的华为云账号

SDK源码

3.接入物联网平台流程

根据设备中的接入地址,可以将接入物联网平台分为两种模式:

  • 直接接入物联网平台模式

  • 通过设备发放服务接入物联网平台模式

两种接入方式的对比:

  • 直接接入物联网平台示意图


direct_connect_mode.png


  • 通过设备发放服务接入物联网凭条示意图

BS_connect_mode.png

4. 直接接入实例 https://bbs.huaweicloud.com/blogs/143511


5. BS接入实例

本章节以LINUX平台通过以太网经BS接入物联网平台为例,详细讲述接入流程。总体操作流程参考下图.

               

zh-cn_bs_process.png


设备发放服务信息参考下表

zh-cn_bs_operate_001.png

5.1平台侧开发

进入物联网平台,选择设备发放->进入设备发放服务。根据上图,依次在设备发放服务中产品导入->设备导入->发放策略->发放设备。设备导入成功后,记住设备标识(nodeid),设备iddeviceid)和密钥(password),这三个信息主要用于对接华为云时的设备鉴权。具体操作参考如下。

进入设备发放平台

在物联网平台选择设备发放,公测期间需要申请公测权限,可在设备发放页面选择申请公测权限并填写相关信息,申请权限通过后,点击进入设备发放服务

zh-cn_bs_cloud_001.png

导入产品

在设备发放服务页面选择产品导入”->从产品中心导入->选择最后一个源机固定端

zh-cn_bs_cloud_002.pngzh-cn_bs_cloud_003.png

设备导入

设备发放服务页面选择设备导入”->点击页面右上角单个导入”->弹出导入设备基本信息配置,产品信息选择上一步导入的产品、设置设备标识码、设备名称、访问方式选择域名

zh-cn_bs_cloud_005.png

配置发放策略

在设备发放服务页面选择发放策略”->点击设备名称筛选”->添加实例->在添加实例配置框内填写关键字,关键字为设备导入中的设备名称、选择发放区域、点击确定

发放设备

选择设备仓库”->选择发放设备”->弹出对话框点击确定”->立即启动


启动后,发放状态为已发放

zh-cn_bs_cloud_013.png

5.2设备侧开发

设备侧开发前准备

l  下载SDK源码

l  获取接入信息(进入物联网平台,在设备发放 > 设备引导对接信息页面查看接入信息中的“MQTT接入方式”)

l  Linux平台(准备好GCC编译环境以及Make工具)

上传源码到linux平台

码目录如下


zh-cn_dmp_device_001.png

修改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_ENABLE := y
    CONFIG_OC_MQTT_TYPE   := "soft"
    CONFIG_DEMO_ENABLE := y
    CONFIG_DEMO_TYPE   := "oc_tls_mqtt_bs_demo"### 产品逻辑 ###

修改接入信息

修改demos/oc_tls_mqtt_bs_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

zh-cn_dmp_device_002.png

运行Huawei_LiteOS.elf

zh-cn_dmp_device_003.png

5.3调测

在设备发放服务中选择设备仓库,查看设备的引导状态为引导成功

zh-cn_bs_test_004.png

登录设备管理服务,选择设备管理,进入设备管理服务

zh-cn_bs_test_005.png

点击下图左下角图标,选择设备-所有设备,可以看到设备状态为在线

zh-cn_bs_test_001.pngzh-cn_bs_test_002.png点击设备名称,进入设备详情页面

zh-cn_bs_test_003.png

到此调测完成。