此系统实现功能包括:室内、室外的环境数据持续采集,数据异常时报警,数据异常时启动其他数据,机房服务器硬件运行状态,视频监控以及提供其他拓展联动功能的接口等。此系统可以实现机房无人值守,农业养殖看护,工地环境测量,工业工控和智慧城市等基于IOT物联网的服务构想。
环境数据采集——硬件层
环境传感器种类繁多。以工业生产和楼宇自控的RS485设备,采用Modbus通讯协议,接口为端子接口两个直流电接口和两个RS485接口还可能包括一个接地端接口。本架构目前主要采取此种类设备作为实现基础,另外预留了其他设备的采集接口。除此之外还有,ZigBee,433Mhz等其他设备,之后有机会将介绍这类设备。在将不同种类设备数据转换成统一格式数据的层面上,构成了最基础的软件服务层服务器——协议转化层。
这种RS485变送器常常采用半双工的方式通信,可以在RS485总线中连接更多设备,一般可连接32到256不等的设备数量。可以使用rvv0.5的四套芯线或者两套芯线构成物理总线,设备接入总线即可,供电可用符合电压的直流电变压器,变压正负极接入总线正负极。RS485设备并不会主动推送数据,需要向设备发送查询数据帧,设备会返回一个响应数据帧。如:温湿度变送器,十六位查询帧为:0x01 0x03 0x00 0x00 0x00 0x00 0x02 0xC4 0x0B,其含义为:第一字节为总线中的地址,第二字节为此指令功能(3为读取),第三四字节为起始寄存器地址,第五六字节为查询寄存长度(温湿度两个值,长度为2),第七八字节为CRC校验。RS485设备的CRC校验公式为x16+x15+x2+1结果高低字节需要互换位置。由此返回响应帧:0x01 0x03 0x04 0x02 0x92 0xFF 0x9B 0x5A 0x3D,第一二字节同查询帧数,第三字节为数据有效长度,两个寄存器各两字节共四字节,第四五字节转化十进制为658即65.8%湿度,第六七字节转化十进制为-101即-10.1摄氏度。
注意到,Java语言以byte[]读取为字节数组,转化成int时,会填充位数注意保持补码的一致性。

由此,通过不断发送查询帧,我们得到了变送器数据。但是系统采用的是标准以太网/WIFI传输数据(TCP/IP),需要将RS485转化为以太网/WIFI。为此我们需要串口服务器。

如图为一种串口服务器,RS485总线接入串口服务器RS485端口中,供电可用变压器供电或者总线的电源供电,设备可通过http、电脑usb转RS485和tcp等方式配置基本功能,使其接入本地可连接到外网的网络。至此,我们的变送器就有RS485数据转换成TCP数据的能力了。
———————————不定时更新:协议层的软件架构—————————————
不定时更新,经常来看看。