EzData2 目前提供了 MQTT 和 WebSocket 两种连接方式,可供设备端实现数据交互。设备接入前需使用硬件设备 Mac 地址调用注册接口获取 Device Token。完成注册并成功获取 Device Token 后,访问 my.m5stack.com 登录个人账户,点击 Add Group,选择 Token 选项。复制粘贴 Device Token 进行创建,即可完成 Device Token 与账户的绑定。单个设备的 Device Token 相当于一个数据集 Group。设备端参考下方通信协议,基于 Device Token 进行登录验证后,即可对数据字段进行增删改查。
| 代码 | 类型 | 描述 |
|---|---|---|
| 100 | 数据操作 | 设备端新增数据 |
| 101 | 数据操作 | 设备端修改数据 |
| 102 | 数据操作 | 设备端删除数据 |
| 103 | 数据查询 | 设备端查询数据列表 |
| 104 | 数据查询 | 设备端查询数据详情 |
| 105 | 文件上传 | 设备端上传文件(通知) |
| 106 | 用户操作 | 用户端扫码 |
| 107 | 用户操作 | 用户端修改数据 |
| 108 | 用户操作 | 用户端删除数据 |
| 109 | 用户操作 | 用户端新增数据 |
| 500 | 错误 | 设备端请求错误 |
请求接口:
https://ezdata2.m5stack.com/api/v2/device/registerMacPOSTdeviceToken。请求参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| deviceType | string | 参考 开发板定义 中的 Product name 字段 |
| mac | string | 设备 MAC 地址,无 ":" 分隔符,大小写均可 |
{
"deviceType": "basic",
"mac": "AABBCCDDEEFF"
} 响应参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| code | int | 状态码 (0 为成功) |
| data | string | 返回的 deviceToken |
| msg | string | 响应消息 |
{
"code": 0,
"data": "4fbb52fb5b6243e083377f45d216820f",
"msg": "success"
} 请求接口:
https://ezdata2.m5stack.com/api/v2/device/uploadDeviceFilePOST (multipart/form-data)cmd: 105 的响应消息。请求参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| deviceToken | string | 设备令牌 |
| file | file | 上传的文件 |
响应参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| code | int | 状态码 (200 为成功) |
请求接口:
wss://ezdata2.m5stack.com/wsWebSocket请求接口:
请求参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| deviceToken | string | 设备令牌 |
{
"deviceToken": "4fbb52fb5b6243e083377f45d216820f"
} 响应参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| - | string | 登录成功提示信息 |
device Login successful 请求接口:
请求参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| deviceToken | string | 设备令牌 |
| body | string | 心跳信号 (固定值: "ping") |
{
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"body": "ping"
} 响应参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| - | string | 心跳应答 |
pong 请求接口:
uiflow2.m5stack.com1883MQTT 3.1.1连接参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| 名称 | string | ez{mac}ez |
| ClientId | string | ez{mac}ez |
| 用户名 | string | {deviceToken} (设备 Token) |
| Password | string | 无需密码 |
Topic:
| 主题 | 方向 | 描述 |
|---|---|---|
$ezdata/{deviceToken}/up | 发布 | 上行数据 |
$ezdata/{deviceToken}/down | 订阅 | 下行数据 |
说明:
以下内容为 WebSocket 或 MQTT 的消息体内容。
请求接口:
100请求参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| deviceToken | string | 设备令牌 |
| body.name | string | 数据字段名称 |
| body.value | string | 数据字段值 |
| body.requestType | int | 请求类型 (固定值: 100) |
{
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"body": {
"name": "adasd",
"value": "ddsad",
"requestType": 100
}
} 响应参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| cmd | int | 命令码 (100) |
| code | int | 状态码 (200 为成功) |
| body.deviceToken | string | 设备令牌 |
| body.name | string | 数据字段名称 |
| body.value | string | 数据字段值 |
{
"body": {
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"name": "adasd",
"value": "ddsad"
},
"cmd": 100,
"code": 200
} 请求接口:
101请求参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| deviceToken | string | 设备令牌 |
| body.name | string | 数据字段名称 |
| body.value | string | 数据字段值 |
| body.requestType | int | 请求类型 (固定值: 101) |
{
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"body": {
"name": "adasd",
"value": "ddsad",
"requestType": 101
}
} 响应参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| cmd | int | 命令码 (101) |
| code | int | 状态码 (200 为成功) |
| body.deviceToken | string | 设备令牌 |
| body.name | string | 数据字段名称 |
| body.value | string | 数据字段值 |
{
"body": {
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"name": "adasd",
"value": "ddsad"
},
"cmd": 101,
"code": 200
} 请求接口:
102请求参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| deviceToken | string | 设备令牌 |
| body.name | string | 数据字段名称 |
| body.value | string | 数据字段值 |
| body.requestType | int | 请求类型 (固定值: 102) |
{
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"body": {
"name": "adasd(3)",
"value": "ddsad",
"requestType": 102
}
} 响应参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| cmd | int | 命令码 (102) |
| code | int | 状态码 (200 为成功) |
| body.deviceToken | string | 设备令牌 |
| body.name | string | 数据字段名称 |
| body.value | string | 数据字段值 |
{
"body": {
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"name": "adasd(3)",
"value": "ddsad"
},
"cmd": 102,
"code": 200
} 请求接口:
103请求参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| deviceToken | string | 设备令牌 |
| body.requestType | int | 请求类型 (固定值: 103) |
{
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"body": {
"requestType": 103
}
} 响应参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| cmd | int | 命令码 (103) |
| code | int | 状态码 (200 为成功) |
| body[].id | string | 数据ID |
| body[].dataToken | string | 数据令牌 |
| body[].name | string | 数据字段名称 |
| body[].value | string | 数据字段值 |
| body[].createTime | long | 创建时间 (毫秒时间戳) |
| body[].updateTime | long | 更新时间 (毫秒时间戳) |
{
"body": [
{
"createTime": 1751274100000,
"dataToken": "6a330c4bf0924da3a2b11c833f9c2db1",
"id": "6a330c4bf0924da3a2b11c833f9c2db1",
"name": "adasd",
"updateTime": 1751274100000,
"value": "ddsad"
},
{
"createTime": 1751274119000,
"dataToken": "60ea29ff4df446358b7bf2151939abb4",
"id": "60ea29ff4df446358b7bf2151939abb4",
"name": "adasd(1)",
"updateTime": 1751274119000,
"value": "ddsad"
}
],
"cmd": 103,
"code": 200
} 请求接口:
104请求参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| deviceToken | string | 设备令牌 |
| body.name | string | 数据字段名称 |
| body.requestType | int | 请求类型 (固定值: 104) |
{
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"body": {
"name": "adasd",
"requestType": 104
}
} 响应参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| cmd | int | 命令码 (104) |
| code | int | 状态码 (200 为成功) |
| body.id | string | 数据ID |
| body.dataToken | string | 数据令牌 |
| body.name | string | 数据字段名称 |
| body.value | string | 数据字段值 |
| body.createTime | long | 创建时间 (毫秒时间戳) |
| body.updateTime | long | 更新时间 (毫秒时间戳) |
{
"body": {
"createTime": 1751274100000,
"dataToken": "6a330c4bf0924da3a2b11c833f9c2db1",
"id": "6a330c4bf0924da3a2b11c833f9c2db1",
"name": "adasd",
"updateTime": 1751274100000,
"value": "ddsad"
},
"cmd": 104,
"code": 200
} 说明:
该消息由 HTTP 接口上传触发,设备端通过长连接接收响应。
请求接口:
https://ezdata2.m5stack.com/api/v2/device/uploadDeviceFile105响应参数 (WebSocket/MQTT):
| 参数 | 类型 | 描述 |
|---|---|---|
| cmd | int | 命令码 (105) |
| code | int | 状态码 (200 为成功) |
| body.deviceToken | string | 设备令牌 |
| body.name | string | 文件字段名称 |
| body.value | string | 文件 URL |
{
"body": {
"deviceToken": "4fbb52fb5b6243e083377f45d216820f",
"name": "deviceFile",
"value": "https://ezdata2-oss-dev.m5stack.com/37a6259cc0c1dae299a7866489dff0bd/deviceFile/deviceFile.jpg"
},
"cmd": 105,
"code": 200
}