zoukankan      html  css  js  c++  java
  • 漫谈LiteOS-端云互通组件-MQTT开发指南(下)

    1.介绍

    SDK简介

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

    Agent Tiny SDK是Huawei Agent Tiny软件开发工具包(Software Development Kit),通过Agent Tiny SDK端云互通组件,简单快速地实现与华为物联网平台安全可靠连接,可以大大减少开发周期,快速构建IoT产品。端云互通组件可以采用MQTT、CoAP和LWM2W协议接入物联网平台。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),设备id(deviceid)和密钥(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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
        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的对接信息

    1
    2
    3
    4
        #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

    到此调测完成。

    添加华为IoT小助手(微信号:huawei-iot,回复“博客园”)获取更多LiteOS课程。

  • 相关阅读:
    积累-T
    HTML:文件标签(四)
    HTML:文件标签(三)
    HTML:文件标签(二)
    队列:最近的请求次数 (Leetcode 933 / Leetcode 232 / 剑指09 / Leetcode 225 / Leetcode 862 )
    HTML:文件标签(一)
    HTML: 介绍 & 规范
    java.sql.SQLException: Access denied for user 'root '@'localhost' (using password: YES)
    JDBC和XML- 学习笔记
    数据库: 商城案例
  • 原文地址:https://www.cnblogs.com/hwiot/p/12784712.html
Copyright © 2011-2022 走看看