一、基本介绍
项目名:基于单片机的医院病人呼叫系统设计
项目名:医院病人呼叫(实物)
项目编号:mcuclub-dz-200
单片机类型:STM32F103C8T6
具体功能:
从机作为病人呼叫
1、通过DHT11获取温湿度
2、通过pulsesensor心率传感器检测心率,通过一个按键启动,测量10s
3、通过血压检测模块检测血压,通过一个按键启动
4、通过4个按键模拟4个病人呼叫按键,当病人按下呼叫按键时,对应指示灯点亮,当医护人员过来时,再次按下按键,灯熄灭
5、通过蓝牙将温湿度、心率、血压、呼叫号发送到主机
主机作为医护人员观察
1、当没有人呼叫时,显示温湿度、心率、血压,有人呼叫时,依次显示呼叫号
2、通过4个按键作为回应键,当有病人呼叫时,进行声光报警,医护人员按下相对应的按键作为回应,回应后,声光报警取消,从机常亮灯闪烁,若同时有两个病人呼叫,按照先后顺序进行显示
3、通过按键设置温湿度上下限值、心率上下限、血压上下限值,不在设置的上下限值进行蜂鸣器报警
4、通过OLED显示屏显示数据
二、资料总览
实物资料
仿真资料
三、51单片机部分资料展示
1、实物图展示
单片机型号:STC89C52
供电接口:TYPE-C
板子类型:PCB集成板,厚度1.2,两层板(上下层覆铜接地)
器件类型:元器件基本上为插针式,个别降压芯片会使用贴片式。
3、原理图展示
软件版本:AD2013
电路连线方式:网络标号连线方式
注意:原理图只是画出了模块的引脚图,而并不是模块的内部结构图
4、PCB图展示
四、系统框图
绘制软件:VISIO
本设计以单片机为核心控制器,加上其他模块一起组成此次设计的整个系统,该设计可以分为主机和从机,主机和从机都使用STM32单片机作为此次设计的主控模块,主机的输入由五部分组成,第一部分是温湿度传感器监测模块,通过该模块获取当前环境的温湿度;第二部分是心率监测模块,该模块通过pulsesensor心率传感器检测病人当前的心率值;第三部分是血压监测模块,通过该模块监测病人当前的血压值;第四部分是按键模块,病人按下该模块的按键,当有病人呼叫时,进行声光报警,医护人员按下相对应的按键作为回应,回应后,声光报警取消,从机常亮灯闪烁,若同时有两个病人呼叫,按照先后顺序进行显示;第五部分是供电模块,通过该模块给整个系统进行供电;输出包括一部分,该部分是指示灯模块,通过该模块指示当前按键,对应的指示灯亮;除此之外还有蓝牙模块,从机按下对应按键,信息传送到医护室后,发送对于按下的功能监测到主机。
主机也可以分为输入和输出,输入通过按键作为回应键,通过按键设置温湿度上下限值、心率上下限、血压上下限值,不在设置的上下限值进行蜂鸣器报警,用户可以按下对于的功能监测键,将对于的功能信息传输到主机中,输出通过指示灯进行显示,当当没有人呼叫时,显示温湿度、心率、血压,有人呼叫时,依次显示呼叫号。具体系统框图如图3.1所示。
五、部分程序展示
软件版本:keil5
注意:逻辑程序和驱动程序分开,分布于main.c和其他.c文件
***处理函数
*****/
void Manage_function(void)
{
if(flag_display == 0) //测量界面
{
if(temp_value > temp_max10 || temp_value < temp_min10) //如果温度不在设定范围内,标记温度异常
{
alarm_temp = 1;
}
else
{
alarm_temp = 0;
}
if(humi_value > humi_max10 || humi_value < humi_min10) //如果湿度不在设定范围内,标记湿度异常
{
alarm_humi = 1;
}
else
{
alarm_humi = 0;
}
if(heart_value > heart_max || heart_value < heart_min) //如果心率不在设定范围内,标记心率异常
{
if(heart_value > 0)
alarm_heart = 1;
}
else
{
alarm_heart = 0;
}
if(blood_value > blood_max || blood_value < blood_min) //如果血压不在设定范围内,标记血压异常
{
if(blood_value > 0)
alarm_blood = 1;
}
else
{
alarm_blood = 0;
}
if(hujiao_value1 == 1 || hujiao_value2 == 1 || hujiao_value3 == 1 || hujiao_value4 == 1 ||
alarm_temp == 1 || alarm_humi == 1 || alarm_heart == 1 || alarm_blood == 1) //有病人呼或有警报,声光报警
{
if(time_num % 3 == 0)
{
BEEP = ~BEEP;
LED = ~LED;
}
}
else
{
BEEP = 0;
LED = 1;
}
}
else //设置界面,关闭声光报警
{
BEEP = 0;
LED = 1;
}
}
文章评论