qxz-sq.md 14 KB

气象站http协议

1. 简要描述

本文档主要用于阐述气象站与服务器端进行交互的通讯细节,其中包括气象站与服务器之间使用的通信协议和交互通讯协议两部分。

对接说明

接收方需要启动一个 HTTP 接口,用于接收 POST 请求。设备上传的数据从请求的 body 中获取。

状态报告

报文结构

{
	"StationID": "***************",
	"MonitorTime": "2020-2-19 09:36:08",
	"data": [{
			"eValue": "",
			"eKey": "e1",
			"eNum": "101"
		},
		{
			"eValue": "",
			"eKey": "e2",
			"eNum": "102"
		},
		{
			"eValue": "",
			"eKey": "e3",
			"eNum": "106"
		}
	]
}
属性字段 含义或表示的内容
StationID 采集器 ID(4G 通讯模组 imei)
MonitorTime 数据上传时间
data 气象站各项要素的值
eValue 数据结果(注:若数值为 -99.99,则表示传感器故障或未连接)
eKey 通道编号(从 e1 开始)
eNum 通道对应要素名称及单位

4.运行基本状态信息上传 报文结构:(开机上报 1 次)

{
	"StationID": "*******************",
	"MonitorTime": "2020-2-19 10:50:04",
	"terminalStatus": {
		"VOLT": "12.2",
		"RSSI": "17",
		"IMEI": "866262042538503",
		"ICCID": "89860411101892475452",
		"longitude": "113.604943",
		"latitude": "34.847540",
		"Dotled": "0",
		"Control_Op": "3",
		"Version": "1.0.2021/04/08/16/44_alpha"
	}
}

报文结构:(间隔5分钟 1 次)

{
	"StationID": "*********************",
	"MonitorTime": "2020-2-19 10:50:04",
	"terminalStatus": {
		"VOLT": "12.2",
		"RSSI": "17"
	}
}
字段 含义或表示的内容
StationID 采集器 ID(4G 通讯模组 imei)
MonitorTime 数据上报时间
ICCID SIM 卡 ICCID
VOLT 终端当前电压(单位:V)
RSSI 当前 4G 信号强度
IMEI 4G 信号模组 IMEI
longitude 当前设备所处经度
latitude 当前设备所处纬度
Dotled 当前设备是否存在 LED 显示屏(0:存在,1:不存在)
Control_Op 阈值/定时控制选择(0:阈值控制,1:定时控制,3:手动控制,默认手动控制)
Version 设备版本号

风力(风速)等级表

等级 名称 描述 风速范围 (m/s)
0 无风 静,烟直上 0 ~ 0.2
1 软风 烟能表示风向,树叶略有摇动 0.3 ~ 1.5
2 轻风 人面感觉有风,树叶微动 1.6 ~ 3.3
3 微风 树叶及小枝摇动不息,旗子展开,高的草摇动不息 3.4 ~ 5.4
4 和风 能吹起地面灰尘和纸张,树枝动摇,高的草呈波浪起伏 5.5 ~ 7.9
5 清劲风 有叶的小树摇摆,内陆的水面有小波,高的草波浪起伏明显 8.0 ~ 10.7
6 强风 大树枝摇动,电线呼呼有声,撑伞困难,高的草不时倾伏于地 10.8 ~ 13.8
7 疾风 全树摇动,大树枝弯下来,迎风步行感觉不便 13.9 ~ 17.1
8 大风 可折毁小树枝,人迎风前行感觉阻力很大 17.2 ~ 20.7
9 烈风 草房遭受破坏,屋瓦被掀起,大树枝可折断 20.8 ~ 24.4
10 狂风 树木可被吹倒,一般建筑物遭破坏 24.5 ~ 28.4
11 暴风 大树可被吹倒,一般建筑物遭严重破坏 28.5 ~ 32.6
12 飓风 陆上绝少,其摧毁力极大 >32.6

eNum对应参数

{
  "100": ["未定义"],
  "101": ["101", "空气温度", "℃"],
  "102": ["102", "空气湿度", "%RH"],
  "103": ["103", "气压", "hpa"],
  "104": ["104", "降雨量", "mm"],
  "105": ["105", "总辐射", "w/㎡"],
  "106": ["106", "土壤温度", "℃"],
  "107": ["107", "土壤含水率", "%"],
  "108": ["108", "风速", "m/s"],
  "109": ["109", "风向", "°"],
  "110": ["110", "蒸发量", "mm"],
  "111": ["111", "雪量", "mm"],
  "112": ["112", "光照度", "LUX"],
  "113": ["113", "日照时数", "h"],
  "114": ["114", "光合", "w/㎡"],
  "115": ["115", "降雨量累计", "mm"],
  "116": ["116", "辐射累计", "MJ/㎡"],
  "117": ["117", "有无雨雪"],
  "118": ["118", "噪声", "分贝"],
  "119": ["119", "水位", "cm"],
  "120": ["120", "二氧化碳", "PPM"],
  "121": ["121", "曝辐量", "cal/cm2"],
  "122": ["122", "液位", "mm"],
  "123": ["123", "光合有效辐射", "W/m2"],
  "124": ["124", "电压", "V"],
  "125": ["125", "紫外线", "w/㎡"],
  "126": ["126", "粉尘", "ug/m3"],
  "127": ["127", "气压", "hpa"],
  "128": ["128", "土壤PH值"],
  "129": ["129", "最大风速", "m/s"],
  "130": ["130", "平均风速", "m/s"],
  "131": ["131", "经度", "°"],
  "132": ["132", "纬度", "°"],
  "133": ["133", "海拔高度", "m"],
  "134": ["134", "TBQ总辐射", "W/m2"],
  "135": ["135", "直接辐射", "W/m2"],
  "136": ["136", "散射辐射", "W/m2"],
  "138": ["138", "紫外辐射", "W/m2"],
  "139": ["139", "贴片温度", "℃"],
  "140": ["140", "露点温度", "℃"],
  "141": ["141", "一氧化碳", "PPM"],
  "142": ["142", "电流", "mA"],
  "143": ["143", "超声波风速", "m/s"],
  "144": ["144", "水温", "℃"],
  "145": ["145", "PM2.5", "ug/m3"],
  "146": ["146", "PM10", "ug/m3"],
  "147": ["147", "土壤PH"],
  "148": ["148", "溶解氧", "mg/l"],
  "149": ["149", "氨氮", "mg/l"],
  "150": ["150", "电导率", "mS/cm"],
  "151": ["151", "浊度", "NTU"],
  "152": ["152", "能见度", " m"],
  "153": ["153", "氨气", "ppm"],
  "154": ["154", "盐分", "mg/L"],
  "155": ["155", "氮", "mg/kg"],
  "156": ["156", "磷", "mg/kg"],
  "157": ["157", "钾", "mg/kg"],
  "158": ["158", "热通量", "W/m2"],
  "159": ["159", "叶面温度", "℃"],
  "160": ["160", "叶面湿度", "%RH"],
  "161": ["161", "茎秆", "mm"],
  "162": ["162", "负氧离子", "个/cm3"],
  "164": ["164", "当前水位", "mm"],
  "165": ["165", "昨日水位", "mm"],
  "166": ["166", "今日雨量", "mm"],
  "167": ["167", "昨日雨量", "mm"],
  "168": ["168", "今日溢流", "mm"],
  "169": ["169", "昨日溢流", "mm"],
  "170": ["170", "今日蒸发", "mm"],
  "171": ["171", "昨日蒸发", "mm"],
  "172": ["172", "编码数据"],
  "173": ["173", "错误编码"],
  "174": ["174", "补水码"],
  "175": ["175", "溢流码"],
  "178": ["178", "电导率", "uS/cm"],
  "201": ["201", "土壤水势", "KPA"],
  "202": ["202", "露点温度", "℃"],
  "203": ["203", "PM100", "ug/m3"],
  "208": ["208", "光照度", "Lux"],
  "211": ["211", "电导率", "μS/cm"],
  "212": ["212", "净辐射", "W/m2"],
  "213": ["213", "流速", "m/s"],
  "214": ["214", "空高", "m"],
  "215": ["215", "瞬时流量", "m3/s"],
  "216": ["216", "累积流量", "m3"],
  "217": ["217", "热通量累计", "MJ/m2"],
  "218": ["218", "果实直径", "mm"],
  "219": ["219", "硫化氢", "ppm"],
  "220": ["220", "氧气", "ppm"],
  "221": ["221", "臭氧", "ppm"],
  "222": ["222", "茎流", "ml/h"],
  "223": ["223", "COD", "mg/L"],
  "224": ["224", "信号强度"],
  "225": ["225", "盐度", "PSU"],
  "226": ["226", "ORP", "mV"],
  "227": ["227", "光量子", "W/m2"],
  "228": ["228", "水质pH"],
  "229": ["229", "氨氮", "ppm"],
  "230": ["230", "水位", "m"],
  "231": ["231", "二氧化硫", "ppm"],
  "232": ["232", "二氧化氮", "ppm"],
  "233": ["233", "土壤紧实度", "kPa"],
  "251": ["251", "湿球温度", "℃"],
  "252": ["252", "最大阵风", "m/s"],
  "253": ["253", "平均风速", "m/s"],
  "255": ["255", "土壤张力", "kpa"],
  "256": ["256", "悬浮物", "mg/L"],
  "257": ["257", "透明度", "NTU"],
  "258": ["258", "TDS", "mg/L"],
  "259": ["259", "土壤含氧量", "%"],
  "260": ["260", "渗漏", "mm"],
  "261": ["261", "实时重量", "kg"],
  "262": ["262", "初始重量", "kg"]
}

气象站mqtt协议

设备上传无返回确认

  1. 传感器数据上传

    {
    "cmd": "terminalData",
    "ext": {
        "StationID": "18054384",
        "MonitorTime": "2020-2-19 09:36:08",
        "data": [
            {
                "eValue": "",
                "eKey": "e1",
                "eName": "Temperature",
                "eNum": "101"
            },
            {
                "eValue": "",
                "eKey": "e2",
                "eName": "Humidity",
                "eNum": "102"
            },
            {
                "eValue": "",
                "eKey": "e3",
                "eName": "SoilTemperature",
                "eNum": "106"
            },
    ..............
        ]
    }
    }
    
  2. 电池电压信息上传

    {
    "cmd": "Status",
    "ext": {
        "StationID": "18054384",
        "MonitorTime": "2020-2-19 10:50:04",
        "terminalStatus": {
            "VOLT": "12.2",
            "RSSI": "17"
        }
    }
    }
    
  3. 运行基本状态信息上传

    {
    "cmd": "Status",
    "ext": {
        "StationID": "18054384",
        "MonitorTime": "2020-2-19 10:50:04",
        "terminalStatus": {
            "VOLT": "12.2",
            "RSSI": "17",
            "IMEI": "866262042538503",
            "ICCID": "89860411101892475452",
            "longitude": "113.604943",
            "latitude": "34.847540",
            "altitude": "105.3",
            "version": "1.0.0_2020/07/15/10/09_alpha",
            "dotled": "0"
        }
    }
    }
    
  4. 上传时间间隔报告

    {
    "cmd": "config",
    "ext": {
        "interval": 30
    }
    }
    

平台下发查询控制

  1. 控制通道手动控制下发(需反馈确认)
  2. 定时控制参数下发
  3. 阈值控制参数下发
  4. 参数查询下发

"cmd" :

  • "read" //下发查询
  • "config" //下发设置上传间隔
  • "control"//下发输出控制指令
  • "timing" //下发定时参数配置
  • "auto" //下发阈值参数配置
  • "ip" //下发ip,端口,topic
  • "upload" //下发上传信息使能

## "type":

  • "status" //查询设备信息
  • "data" //查询数据
  • "ip“ //查询ip,端口,topic
  • "upload" //查询上传使能
  • "runstatus"//查询输出运行状态
  • "auto" //查询阈值配置
  • "timing" //查询定时配置

下发查询上传间隔

{
    "cmd": "read",
    "ext": {
        "type": "interval"
    }
}

反馈

{
	"cmd":	"config",
	"ext":	{
		"interval":	30
	}
} 

下发查询状态

{
    "cmd": "read",
    "ext": {
        "type": "status"
    }
}

反馈

{
	"cmd":	"Status",
	"ext":	{
		"StationID":	"866262048809817",
		"MonitorTime":	"2020-3-12 14:35:14",
		"terminalStatus":	{
			"VOLT":	"15.1",
			"RSSI":	"15",
			"IMEI":	"866262048809817",
			"ICCID":	"89860411101892464026",
			"longitude":	"113.662430",
			"latitude":	"34.808807",
			"altitude": "150",
			"control_op": "0",
			"Dotled":	"1"
		}
	}
} 
gps值 定位方式 转换说明
0 手动定位 不需要坐标转换
1 GPS定位 GPS转百度
2 基站定位 火星转百度

没有这个字段 则都是基站定位,火星转百度.

下发查询数据

{
    "cmd": "read",
    "ext": {
        "type": "data"
    }
}

反馈

{
	"cmd":	"terminalData",
	"ext":	{
		"StationID":	"18054384",
		"MonitorTime":	"2020-2-29 14:28:49",
		"data":	[{
				"eValue":	"17.0",
				"eKey":	"e1",
				"eName":	"Temperature",
				"eNum":	"101"
			}, {
				"eValue":	"52.9",
				"eKey":	"e2",
				"eName":	"Humidity",
				"eNum":	"102"
			}, {
				"eValue":	"17.9",
				"eKey":	"e3",
				"eName":	"SoilTemperature",
				"eNum":	"106"
			}, {
            …………………………
			}]
	}
} 

下发设置数据上报时间

{
    "cmd": "config",
    "ext": {
        "interval": 30
    }
}

重启

{"cmd":	"reboot"} 

返回

{"cmd":"rebooting"}

遗愿消息

topic:/yfkj/qxz/offline/imei
报文结构:

{
 "cmd": "offline",
    "ext": {
    "imei": "*******************"
    }
}

开机上报在线消息

topic:/yfkj/qxz/offline/imei
报文结构:

{
    "cmd": "online",
    "ext": {
    "imei": "*******************"
    }
}

气象站c#语言接收数据案例

气象站java语言接收数据案例

气象站java语言接收数据案例

气象站nodejs语言接收数据案例

气象站nodejs语言接收数据案例

气象站python语言接收数据案例

气象站python语言接收数据案例