☰
液体点滴监控系统设计与实现(STM32 + 液位/滴速/温度三参数监测 + PID自动调速)
2026/9/30 6:40:36 网站建设 项目流程
  • 液体点滴监控系统设计与实现(STM32 + 液位/滴速/温度三参数监测 + PID自动调速)
    • 一、系统功能总览
    • 二、核心模块选型对比
      • 2.1 主控芯片:STM32F103C8T6 vs LPC1768
      • 2.2 温度传感器:DS18B20 vs LM35
      • 2.3 液位传感器:SR-01 电阻式 vs HSC-1000G 压力式
      • 2.4 滴速检测:H21L1 光耦 vs AS5048A 霍尔
      • 2.5 显示模块:OLED12864 vs ST7735 TFT
      • 2.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 @120MHz
Flash/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模拟输出接 ADC1,5V 供电
ESP8266TXD/RXDPA3/PA2USART2,115200,MQTT 上传
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(液位采样)、定时器(滴速脉冲计数)、UART(WiFi 模块)、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 波特率连接 ESP8266:RST(PA8)拉低 500ms 复位,等待 “ready”;AT+CWMODE=1设 STA 模式,AT+CWJAP入网检查 “OK”;AT+CIPMUX关闭多连接,AT+CIPSEND进透传,确认 “\r\nOK\r\n\r\n>”;AT+CIPSTART连接 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 协议把数据实时送上手机 APP,CRC 校验与断网缓存保障链路可靠。系统把医护人员从"盯瓶子"中解放出来,显著降低人为疏忽引发的医疗风险,对智慧病房建设具有切实的落地价值。

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

资料获取方式

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询