
引言从“盯滴速”到“管滴速”一个输液监护系统的升级之路这个开源项目的标题是“STM32项目开源智能输液监护调控系统-升级版代码原理图仿真”。简单说这就是一套基于STM32单片机的输液监护设备它能自动检测输液滴速、实时显示数据在滴速异常或输液结束时报警并且能通过步进电机自动调节输液管上的滚轮夹把滴速稳定在医护人员设定的范围内。项目的“升级版”主要体现在两点一是控制方式从原来的“手动设定报警提示”升级为“闭环自动调节”二是硬件设计上加入了更稳定的滴速检测电路和电源管理模块。这套系统解决的是输液场景里的两个核心痛点第一护士不可能每分钟都盯住每一床的滴速传统滚轮夹调好之后容易受患者手臂位置变化影响滴速会慢慢漂移第二输液结束时如果没有及时处理回血风险不言而喻。用单片机加上传感器和执行机构把“监控”和“调控”闭环起来是非常典型的小型医疗电子项目。这个项目适合三类人正在做课程设计或毕业设计的电子、自动化、生物医学工程专业学生想系统梳理STM32外设定时器输入捕获、I2C、PWM、ADC综合应用的嵌入式开发者以及想做一个带实战意义的完整项目来充实简历的入门工程师。标题里已经说明打包了代码、原理图和仿真文件所以就算你手上暂时没有实物板子也能通过Proteus仿真把整套流程跑通。接下来我会把这个项目的设计思路、硬件原理、代码逻辑、仿真方法和调试经验一一拆开讲透。1. 整体设计思路与方案选型拆解1.1 项目要解决什么问题做项目第一步不是打开STM32CubeMX画引脚而是先把需求边界划清楚。我在设计这套系统时给自己定了三个必须满足的需求再往后才谈功能扩展。第一个需求是“能测准”。输液滴速的正常范围一般是每分钟20到60滴成人常用静脉输液儿科和某些特殊药液会更低。所以滴速检测的分辨率至少要精确到“1滴”而且不能因为外部光线变化、药液颜色差异导致漏检或误检。第二个需求是“能调稳”。手动调节滚轮夹是输液滴速漂移的主要原因系统必须能根据实时滴速自动调整滚轮的压紧程度形成一个负反馈闭环。第三个需求是“能报警”。无论是滴速过快、过慢、阻塞还是输液完毕设备都要在第一时间通过声光提示护士最好还能通过无线模块把状态上报方便集中看护。把这三个需求拆成硬件模块就对应了传感器采集单元、电机执行单元、报警通信单元和主控处理单元。整套系统的技术栈并不复杂难的是各模块之间的协作滴速采样要实时、PID调节要稳定、报警响应要及时、显示界面要清晰这四个维度同时工作才是“监护”和“调控”这两个关键词的真正含义。1.2 主控选型与模块分工单片机我选了STM32F103C8T6也就是大家常说的“C8T6核心板”原因很直接性能足够、资料极多、成本低廉。72MHz的主频在这套系统里完全够用定时器有输入捕获功能可以精确测滴速I2C接口接OLED显示屏ADC采集温度或者信号强度USART还能接ESP8266之类的WiFi模块。更关键的是ST官方的标准外设库和HAL库资料非常丰富网上随便一搜就是大批例子非常适合作为开源项目的基础平台。各模块的分工是这样的主控负责所有逻辑调度传感器模块负责把物理滴速变成单片机认识的数字信号执行机构负责调整输液管通径按键和屏幕负责本地交互音频报警电路和无线模块负责对外通知。模块之间通过GPIO、I2C、UART、PWM等常规接口互联没有用到任何冷门协议这也是我能把全国产元件做开源的重要原因。1.3 升级版相比基础版“升级”在哪里很多人在网上能找到“输液监控系统”的老版本设计那类项目通常只有光电检测加LCD显示滴速超标了只会响蜂鸣器至于调节滴速仍然靠护士手动去拧滚轮夹。这套“升级版”最大的变化就是把“监”和“控”打通了主控根据实时滴速与目标滴速的误差通过PID算法计算电机动作量让步进电机带动一个偏心凸轮机构压迫输液管相当于把人工调节滚轮夹的动作交给机器自动执行。另外升级点还包括加了下位机状态机处理异常逻辑比如排气前药液空检测、电机堵转保护、增加了滴速采集的软件滤波和自适应阈值避免药液颜色变化导致信号质量变差电源部分从单5V供电改为5V和3.3V双路供电避免电机大电流拉低单片机电压引起复位。这些升级会让整个系统的可靠性和用户体验明显上一个台阶。2. 硬件核心细节与原理图解析2.1 滴速检测模块的设计与信号调理滴速检测是整个系统的感觉器官原理不复杂输液滴壶两侧放一组红外对射传感器一端是红外发射管另一端是红外接收三极管。药液滴落时会遮挡红外光接收管输出的电平就会产生一个脉冲单片机根据脉冲间隔算出滴速。原理图里需要注意的点是发射管的驱动方式和接收管的信号调理。我建议红外发射管用PWM方式驱动频率十几kHz左右这样可以在保持平均功耗不变的前提下提高瞬间发射光强抗环境光干扰能力更强。接收管一侧接一个几十kΩ的上拉电阻到3.3V光路通畅时三极管导通、输出低电平有液滴遮挡时三极管截止、输出高电平。上拉电阻的取值要稍微算一下。接收三极管在导通状态下的饱和压降大约0.2V到0.3V如果外部干扰较大这个低电平的噪声余量比较小。我实测选用10kΩ上拉配合2kΩ限流低电平约0.25V高电平3.3V,逻辑电平判定的余量是足够的。如果上拉电阻取100kΩ高电平不变但低电平时三极管输出端的灌电流能力不足容易在强光干扰下发生误判。信号处理上我强烈建议在比较器输入前端加一个RC低通滤波截止频率设置在几百Hz即可。因为滴速正常最高也就每秒两三滴脉冲频率几百HzRC滤掉的是周围灯光50Hz/100Hz频闪以及高频红外干扰。用运放搭一个滞回比较器把模拟信号整形成干净的数字方波再送到STM32的定时器输入捕获引脚。这样比直接接光敏三极管到MCU稳定得多实测在没有外壳遮光的情况下也能可靠工作。2.2 步进电机执行机构为什么选“夹管”而不是“推注射器”执行机构我选的是28BYJ-48步进电机配合ULN2003驱动板。药液流速调节用的是偏心凸轮机构电机旋转带动凸轮改变对输液管的压迫程度凸轮压得越紧硅胶管通径越小滴速越慢。这种“夹管式”方案的好处是执行机构不接触药液不存在污染风险而且对现有输液器几乎零改造直接卡上去就能用非常契合医院场景。可能有同学会问为什么不用微型蠕动泵或者注射器推块原因有三个一是蠕动泵成本高泵体本身也不便宜作为教学级开源项目不现实二是注射器推块结构上需要适配特定规格的注射器通用性差三是蠕动泵的专利结构不好绕开自己做出来不仅精度很难保证还可能牵扯合规问题。夹管凸轮方案结构简单、成本极低、控制线只有四根性价比是最高的。驱动电路用ULN2003达林顿管阵列就够了四个输入端接STM32通用GPIO。28BYJ-48是四相五线电机步距角5.625°/64减速比1/64意味着给驱动板一个完整脉冲序列输出轴转一圈需要2048个步进脉冲。这套系统的调节不需要很高的角分辨率每次PID输出的动作量我用“步数”作为单位一次微调最少走8步对应凸轮转角大约1.4度实测对滴速的修正已经非常细了。电源部分要特别讲一句28BYJ-48的空载电流大约100mA堵转或负载时电流能到250mA以上。我实测过如果把电机驱动和单片机共用一个LDO降压电机一转主控电压就往下掉严重时直接复位。所以升级版原理图里我专门把电源拆成两路一路5V先给ULN2003供电另一路5V经过AMS1117-3.3给单片机和其他低压器件供电两个地再到电源入口单点汇接。这样电机引起的电压波动基本传不到MCU侧。2.3 显示、按键与报警电路的其他硬件细节显示我用0.96寸I2C接口OLED四根线VCC、GND、SCL、SDA接STM32的PB6和PB7。I2C上拉电阻通常板载已经做了如果自己画板子记得在SCL和SDA上分别接4.7kΩ上拉到3.3V否则通信不稳定。OLED可以显示目标滴速、实际滴速、电机步进位置、系统状态四行信息没有使用复杂的中文字库只用了ASCII字库和少量自定义图标这样固件体积小刷新速度也快。按键我用三个一个是“目标滴速”按键一个是“目标滴速-”按键还有一个是“启停/确认”按键。按键电路采用独立GPIO输入每个按键并联一个10nF电容做硬件消抖软件里再加上5次连续采样确认的滤波逻辑。消抖电容值不能太大否则按键按下时波形上升沿太缓反而影响判断。报警部分是无源蜂鸣器加一颗NPN三极管驱动。这里有个经验无源蜂鸣器需要给一个2kHz到4kHz的方波才会发声响度跟频率关系很大。我实测发现3kHz左右人耳听起来最刺耳穿透力最强适合作为医疗报警音。报警逻辑分三种滴速偏差超过±20%持续3秒触发“偏差报警”输液滴速为零持续5秒触发“完成/阻塞报警”电机连续动作超过设定限位触发“执行机构故障报警”。三种报警的蜂鸣器节奏各不相同护士不用看屏幕也能通过声音区分故障类型。3. 代码实现与核心控制逻辑3.1 工程架构与代码组织方式代码我采用的是“裸机前后台简易状态机”架构没有引入FreeRTOS原因是这套系统的实时性要求并没有高到必须上操作系统的程度而裸机架构的可读性和可调试性对开源项目而言更友好。代码整体分成四个源文件各司其职层次清晰main.c负责初始化外设、主循环调度、按键扫描和状态机跳转。dripspeed.c滴速采集、滤波、滴速换算。motor.c步进电机驱动、PID控制器、夹管位置管理。display.cOLED显示、菜单界面渲染。alarm.c蜂鸣器控制、报警状态判断。主循环采用固定时基调度系统节拍定为1ms用SysTick中断置一个全局标志位。每1ms扫描一次按键每10ms刷新一次OLED的低频区域数据每50ms执行一次滴速更新运算每200ms执行一次PID计算和电机控制输出。这种分时调度避免了每个任务都频繁抢占CPU逻辑也更容易排查。3.2 滴速采集定时器输入捕获与滤波算法滴速检测是核心中的核心。我的做法是把光电传感器的输出方波接到STM32的TIM2_CH1PA0配置为上升沿输入捕获。每次捕获到上升沿时读取当前计数值与上一次捕获值相减得到两次滴落之间的时间间隔单位是定时器计数个数。TIM2的预分频值设置为72-1计数频率正好1MHz也就是1个计数代表1微秒。滴速的换算公式很简单滴速滴/分 60,000,000 × 预分频系数 /捕获间隔计数 × 定时器时钟频率把具体常数代进去预设分频72-1、时钟72MHz、计数频率1MHz那滴速 60,000,000 / 捕获间隔微秒这样算出来就是每分钟滴数。比如两次滴落间隔是1.5秒即1,500,000微秒那滴速就是40滴/分正好在正常输液范围内。但直接拿相邻两次滴落的间隔算滴速会有个问题液滴下落不是严格均匀的而且微小的气泡或振动会带来瞬时干扰。所以我加了一个环形缓冲队列保存最近10次滴落间隔每次计算滴速时取中间6个值的平均值。这样处理之后滴速显示值变得非常平稳数值波动的幅度从±5滴/分缩小到±1滴/分以内。为了进一步应对环境光缓慢变化带来的直流漂移我还在信号进入比较器之前加了一级软件自适应阈值寄存器每500ms记录一次信号模拟量的基线电平如果检测到高电平持续时间过长说明可能有异物遮住了光路或发射管老化此时提高阈值并触发报警提示“检测信号异常”防止设备在失效状态下误报正常。3.3 闭环控制增量式PID算法与参数整定滴速控制的执行周期我定在200ms也就是每200ms计算一次目标滴速与实际滴速的偏差然后决定步进电机走多少步。控制算法用增量式PID它的输出是电机步数的增量而不是绝对值。增量式的好处是一来不会产生积分饱和的麻烦二来电机每次动作量小系统不容易振荡。控制公式是Δu(k) Kp × [e(k) - e(k-1)] Ki × e(k) Kd × [e(k) - 2e(k-1) e(k-2)]其中e(k)是当前偏差e(k-1)、e(k-2)是前两次偏差。Δu是本次需要调整的步进量正数表示电机继续压紧负数表示电机往回松一点。PID参数整定我采用的是工程上最常用的试凑法先把Ki和Kd都设成0只保留Kp从很小的值开始往上加直到系统出现等幅振荡然后取Kp为临界值的45%到60%。我实测下来Kp取1.2左右系统开始出现持续振荡所以最终Kp取0.6。接着加KiKi的作用是消除静差我一步步调到0.08时稳态滴速和目标值之间基本在±1滴/分以内。Kd取0.15主要目的是在滴速快速变化时抑制超调。调参过程中有个经验值得分享不要一开始就把目标滴速设成40滴/分然后在现实设备上调。先在仿真软件里把PID模型跑通记录一组稳定的参数再迁移到实物上。因为仿真环境里没有机械摩擦、没有流体惯性参数迁移到实物后一定会出现偏差但至少给了你一个合理的起点。3.4 状态机设计正常运行、异常报警与安全保护为了让系统在复杂工况下不出乱子我写了一个非常简单的四状态状态机初始化态、运行态、报警态、待机态。平时系统处于运行态滴速正常、电机位置在有效范围内一旦触发报警条件进入报警态蜂鸣器按对应节奏响铃OLED显示故障代码电机会自动退回安全位置防止长时间压迫输液管导致药液不滴或管路损坏护士处理完故障后按确认键系统回到运行态。这里有一个安全保护细节要特别提一下电机每次动作前都会先读取“位置传感器”的值。这个位置传感器其实就是一个霍尔开关加一块贴在凸轮背面的小磁铁用来判断凸轮是否回到了零位。开机时系统先执行“找零”动作让电机往松开方向转到触发霍尔信号为止然后把这个位置设为步进零点。之后每次PID输出都在这个零点的正负范围内计算一旦计算出越界说明电机可能已经压死输液管或者凸轮机构出了机械问题系统直接停机报警。这个设计让整个闭环控制不会出现“越调越紧、最后管子里一滴都不滴”的尴尬局面。代码里还有个防抖逻辑报警状态至少持续500ms才判定为有效报警这样短暂的一两滴检测异常不会触发误报。我实测过用手轻轻碰一下输液管造成的瞬时干扰持续时间一般不超过100ms远小于500ms阈值所以这个设计很有效地削减了误报警率。4. 仿真验证与实物联调实操记录4.1 Proteus仿真环境搭建与元件选配项目附带的仿真文件是用Proteus 8.10及以上版本做的打开工程后可以看到完整的原理图包括STM32F103C8T6、Liquid Crystal DisplayOLED模型、虚拟终端、按键、步进电机模型和滴速发生器模拟源。仿真里最有意思的地方是“滴速发生器”这个虚拟设备它本质上是一个PWM信号源输出频率对应滴速比如30滴/分就设置输出频率为0.5Hz把这个信号接到STM32的输入捕获引脚就相当于模拟了一滴一滴落下的红外遮断脉冲。你可以实时改变PWM频率观察PID控制逻辑是否能驱动“虚拟电机模型”输出正确的调节方向。不过要提醒一下Proteus自带的电机模拟比较粗糙不会真实模拟夹管机构的非线性所以仿真主要验证代码逻辑而不是执行机构的精确机械特性。仿真运行起来之后按一下开发板上的启动按键OLED仿真里用虚拟终端或者图形LCD代替就会显示当前滴速和目标值。把滴速发生器的频率从正常值突然调高到60滴/分你能在虚拟终端上看到PID输出变负虚拟电机模型显示“反转松开”滴速在几秒后重新回落到目标值附近。这就是闭环控制的最直观演示。4.2 仿真调试中容易踩的坑我调试仿真时遇到过一个特别坑的问题仿真能编译能运行但STM32就是输出不出来OLED屏上什么都看不到。排查了很久发现是Proteus的STM32模型默认不加载固件需要在单片机属性里手动指定.hex文件路径。如果你用的是Keil编译记得在Output选项卡勾选“Create HEX File”否则没有.hex文件可以加载。另一个常见的坑是定时器输入捕获引脚没有正确映射。STM32的TIM2_CH1默认在PA0但如果你在CubeMX里把某个外设重映射到了其他引脚仿真里还接着PA0那当然捕获不到信号。建议仿真时先打开虚拟终端打印一下捕获值如果一直是0八成是引脚映射或者GPIO复用配置的问题。还有一个很容易忽略的点Proteus里的WOKWI等平台对STM32仿真支持并不好默认库中没有真实的OLED I2C模型只能用虚拟终端替代。我的做法是写一个调试宏在编译时把OLED驱动的刷新内容同时输出到UART虚拟终端上这样即使OLED模型显示不出来你也能在虚拟终端里看清当前状态值。这套“双输出”调试方法从仿真阶段一直沿用到了实物验证省了我大量时间。4.3 实物联调流程与整机测试记录仿真跑通后我焊了一套实物并进行了完整的联调。联调流程我建议按“模块分级、先分后合”的方式来先单独调滴速采集模块用示波器看传感器输出是否有标准的方波再单独调电机模块用简单的开环程序让电机正反转检查凸轮角度与步进数之间的关系然后调OLED显示和按键输入最后再跑整个闭环系统。整机联调时我先设目标滴速为40滴/分用标准的医用输液器配合纯净水进行测试。初始状态电机完全不压管实际滴速大约是65滴/分PID开始动作后大约4秒左右滴速降到接近40滴/分最终稳定在39到41滴/分之间超调量很小。之后我模拟了一个常见场景用手轻微捏住输液管下游的管路增加阻力模拟患者弯曲手臂滴速突降到20滴/分系统检测到偏差后电机自动松开大约5秒滴速恢复到了39滴/分左右。这套动作完成得非常自然说明PID参数和电机步进量匹配得还是比较舒服的。不过我首次联调也走了一段弯路一开始我把PID执行周期设得太快了50ms计算一次电机的机械响应跟不上这个频率导致电机反复过冲和振荡滴速在35到45滴/分之间大幅波动。后来把执行周期延长到200ms并加入一个最小动作量死区误差小于1滴/分时不动作系统才稳定下来。这说明PID控制中“控制频率”和“执行机构响应速度”必须匹配不是算得越快越好。5. 常见问题与排查技巧实录5.1 编译下载与调试工具链问题很多同学第一次接触STM32项目卡在的最早一个坑就是编译没问题、下载却报错。我把常见的问题和解决方法整理成了一张速查表方便大家直接对照排查现象可能原因解决方法Keil编译报错“cannot open file”输出目录路径包含中文或过深把工程放在纯英文路径下路径尽量不超过两级目录烧录时提示“no STM32 target found!”接线错误、BOOT0电平不对或芯片锁死检查SWDIO/SWCLK/GND接线BOOT0拉高再上电擦除确认调试器供电正常烧录后程序不运行启动文件选择错误或时钟配置异常确认在STM32F10x系列中选择正确的启动文件检查HSE/HSI时钟源设置现象是无输出但代码已跑引脚初始化与硬件连接不一致对照原理图逐引脚检查GPIO配置和复用功能串口打印乱码波特率不匹配或时钟频率不匹配确认外部晶振频率与实际一致串口助手波特率应与代码一致这里专门说一下“no STM32 target found”这个报错。它看起来吓人但九成情况不是芯片坏了而是调试器连接问题。常见原因是目标板被外接5V电源供电而调试器又通过SWD口给3.3V供电两边电压不一致导致SWD通信失败。解决办法是先拔掉目标板的独立电源只保留调试器的供电让目标板完全由调试器供电后再连接。如果还不行就把BOOT0引脚拉高复位一下芯片上电瞬间芯片进入ISP模式再用STM32CubeProgrammer把整片Flash擦除烧写后再把BOOT0拉回低电平。这一步可以解决绝大多数“芯片内部程序干扰调试接口”的问题。5.2 滴速测量不准、误报警的排查思路滴速测量是最容易被干扰的环节。如果你的系统显示的滴速值上下乱跳先不要急着改代码用示波器看传感器输出波形才是正确姿势。我遇到的几个典型故障和排查经验如下一是波形是“毛刺方波”主要原因是对射传感器位置没有对准或者外界红外光干扰严重。对策是给传感器加一个遮光罩并把发射管驱动方式从常亮改为PWM驱动。二是波形正常但滴速偶尔跳成双倍值。这是典型的液滴在滴落过程中碎裂成两滴或者前一滴的余液还没有完全离开检测区、下一滴已经到来接收管连续输出两次下降沿。对策是在软件里把滴落间隔小于150ms的数据样本丢弃因为正常输液滴速最快不会超过每秒4滴对应间隔不可能低于250ms。三是OLED显示的滴速始终为0。这种时候先检查传感器有没有输出脉冲再看定时器的CH捕获中断有没有使能再看捕获值的处理有没有溢出。我遇到过TIM2的ARR设置太小计数溢出后捕获值全是错的最后把ARR改为0xFFFF最大范围才解决。四是报警误报频繁。我之前把“滴速偏差”报警阈值设为±10%实测中患者只要轻轻翻个身滴速就可能瞬间掉15%误报非常烦人。后来改成了“偏差达到20%且持续时间超过3秒”才报警效果好得多。这个经验说明报警器的设计原则不是“敏感”而是“稳健”宁可晚报2秒也不能频繁误报让护士产生“狼来了”心理。5.3 电机控制中的隐蔽问题电机模块有两个隐蔽问题不实测基本发现不了。第一个是28BYJ-48电机在特定位置的保持力矩特别小如果凸轮恰好停在一个“死点”上电机会被输液管内压力顶回去一两步导致滴速缓慢漂移。解决办法有二一是让PID的死区稍微放宽一些比如允许±1滴/分防止因为微小误差反复调整刺激电机二是在电机不动作时给四相绕组输出一个“全锁定”电平让电机真正锁死。这个“锁定电平”不是简单地关闭驱动而是要让四个输入引脚都保持在高电平或低电平由驱动板来维持电机磁场。第二个问题是电机在连续动作几十步之后会因为步进丢步导致凸轮实际位置与软件记录位置出现偏差。虽然霍尔零位可以解决开机偏差但运行中累积偏差无法简单消除。我给的方案是每隔15分钟执行一次“回零校准”也就是让电机快速往松开方向转直到触发霍尔传感器然后再回到上一次记录的位置。校准过程全部在系统后台自动完成因为回零只需要不到2秒对输液监护没有实质影响。这个“软校准”机制让系统连续运行一整天后滴速仍然能稳定在目标值附近是我个人非常满意的一个设计。6. 项目扩展方向与资料使用建议如果你拿到这套代码和原理图之后不只是想交个作业还想把它变成一个拿得出手的作品有几个扩展方向性价比非常高。第一个方向是加无线联网。ESP8266或者ESP32模块通过串口与STM32通信把滴速、报警状态上传到TCP服务器或者MQTT平台护士站就能集中管理多个床位的数据。这部分难点不在硬件而在于通信协议设计一条消息该包含哪些字段、多久发一次、断线重连怎么处理这些都是很实际的问题。做好的话这个项目就从单机设备直接升维成物联网应用。第二个方向是数据记录与回放。现在很多病房管理系统希望能回溯输液过程数据比如滴速变化曲线、报警事件时间戳。STM32内部Flash空间只有64KB不够存大量历史数据可以外挂一个SPI接口的Flash芯片或者直接通过串口把数据发给上位机存成CSV文件。配合Python写个简单的可视化脚本你就能画出滴速控制曲线这对展示项目效果非常加分。第三个方向是升级传感器方案。红外对射方案成本低但对安装位置要求高如果想让设备维护更方便可以试试CCD线性传感器或者光电反射式方案检测液滴边缘变化。精度更高成本也更高适合作为进阶版本。关于资料使用我的建议是不要直接拿来就跑先把原理图和芯片手册对着看一遍把每个引脚的走向理清楚再打开代码去对应各个外设的功能模块。开源项目的意义不是让你无脑复制而是给你一个可以快速上手的参考基准在这个基础上改造和优化才是对自己能力最大的锻炼。最后再分享一个我自己调试这类项目时的小技巧永远不要一次性把所有模块都调通才去测试而是先把每个模块单独调好再逐步集成。每一次集成测试只改动一个变量出了问题就回退这样看起来慢实际上总时间最短。做嵌入式项目稳比快重要得多。这套系统说到底是一个软硬结合的综合练习它把信号采集、数据处理、闭环控制、人机交互和故障保护串在了一个完整场景里。你在原理图里画下的每一根线、在代码里写下的每一个状态机都会在实物运行起来的那一刻得到最直观的反馈。希望你在这套开源资料的基础上做出属于你自己的、更稳定、更智能的输液监护方案。