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所示。

2. 开发环境

2.1硬件需求

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

野火开发板STM32F429IG、数据线

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

2.2软件需求

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

串口工具(QCOM-V1.6)

实名认证的华为云账号

SDK源码

3.接入物联网平台流程

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

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

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

两种接入方式的对比:

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

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

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

5. 经BS接入实例

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

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

5.1平台侧开发

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

进入设备发放平台

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

导入产品

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

设备导入

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

配置发放策略

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

发放设备

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

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

5.2设备侧开发

设备侧开发前准备

l  下载SDK源码

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

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

上传源码到linux平台

源码目录如下

修改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

运行Huawei_LiteOS.elf

5.3调测

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

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

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

点击设备名称,进入设备详情页面

到此调测完成。

漫谈LiteOS-端云互通组件-MQTT开发指南(下)的更多相关文章

  1. 漫谈LiteOS-端云互通组件-MQTT开发指南(上)

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

  2. Blazor 组件库开发指南

    翻译自 Waqas Anwar 2021年5月21日的文章 <A Developer's Guide To Blazor Component Libraries> [1] Blazor 的 ...

  3. 腾讯云TDSQL MySQL版 - 开发指南 分布式事务

    由于事务操作的数据通常跨多个物理节点,在分布式数据库中,类似方案即称为分布式事务. TDSQL MySQL版 支持普通分布式事务协议和 XA 分布式事务协议.TDSQL MySQL版(内核5.7或以上 ...

  4. 腾讯云TDSQL MySQL版 - 开发指南 二级分区

    TDSQL MySQL版 目前支持 Range 和 List 两种格式的二级分区,具体建表语法和 MySQL 分区语法类似. 二级分区语法 一级 Hash,二级 List 分区示例如下: MySQL ...

  5. 漫谈LiteOS之开发板-串口(基于GD32450i-EVAL)

    [摘要] ​主要讲解物联网的技术积累,本期我们先带领大家学习漫谈LiteOS之漫谈开发板第一集-串口,本文基于GD32450i-EVAL对串口以及其通信做了一个简要的分析,以及开发过程中遇到的一些技术 ...

  6. 学习 | jQuery移动端页面组件化开发(一)

    最近在学习移动端组件化开发web页面,其中有好多小细节,值的去思考. 主要介绍JS的思路,具体的代码就不贴了,主要是想表达出一种思路 总体来说 1.入口文件,在入口文件中导入插件,插件样式,jquer ...

  7. vue3-hash-calendar,一款基于vue3.x开发的移动端日期时间选择组件

    在大家的催更下,鸽了一天又一天,vue3-hash-calendar 终于在今天诞生了. 按照惯例,先上效果图 Demo 扫描上方二维码或者请用浏览器的手机模式查看:https://www.hxkj. ...

  8. 开放下载 | 《Knative 云原生应用开发指南》开启云原生时代 Serverless 之门

    点击下载<Knative 云原生应用开发指南> 自 2018 年 Knative 项目开源后,就得到了广大开发者的密切关注.Knative 在 Kubernetes 之上提供了一套完整的应 ...

  9. Agile.Net 组件式开发平台 - 组件开发示例

    所谓组件式开发平台,它所有的功能模块都是以组件的形式扩展的,下面我来演示一个简单的组件开发例程. Agile.Net开发管理平台项目,已经托管在开源中国码云平台(http://git.oschina. ...

随机推荐

  1. AI体验类产品竞品分析

    1.业界状态 人工智能(Artificial Intelligence),简称AI.上个世纪50年代就有一批年轻的科学家提出了这一概念,经历过50多年的长足发展,信息化建设的脚步不断加快,机器人战胜人 ...

  2. Java多线程问题40个

    1.多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡.所谓”知其然知其所以然”,”会用”只是”知其然”,”为什么用”才是”知其所以然 ...

  3. SpringBoot系列(二)入门知识

    SpringBoot系列(二)入门知识 往期推荐 SpringBoot系列(一)idea新建springboot项目 引言 本来新建springboot项目应该放在入门知识这一章的,但是由于新建spr ...

  4. Hadoop调试记录(1)

    错误 ERROR: Can't get master address from ZooKeeper; znode data == null 解决 关闭hadoop,发现stop-all.sh后几个进程 ...

  5. prometheus+grafana实现监控过程的整体流程

    prometheus安装较为简单,下面会省略安装步骤: 一.服务器启动 Prometheus启动 ./prometheus --config.file=prometheus.yml Grafana启动 ...

  6. bootstrip CSS

    什么是网格(Grid)? 摘自维基百科: 在平面设计中,网格是一种由一系列用于组织内容的相交的直线(垂直的.水平的)组成的结构(通常是二维的).它广泛应用于打印设计中的设计布局和内容结构.在网页设计中 ...

  7. G - 土耳其冰淇凌 Gym - 101194D(二分答案 + 贪心检验)

    熊猫先生非常喜欢冰淇淋,尤其是冰淇淋塔.一个冰淇淋塔由K个冰淇淋球堆叠成一个塔.为了使塔稳定,下面的冰淇淋球至少要有它上面的两倍大.换句话说,如果冰淇淋球从上到下的尺寸是A0, A1, A2,···, ...

  8. HDU1166(线段树 +更新单点,求区间总和)、HDU1754(线段树 + 更新单点,求区间最大值)

    线段树简单应用 先附上几张图便与理解,大佬文章传送门1.传送门2 HDU1166:题目描述 线段树 +更新单点,求区间总和 代码如下(递归版) #include<iostream> #in ...

  9. 单周期CPU

    一个时钟周期执行一条指令的过程理解(单周期CPU): https://blog.csdn.net/a201577F0546/article/details/84726912 单周期CPU指的是一条指令 ...

  10. vscode 保存自动 格式化eslint 代码

    在网上找了很多种方法,大多都没有成功  一下是一种成功的 配置方法: 1) First, you need to install the ESLint extension in the VS code ...