返回作品

火车站测风仪监控系统

创建于 2025 年 6 月 1 日

标签
  • Java 8
  • Spring Boot 2.6
  • MyBatis
  • MySQL
  • Thymeleaf
  • jSerialComm

项目介绍

铁路车站的站台、道口对瞬时大风高度敏感,风速达到一定等级需要提前启动应急预案。这个项目为车站部署的测风仪搭建了一套从采集、判定到提醒的监控系统:应用启动后自动在 777 端口监听,测风终端(或采集网关)主动接入,服务端按客户端 IP 从数据库匹配车站名称,再以 Modbus TCP 协议向终端请求风速数据,解析后入库并驱动报警逻辑。

系统在 WindSpeedServerService 中以 @PostConstruct 启动 ServerSocket,为每个客户端连接开辟独立线程处理:连接建立后等待一段时间,发送读保持寄存器请求帧 01 03 00 00 00 01 84 0A,接收响应帧后校验帧头(0x010x03、数据长度 0x02),将第 4、5 字节拼接的整数值除以 100 还原为实际风速(单位 m/s),再交给业务服务落库。

核心功能

  • Modbus TCP 风速采集:应用启动即监听 777 端口,按客户端 IP 反查车站(findStationByIpAddress),无法识别则拒绝连接;发送标准读寄存器请求后校验响应帧,解析出的风速写入 recordOrUpdateWindSpeed
  • 风力等级换算:服务端 getWindSpeedLevel 与前端 getWindSpeedLevel 各自实现 0–12 级蒲福风力分档(如 10.8–13.8 m/s 为 6 级),保证展示口径一致。
  • 实时监测大屏:页面每 60 秒自动刷新,实时风力表按当前风速排序,达到 6 级及以上行标红;报警区按”绿色=已确认、红色=待确认”展示,点击”未提醒”按钮可调用接口将状态置为已提醒;检测到大风且用户启用声音时播放报警音(可静音,状态存 localStorage)。
  • 设备与数据管理:侧边栏登录(admin/123456)后进入设备管理,可新增车站(需授权码)、修改车站名称与 IP、删除车站;报警记录支持按单站或全部导出 CSV,导出时写入 UTF-8 BOM 以保证中文在 Excel 中正常显示。
  • 模拟联调工具WindSpeedClient / WindSpeedClient1 模拟测风终端,连接服务端后按协议回送风速数据帧,方便在没有真实硬件时验证整条采集链路。

功能截图

暂无运行截图。