核心功能模块包括:(1)四参数实时水质监测,温度、pH、TDS、水位同步采集,采集周期5秒;(2)智能自动控制,阈值越限自动联动气泵、水泵、投食舵机,支持本地规则和远程指令双通道;(3)微信小程序远程可视管理,实时展示水质仪表盘、ECharts历史曲线、告警中心,支持远程操控;(4)AI智能问答,基于LangChain+ChromaDB+通义千问RAG引擎,提供自然语言养殖咨询和建议。
业务流程方面,数据上行链路为ESP32传感器采集后经MQTT上传至Spring Boot后端,再推送至微信小程序可视化展示;指令下行链路为小程序或Web后台发出指令,经后端校验后通过MQTT下发至ESP32执行器;阈值告警链路为传感器越限后触发本地联动加小程序推送加AI建议生成。
采用物联网四层架构:感知层以ESP32-S3 N8R2为核心,连接四路传感器和四路执行器,全部引脚经硬件验证;传输层使用MQTT协议,设计6个Topic,QoS1保证可靠传输,支持指数退避自动重连;平台层集成Spring Boot后端、LangChain RAG智能分析引擎和MySQL数据库;应用层提供微信小程序和Web后台双端管理。技术栈方面,ESP-IDF(C语言)编写ESP32固件,Spring Boot(Java)搭建云端后端,LangChain+ChromaDB+通义千问(Python)实现AI分析引擎,微信小程序原生框架开发前端界面。核心设计原则是硬件算法补偿与软件架构解耦:pH采用两点电压校准法、TDS用中值滤波加温度补偿、DS18B20用CRC8校验、投食舵机用四状态有限状态机非阻塞设计。
我作为全栈主开发,独立完成ESP32固件全部传感器驱动与执行器控制、云端后端搭建、MQTT通信模块、微信小程序四页面开发及AI问答引擎集成。8项功能测试全部通过:温度误差±0.3℃、pH精度±0.08、TDS误差±6%、MQTT连续72小时无丢包。
开发过程中遇到的主要难点及解决方案:(1)pH传感器信号微弱且非线性,采用两点电压校准法,以PH7点0.253V和PH4点2.164V为基准除以6倍增益还原原始电压;(2)TDS受温度干扰大,使用滑动窗口中值滤波消除ADC噪声,配合温度补偿公式消除温漂;(3)MQTT断网后出现死锁,采用指数退避重连策略并将WiFi和MQTT事件解耦;(4)AI token成本控制,通过精简系统提示词和缓存常见问答,单次问答成本控制在0.01元以内;(5)舵机抖动导致投食不准,设计四状态FSM状态机加消抖延时解决。