基于32单片机的无线病床呼叫系统设计
2024-05-20余方计范小娇张英豪
余方计,范小娇,张英豪
(西京学院计算机学院,西安 710123)
0 引言
病床呼叫系统通常是患者向医护人员发送呼叫信号的一种装置[1],它缩短了传统人工呼叫所需要的时间,为患者、家属看护和医护人员治疗提供了多种便利,是现代化医院中不可或缺的设备,这种设备要求快速准确地反馈信息,操作简单方便,并且易于推广[2]。
目前,传统的病床呼叫系统通常依赖于有线连接,存在着布线难、维护困难、运营成本高等问题。而基于STM32 单片机的无线病床呼叫系统通过利用无线通信技术,确保了信号的稳定传输,避免了因布线困难或接触不良等问题导致的系统故障[3]。患者只需按下按钮,医护人员便可通过手机及时接收并显示呼叫信息。因此,本方案提出的基于32 单片机的无线病床呼叫系统设计,在一定程度上解决了有线式所面临的困境。
1 系统组成
本系统由发射端和接收端两部分组成,整个系统由STM32F103C8T6 单片机、ESP8266-01S无线通信模块、按键呼叫模块、LED 指示模块、安卓APP监测系统组成。
发射端采用STM32 单片机作为系统主控制器,负责处理按键呼叫模块的呼叫请求和控制无线通信模块实现信号的传输以及LED 指示灯的亮灭;ESP8266 模块用于实现无线信号的发射和接收,将STM32 单片机处理的呼叫请求信号发送给接收端以及接收上位机的反馈信号;按键呼叫模块安装在病床上,当患者需要呼叫时,按下按键即可发起呼叫请求;LED 指示模块显示病床的呼叫状态,当患者发起呼叫请求时,LED 指示灯通过灭→亮→灭的状态转变,来提示医护人员呼叫请求。
接收端利用安卓APP 实现呼叫监测,通过手机铃声的报警和监测界面信息的提示以及医护人员通过监测界面按钮的反馈,达到患者呼叫医护人员的效果。系统组成框图如图1所示。
图1 系统组成框图
2 系统硬件设计
2.1 主控芯片
STM32F103C8T6 主控芯片采用了ARM Cortex-M3 处理器。通过USART、I2C 等外设总线实现与外部设备的数据交互;利用EEPROM非易失性存储器保证了断电后数据不丢失;具有完整的时钟系统,包括内部RC 振荡器和PLL倍频器,能够通过外部晶振提供更高精度和稳定性的时钟信号;拥有外部、定时器、串口等多种中断形式,当相应的事件发生时,处理器可以通过中断向量表找到对应的中断服务程序进行处理,来达到优先处理的效果;且具备睡眠、停机、待机等可减少功耗并延长电池寿命的低功耗模式。
2.2 无线通信模块
如图2 所示,ESP8266 是一款超低功耗的UART-WIFI 透传模块,专门为移动设备和物联网应用而设计,它能够将用户的物理设备与Wi-Fi 无线网络连接起来,从而实现互联网或局域网通信以及设备的联网功能[4]。
图2 ESP8266通信模块
ESP8266 模块支持三种工作模式:STA 模式、AP模式、STA+AP模式[5]。
(1)STA 模式:ESP8266 模块可以通过路由器连接到互联网,使手机或电脑通过互联网远程控制设备,在该模式下,ESP8266 充当客户端,与路由器建立连接,获取互联网访问权限,从而实现远程控制。
(2)AP 模式:ESP8266 模块作为热点,创建一个无线局域网,使手机或电脑可以直接与模块进行通信,在该模式下,ESP8266 充当热点,其他设备可以连接到创建的局域网中,通过该局域网实现无线控制。
(3)STA+AP 模式:ESP8266 模块同时支持STA 和AP 模式共存,它既可以通过路由器连接到互联网进行远程控制,又可以作为热点,使得其他设备可以直接与其通信,此模式下,用户可以方便地在互联网控制和局域网无线控制之间无缝切换,以满足不同场景的需求[6]。
本次设计设置ESP8266 为AP 模式,将单片机USART2 的PA2(TX)和PA3(RX)引脚分别与ESP8266的RX 和TX 引脚连接,同时给ESP8266进行3.3 V 供电和GND 共地连接;当USART2 初始化完成时,通过AT 指令对ESP8266-01S 进行测试启动、配置AP 模式、建立TCP 连接等,从而实现数据的发送和接收。
2.3 按键模块
按键模块采用接地(GND)的独立按键设计方式,当按键按下时,通过连接到单片机的GPIO 引脚,可以检测到一个低电平信号,从而完成按键的检测,因STM32 单片机的GPIO 引脚在输入模式下自带上拉功能,所以这种设计中无需额外添加上拉电阻。如图3所示。
图3 按键控制电路
本系统采用S1、S2、S3 和S4 等四个按键来分别模拟1号、2号、3号和4号四个床位的呼叫控制。按键定义如下:
S1(PB4):用于1号床位的呼叫操作。
S2(PB5):用于2号床位的呼叫操作。
S3(PB7):用于3号床位的呼叫操作。
S4(PB8):用于4号床位的呼叫操作[7]。
2.4 LED指示模块
LED 是发光二极管的简称,常用作状态指示。如图4 所示,本系统采用低电平控制点亮LED,使单片机的PA0、PA1、PA4 和PA5 引脚分别接LED1、LED2、LED3、LED4 的阴极,阳极连接510 欧的限流电阻,电阻的另一端接3.3 V 电压源,当单片机引脚输出低电平时,电路闭合回环,因LED 上存在压降,LED 将被点亮。LED指示灯定义如下:
图4 LED指示电路
LED0(PA0):用于1号床位的呼叫指示状态。
LED2(PA1):用于2号床位的呼叫指示状态。
LED3(PA4):用于3号床位的呼叫指示状态。
LED4(PA5):用于4号床位的呼叫指示状态。
3 系统软件设计
3.1 安卓APP设计
Android Studio 是一个基于IntelliJ IDEA 的集成开发环境,用于开发Android 应用程序。在这个设计界面中,将床位信息显示和按钮反馈控制放在同一个界面上,以便医护人员可以方便地查看信息并进行相应的操作[8]。
安卓APP 的设计界面主要由信息显示区、按钮控制区和Socket 连接按钮等主要部分组成。信息显示区用于实时显示床位的状态信息,按钮控制区用于向床位发送反馈指令和进行复位操作,连接按钮用于与ESP8266模块进行Socket连接。Android应用程序提供了相应的API和库,通过这些API 和库,可以轻松地建立Socket 连接,一旦连接成功,Android 应用程序就可以利用Socket 来进行双向通信,实现接收床位状态信息和指令发送,实现与床位的实时交互。
3.2 底层软件设计
本系统使用Keil uVision5开发环境来实现软件功能设计,使用STM32 单片机作为发射端的控制核心。该设计包含了4个按键和4个LED 灯模块,用于模拟4 个床位的呼叫请求和状态指示。软件系统监测按键状态,当按键被按下时执行呼叫请求,根据按键状态,接收端返回应答信号后对应的病床信号灯点亮,表示患者呼叫请求信号发射成功,使用ESP8266 模块实现无线信号的发射,将床位呼叫信息发送给接收端,医护人员在确认处理呼叫请求后,根据医护人员的反馈状态,发送端对应的病床信号灯灭,表示请求已得到响应。系统在完成响应后,回到初始状态等待下一次呼叫请求。程序流程图如图5所示。
图5 程序流程图
4 系统测试
4.1 系统发射端测试
如图6 所示,左下是ESP8266 无线传输模块,右边从上到下是:STM32 微控制器、按键呼叫模块、LED指示模块[9]。当按下按键后,由于机械结构和物理特性的原因,按键的触点会产生一系列短暂的开关状态变化,从而导致按键信号不稳定,以至于信号发射失败;可是由于在未发射成功前LED 指示灯会提前点亮,导致患者误认呼叫成功,所以加入去抖动和应答机制。即通过外部中断和定时器对按键进行边沿触发检测判断来达到按键去抖动的效果[10],当发射端通过ESP8266 给接收端发射完信号时,接收端对发送端产生一个应答信号后再点亮LED指示灯。
图6 系统发射板
如图7 所示,通过4 个按键对4 个床位的呼叫进行了三组模拟实验,由上到下分别为第一组、第二组、第三组。
图7 发射端三组模拟实验效果
4.2 系统接收端测试
呼叫系统管理界面主要由信息显示区、按钮控制区和Socket 连接按钮等主要部分组成。如图8所示,是对发射端三组呼叫系统管理界面的信息状态显示。
图8 接收端三组实验监测效果
4.3 测试结果分析
通过三组4 个按键对4 个病床进行模拟,结果见表1。通过按键按下的次数来体现系统稳定性状况;按键按下1次就呼叫成功,则表示系统稳定性最好;按下次数大于3次时,则表示系统稳定性差。通过表1 可以看到,通过三组4 个按键16 次按下只有2 次是按下2 次实现的呼叫成功,均没有大于3次,该系统总体上实现了预期稳定呼叫的效果。
表1 系统稳定性测试
5 结语
基于STM32 单片机的无线病床呼叫系统,采用了微控制器技术、Wi-Fi 技术和移动应用开发技术,实现了微控制器对数据的处理、无线数据传输、安卓APP 信息监测和反馈等功能。该系统的推广和实施,可以解决传统有线病床呼叫系统布线难、运营成本高、维护困难等问题,提供了方便快捷的呼叫和反馈机制,提升了病患和医护人员之间的沟通效率以及医院整体医疗服务水平。