该系统主要用于环境数据的采集和读取,整体架构分为硬件部分和软件部分。硬件指的是用来实时采集环境指数的监测设备,软件部分包含处理这些数据的程序和数据库。
硬件部分
环境传感器
温度传感器:采集温度指数
湿度传感器:采集湿度指数
光照强度传感器:采集光照强度指数
二氧化碳传感器:采集二氧化碳指数
树莓派系统
采用Zigbee技术和传感器进行通信,接收传感器采集到的环境指数,并发送给环境监测中心客户端。
软件部分
客户端
树莓派系统通过指定的协议将传感器采集的数据发送到客户端。
注意:客户端并不会立即、实时地将数据发送给服务器端,而是会将采集到的数据以不断累加的方式保存在客户端的原始数据文件中(radwtmp)。待需要时,启动程序对原始数据文件进行批量解析,并整理成数据清单,通过网络发送至服务器端。
服务器
系统采用传统的C/S架构,一台服务器可以同时接收多个客户端发送的数据。服务器部分接收到客户端发来的数据之后,将其保存至数据库中,便于日后的分析调研。
数据库
持久化保存
客户端部分
采集模块 备份模块 网络模块 配置模块 日志模块
服务器部分
入库模块 备份模块 网络模块 配置模块 日志模块
功能说明:
采集模块
运行在客户端,负责直接读取、解析原始数据文件。对其中的数据进行分析,整理成Java版数据清单。
备份模块
备份模块运行在客户端和服务器两端,主要解决如下问题:
网络模块客户端部分在发送数据的时候出现异常,将数据进行备份
服务器端入库模块在向数据库插入数据时出现异常,备份未插入的数据
将采集模块已读取的字符数进行备份,避免重复读取
网络模块
网络模块分为Client和Server两部分:
Client运行在客户端,将采集模块整理好的清单发送至服务器端;
Server运行在服务器端,接收客户端发送来的数据清单,并调用入库模块存至DB。
入库模块
运行在服务器端,将网络模块接收到的数据保存至数据库中。
日志模块
运行在客户端和服务器两端,对系统运行过程进行日志记录,便于维护。
配置模块
运行在客户端和服务器两端,对系统中的其他模块进行整合,解除模块之间的耦合度。
原始数据文件说明
radwtmp为保存原始数据的文件,文件中的数据不断增长。树莓派系统每发送一次数据,该文件中就多一行记录。
该文件格式及内容如下:
例:100|101|2|16|1|3|5d606f7802|1|1516323596029
每条数据都由9部分构成,字段和字段之间使用竖线"|"连接。
具体说明如下:
第一部分:发送端IDz
第二部分:树莓派系统ID
第三部分:实验箱区域模块ID
第四部分:传感器地址(注意:传感器地址代表了发送的环境数据类型)
16代表温度和湿度
256代表光照强度
1280代表二氧化碳强度
第五部分:传感器个数
第六部分:指令标号(3为接收,16为发送)
第七部分:数据(采集到的环境指数,十六进制)
如果传感器地址是16,前两个字节是温度,中间两个字节是湿度。
如果传感器底是不是16,那么前两个字节就是对应数据。
注意:需转换成10进制,转换方式如下:
温度:((float)value*0.00268127)-46.85
湿度:((float)value*0.00190735)-6
光照强度和二氧化碳直接转换成10进制
第八部分:状态标识(默认为1代表成功)
第九部分:采集时间,单位为秒
点我下载并查看源码