温湿度采集系统命令格式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
温湿度系统数据协议
传感器与显示终端的通信协议:
温湿度探头协议:
0x7e ADDR3 ADDR2 ADDR1 ADDR0 T1 T2 T3 T4 H1 H2 H3 H4 Baterry CHECKSUM
0x7e:数据包头标志,一个字节表示
ADDR3:采集点地址最高字节
ADDR2:采集点地址
ADDR1:采集点地址
ADDR0:采集点地址最低字节
T1:温度数据1
T2:温度数据2
T3:温度数据3
T4:温度数据4
H1:湿度数据1
H2:湿度数据2
H3:湿度数据3
H4:湿度数据4
Baterry:电池电量百分比,一个字节表示,最大100,最小0,例如:为100时,表示电池电量为100%,为80时,表示此时电池电量为80%
CHECKSUM:校验和,一个字节,除校验和本身以外,以上所有字节得累加和,取低字节
注:温度与湿度为float型,分别占用4个字节来表示。具体算法如下:
buffer[0] = 0x7e;
buffer[1] = address3;
buffer[2] = address2;
buffer[3] = address1;
buffer[4] = address0;
p = (unsigned char*)&temperature_f;//温度数据,浮点型
buffer[5] = *p;
p ++;
buffer[6] = *p;
p ++;
buffer[7] = *p;
p ++;
buffer[8] = *p;
p = (unsigned char*)&humidity_f;//湿度数据,浮点型
buffer[9] = *p;
p ++;
buffer[10] = *p;
p ++;
buffer[11] = *p;
p ++;
buffer[12] = *p;
buffer[13] = 100;//电池电量值
buffer[14] = 0;
for(i=0;i<15;i++)
{
buffer[15] = buffer[i];
}
显示终端与上位机的通信协议:
---------------------------------------------------------------------------------------------------------------------
1.液晶终端主动向上位机传送一帧实时的温湿度数据格式:
0x7e frameLENTH monitorAADR1 monitorAADR0 0x01 ADDR3 ADDR2 ADDR1 ADDR0 T1 T2 T3 T4 H1 H2 H3 H4 Baterry CHECKSUM
0x7e:数据包头标志,一个字节表示
frameLENTH:帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:液晶屏地址高字节
monitorAADR0:液晶屏地址低字节
0x01:液晶终端主动向上位机传送一帧实时的温湿度数据命令字
ADDR3:采集点地址最高字节
ADDR2:采集点地址
ADDR1:采集点地址
ADDR0:采集点地址最低字节
T1:温度数据1
T2:温度数据2
T3:温度数据3
T4:温度数据4
H1:湿度数据1
H2:湿度数据2
H3:湿度数据3
H4:湿度数据4
Baterry:电池电量百分比,一个字节表示,最大100,最小0,例如:为100时,表示电池电量为100%,为80时,表示此时电池电量为80%
CHECKSUM:校验和,一个字节,除校验和本身以外,以上所有字节得累加和,取低字节
---------------------------------------------------------------------------------------------------------------------
2.液晶终端主动向上位机传送一帧实时的温湿度数据格式之后,上位机应答液晶终端命令:0x7e frameLENTH monitorAADR1 monitorAADR0 0x02 CHECKSUM
0x7e:数据包头标志,一个字节表示
frameLENTH:帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:液晶屏地址高字节
monitorAADR0:液晶屏地址低字节
0x02:上位机应答液晶终端主动发送实时温湿度数据命令字
CHECKSUM:校验和,一个字节,除校验和本身以外,以上所有字节得累加和,取低字节
******************************************************************************
3.上位机向液晶终端发送命令读取历史温度:(上位机发送一次此命令给下位机,下位机就返回一条历史数据给上位机,上位机在不超过规定时间内每下发一次此命令(2秒),终端依次返回下一条历史数据,直到数据读完)
0x7e frameLENTH monitorAADR1monitorAADR0 0x03 CHECKSUM
0x7e:数据包头标志,一个字节表示
frameLENTH:帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:液晶屏地址高字节
monitorAADR0:液晶屏地址低字节
0x03: 读取温湿度命令
CHECKSUM:校验
---------------------------------------------------------------------------------------------------------------------
4.液晶终端应答上位机读取历史温湿度:
0x7e frameLENTH monitorAADR1 monitorAADR0 0x04 Year Month Date Hour Minute Second ADDR3 ADDR2 ADDR1 ADDR0 T1 T2 T3 T4 H1 H2 H3 H4 Baterry CHECKSUM
0x7e:数据包头标志,一个字节表示
frameLENTH:帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:液晶屏地址高字节
monitorAADR0:液晶屏地址低字节
0x04:液晶终端主动向上位机传送一帧实时的温湿度数据命令字
Year:历史记录年
Month:历史记录月
Date:历史记录日
Hour:历史记录小时
Minute:历史记录分
Second:历史记录秒
ADDR3:采集点地址最高字节
ADDR2:采集点地址
ADDR1:采集点地址
ADDR0:采集点地址最低字节
T1:温度数据1
T2:温度数据2
T3:温度数据3
T4:温度数据4
H1:湿度数据1
H2:湿度数据2
H3:湿度数据3
H4:湿度数据4
Baterry:电池电量百分比,一个字节表示,最大100,最小0,例如:为100时,表示电池电量为100%,为80时,表示此时电池电量为80%
CHECKSUM:校验和,一个字节,除校验和本身以外,以上所有字节得累加和,取低字节
******************************************************************************