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

2. 开发环境
2.1硬件需求
开发计算机、运行win7及以上操作系统
野火开发板STM32F429IG、数据线
Jlink下载器、网线、USB转串口
2.2软件需求
IDE(包括GCC编译器、JDK运行环境、make工具、Jlink驱动、Eclipse)
串口工具(QCOM-V1.6)
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开发指南(下)的更多相关文章
- 漫谈LiteOS-端云互通组件-MQTT开发指南(上)
1.介绍 SDK简介 Agent Tiny是部署在具备广域网能力.对功耗/存储/计算资源有苛刻限制的终端设备上的轻量级互联互通中间件,您只需调用API接口,便可实现设备快速接入到物联网平台以及数据上报 ...
- Blazor 组件库开发指南
翻译自 Waqas Anwar 2021年5月21日的文章 <A Developer's Guide To Blazor Component Libraries> [1] Blazor 的 ...
- 腾讯云TDSQL MySQL版 - 开发指南 分布式事务
由于事务操作的数据通常跨多个物理节点,在分布式数据库中,类似方案即称为分布式事务. TDSQL MySQL版 支持普通分布式事务协议和 XA 分布式事务协议.TDSQL MySQL版(内核5.7或以上 ...
- 腾讯云TDSQL MySQL版 - 开发指南 二级分区
TDSQL MySQL版 目前支持 Range 和 List 两种格式的二级分区,具体建表语法和 MySQL 分区语法类似. 二级分区语法 一级 Hash,二级 List 分区示例如下: MySQL ...
- 漫谈LiteOS之开发板-串口(基于GD32450i-EVAL)
[摘要] 主要讲解物联网的技术积累,本期我们先带领大家学习漫谈LiteOS之漫谈开发板第一集-串口,本文基于GD32450i-EVAL对串口以及其通信做了一个简要的分析,以及开发过程中遇到的一些技术 ...
- 学习 | jQuery移动端页面组件化开发(一)
最近在学习移动端组件化开发web页面,其中有好多小细节,值的去思考. 主要介绍JS的思路,具体的代码就不贴了,主要是想表达出一种思路 总体来说 1.入口文件,在入口文件中导入插件,插件样式,jquer ...
- vue3-hash-calendar,一款基于vue3.x开发的移动端日期时间选择组件
在大家的催更下,鸽了一天又一天,vue3-hash-calendar 终于在今天诞生了. 按照惯例,先上效果图 Demo 扫描上方二维码或者请用浏览器的手机模式查看:https://www.hxkj. ...
- 开放下载 | 《Knative 云原生应用开发指南》开启云原生时代 Serverless 之门
点击下载<Knative 云原生应用开发指南> 自 2018 年 Knative 项目开源后,就得到了广大开发者的密切关注.Knative 在 Kubernetes 之上提供了一套完整的应 ...
- Agile.Net 组件式开发平台 - 组件开发示例
所谓组件式开发平台,它所有的功能模块都是以组件的形式扩展的,下面我来演示一个简单的组件开发例程. Agile.Net开发管理平台项目,已经托管在开源中国码云平台(http://git.oschina. ...
随机推荐
- UVA - 548 根据中序遍历和后序遍历建二叉树(关于三种遍历二叉树)
题意: 同时给两个序列,分别是二叉树的中序遍历和后序遍历,求出根节点到叶子结点路径上的权值最小和 的那个 叶子节点的值,若有多个最小权值,则输出最小叶子结点的和. 想法: 一开始想着建树,但是没有这样 ...
- 为何给CheckBox设置了checked属性还是没有勾选,行内样式都显示了checked
为何给CheckBox设置了checked属性还是没有勾选,行内样式都显示了checked 正常情况下我们设置给CheckBox一个checked属性后一般都会选中 然而我今天在做案例的时候却遇到了类 ...
- Unix 网络编程卷一源码编译踩坑记录 ubtutu 19.10
在阅读unpv1时运行源代码的环境配置,这里简单记录一下 源代码里的README 写得挺详细的,但是在Linux 系统的下还没没办法直接编译通过的, 这里我使用的是ubuntu 19.10(在腾讯云1 ...
- H - Bone Collector
H - Bone Collector Many years ago , in Teddy's hometown there was a man who was called "Bone Co ...
- 泛型--->Result返回结果封装
controller的返回结果一般有两种: 1.Rest API JSON 输出 2.页面 目的:编写优雅的代码 实现:通过泛型对返回结果进行封装 代码如下: 一.控制层 /** * ...
- implements Serializable
implements Serializable 1. 序列化和反序列化 序列化: 把对象转换为字节序列的过程称为对象的序列化. 反序列化: 把字节序列恢复为对象的过程称为对象的反序列化. 在Java和 ...
- Java HashMap源码详解
Java数据结构-HashMap 目录 Java数据结构-HashMap 1. HashMap 1.1 HashMap介绍 1.1.1 HashMap介绍 1.1.2 HashMap继承图 1.2 H ...
- 适用于 Mpvue 的微信小程序富文本解析自定义组件
废话不多说,直接上方法: 首先 npm 安装 mpvue-wxparse npm i mpvue-wxparse 接下来:使用 <template> <div> <wxP ...
- 下载安装配置 Scala-2.12.11
文章更新于:2020-03-24 安装惯例,文件附上链接放在文首. 文件名:scala-2.12.11.tgz 文件大小:19.83 MB 下载链接:https://downloads.lightbe ...
- 彻底卸载----LoadRunner
保证所有LoadRunner的相关进程(包括Controller.VuGen.Analysis和Agent Process)全部关闭: 备份好LoadRunner安装目录下测试脚本,这些脚本一般存放在 ...