物联网

中国移动物联网开放平台OneNET学习笔记(1)——设备接入(M

2022-08-17  本文已影响0人  Leung_ManWah

一、平台简介

中国移动物联网开放平台(OneNET) 是中移物联网有限公司基于物联网技术和产业特点打造的开放平台和生态环境,适配各种网络环境和协议类型,支持各类传感器和智能硬件的快速接入和大数据服务,提供丰富的API和应用模板以支持各类行业应用和智能硬件的开发,能够有效降低物联网应用开发和部署成本,满足物联网领域设备连接、协议适配、数据存储、数据安全、大数据分析等平台级服务需求。

官网主页:https://open.iot.10086.cn/
帮助文档:https://open.iot.10086.cn/doc/v5/develop

平台架构:

1.1 OneNET Studio

OneNET Studio 定位新一代物联网中台,向下接入设备,向上承载应用。整合产业链上下游,向下整合终端设备接入与管理,向上延展物联网一站式应用开发,横向聚合增值能力,提供智能化数据分析,形成端到端完整链路物联网解决方案体系,打造物联网生态环境。

二、Demo体验与SDK下载

2.1 创建产品

进入Studio平台后,展开菜单栏中的「设备接入与管理」,点击「设备管理」,进入设备列表页面。
点击「添加设备」,选中单个设备(默认方式)输入设备详情,点击「确定」创建设备。


按照提示填写产品的基本信息,进行产品创建;请按照提示尽可能完整、全面地填写相应内容,这样更方便您后期对产品进行管理,接入协议选择 MQTT 协议。

2.2 创建设备

进入Studio平台后,展开菜单栏中的「设备接入与管理」,点击「设备管理」,进入设备列表页面。
点击「添加设备」,选中单个设备(默认方式)输入设备详情,点击「确定」创建设备。



编辑「设备名称」与 「设备描述」,点击「确定」,完成添加设备。


2.3 SDK下载及修改

OneNET Studio 物模型设备接入 SDK 的使用,适用于“MCU+标准通信模组”或单板 SOC 的方案。SDK 由固定代码包平台生成的配置文件构成,用户根据使用的硬件平台集成 SDK,通过配置宏选择不同的接入协议,并调用相应 API 接口即可实现 OneNET Studio 的快速接入。

/*****************************************************************************/
/* Local Definitions ( Constant and Macro )                                  */
/*****************************************************************************/
/**
 * 用户可在OneNET Studio创建新的产品,导入目录中model-schema.json定义的物模型后,
 * 直接使用SDK内的tm_user.[ch]进行调试,同时还可以从平台导出tm_user.[ch]与SDK
 * 内置的文件进行对比,熟悉物模型功能点的开发方式
*/
#define PRODUCT_ID      "RTy8HXUHrv"
#define DEVICE_NAME     "DHT11"
#define ACCESS_KEY      "c+2NEaKvoE3IOFJolLQb8Cmw0eQyFdrE0YEsfpKOHSg="

然后根据创建产品时选择的接入协议 MQTT,修改onenet_studio_sdk\config.h中相对应的宏FEATURE_TM_PROTOCOL_MQTT 1

查看Linux系统位数 getconf LONG_BIT,然后根据结果修改\onenet_studio_sdk\CMakeLists.txt中的位数:

2.4 SDK编译及运行程序对接平台测试

将修改完的 SDK 工程文件夹 onenet_studio_sdk 放入 Linux 运行环境中 ,进入 onenet_studio_sdk 目录,执行 cmake . 命令生成 makefile,再执行 make 进行编译,系统自动编译生成可执行文件,运行程序 aio.out

2.4.1 设备登录


平台查看终端已在线:


注:单设备5s登录不能超过3次。

2.4.2 数据上传

修改 main.c 中的 main() 函数。根据物模型生成的配置文件 tm_user.c,加入当前电压、当前温度和温度报警等数据上传:


make clean 清理工程,并 make 重新编译执行 aio.out

在平台进行数据查看,可看到数据已上传:

详细内容可查看设备日志:



2.4.3 数据下发

在设备调试中进行,数据下发测试:

tm_user.c 中的温度上限设置回调函数加入打印:

int32_t tm_prop_MaxTempSet_wr_cb(void *data)
{
    float32_t val = 0;

    tm_data_get_float(data, &val);

    /** 根据变量val的值,填入下发控制逻辑 */
    printf("val %f\n", val);

    return 0;
}

终端查看指令下发成功:

三、MQTT协议接口介绍

帮助文档:https://open.iot.10086.cn/doc/v5/develop/detail/638

3.1 接口地址

设备接入支持标准MQTTV3.1.1版本,支持TLS加密

通信协议 地址 端口 说明
MQTT studio-mqtt.heclouds.com 1883 非加密端口接入
MQTTS studio-mqtts.heclouds.com 8883 加密端口接入 证书下载

3.2 通信主题

3.2.1 Topic概念

物联网平台中,服务端和设备端通过通信主题Topic实现消息通信,设备可以通过发布消息到系统 topic 调用服务接口,也可以订阅系统 topic 用于接收服务消息通知,服务提供的系统 topic 见Topic列表。

3.2.2 Topic列表

物联网平台预定义物模型通信Topic,各物模型功能Topic消息的数据格式,见OneJSON数据格式
Topic类以正斜线(/)进行分层,区分每个类目。其中,有两个类目为既定类目:${pid}表示产品的产品id;${device-name}表示设备名称;${identifier}表示服务标识符

功能 类别 行为 描述 Topic类 操作权限
物模型通信Topic 属性 设备属性上报 请求 $sys/{pid}/{device-name}/thing/property/post 发布
响应 $sys/{pid}/{device-name}/thing/property/post/reply 订阅
设备属性设置(同步) 请求 $sys/{pid}/{device-name}/thing/property/set 订阅
响应 $sys/{pid}/{device-name}/thing/property/set_reply 发布
设备获取属性期望值 请求 $sys/{pid}/{device-name}/thing/property/desired/get 发布
响应 $sys/{pid}/{device-name}/thing/property/desired/get/reply 订阅
清除属性期望值 请求 $sys/{pid}/{device-name}/thing/property/desired/delete 发布
响应 $sys/{pid}/{device-name}/thing/property/desired/delete/reply 订阅
设备属性获取 请求 $sys/{pid}/{device-name}/thing/property/get 订阅
响应 $sys/{pid}/{device-name}/thing/property/get_reply 发布
事件 设备事件上报 请求 $sys/{pid}/{device-name}/thing/event/post 发布
响应 $sys/{pid}/{device-name}/thing/event/post/reply 订阅
服务 设备服务调用 请求 $sys/{pid}/{device-name}/thing/service/{identifier}/invoke 订阅
响应 $sys/{pid}/{device-name}/thing/service/{identifier}/invoke_reply 发布

3.3 MQTT客户端测试

查看 中国移动物联网开放平台OneNET学习笔记(2)——设备接入测试(MQTT协议)OneNET Studio篇


• 由 Leung 写于 2022 年 8 月 17 日

上一篇 下一篇

猜你喜欢

热点阅读