监测仪数据外发结构概述
监测仪会在有网络连接的前提下定时向预设的网络接口以 HTTP 协议的格式发送 POST 请求,用以向网站传递设备信息以及实时气体浓度数据。
目前设备外发数据的接口有以下五种:
-
token 请求接口:
http://[hostname:port]/[apipath]/getToken
用以发送用户名密码验证信息并获取返回的验证 token 。该 token 将被用于以下另四种 api 接口的身份验证。 -
设备信息上传接口:
http://[hostname:port]/[apipath]/deviceInfo
用于上传监测仪的设备名称、序列号、经纬度位置信息以及所属用户。 -
摄像机信息上传接口:
http://[hostname:port]/[apipath]/cameraSource
用于上传摄像机的 camera id、摄像机画面的远程获取 url 和所属设备。 -
传感器信息上传接口:
http://[hostname:port]/[apipath]/sensorInfoUpdate
用于传递设备上气体浓度传感器的名称、代号、类别、上下限阈值和所属设备。 -
实时气体浓度数据上传接口:
http://[hostname:port]/[apipath]/realtimeDataUpload
用于上传设备中所有气体传感器的实时浓度数据。该接口一般会同时上传所有气体浓度数据,因此发送的数据结构是数组形式。
各接口 POST 请求的具体负载格式
token 请求接口
headers = {
"Content-Type": "application/json"
}
body = {
"name": "admin", //用户名
"password": "password" //密码
}
设备信息上传接口
headers = {
"Content-Type": "application/json",
"token": token
// 这里的 token 需要从getToken接口的返回值中获取
}
body ={
"deviceid": "HY001", //设备唯一id
"serialnumber": "B221236CDE341", //设备序列号
// 经纬度位置信息
"coordinate": {
"latitude": 31.1304933, //纬度
"longitude": 120.6100298, //经度
"altitude": 0.0 //海拔
},
"user": "admin" //所属用户名
}
摄像机信息上传接口
headers = {
"Content-Type": "application/json",
"token": token
// 这里的 token 需要从getToken接口的返回值中获取
}
body = {
"cameraid": "HY001CAM", //摄像机唯一id
// 摄像机画面获取 url
"url": "http://222.92.212.253:61120/tjai/HY001/index.m3u8",
// 所属设备名称
"device": "HY001",
}
传感器信息上传接口
headers = {
"Content-Type": "application/json",
"token": token
// 这里的 token 需要从getToken接口的返回值中获取
}
body = {
"name": "H2SSensor", //传感器名称,不唯一
"code": "HY001H2S", //传感器唯一代号
"type": "3", //传感器类型
//高报警值,显示的数值应该是上传值除以100。如上传2000,显示的应该是 20,单位同实时数据中的单位。
"upperthreshold": 2000,
"bottomthreshold": 500, //低报警值,同样需要除以100。
"device": "HY001" //所属设备名称
}
实时气体浓度数据上传接口
headers = {
"Content-Type": "application/json",
"token": token
// 这里的 token 需要从getToken接口的返回值中获取
}
body = {
// 实时数据的时间戳,自 Epoch 以来的毫秒数。
// 注:因为设备上的时间由于开关机及网络问题可能不准,所以新版本设备上该键名不再上传。
// 服务端如果需要上传时间建议自己 new 一个。
"updatetime": new Date(),
"device": "HY001", //所属设备名称
//实时数据,数组形式
"sensordata": [
{
//传感器唯一代号,其中"HY001"同设备名,"O2"是气体名称,"01"是手持式(即P20)编号。下同
"sensorinfo": "HY001O201",
//实时气体浓度数据,其真实值需要除以100,如此处应该是20.5%Vol,下同。
"concentration": 2050,
"unit": "%Vol", //气体浓度单位
},
{
"sensorinfo": "HY001LEL01",
"concentration": 7190,
"unit": "%LEL",
},
{
"sensorinfo": "HY001H2S01",
"concentration": 360,
"unit": "ppm",
},
{
"sensorinfo": "HY001CO01",
"concentration": 840,
"unit": "ppm",
}
]
}