基于Arduino的医用吸氧自动计时计费器设计
2017-09-27兰皓宇张炼硕葛小伟张永林蒋鹏飞张书恒
兰皓宇 张炼硕 葛小伟 张永林 蒋鹏飞 张书恒
摘 要:文中设计了一种高性价比的医用吸氧计时计费装置,以解决医院多发的吸氧收费纠纷。该装置以Arduino最小系统为处理核心,配合气流传感器实现病人吸氧的同步计时计费,并实时显示吸氧时长、流量和费用。该装置通过红外进行授权操作和系统设置,并具有掉电数据自动保存、低电量声光报警等功能。该吸氧计时装置结构简单、易于安装、计时准确、使用方便,医院试用效果良好。
关键词:间断吸氧计时;吸氧计时计费装置;实时性;操作管理;Arduino
中图分类号:TP393 文献标识码:A 文章编号:2095-1302(2017)09-00-03
0 引 言
目前医院在实际医疗工作中,对于病人的吸氧计费仍然存在收费不精准的问题,多数是由医护人员定时巡房进行人工计时,缺少精确的设备进行计时收费。且病人在吸氧治疗的过程中并不是持续不断的吸氧,而是间歇吸氧,这就为医院和病人之间对吸氧治疗的标准计时造成了困难,因此收费有一定出入。
吸氧计时的设备国内外已有研究,医院也有使用,但医院较为常见的计时器都存在一些问题和缺陷。比如医院多用普通计时器记录时间,出现间断吸氧如外出就餐或外出检查后,停止供氧的时段只能通知护士扣减,计时存在明显的不准确性;另一种具有专利的氧气吸入湿化器虽可自动计时,但该设备的核心装置是触碰开关,在使用过程中硬件接触频繁极易损坏,同时清零装置未设置权限,病人也可以自行清零,无法保障准确性。
1 系统功能
结合吸氧治疗的实际状况,为了解决多数设备不能间断累积计时的问题,文中提出的计时系统运用微控制单元(MCU)对吸氧过程进行实时监控和管理,以提高计时的可靠性,减小系统体积。计时系统接在吸氧装置的气流通路中,当气流传感器检测到氧气流通后,会根据当前氧气流速产生0~5 V的模拟电压信号,该信号经Arduino最小系统处理送到显示模块显示并开始计时;当气流传感器检测到氧气停止流通后,系统停止计时。系统的显示模块会显示当前实时氧速率、累积吸氧时间、当前吸氧计时、吸氧费率、单次吸氧费用、累积吸氧费用,其中氧速率、累积时间、吸氧费率和累积费用的数据存储在E2PROM中,实现掉电保存功能。系统具有权限操作功能,病人吸氧的数据只有通过红外遥控输入正确的密码后才可以更改清零,密码亦同。为提醒医务人员意外掉电情况的发生,采用双供电系统,即适配器供电和锂电池供电,将适配器作为主供电,一旦发生掉电情况,系统会立即进行声光报警;若锂电池掉电,系统亦报警。
2 Arduino 最小系统简介
系统选用Arduino ProMini的开源硬件。Arduino ProMini的处理器核心为 ATmega168,同时具有14路数字输入/输出口(其中6路可作为PWM输出),6路模拟输入,一个晶体谐振,一个复位按钮。Arduino ProMini自带存储器,ATmega168包括片上16 KB Flash,其中2 KB用于Boot Loader。同时还有1 KB SRAM和0.5 KB E2PROM。
14路数字输入输出口的工作电压为3.3 V或5 V,每一路输出和接入的最大电流为40 mA。每一路配置了20~50 kΩ内部上拉电阻(默认不连接)。如下引脚有特定的功能:
串口信号RX(0号)、TX(1号): 提供TTL电压水平的串口接收信号,可与6脚Header通孔相连。
外部中断(2号和3号):触发中断引脚,可设成上升沿、下降沿或同时触发。
脉冲宽度调制PWM(3、5、6、9、10 、11):提供6路8位PWM输出。
SPI(10(SS),11(MOSI),12(MISO),13(SCK)):SPI通信接口。
LED(13号):Arduino专门用于测试LED的保留接口,输出为高时点亮LED,反之输出为低时LED熄灭。
6路模拟输入A0~A5:每一路具有10位分辨率(即输入有1 024个不同值),默认输入信号范围为0~5 V,可通过AREF调整输入上限。
TWI接口(SDA A4和SCL A5):支持通信接口(兼容I2C总线)。
3 吸氧计时系统的硬件、软件设计
3.1 系统的硬件结构
吸氧计时系统的硬件部分包括气流传感器、控制系统、LCD显示屏、双路电源、电源管理系统等,如图1所示。
气流传感器左右两端的进出气口与氧气通路相连,当病人吸氧且氧气通过时传感器发送0~5 V电信号触发计时系统。LCD显示模块屏位于计时器主体表面,可以显示当前氧速率、累积吸氧时间、吸氧计时/密码、费率、单次吸氧费用、累积吸氧费用。电源、控制系统位于计时器主体内部。
控制系統包括两块Arduino pro mini、红蓝LED、蜂鸣器、红外接收器和遥控设备,其中一块Arduino用于系统计时和操作管理,Arduino在接收到模拟信号后先进行AD处理,产生当前氧气流速时开始计时,计时过程中的实时时间、计时结束后的费用计算都由Arduino完成并在LCD上显示。系统权限操作指吸氧的费率只可由医护人员通过红外遥控更改,病人的吸氧数据必须通过红外遥控输入正确的密码才可清零,系统具有初始密码,但也可手动更改,密码和相关的吸氧数据存放在E2PROM内,若系统意外掉电不会被擦除。另外一块Arduino用于电源管理功能的实现,为防止意外掉电情况的发生,实现监控电量并在掉电后报警。系统为双路供电,锂电池给电源管理Arduino、LED和蜂鸣器供电,12 V/5 V双输出适配器给主控Arduino、LCD和传感器供电,同时控制电路里有两块LM393集成运算放大器,分别用于检测适配器电量和锂电池电量,当适配器掉电时LM393会给Arduino发送高电平信号触发声光报警,当锂电池电量低时LM393直接输出高电平点亮LED,若系统及时上电,则报警解除。endprint
电源管理模块主要通过两块LM393运算放大器实现主要功能。电源管理核心电路如图2所示。LM393(适配器掉电检测)由5 V锂电池供电,同向端接12 V适配器,反向端接5 V锂电池,运算放大器持续输出高电平,当出现意外状况适配器掉电时,运算放大器输出变为低电平,此时Arduino检测到电平变化,会控制蜂鸣器和蓝色LED闪烁报警,若适配器重新连接,则报警消除;LM393(锂电池电量检测)由12V适配器供电,同向端接12 V,限伏在5 V以下,反向端接5V锂电池,运算放大器输出端接红色LED。正常工作状态下,LM393持续输出低电平,红色LED熄灭。当锂电池处于低电量状态时反向端电压低于同向端电压,LM393输出高电平,从而点亮红色LED,提醒工作人员需要给锂电池充电。电源管理模块同时检测适配器电源和锂电池电源,以提醒医护人员可能影响吸氧计时的突发状况是否发生。
计时器主体部分还有复位按钮可给系统复位,以防系统死机;具有掉电存储和累加计时功能,以防突然掉电情况下数据丢失和无法间断计时的问题出现。
3.2 系统的软件设计
系统的实时计时部分运用Arduino库函数millis(),该函数从烧录程序运行开始计时。因为计时器是从上电起一直运行,为实现对每一次吸氧时间的精确计录,当Arduino接收到传感器传送的模拟信号时,程序调用millis函数,并将当前时间点截取并保存到ROM中,若模拟信号消失,将再一次截取时间并保存至ROM,结束时间和起始时间的差值即为本次吸氧的总时间。在氧气流通期间调用millis函数,用millis函数的返回值减去截取的起始时间,并在LCD上显示,即实现了每次吸氧开始都可以从0计时,使用者可以清晰观察使用情况。计时部分主要代码如下:
if(val>20)//大于20 sccm传感器输出电信号
{
if (flag1)
{
T=millis ()/1000;
Start=T;
flag1=0;
flag2=1;
}
lcd.setCursor (10, 0);
Timer=millis ()/1000-T;
lcd.print (timer);
}
else if (flag2)
{
T=millis ()/1000;
Over=T;
flag2=0;
flag1=1;
Time=over-start;
Money=per*Time;
Serial.print (Time);
Serial.println ();
Serial.print (money);
}
掉电存储则是运用Arduino promini上集成的0.5 KB E2PROM,累积吸氧时间、单次费用、吸氧费率、累积费用和密码按次序存放在相应的E2PROM中,每次吸氧结束计算吸氧费用,数据都会更新并被重新存放到相应的存储空间中,实现了间断吸氧计时的功能。若系统意外掉电,重要数据不会丢失。
密码和费率通过红外传输更改,系统包含三种模式,即计时模式、清零模式、修改密码模式,每种模式都通过红外遥控进入。
(1)在计时模式下,工作人员可以對费率进行修改,吸氧结束后程序会根据当前输入的费率进行计算;
(2)点击红外遥控上的“CL”键即进入清零模式,在该模式下使用者必须输入正确的密码才能将E2PROM中的累积吸氧时间、单次费用、累积费用数据清零,若输入错误不会进行任何修改;
(3)点击“CH”键进入修改密码模式,该模式需先输入旧密码才能进行新密码的设置,输入错误则不会进行任何修改。
在计时模式下若使用者忘记新设置的密码,可以通过“RE”键将密码初始化,但使用者需牢记系统的初始密码。
4 程序流程图
4.1 系统主流程图
将传感器接口与湿化瓶连接,接上电源,当有气流通过时,传感器检测到信号并输出0~5 V模拟电压,传送至芯片;芯片经AD转换将信号处理为当前的氧气流速,通过LCD进行实时显示并计时。LCD显示屏显示计时时间的主程序如图3所示。
4.2 红外遥控设计流程图
控制芯片在接收到红外遥控输入的吸氧费率后,吸氧结束阶段计算出吸氧所需费用,在LCD屏上显示出来。系统的操作管理流程如图4所示。在按下遥控器上的清零键后会要求输入密码,密码正确则成功清零;在按下遥控器上的重置密码按键后,先输入原密码,原密码输入正确,则LCD显示屏显示“CORRECT”,即可输入新密码并保存;若忘记密码,按下密码复位键即可恢复初始密码。
4.3 电源管理流程图
系统的电源管理由LM393和Arduino共同控制,自系统运行起就进行不间断监测,若适配器掉电则会触发声光报警,直至重新上电;若锂电池为低电压则会触发光报警,直至工作人员给锂电池充电。图5所示为电源管理流程图。
5 结 语
本文所研制的医用吸氧自动计时计费装置以气流传感器采集到的氧气流通信号触发计时系统工作,通过硬件系统和软件系统的配合来完成实时累积计时计费、电源管理和简单的系统管理。样机测试和医院试用结果表明,该装置可精确计时并检测当前氧气流速,计费数据安全可靠,系统稳定性符合要求,完全满足医院的实际需求,有效解决了因吸氧计费产生的纠纷。
参考文献
[1]王长梅,李钢,耿斌. QZJ_1型气流自动计时器的研制及临床应用[J].医疗装备,2013,16(11):15-16.
[2]鲜丕尧.医用吸氧计时器的研制[J].医疗装备,2005,18(2):4-5.
[3]张秀香.医用吸氧流量计量器:中国CN201607250U[P]. 2010.
[4]樊权民.吸氧同步计时器:中国CN202761865U[P].
[5]杨居义.单片机原理及应用项目教程:基于C语言[M].北京:清华大学出版社,2014.
[6]汤嘉立.单片机应用技术实例教程:C51版[M].北京:人民邮电出版社,2014.
[7]陈静, 李俊涛, 腾文隆,等.单片机应用技术项目化教程:基于STC单片机[M].北京:化学工业出版社,2015.
[8]张华宇,林海鹏.单片机原理与接口技术[M].北京:中国电力出版社,2014.endprint