本指南将向您展示如何订阅设备的消息,以及如何使用Eclipse Mosquitto’s CLIS订阅或发布消息,将命令发送到特定的设备中。

准备工作

  • 下载 并安装Mosquitto。

获取证书

1.登录SenseCAP云平台:

2.前往“安全/API访问密钥”。

3.点击“Create access key”会产生一条密钥ID,点击密钥ID并输入账号密码后,可获取对应的API访问密钥(Password)。

4.点击“Organization”,获取“Organization ID”作为<OrgID>。

接收设备消息

下面介绍如何接收您所有设备的消息。
1.打开一个终端窗口并执行以下命令。

  • OrgID = 组织ID
  • Password = API访问密钥
mosquitto_sub \
    -h openstream.api.sensecap.seeed.cc \
    -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 openstream.api.sensecap.seeed.cc \
    -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}