一.系统概述
输液控制系统具备高精度监测与控制多种生物参数和环境数据的能力,适合用于液体医疗设备及生物实验的数据采集和管理。其主要功能和硬件模块如下:
数据采集:
- 以STM32单片机为核心控制单元,整合心率传感器、血压传感器(XGZP)、温度传感器(DS18B20),实现对心率、血压和体温的实时监测。
- 采用非接触式液位传感器监测液体位置,同时使用光电传感器测量液滴的滴落速率。
数据展示与设置:
- 配备OLED12864显示屏,实时呈现心率、血压、温度、液位和液滴速度等信息。
- 设计按键以便用户设定心率、血压和温度的阈值,并在超出设定范围时触发警报。
报警与控制:
- 控制蜂鸣器发出警报声,以响应心率、血压、温度和液位的异常情况。
- 提供手动控制按钮,以调节步进电机的正反转,从而模拟调节液滴的速度。
数据上传与远程监控:
- 集成无线通信模块,将采集的数据通过云平台(如阿里云)上传,实现远程监控及数据存储功能。
二.电路设计
电路图设计使用Altium Designer,主要包括以下关键组件:
- 核心控制单元:系统以STM32F103C8T6单片机作为主控,最小系统电路构成了电路的核心部分。
- 血压监测:采用XGZP6847D气压传感器进行血压的检测,传感器通过IIC总线与单片机进行数据通信。
- 温度监测:使用DS18B20传感器进行温度测量,并通过单总线与单片机连接以实现数据传输。
- 液滴检测:电阻式水滴传感器用于检测液滴,其数字输出端与单片机的GPIO引脚相连。
- 心率监测:通过Pulse Sensor心率传感器进行心率监测,模块的数字输出连接至单片机的GPIO引脚。
- 低速检测:使用红外光电测速模块进行低速检测,模块的数字输出也连接至单片机的GPIO端口。
- 数据上传:通过ESP8266-01S模块将采集到的数据上传至上位机,采用UART串口与单片机进行通信。
- 数据显示:配置0.96寸OLED12864显示屏,利用IIC总线与单片机实现数据展示。
- 阈值设定:使用独立按键进行阈值的设置,按键的一端接地,另一端连接至单片机的GPIO引脚。
- 报警系统:集成有源蜂鸣器进行报警,采用NPN三极管驱动蜂鸣器以实现报警功能。
三.程序设计
#include “sys.h”
#include “delay.h”
#include “adc2.h”
#include “math.h”
#include “adc.h”
#include “key.h”
#include “OLED_I2C.h”
#include “Control_Report_To_Police.h”
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
delay_init(); //延时函数初始化
Usart1_Init(115200);
TIM4_Init(300,7200);
while(DS18B20_Init()){}
OLED_Init();
switch_Init();
Beep_init();
Adc_Init();
Adc2_Init();
KEY_Init();
ULN2003_GPIOB_Init();
OLED_CLS(); //OLED清屏
OLED_ShowCN(32,2,0); //小常硬件
OLED_ShowCN(32+16,2,1);
OLED_ShowCN(32+32,2,2);
OLED_ShowCN(32+32+16,2,3);
delay_ms(100);
OLED_CLS();
TIM2_Int_Init(1999,71);
ALi_ESP8266_GPIO_Init();
MQTT_Buff_Init();
AliIoT_Parameter_Init();
OLED_ShowCN(0,0,10);
OLED_ShowCN(0+16,0,11);
OLED_ShowCN(0,2,6);
OLED_ShowCN(0+16,2,7);
OLED_ShowCN(0,4,24);
OLED_ShowCN(0+16,4,25);
while(1)
{
OLED_Display_Cotrol(); //显示控制函数
}
}
四.资料内容
24-32-18