STM32鱼塘水质监测系统设计与实现
基于STM32的鱼塘水质监测系统设计与实现1. 项目概述1.1 系统背景水产养殖行业正经历从传统人工管理向智能化监测的转型过程。鱼塘水质参数如温度、PH值和浊度直接影响鱼类生长环境传统人工检测方法存在实时性差、效率低下等问题。本系统采用STM32微控制器为核心结合多种传感器和物联网技术构建了一套完整的实时水质监测解决方案。1.2 系统功能多参数水质监测水温、PH值、浊度本地数据显示0.96寸OLED实时显示远程监控通过4G模块上传至云平台异常报警声光报警与远程提示跨平台客户端支持Android和Windows系统2. 硬件系统设计2.1 核心控制器系统采用STM32F103C8T6作为主控芯片该MCU具有72MHz Cortex-M3内核64KB Flash/20KB SRAM丰富的外设接口(ADC/USART/I2C等)低功耗特性适合野外环境2.2 传感器模块2.2.1 温度检测传感器型号DS18B20(防水封装)接口类型单总线数字输出测量范围-55°C ~ 125°C精度±0.5°C电路设计4.7KΩ上拉电阻2.2.2 PH值检测传感器类型模拟输出PH电极测量范围0-14PH信号处理STM32内置12位ADC采集校准方法两点校准(中性/酸性缓冲液)2.2.3 浊度检测传感器原理光学散射测量输出信号0-3.3V模拟电压测量范围0-1000NTU接口设计RC滤波电路2.3 显示模块型号0.96寸OLED(SSD1306驱动)接口I2C(SCL:PB6, SDA:PB7)分辨率128×64刷新率1Hz(节能设计)2.4 通信模块4G模块Air724UG通信协议MQTT over TCP/IP天线设计PCB板载天线电源管理独立LDO供电2.5 报警模块元件5V有源蜂鸣器驱动电路NPN三极管开关触发方式GPIO高电平报警策略参数超阈值触发3. 软件系统设计3.1 主程序流程void main() { hardware_init(); // 硬件初始化 sensor_calibration(); // 传感器校准 onenet_connect(); // 连接云平台 while(1) { read_sensors(); // 读取传感器数据 process_data(); // 数据处理 oled_display(); // 本地显示 upload_data(); // 数据上传 check_alarm(); // 报警检测 delay_ms(1000); // 1秒周期 } }3.2 传感器驱动3.2.1 DS18B20驱动采用单总线协议实现温度读取float read_temperature() { reset_ds18b20(); write_byte(0xCC); // 跳过ROM write_byte(0x44); // 启动转换 delay_ms(750); // 等待转换 reset_ds18b20(); write_byte(0xCC); write_byte(0xBE); // 读取暂存器 uint8_t temp_l read_byte(); uint8_t temp_h read_byte(); return (temp_h8 | temp_l) * 0.0625; }3.2.2 ADC采集处理PH和浊度传感器共用ADC通道#define PH_CAL_OFFSET 2.5f #define PH_CAL_SLOPE -3.5f float read_ph_value() { uint16_t adc_val adc_read(ADC1, PH_CHANNEL); float voltage adc_val * 3.3f / 4095.0f; return PH_CAL_SLOPE * voltage PH_CAL_OFFSET; }3.3 物联网通信3.3.1 MQTT协议栈采用轻量级MQTT客户端实现void mqtt_publish_data(float temp, float ph, float turb) { char topic[50]; sprintf(topic, $sys/%s/%s/thing/property/post, PRODUCT_ID, DEVICE_ID); char payload[200]; sprintf(payload, {\id\:123,\params\:{\temp\:%.1f,\ph\:%.1f,\turb\:%.1f}}, temp, ph, turb); mqtt_publish(topic, payload); }3.3.2 4G模块AT指令Air724UG通信流程ATCPIN? // 检查SIM卡 ATCREG? // 检查网络注册 ATMQTTCONN0,服务器地址,1883,60 // 连接MQTT ATMQTTPUB0,0,0,主题,负载 // 发布消息3.4 客户端软件Qt跨平台客户端主要功能实时数据显示曲线历史数据查询阈值设置异常报警提示4. 系统实现关键点4.1 低功耗设计传感器间歇工作模式OLED动态刷新控制4G模块心跳包优化STM32低功耗模式4.2 抗干扰措施传感器信号滤波电源去耦设计通信重试机制看门狗定时器4.3 校准方法PH传感器校准步骤准备PH4.0和PH7.0标准缓冲液分别测量输出电压计算斜率和偏移量写入Flash保存参数5. 系统测试5.1 功能测试测试项方法预期结果实际结果温度测量水浴法±0.5°C精度达标PH测量标准液测试±0.2PH误差达标浊度测量标准浊度液±5%误差达标数据上传平台验证1秒间隔达标5.2 环境测试温度范围-10°C ~ 50°C湿度范围30% ~ 90%RH连续运行72小时无故障6. BOM清单器件名称型号数量关键参数主控芯片STM32F103C8T61LQFP48封装温度传感器DS18B201防水型PH传感器PH-4502C10-14PH浊度传感器TSW-1010-1000NTUOLED屏SSD130610.96寸I2C4G模块Air724UG1支持MQTT蜂鸣器有源5V185dB7. 应用扩展本系统设计方法可应用于水产养殖水质监控污水处理厂监测饮用水质量检测农业灌溉系统硬件平台可通过以下方式扩展增加溶解氧传感器集成GPS定位模块添加太阳能供电扩展LoRa无线传输