###

一.系统概述

  1. 环境监测:实现对病房内部温湿度和光照强度的实时检测。
  2. 病床调节:通过按键调整病床的高低,方便患者的需求。
  3. 语音控制:支持语音识别功能,用户可通过语音指令调整病床的高低。
  4. 床头灯控制:具备床头灯功能,允许用户通过按键开关来控制床头灯的开关。
  5. 呼叫报警功能:配备呼叫按钮,按下后蜂鸣器会报警,并将报警信息发送至管理员的手机APP。
  6. 吊瓶监测:设计吊瓶报警功能,利用液体传感器检测吊瓶内液体状态,若液体耗尽,则发出报警提醒。
  7. 手机APP设计:开发手机APP,用于接收报警信息及其他功能的控制与监测。

在这里插入图片描述

二.电路设计

电路图采用Altium Designer进行设计:

  1. 核心控制器:使用STM32F103C8T6单片机作为系统主控,其最小系统电路构成了整个电路的核心部分。
  2. 光强检测:采用光敏电阻模块进行光强检测,传感器的模拟输出端连接至单片机的模拟输入端口。
  3. 语音指令检测:使用LU-ASR01高精度语音识别模块进行语音指令检测,通过UART串口与单片机进行数据通信。
  4. 水滴检测:通过水滴模块进行水滴检测,模块输出的数字信号与单片机的GPIO口直接连接。
  5. 数据上传:使用ESP8266-01S模块将检测到的数据上传至上位机,模块通过UART串口与单片机进行通信。
  6. 步进电机驱动:通过ULN2003驱动步进电机,模块的IN输入端连接至单片机的GPIO口,OUT输出端连接至步进电机。
  7. 报警功能:使用有源蜂鸣器进行报警,采用NPN三极管对蜂鸣器进行驱动,实现报警功能。

在这里插入图片描述

三.程序设计

/************************************
OLED显示屏
************************************/
void OLED_Display_Cotrol(void) //系统显示控制功能实现 OLED显示
{
static u8 temperature=28,humidity=29,flag1,flag2;
static unsigned short timeCount = 0; //发送间隔变量
char Test_Mqqt_Buffer[512]=“”; //为了接收按钮按下后阿里云传输的数据信息
u16 Test_Mqqt_Num=0;
char p1[16]=" ";
static float pre,ye;
static _Bool pre_Exceed_Flag,ye_Exceed_Flag;
Parameter_1_Compare(pre,150,&pre_Exceed_Flag);
Parameter_1_Compare(200,ye,&ye_Exceed_Flag);
//当温度高后 启动风扇
if(connectFlag == 1)
{
DHT11_Read_Data(&temperature,&humidity);
pre=Get_Adc2_Convert_Data();
ye=Get_Adc_Convert_Data();
Limit_Value_Set_2(&flag1,&flag2);
if(flag10)
{
Control_Port_Low_Effetive(pre_Exceed_Flag,&Led0_0);
Control_Port_Low_Effetive(pre_Exceed_Flag,&Led0_1);
}else if(flag1
1)
{
Led0_0=0;
Led0_1=0;
}else
{
Led0_0=1;
Led0_1=1;
}
Control_Port_High_Effetive(ye_Exceed_Flag,flag2,&Beep);
timeCount++;
if(timeCount==30){timeCount=0;send_data(&temperature,&humidity,&pre,&ye,ye_Exceed_Flag,flag2);}

void Parameter_2_Compare(u8 parameter1,u16 parameter1_Limit_Value,u8 parameter2,u16 parameter2_Limit_Value,u8 *Parameter1_Compare_Result,u8 *Parameter2_Compare_Result)
{
if(parameter1>parameter1_Limit_Value) //如果采集到的参数值超过设定的阈值 这部分可以根据实际需要进行调整 需要改低于的时候改低于
*Parameter1_Compare_Result=1;
else
*Parameter1_Compare_Result=0;
if(parameter2>parameter2_Limit_Value) //如果采集到的参数值超过设定的阈值 这部分可以根据实际需要进行调整 需要改低于的时候改低于
*Parameter2_Compare_Result=1;
else
*Parameter2_Compare_Result=0;
}

四.资料内容

在这里插入图片描述

24-32-97

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐