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

一、平台简介

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

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

平台架构:

1.1 OneNET Studio

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

  • 统一设备接入
    提供MQTT、CoAP和泛协议标准接入SDK,支持直连、网关、云云对接等多种方式接入,随用随选。
  • 统一物模型
    提供灵活的物模型定义及全行业多品类标准模版,构建标准化数据模型,解决数据碎片化,简化设备与应用开发。
  • 统一能力网关
    支撑增值服务一体化,聚合LBS定位、智能语音等增值能力,提供多种物联网增值能力API。
  • 一站式开发
    面向行业场景,提供项目管理与应用开发工具,实现跨用户跨产品的资源整合,加速项目集成。
  • 运维监控
    提供设备生命周期管理、业务监控、链路监控等能力,实时反映感知设备接入情况,实现平台业务自动化运维和统一告警管理。
  • 大数据分析
    对物联网数据资产进行统一的管理、分析,助力物联网企业实现数据化,通过数据分析产生更多的业务价值。
  • 数据可视化
    提供丰富的可视化组件和免编程、拖拽式编辑方式,助力用户无缝对接海量数据,搭建可视化大屏应用。
  • 边缘计算
    提供安全可靠、低延时、低成本、易扩展、弱依赖的本地计算服务,打造“云-网-边-端-业” 一体化5G专网解决方案。
  • 人工智能
    围绕人脸识别、图像处理、视频分析等方向,打造20余种AI标准化能力,可实现API接口调用、算法移植、标准化应用等对外服务。
  • 生态赋能
    基于平台生态及合作伙伴各项技术能力,实现产品及业务全生命周期监管、认证和推广,为各主要行业提供一站式智能化解决方案。

二、Demo体验与SDK下载

2.1 创建产品

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


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

2.2 创建设备

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



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


2.3 SDK下载及修改

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

  • SDK固定代码包下载:
    https://open.iot.10086.cn/doc/v5/develop/detail/625
    SDK目录结构:

    从平台获取产品 ID设备名称设备密钥



    然后根据实际获取到的产品 ID,设备名称和设备密钥修改 onenet_studio_sdk\main.c 中的产品 ID,设备名称和设备密钥。
/*****************************************************************************/
/* 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

  • SDK平台生成的配置文件下载:
    平台端下载的配置文件包括 tm_user.ctm_user.h 文件,用户需将其放入 SDK 的 onenet\thing_model\user 目录中替换。

查看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 数据下发

  • 写属性点
    若用户在平台定义的属性功能点具备写属性,则配置文件会生成相应的写函数,平台进行数据下发时会进入对应的功能点写函数,用户需在函数中根据下发的数据执行相关逻辑,如控制开关、调整 LED 亮度等
  • 读属性点
    若用户在平台定义的属性功能点具备读属性,则配置文件会生成相应的读函数,平台进行数据下发时会进入对应的功能点读函数,用户需在函数中根据实际硬件设计获取功能点值设置到参数 val 中
  • 服务调用
    若用户在平台定义的服务功能点后,则配置文件会生成相应的服务调用函数,平台进行数据下发时会进入对应的服务调用回调函数,用户需在函数中根据服务定义,由输入参数运算得到输出参数,设置到 val 中

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

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 日

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容