液体点滴监控系统设计与实现STM32 液位/滴速/温度三参数监测 PID自动调速一、系统功能总览二、核心模块选型对比2.1 主控芯片STM32F103C8T6 vs LPC17682.2 温度传感器DS18B20 vs LM352.3 液位传感器SR-01 电阻式 vs HSC-1000G 压力式2.4 滴速检测H21L1 光耦 vs AS5048A 霍尔2.5 显示模块OLED12864 vs ST7735 TFT2.6 无线通信模块ESP8266 vs nRF905三、系统接线总表四、系统软件设计4.1 主程序流程4.2 温度检测流程4.3 液位检测流程4.4 滴速检测流程4.5 滴速 PID 调节流程4.6 无线通信流程五、系统实现与测试5.1 硬件焊接与测试5.2 软件实现与测试5.3 功能测试六、总结液体点滴监控系统设计与实现STM32 液位/滴速/温度三参数监测 PID自动调速静脉输液最怕三件事药液滴空没人发现、滴速忽快忽慢、药液温度失当——任何一件都可能引发医疗风险而传统病房全靠护士定时巡视。本文带来一套基于 STM32 的液体点滴监控系统DS18B20、SR-01、H21L1 三只传感器分别盯住药液温度、液位与滴速数据实时显示在 OLED 并经 ESP8266 同步手机 APP液位低于安全线立即蜂鸣报警并紧急停机滴速超出范围由 PID 算法驱动电机正反转自动回调温度异常自动联动加热/降温继电器。一套系统把输液安全的人盯人变成机器值守。一、系统功能总览功能模块具体说明温度监测DS18B20 实时采集药液温度精度高、数字输出液位监测SR-01 电阻式液位传感器结合 ADC 采样计算液位高度滴速监测H21L1 光耦对射检测点滴脉冲外部中断计数换算滴速液位报警液位低于安全阈值蜂鸣器持续报警并紧急停止电机滴速自动调节PID 算法控制电机滴速超上限反转减速、低于下限正转加速温度联动温度低于阈值启动加热继电器超过上限启动降温继电器阈值设定按键设置液位、滴速、温度双阈值自动校验并存入 Flash无线上云ESP8266 以 MQTT 协议上传数据数据帧带 CRC 校验与断网缓存二、核心模块选型对比2.1 主控芯片STM32F103C8T6 vs LPC1768对比项方案一STM32F103C8T6方案二LPC1768内核Cortex-M3 72MHzCortex-M3 120MHzFlash/RAM64KB / 20KB512KB / 64KB外设接口GPIO/ADC/定时器/串口齐全资源更多但本系统用不上低功耗适合长时间在线运行功耗略高价格约 10 元约 35 元选择方案一STM32F103C8T6。系统的实时采集与 PID 运算属中等复杂度任务C8T6 性能稳定、外设接口够用低功耗特性还适合医疗设备的长时间值守。2.2 温度传感器DS18B20 vs LM35对比项方案一DS18B20方案二LM35输出方式数字量单总线模拟电压需 ADC测量范围-55~125℃-55~150℃线性度12 位分辨率免标定线性好但依赖 ADC 精度多点扩展单总线可挂多个传感器一路一个 ADC 通道抗干扰数字传输强抗干扰模拟长线易受干扰选择方案一DS18B20。数字输出省去模数转换环节单总线协议方便多传感器扩展12 位分辨率对药液温控绰绰有余系统设计更简洁。2.3 液位传感器SR-01 电阻式 vs HSC-1000G 压力式对比项方案一SR-01方案二HSC-1000G原理电极接触液体改变电阻压力换算液位高度精度满足阈值判断更高适合高精度场景结构简单成熟内置压力传感单元价格约 5 元约 60 元选择方案一SR-01。系统只需判断液位是否低于安全线SR-01 对导电液体的检测有效可靠成本仅为压力传感器的零头经济实用。2.4 滴速检测H21L1 光耦 vs AS5048A 霍尔对比项方案一H21L1 光耦方案二AS5048A 霍尔原理光电对射液滴遮挡光路计数磁场变化测速抗干扰光电隔离抗电磁干扰出色强光高温下稳定安装卡在滴壶两侧即可需与旋转轴对准适用性直接检测透明管路液滴适合旋转机械选择方案一H21L1。检测对象是滴壶中下落的液滴而非旋转部件光耦对射方案通过液滴遮挡光路产生脉冲隔离干扰、测量精准与场景天然匹配。2.5 显示模块OLED12864 vs ST7735 TFT对比项方案一OLED12864方案二ST7735 TFT分辨率128×64 单色128×128 彩色对比度/视角自发光全视角亮度高依赖背光功耗低功耗背光功耗高价格约 12 元约 20 元选择方案一OLED12864。监测界面以数值为主OLED 高对比度任何角度清晰可读低功耗契合医疗设备长时间运行的需求。2.6 无线通信模块ESP8266 vs nRF905对比项方案一ESP8266方案二nRF905联网方式WiFi 直连互联网433MHz 私有协议上云能力TCP/MQTT 即插即用无法直接联网传输速率最高 72Mbps低速生态社区资源丰富相对封闭选择方案一ESP8266-01S。医护端需通过手机 APP 随时查看输液状态数据必须经云平台中转ESP8266 直连 WiFi 即可完成全链路上云。三、系统接线总表模块引脚连接 STM32 引脚备注DS18B20DQPA0单总线DQ 与 3.3V 间接 4.7kΩ 上拉H21L1 光耦OUTPA1外部中断下降沿计数5V 供电内部上拉SR-01 液位SPA4模拟输出接 ADC15V 供电ESP8266TXD/RXDPA3/PA2USART2115200MQTT 上传ESP8266RSTPA8复位控制CH_PD 接 3.3V调速电机PWMPA6TIM3 PWM 调速调速电机方向PB0/PB1正转加速 / 反转减速蜂鸣器I/OPB5三极管驱动液位报警加热继电器INPB10温度低于阈值吸合降温继电器INPB11温度超过上限吸合按键 K1~K4一端PB12/PB13/PB14/PB15设置/加/减/确认阈值参数调节OLED12864SCL/SDAPB6/PB7I2C 接口SSD1306 驱动接线说明电机经驱动电路由 TIM3 PWM 控制转速、双 GPIO 控制转向两路温控继电器独立控制加热与降温设备主控最小系统 8MHz 晶振倍频 72MHz电源引脚就近放置 10µF 去耦电容。四、系统软件设计4.1 主程序流程系统上电初始化时钟树、GPIO、ADC液位采样、定时器滴速脉冲计数、UARTWiFi 模块、OLED、按键中断与 PWM 输出随后以 200ms 为周期进入主循环采集温度、液位、滴速三路数据 → OLED 刷新显示 → MQTT 帧上传附 CRC 校验断网时缓存→ 阈值判断与联动控制。主程序骨架如下int main(void) { System_Init(); // 时钟/GPIO/ADC/定时器/UART/PWM OLED_Init(); DS18B20_Init(); ESP8266_Rst(); ESP8266_MQTT_Connect(); // 入网 透传 MQTT while (1) // 200ms 主循环 { temp DS18B20_GetTemp(); // 温度 level Get_Water_Level(); // 液位ADC 均值换算 drops Get_Drop_Speed(); // 滴速脉冲计数/秒 if (level LEVEL_TH) // 液位过低 { BEEP_ON(); // 持续报警 Motor_Stop(); // 紧急停止电机 } if (drops DROP_TH_H) // 滴速过快 Motor_Reverse(); // 反转减速 else if (drops DROP_TH_L) // 滴速过慢 Motor_Forward(); // 正转加速 if (temp TEMP_TH_L) RELAY_HEAT_ON; // 加热 if (temp TEMP_TH_H) RELAY_COOL_ON; // 降温 OLED_Show(temp, level, drops); // 刷新显示 MQTT_Publish(temp, level, drops); // CRC 帧上传 APP Key_Scan(); // 阈值设置 delay_ms(200); } }4.2 温度检测流程DS18B20 按单总线时序工作DQ 拉低 480µs 发复位脉冲 → 等待 60~240µs 的存在响应 → 发送温度转换命令 0x44传感器执行 750ms~1s 的测量 → 再次复位并发读取命令 0xBE → 切换 DQ 为输入读取低字节在前的两字节 12 位温度数据 → 按温度 (数据[1]8 | 数据[0]) × 0.0625换算实际温度值。4.3 液位检测流程ADC 初始化后启动校准设置通道与 239.5 时钟周期的采样时间软件触发转换并轮询完成标志读取 0~4095 的 12 位转换结果多次采样取均值后按传感器量程换算为实际液位值与安全阈值实时比较。4.4 滴速检测流程光耦 OUT 引脚配置为输入并使能内部上拉外部中断设为下降沿触发每滴液滴遮挡光路即产生一个脉冲中断服务程序累加脉冲计数器定时器每秒读取一次计数值并清零结合时间间隔换算滴速滴/分同时记录时间戳便于 PID 调节计算。4.5 滴速 PID 调节流程滴速控制采用 PID 算法以设定滴速为目标值、实测滴速为反馈计算偏差的比例、积分、微分项输出映射为 PWM 占空比——滴速超上限时控制电机反转降低滴速低于下限时正转加大滴速动态收敛至安全范围。4.6 无线通信流程USART2 以 115200 波特率连接 ESP8266RSTPA8拉低 500ms 复位等待 “ready”ATCWMODE1设 STA 模式ATCWJAP入网检查 “OK”ATCIPMUX关闭多连接ATCIPSEND进透传确认 “\r\nOK\r\n\r\n”ATCIPSTART连接 TCP 服务器等待 “CONNECT”。数据帧附加 CRC 校验保证完整性网络中断时数据自动缓存恢复连接后补传医护端 APP 实时掌握输注状态。五、系统实现与测试5.1 硬件焊接与测试按图纸逐模块连接确认电源、地线与信号线极性无误后首轮上电测试无短路过热万用表核验温度传感器输出正常单片机读取数据与显示一致液位与滴速传感器分别以模拟信号与实际滴落验证串口调试工具检查 ESP8266 的 AT 响应与入网状态。5.2 软件实现与测试程序以 C 语言结合 STM32 外设库在 Keil 中编写各模块独立调试后再集成ST-Link 在线调试监控变量、定位问题PID 参数经多轮整定后滴速收敛稳定MQTT 链路持续上传无异常。5.3 功能测试测试项测试方法系统动作结果温度采集模拟不同温度环境对比标准值返回值准确OLED 同步显示通过液位采集多次调整液位高度输出信号准确反映液位通过滴速检测光耦模块校准滴速计数精准换算正确通过液位报警液位降至安全线以下蜂鸣器持续报警并停机通过滴速调节人为加快/减慢滴速电机反转/正转回调至设定范围通过温度联动温度越出上下限加热/降温继电器正确吸合通过断网缓存模拟网络中断后恢复缓存数据补传成功APP 无丢帧通过六、总结本文设计并实现了一套基于 STM32 的液体点滴监控系统DS18B20、SR-01、H21L1 组成温度、液位、滴速三参数监测矩阵液位见底即刻报警停机滴速由 PID 算法驱动电机双向自动回调温度异常联动加热/降温继电器三重防护覆盖输液安全的核心风险点ESP8266 以 MQTT 协议把数据实时送上手机 APPCRC 校验与断网缓存保障链路可靠。系统把医护人员从盯瓶子中解放出来显著降低人为疏忽引发的医疗风险对智慧病房建设具有切实的落地价值。资料内容完整工程资料原理图、PCB、代码、元件清单资料获取方式