51单片机 智能婴儿监护系统

成果展示

1、整体设计框架

2、电路设计

3、程序流程设计

主程序:

void main()
{
	  uint sy_count1 = 0;
	  uint sy_count2 = 0;
	  uint yuyin = 0;
	  bit flag = 0;
	  char xdata SEND_BUF[]="心率:000,温度:00.0C\r\n";
	
		time_init();//定时器初始化
		lcd_init();//1602初始化
		lcd_write_str(0, 0, "   CLOSE   00.0C");
    lcd_write_str(0, 1, "MS: ZIDONG   000");
    uart_init(9600);
		while(1)
		{
			  keyscan();
			  if(setn == 0)
				{
						if(Mode == 0)//在自动模式下
						{
								if(Voice == 0)//检测到有声音
								{
										if(sy_count1++ > 10)//检测哭声是否延续
										{
												DJ_TIME = 60;//电机开启时间1分钟
												openFlag = 1;//电机开启
												sy_count1 = 0;
												if(ShiDu==0)Line_1A(1);//播放歌曲
										}
								}
								else
								{
										if(sy_count2++ > 200)
										{
												sy_count2 = 0;
												sy_count1 = 0;
										}
								}
						}
						if(ShiDu==1)//检测到尿不湿湿了
						{
								LED = 0;
								if(flag == 0)//只播放一次
								{
										flag = 1;
										Line_1A(0);//播报
										yuyin = 0;
								}
								if(flag==1)
								{
										if(yuyin++ > 400)
										{
												yuyin = 0;
												Line_1A(0);//播报
										}
								}
						}
						else
						{
								LED = 1;flag = 0;
						}
						if(openFlag==1)//电机开启
						{
								lcd_write_str(0, 0, "    OPEN");
								motoRotate(); 
						}else 
						{
								lcd_write_str(0, 0, "   CLOSE");
								MotorStop();//点击关闭
						}
						rountine();
						//显示心率值体温值
						lcd_write_char(13,1,heartrate/100+'0');
						lcd_write_char(14,1,heartrate%100/10+'0');
						lcd_write_char(15,1,heartrate%10+'0');
						lcd_write_char(11,0,temperature/100+'0');
						lcd_write_char(12,0,temperature%100/10+'0');
						lcd_write_char(14,0,temperature%10+'0');
						SEND_BUF[5]=heartrate/100+'0';
					  SEND_BUF[6]=heartrate%100/10+'0';
					  SEND_BUF[7]=heartrate%10+'0';
					  SEND_BUF[14]=temperature/100+'0';
					  SEND_BUF[15]=temperature%100/10+'0';
					  SEND_BUF[17]=temperature%10+'0';
						if(((heartrate<=heartrateMin||heartrate>=heartrateMax)&&heartrate!=0)||(temperature>=temperatureMax))//心率或体温超过上下限
						BEEP = 0;
						else 
						BEEP = 1;
						if(sendFlag==1)
						{
								sendFlag = 0;
							  uart_send(SEND_BUF,0xFF);//串口发送
						}
			  }
			  delay_ms(1);
		}
}

4、功能介绍

4.1元件组成

 4.2婴儿哭闹

实现效果:

婴儿哭闹演示

设计思路:

程序详情:

void motoRotate()//电机处理
{
	  static uint djcount=0;
	  static bit flag = 0;

	  if(flag == 0)
		{
			  djcount++;
				if(djcount < 30)
				{
						MotorCW();//正转
				}
				else
				{
						if(djcount < 130)
						{
								MotorStop();//电机停止
						}
						else
						{
								flag = 1;
							  djcount = 130;
						}
				}
		}
    else
		{
			  djcount--;
				if(djcount > 100)
				{
						MotorCCW();//电机反转
				}
				else
				{
					  if(djcount<=0){flag = 0;djcount=0;}
						MotorStop();//电机停止
				}
		}
}

 4.3尿床检测

实现效果:

尿床演示

设计思路:

程序详情: 

						if(ShiDu==1)//检测到尿不湿湿了
						{
								LED = 0;
								if(flag == 0)//只播报一次
								{
										flag = 1;
										Line_1A(0);//播报
										yuyin = 0;
								}
								if(flag==1)
								{
										if(yuyin++ > 400)
										{
												yuyin = 0;
												Line_1A(0);//播报
										}
								}
						}

4.4体温和心率检测

实现效果:

心率检测演示

设计思路:

 程序详情:

//显示心率和体温值
						lcd_write_char(13,1,heartrate/100+'0');
						lcd_write_char(14,1,heartrate%100/10+'0');
						lcd_write_char(15,1,heartrate%10+'0');
						lcd_write_char(11,0,temperature/100+'0');
						lcd_write_char(12,0,temperature%100/10+'0');
						lcd_write_char(14,0,temperature%10+'0');
						SEND_BUF[5]=heartrate/100+'0';
					  SEND_BUF[6]=heartrate%100/10+'0';
					  SEND_BUF[7]=heartrate%10+'0';
					  SEND_BUF[14]=temperature/100+'0';
					  SEND_BUF[15]=temperature%100/10+'0';
					  SEND_BUF[17]=temperature%10+'0';
						if(((heartrate<=heartrateMin||heartrate>=heartrateMax)&&heartrate!=0)||(temperature>=temperatureMax))//心率或体温超过上下限
						BEEP = 0;
						else 
						BEEP = 1;
						if(sendFlag==1)
						{
								sendFlag = 0;
							  uart_send(SEND_BUF,0xFF);//串口发送
						}

5.相关技术

元件清单:

模块名称
声音采集TELESKY 声音传感器模块
温度检测DS18B20
心率检测PulseSensor脉搏心率传感器
湿度检测CON4
蓝牙传输HC05
步进电机CON5
比较器LM393
单片机ST89C52
液晶LCD1602

开发环境:

用途名称
程序编写Keil uVision4
原理图设计Altium Designer
电路仿真设计Proteus8.6
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柚几哥哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值