基于springboot+vue智能水产养殖管理系统

基于springboot+vue智能水产养殖管理系统 1. 项目背景与意义传统水产养殖长期依赖人工经验水质监测滞后、投喂粗放、病害预警不及时导致养殖风险高、资源浪费严重。随着物联网、大数据和人工智能技术的普及水产养殖正从“靠经验”向“靠数据”转型。基于 SpringBoot Vue 的智能水产养殖管理系统通过传感器实时采集水温、pH 值、溶解氧、氨氮等关键水质指标结合远程控制设备增氧机、投饵机、换水阀实现养殖全流程的数字化、可视化与自动化管理。该系统能够显著降低养殖风险、节约人力成本、提升单位产量对推动水产养殖产业升级具有重要的实践意义。2. 系统技术栈2.1 后端技术栈Spring Boot作为后端核心框架提供快速开发、自动配置和微服务支持。Spring Security JWT实现用户认证与接口权限控制。MyBatis-Plus简化数据库操作提供高效的分页查询和代码生成能力。MySQL存储用户、设备、水质历史数据等核心业务数据。Redis缓存热点数据如实时水质指标、设备状态降低数据库压力。Netty / MQTT用于对接物联网传感器设备实现数据实时上报与指令下发。2.2 前端技术栈Vue 3前端核心框架采用组合式 API 提升代码复用性。Element Plus提供丰富的后台管理 UI 组件快速搭建数据看板与表单页面。ECharts实现水质趋势曲线、设备运行状态等可视化图表。Axios统一封装 HTTP 请求与后端 RESTful API 交互。Pinia前端状态管理维护用户登录态与全局配置。3. 系统核心功能模块水质监测模块实时采集并展示水温、pH、溶解氧、氨氮等指标支持历史曲线查询与超标报警。设备控制模块远程控制增氧机、投饵机、换水阀等设备支持定时任务与手动控制。养殖档案模块管理鱼塘信息、投放批次、饲料记录和生长情况。预警中心模块根据水质阈值规则自动触发告警通过站内消息和短信通知养殖户。数据大屏模块面向管理者的可视化总览展示各塘口实时状态与关键指标。4. 核心代码实现4.1 后端水质数据接收接口传感器通过 MQTT 上报数据后端订阅消息并解析存储。以下为水质数据接收与保存的核心代码RestController RequestMapping(/api/water) public class WaterQualityController { Autowired private WaterQualityService waterQualityService; /** 接收传感器上报的水质数据 */ PostMapping(/report) public Resultlt;Voidgt; report(RequestBody WaterQualityDTO dto) { waterQualityService.saveWaterQuality(dto); // 判断是否触发预警 waterQualityService.checkAlert(dto); return Result.success(); } /** 查询某塘口最近 24 小时水质趋势 */ GetMapping(/trend) public Resultlt;Listlt;WaterQualityVOgt;gt; trend(RequestParam Long pondId, RequestParam String indicator) { Listlt;WaterQualityVOgt; list waterQualityService.getTrend(pondId, indicator); return Result.success(list); } }4.2 后端水质超标预警判断Service public class WaterQualityServiceImpl implements WaterQualityService { Autowired private WaterQualityMapper waterQualityMapper; Autowired private AlertRuleMapper alertRuleMapper; Override public void checkAlert(WaterQualityDTO dto) { // 查询该塘口对应的预警规则 AlertRule rule alertRuleMapper.selectByPondId(dto.getPondId()); if (rule null) { return; } // 溶解氧低于下限触发增氧机联动 if (dto.getDissolvedOxygen() lt; rule.getOxygenMin()) { sendDeviceCommand(dto.getPondId(), aerator, on); saveAlert(dto.getPondId(), 溶解氧过低已自动开启增氧机); } // 水温超过上限触发换水提醒 if (dto.getTemperature() gt; rule.getTempMax()) { saveAlert(dto.getPondId(), 水温过高建议开启换水阀); } } }4.3 前端水质实时监控页面前端通过 Vue 3 组合式 API 封装水质数据请求并使用 ECharts 渲染趋势图template div classwater-panel el-card v-foritem in indicators :keyitem.key template #header{{ item.label }}/template div classvalue :style{ color: item.color } {{ current[item.key] }} {{ item.unit }} /div div refchartRefs classchart/div /el-card /div /template script setup import { ref, onMounted, onUnmounted } from vue import { getTrend } from /api/water import * as echarts from echarts const pondId ref(1) const current ref({}) const chartRefs ref([]) const charts [] const indicators [ { key: temperature, label: 水温, unit: ℃, color: #e6a23c }, { key: ph, label: pH 值, unit: , color: #409eff }, { key: oxygen, label: 溶解氧, unit: mg/L, color: #67c23a } ] async function loadTrend() { for (let i 0; i indicators.length; i) { const item indicators[i] const res await getTrend(pondId.value, item.key) const chart echarts.init(chartRefs.value[i]) chart.setOption({ xAxis: { type: category, data: res.data.map(p p.time) }, yAxis: { type: value }, series: [{ type: line, data: res.data.map(p p.value), smooth: true }] }) charts.push(chart) } } onMounted(loadTrend) onUnmounted(() charts.forEach(c c.dispose())) /script4.4 前端设备远程控制import request from /utils/request // 远程控制设备 export function controlDevice(pondId, deviceType, action) { return request({ url: /api/device/control, method: post, data: { pondId, deviceType, action } }) } // 页面中调用 async function handleAerator() { const res await controlDevice(pondId.value, aerator, on) if (res.code 200) { ElMessage.success(增氧机已开启) } }5. 总结基于 SpringBoot Vue 的智能水产养殖管理系统通过前后端分离架构实现了水质实时监测、设备远程控制、异常预警和数据分析等核心能力。后端利用 Spring Boot 生态快速构建稳定可靠的 RESTful 服务前端借助 Vue 3 和 ECharts 提供直观的可视化交互体验。该系统有效降低了养殖户的管理成本提升了养殖过程的精细化水平是物联网技术赋能传统农业的典型实践。