- 最新动态
- 功能总览
- 服务公告
- 计费说明
- 产品介绍
- 快速入门
- 用户指南
- 最佳实践
- 开发指南
-
API参考
- 应用侧API参考
- 设备侧MQTT/MQTTS接口参考
- 设备侧HTTPS接口参考
- 设备侧LwM2M接口参考
- 安全隧道WebSocket接口参考
- 模组AT指令参考
- 修订记录
- SDK参考
- 场景代码示例
-
常见问题
- 热门问题
-
方案咨询
- 连接IoT平台的业务场景有哪些?
- 设备管理服务和设备接入服务合一后的差异点是什么?
- IAM子用户或子项目是否可以开通物联网平台服务?
- 物联网平台支持在华为云的哪些区域开通?
- 华为是否提供模组/硬件终端/应用软件等?
- IAM用户访问API提示没有权限?(是否区分版本?)
- 创建规则或者设置资源文件存储时候提示赋予Security Administrator权限
- 物联网平台设置默认资源空间的规则是什么?
- 设备接入服务如何获取设备数据?
- 物联网平台的资源空间和设备可以无限创建吗?
- 物联网平台支持批量注册设备吗?
- 物联网平台对应用侧和设备侧在开发或使用时有限制吗?
- 物联网平台支持的DTLS加密算法有哪些?
- 物联网平台支持二进制大小端模式切换吗?
- 什么是NB-IoT?
- 物联网平台支持的硬件架构和使用的相关组件有哪些?
- 如何获取平台接入地址?
- 设备集成相关问题
- 设备侧SDK相关问题
- 设备发放相关问题
- LWM2M/CoAP接入相关问题
- MQTT接入相关问题
- 泛协议接入相关问题
- 物模型相关问题
- 消息通信相关问题
- 订阅推送相关问题
- 编解码插件相关问题
- OTA升级相关问题
- 应用集成相关问题
- 实例管理相关问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
路灯通过微信小程序接入到平台
场景说明
平台支持基于WebSocket的MQTT协议,使基于浏览器的应用程序或者小程序可以快速接入到物联网平台。本文以“智慧路灯”为示例,通过微信小程序模拟设备,带您体验设备通过MQTT over WebSocket协议连接到物联网平台、上报数据和接收命令的全过程。
假设:
路灯设备上报一条包含光照强度(luminance)的消息;路灯支持远程控制开关状态的命令(switch),路灯上报的数据格式为JSON格式。
前提条件
业务流程
具体步骤如下:
步骤1:创建产品。创建一个MQTT协议的产品。
步骤2:开发产品模型。通过定义产品模型,在物联网平台构建一款路灯设备,支持上报光照强度、下发路灯开关状态命令。
步骤3:注册设备。注册一个MQTT协议的设备,体验数据上报业务。
步骤4:使用微信小程序接入。使用微信小程序将设备连接到物联网平台。
开发产品模型
- 找到创建产品章节新增的产品,单击产品进入产品界面。
- 在产品详情“基本信息”页面,单击“自定义模型”,配置产品的服务。
- 添加服务“BasicData”。
- 在“添加服务”页面,填写“服务ID”、“服务类型”和“服务描述”,单击“确定”。
- “服务ID”:BasicData
- “服务类型”:建议和服务ID保持一致
- “服务描述”:上报路灯数据
- 在“BasicData”的下拉菜单下单击“添加属性”,填写相关信息后,单击“确定”。
- “属性名称”:luminance
- “数据类型”:int(整型)
- “访问权限”:可读、可写
- “取值范围”:0~65535
- “步长”:0
- “单位”:不填写
- 在“添加服务”页面,填写“服务ID”、“服务类型”和“服务描述”,单击“确定”。
- 添加服务类型“LightControl”。
- 在“基本信息”下单击“添加服务”,填写“服务ID”、“服务类型”和“服务描述”,单击“确定”。
- “服务ID”:LightControl
- “服务类型”:建议和服务ID保持一致
- “服务描述”:路灯开关控制
- 在“LightControl”的下拉菜单下单击“添加命令”,输入命令名称“Switch”。
- 在“新增命令”页面,单击“新增输入参数”,填写相关信息后,单击“确定”。
图1 新增命令参数-value
- 在“基本信息”下单击“添加服务”,填写“服务ID”、“服务类型”和“服务描述”,单击“确定”。
注册设备
- 在管理控制台页面,选择左侧导航栏“设备 > 所有设备”,单击“注册设备”。
- 根据页面提示信息填写参数,然后单击“确定”。
参数名称
说明
所属资源空间
确保和创建的产品归属在同一个资源空间。
所属产品
选择步骤2创建的产品。
设备标识码
即nodeID,设备唯一物理标识。可自定义,由英文字母和数字组成。
设备名称
即device_name,可自定义,如streetlight。
设备认证类型
选择“密钥”。
密钥
此处不填写,物联网平台会自动生成。
成功注册设备后,平台会自动生成设备ID和密钥,请妥善保管好设备ID(deviceId)和密钥(deviceSecret),用于设备接入。
图2 设备-注册设备成功
使用微信小程序接入
- 下载微信小程序示例工程。
- 下载并安装微信开发者工具,使用微信开发者工具打开微信小程序示例工程,如下图所示。
图3 微信小程序示例工程
- 微信小程序连接到物联网平台
开发者通过传入设备信息,将设备连接到物联网平台。
说明:
真机调测时请在微信开发者工具-详情-本地设置-不校验合法域名,将其取消勾选,再在微信公众平台-小程序管理员界面-开发管理-服务器域名中添加socket合法域名('wss://'+MQTT接入地址)。
图4 连接到平台单击连接到平台按钮,在域名、设备ID和密钥正确的情况下,可以看到日志设备连接成功,可在平台查看设备状态,如下图:
图5 设备列表-设备在线 - 发布Topic
发布Topic是指设备主动向平台上报自己的属性或消息,详细见设备属性上报接口文档。
在微信小程序中实现了上报属性数据的功能。
发布Topic后,Demo界面显示如下:
图6 上报数据设备上报属性成功后可在设备详情页面查看到上报的属性:
图7 查看上报数据-MQTT - 订阅Topic
订阅某topic的设备才能接收平台发布的关于该topic的消息,关于平台预置topic可参考Topic定义。
建链后,如果成功订阅Topic,主界面日志栏显示如下信息:
图8 订阅topic界面 - 接收下发命令
小程序支持接收平台下发命令的功能,在MQTT建链完成并成功订阅Topic后,可以在控制台设备详情中对该设备进行同步命令下发。下发成功后,在MQTT的回调函数中接收到平台下发给设备的命令。
例如下发参数名为LightControl: Switch,参数值为ON的命令。
图9 命令下发-MQTT同步命令下发成功后,Demo界面显示如下
图10 接收命令界面