本指南将向您展示如何订阅设备的消息,以及如何使用Eclipse Mosquitto’s CLIS订阅或发布消息,将命令发送到特定的设备中。
准备工作
- 下载 并安装Mosquitto。
获取证书
1.登录SenseCAP云平台:
Note: LoRaWAN设备必须使用国际站
2.前往“安全/API访问密钥”。
3.点击“Create access key”会产生一条密钥ID,点击密钥ID并输入账号密码后,可获取对应的API访问密钥(Password)。
4.点击“Organization”,获取“Organization ID”作为<OrgID>。
接收设备消息
下面介绍如何接收您所有设备的消息。
1.打开一个终端窗口并执行以下命令。
- OrgID = 组织ID
- Password = API访问密钥
mosquitto_sub \
-h sensecap-openstream.seeed.cn \
-t '/device_sensor_data/<OrgID>/+/+/+/+' \
-u 'org-<OrgID>' \
-P '<Password>' \
-I 'org-<OrgID>-quickstart' \
-v
请将您刚获取到的Organization ID(组织ID)和Access Key(API访问密钥)将上面<OrgID>的和<Password>替换掉。
2.启动设备,当设备持续发送消息时,信息的输出格式如下:
/device_sensor_data/<OrgID>/<DeviceEUI>/<Channel>/<Reserved>/<MeasurementID>
/device_sensor_data/1234/2CF7F12000000001/1/vs/4105 {"value":2,"timestamp":1544151824139}
/device_sensor_data/xxxx/2CF7F12XXXXXXXXX/1/vs/4097 {"value":23,"timestamp":1544151900992}
/device_sensor_data/xxxx/2CF7F12XXXXXXXXX/1/vs/4101 {"value":101629,"timestamp":1544151901112}
/device_sensor_data/xxxx/2CF7F12XXXXXXXXX/1/vs/4098 {"value":71,"timestamp":1544151900992}
/device_sensor_data/xxxx/2CF7F12XXXXXXXXX/1/vs/4099 {"value":69.12,"timestamp":1544151902224}
/device_sensor_data/xxxx/2CF7F12XXXXXXXXX/1/vs/4100 {"value":437,"timestamp":1544151922137}
以第一包数据为例 | 字段 | 释义 |
---|---|---|
1234 | OrgId | 账号的组织ID |
2CF7F12000000001 | DeviceEUI | 设备唯一标识 |
1 | Channel | 设备通道 |
vs | Reserved | 预留字段 |
4105 | MeasureID | 测量值类型,此处4105是风速 |
2 | value | 采集的测量值,即风速为2m/s |
1544151824139 | timestamp | 数据的采集时间戳 |
订阅特定字段
指定特定字段可实现订阅某个具体设备或通道的数据。
举例:订阅温湿度传感器采集的温度值。
- DeviceEUI = 2CF7F12210400083
- Channel = 1
- MeasureID = 4097
- OrgID = 组织ID
- Password = API访问密钥
替换相关参数后,执行命令:
mosquitto_sub \
-h sensecap-openstream.seeed.cn \
-t '/device_sensor_data/<OrgID>/2CF7F12210400083/1/vs/4097' \
-u 'org-<OrgID>' \
-P '<Password>' \
-I 'org-<OrgID>-quickstart' \
-v
执行命令的结果如下:
/device_sensor_data/521853156991/2CF7F12210400083/1/vs/4097 {"value":28,"timestamp":1561373812474}