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

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

一、系统功能总览

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

二、核心模块选型对比

2.1 主控模块选型

方案型号性能
方案 1STM32F103C8T672 MHz / 64 KB
方案 2STM32F407VG168 MHz,资源多但价格高

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

2.2 浑浊度模块选型

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

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

2.3 pH 模块选型

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

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

2.4 流量模块选型

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

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

三、系统接线总表

模块引脚单片机端备注
SEN0189VCC/GND/AO5 V / GND / PA0(ADC)红外探头
PH-4502CVCC/GND/OUT3.3 V / GND / PA1(ADC)BNC 接口
SR-01VCC/GND/AO5 V / GND / PA2(ADC)液位检测
YF-S201C红/黄/黑5 V / PA3 / GND脉冲计数
OLED12864VCC/GND/SCL/SDA3.3 V / GND / PB6 / PB7I2C
ESP8266VCC/GND/TX/RX/CH_PD3.3 V / GND / PA10/PA9/3.3 VUART
继电器 ×2IN/VCC/GNDPB0 / 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、代码、元件清单)

八、资料获取方式

更多推荐