TuyaLink 协议是涂鸦 IoT 开发平台面向物联网开发领域设计的一种数据交换规范,数据格式为 JSON,主要用于设备端和涂鸦 IoT 开发平台的双向通信,更便捷地实现了设备端和平台之间的业务数据交互。
设备的通信方式也是多种多样的。无线通信方式有蓝牙 LE、Zigbee、蓝牙 Mesh、433 协议,有线通信方式有 RS-485、RS-232、以太网以及各种工业协议等。但通信只是建立一个数据通道,要想真正运作起来,还需要了解数据包格式协议。数据协议包括 OCPP、Modbus、工业标准协议和其他自定义协议等。
本文介绍的 Tuya MQTT 标准协议是其中一种协议,也是涂鸦物联网平台最底层的基础通讯协议。开发者可根据协议完全自主地进行嵌入式开发,该协议可支持所有设备的集成。
本文以一款常见的 MQTT 客户端 MQTT.fx 为例,模拟设备使用涂鸦开放的 MQTT 协议接入涂鸦云。
MQTT 接入点
涂鸦 IoT 开发平台支持全球多个区域的设备接入,故需要根据设备实际使用的区域,来选择对应的接入点。
全球 6 大区 MQTT 接入点如下:
区域 | MQTT 接入域名 | 端口号 |
---|---|---|
中国数据中心 | m1.tuyacn.com | 8883 |
中欧数据中心 | m1.tuyaeu.com | 8883 |
美西数据中心 | m1.tuyaus.com | 8883 |
美东数据中心 | m1-ueaz.tuyaus.com | 8883 |
西欧数据中心 | m1-weaz.tuyaeu.com | 8883 |
印度数据中心 | m1.tuyain.com | 8883 |
环境准备
在 涂鸦 IoT 开发平台 创建产品,获取如下参数值。详细创建产品的过程请参考 选品类创建产品。
参数名称 | 参数说明 |
---|---|
ProductID | 产品的信息 |
DeviceID | 设备的身份信息,用于连接云端授权和通信使用 |
DeviceSecret | 设备的密码信息 ,用于连接云端授权使用 |
接入示例
配置 MQTT.fx 接入文件
1.在 MQTT.fx 官网下载并安装相应操作系统版本的 MQTT.fx 客户端。
2.打开 MQTT.fx 软件,单击菜单栏中的 Extras 选项,并选择 Edit Edit Connection Profiles。
3.在 Edit Edit Connection Profiles 页面中填写相关参数。
参数名称 | 参数说明 |
---|---|
Profile Name | 输入您的自定义名称 |
Profile Type | MQTT 服务器连接,选择 MQTT Broker |
Broker Address | MQTT 接入域名,对应 MQTT 协议中的域名,此处以中国区域名 m1.tuyacn.com 为例 |
Broker Port | 通信端口号,设置为 8883 |
Client ID | MQTT 协议字段,格式为 tuyalink_{$deviceid} |
General | 使用默认值即可 |
4.选择 User Credentials 并填写相关参数。
参数名称 | 参数说明 |
---|---|
User Name | ${deviceId}|signMethod=hmacSha256,timestamp=${当前 10 位时间戳},secureMode=1,accessType=1;例如:6c828cba434ff40c074wF2|signMethod=hmacSha256,timestamp=1607837283,secureMode=1,accessType=1 |
Password | hmacSha256(content, deviceSecret),content 的值"deviceId=6c828cba434ff40c074wF2,timestamp=1607635284,secureMode=1,accessType=1",按照 deviceId,timestamp,secureMode,accessType 这个顺序组装明文内容。64 位字符的 16 进制数,不足 64位时前面需要补零。 |
此处涉及到的 DeviceID 和 DeviceSercet 信息在 IoT 平台注册设备时生成,可参考 环境准备 章节找打到相应参数,Password 加密信息可以通过 Hmac 在线计算工具生成。示例如下:
5.选择 SSL/TLS,选中 Enable SSL/TLS 并设置 Protocol 为 TLSv1.2。
6.单击右下角 OK 完成设置,再去主页面单击 Connect。
等待右侧指示灯变绿,表示连接成功。
测试通信
上行通信
- 在 Publish 页面输入发布的 topic,并填写 payload 信息,点击 Publish,此处以
tylink/6c855a6e81c40a91e9k5gx/thing/model/get
topic 为例进行介绍。 - 进入涂鸦 IoT 开发平台的设备日志页面,输入 DeviceID 信息,可以看到刚才发布的消息,证明上行通信已经成功。
下行通信
- 在 Subscribe 页面输入 topic,点击 Subscribe,客户端会出现一条订阅的信息,此处以
tylink/6c855a6e81c40a91e9k5gx/thing/property/get_response
topic 为例进行介绍。 - 进入 Publish 页面,输入与订阅对应的 topic 信息,并点击 Publish 发布
- 返回到 Subscribe 页面,可以看到刚才订阅的 topic 收到了云端的信息。
总结
涂鸦IoT平台的Tuya MQTT标准协议是一种基础通讯协议,用于支持各种设备的集成。文章以MQTT.fx客户端为例,介绍了如何使用涂鸦的开放MQTT协议接入涂鸦云。涂鸦IoT平台为全球多个区域提供设备接入支持,因此需要根据设备所在区域选择相应的MQTT接入点。文章还详细描述了如何在MQTT.fx中配置接入设置,包括Broker地址、端口、客户端ID、用户凭证和SSL/TLS设置。这一流程旨在帮助开发者理解并实现设备与涂鸦云之间的有效通信。
回复