基于 STM32 的智能净水器系统

基于 STM32 的智能净水器系统设计

家庭与办公场景对饮用水安全的关注持续提升。本文设计一种以 STM32F103C8T6 主控为核心的智能净水器系统,整合 SEN0189 浑浊度检测、PH-4502C pH 值检测、SR-01 水位、YF-S201C 流量传感器、OLED12864 本地显示与 ESP8266 上云模块,实现水质监测、出水控制与流量统计的完整流程。

一、系统功能总览

功能编号 功能名称 说明
F1 浑浊度检测 SEN0189 红外漫反射
F2 pH 检测 PH-4502C 模拟电极
F3 水位检测 SR-01 电阻式水位
F4 流量累计 YF-S201C 涡轮脉冲计数
F5 进水控制 低水位自动加水
F6 出水控制 水质合格才可出水
F7 本地显示 OLED12864 实时数据
F8 远程监控 ESP8266 + 手机 APP

二、核心模块选型对比

2.1 主控模块选型

方案 型号 性能
方案 1 STM32F103C8T6 72 MHz / 64 KB
方案 2 STM32F407VG 168 MHz,资源多但价格高

选择方案 1:在中等复杂度下兼顾性能与成本。

2.2 浑浊度模块选型

方案 模块 原理 成本
方案 1 SEN0189 红外 LED + 光电二极管
方案 2 SEN0176 激光 激光束 较高

选择方案 1:满足家庭净水器精度需求,价格友好。

2.3 pH 模块选型

方案 模块 测量范围
方案 1 PH-4502C pH 0~14、±0.1 pH
方案 2 SEN0161 量程类似

选择方案 1:PH-4502C 在校准与精度上更稳定。

2.4 流量模块选型

方案 型号 量程
方案 1 YF-S201C 1~30 L/min
方案 2 FS300A 1~60 L/min

选择方案 1:家用净水器流量在 1~10 L/min 区间,YF-S201C 足够。

三、系统接线总表

模块 引脚 单片机端 备注
SEN0189 VCC/GND/AO 5 V / GND / PA0(ADC) 红外探头
PH-4502C VCC/GND/OUT 3.3 V / GND / PA1(ADC) BNC 接口
SR-01 VCC/GND/AO 5 V / GND / PA2(ADC) 液位检测
YF-S201C 红/黄/黑 5 V / PA3 / GND 脉冲计数
OLED12864 VCC/GND/SCL/SDA 3.3 V / GND / PB6 / PB7 I2C
ESP8266 VCC/GND/TX/RX/CH_PD 3.3 V / GND / PA10/PA9/3.3 V UART
继电器 ×2 IN/VCC/GND PB0 / PB1 / 5 V / GND 进水阀 / 出水阀

四、系统软件设计

4.1 主程序流程

复制代码
int main(void)
{
    SystemInit();
    SEN0189_Init();
    PH_Init();
    SR01_Init();
    YFS201_Init();
    OLED_Init();
    ESP8266_Init();
    ESP8266_JoinAP("home","pwd");

    while (1)
    {
        float turbidity = SEN0189_Read();
        float ph        = PH_Read();
        u16   level     = SR01_Read();
        u16   flow      = YFS201_GetRate();

        if (level < LVL_LO) InValve_On();
        if (level >= LVL_HI) InValve_Off();

        if (ph >= 6.5f && ph <= 8.5f &&
            turbidity <= 5.0f && level >= LVL_LO)
            OutValve_On();
        else OutValve_Off();

        OLED_ShowAll(turbidity, ph, level, flow);
        ESP8266_Publish(turbidity, ph, level, flow);
        delay_ms(1000);
    }
}

4.2 ADC 采集

复制代码
u16 Get_Adc_Average(u8 ch, u8 times)
{
    u32 sum = 0;
    for (u8 i = 0; i < times; i++) sum += Get_Adc(ch);
    return sum / times;
}

4.3 流量计数

使用外部中断捕获涡轮脉冲,每秒计算脉冲数 × 60 / 7.5 = L/min,并写入累计流量。

4.4 远程上报

ESP8266 配置 STA 模式 → 连接路由器 → MQTT 客户端连接到阿里云,主题 water/quality,每 1 秒发布一次。

五、系统实现与测试

5.1 硬件焊接与测试

由于水质采样,模块外壳做好防水处理;YF-S201C 在水管中按水流方向安装,避免漏气。

5.2 软件调试

Keil 5 + ST-Link,结合串口日志核对 MQTT 报文与 ADC 转换值。

5.3 功能测试结果

测试项目 操作 结果
pH 校准 pH 4.00 与 pH 6.86 标液 偏差 ≤ 0.1 pH
浑浊度 纯净水对照 数值变化趋势正确
流量累计 1 L 量筒实测 误差 ≤ ±3%
APP 显示 改变阈值 立即同步

六、总结

本文基于 STM32F103C8T6 设计了一套集成浊度、pH、水位、流量的智能净水器方案,实现水质合格才出水、水位过低自动加水以及流量统计与远程监控。整套方案结构紧凑、易于扩展,可作为家庭饮水健康、产品样机和高校嵌入式物联网课程的综合实践项目参考。

七、资料内容完整工程资料(原理图、PCB、代码、元件清单)

八、资料获取方式

相关推荐
zcmodeltech2 小时前
火电厂模型能演示冷态启动和故障处理吗?——基于STM32与Modbus RTU的集控实训控制系统设计
数据结构·stm32·单片机·嵌入式硬件·能源
llilian_162 小时前
标准时间间隔发生器应用解决方案 脉冲发生器 时间测量仪
大数据·网络·人工智能·功能测试·单片机·嵌入式硬件·51单片机
桀人2 小时前
STM32之GPIO四种输出模式——P-MOS和N-MOS管的工作原理——双二极管钳位保护电路——上拉电阻
stm32·单片机·嵌入式硬件
HRTOS3 小时前
HRTOS 4.0 DEBUG:面向 8051 实时系统运行状态的轻量级调试组件
单片机·嵌入式硬件·51单片机
LCG元3 小时前
STM32F407 I2S驱动WM8978音频播放实战:PLLI2S时钟整定、DMA双缓冲防爆音与WAV采样率实测
stm32·嵌入式硬件·音视频
ZLG_zhiyuan3 小时前
明明加了隔离,电源为啥还是烧了?
单片机
不怕犯错,就怕不做3 小时前
RK linux在buildroot中如何添加linux命令
linux·驱动开发·嵌入式硬件
咖丨喱3 小时前
【MMC驱动分析】
嵌入式硬件
fhq_fn_jgd3 小时前
51单片机(中断,定时器)
stm32·单片机·嵌入式硬件