基于STM32的智能鱼缸系统设计与实现
1. 项目背景与核心功能养鱼爱好者常面临水质管理、喂食规律、温度控制等繁琐问题。传统鱼缸需要人工频繁干预而市面上的智能鱼缸产品往往价格昂贵且功能固化。这个基于STM32的智能鱼缸项目通过低成本硬件方案实现了四大核心功能多参数水质监测pH值、溶解氧、浊度恒温控制系统加热棒PWM调控自动喂食机构舵机控制投食量自适应照明根据时段调节LED亮度特别之处在于采用蓝牙4.0BLE通信相比WiFi方案更省电且兼容性强。实测待机电流仅8.2mA一组18650电池可连续工作30天。手机端通过自定义协议与STM32通信避免了云端服务的依赖和隐私顾虑。2. 硬件架构设计2.1 主控选型对比最终选择STM32F103C8T6蓝色pill开发板的原因72MHz主频足够处理传感器数据滤波算法内置12位ADC满足水质传感器采样需求5个定时器资源TIM1用于PWM温控TIM2/TIM4驱动喂食舵机成本仅15元左右远低于STM32F4系列2.2 传感器组配置水质监测采用模块化设计pH值工业级SEN01610-14pH±0.1精度温度DS18B20防水探头-55~125℃浊度TSW-30模拟输出模块水位不锈钢电极式检测注意pH探头需要每月校准建议设计可拆卸结构方便取出传感器2.3 蓝牙模块集成使用HC-05主从一体模块的实战经验AT指令配置要点ATUART9600,0,0 # 设置波特率 ATROLE1 # 设为主模式 ATCMODE1 # 任意地址连接硬件连接陷阱模块TXD接STM32的PA10(RX)务必在TX线上串联1kΩ电阻防电平冲突电源需加100μF电容滤波防重启3. 关键电路设计细节3.1 加热棒驱动电路采用MOSFET光耦隔离方案// PWM控制代码示例 TIM_OCInitTypeDef oc; oc.TIM_OCMode TIM_OCMode_PWM1; oc.TIM_Pulse 75; // 占空比75% HAL_TIM_PWM_ConfigChannel(htim1, oc, TIM_CHANNEL_1);实测数据占空比水温变化(℃/h)30%0.850%1.580%2.33.2 喂食机构优化3D打印的螺旋送料装置解决传统翻斗式卡料问题步进电机28BYJ-48驱动每转投食量0.5g防潮设计内部放置硅胶干燥剂4. 软件架构实现4.1 任务调度设计采用裸机状态机而非RTOSvoid main() { while(1) { static uint32_t tick 0; if(HAL_GetTick() - tick 1000) { tick HAL_GetTick(); read_sensors(); update_display(); check_bluetooth(); } // 中断驱动的喂食触发 } }4.2 蓝牙协议设计自定义精简协议格式[HEAD][LEN][CMD][DATA][CRC]典型指令示例设置温度55 03 01 1E 2A 1E30℃立即喂食55 02 02 F14.3 手机端开发要点Android蓝牙开发关键代码// 搜索设备 BluetoothAdapter.getDefaultAdapter().startDiscovery(); // 连接HC-05 BluetoothDevice device adapter.getRemoteDevice(00:13:EF:XX:XX:XX); BluetoothSocket socket device.createRfcommSocketToServiceRecord( UUID.fromString(00001101-0000-1000-8000-00805F9B34FB)); socket.connect();5. 实测问题与解决方案5.1 蓝牙断连问题现象安卓手机锁屏后连接断开 解决方案修改手机蓝牙设置白名单增加STM32心跳包机制每30秒发送AA硬件上并联10μF电容消除电源毛刺5.2 温度控制振荡PID参数整定经验// 最终采用增量式PID float pid_update(float setpoint, float actual) { static float last_err 0; float err setpoint - actual; float delta Kp*(err-last_err) Ki*err Kd*(err-2*last_err); last_err err; return constrain(delta, 0, 100); }参数调试记录组合超调量稳定时间Kp2.015%8minKp1.58%12min加入微分3%5min6. 进阶改进方向已完成原型验证后可以考虑低功耗优化改用STM32L系列单片机传感器间歇采样如每5分钟唤醒一次本地数据存储添加AT24C02 EEPROM记录历史数据导出CSV格式分析水质变化机械结构改进磁吸式传感器模块方便维护防溅水喂食口设计这个项目最让我意外的是蓝牙控制的可靠性——在金属鱼缸环境下通过合理布置天线位置远离水泵和加热棒实测10米内连接稳定无丢包。下一步计划加入TDS检测功能让水质监控更全面。