157 基于单片机老人生理监控系统设计(心率、体温、跌倒、定位)【毕设课设】

本设计由STC89C52单片机电路+烟雾传感器电路+温度传感器电路+加速度传感器+心率传感器电路+SIM800A_GSM模块电路+电源电路组成。

该系统实时监测老人是否跌倒,是否周围有火以及心率情况。

1、如果烟雾传感器检测到烟雾超标,则GSM向特定手机发送:Smoke!

2、如果ADXL345检测到老人跌倒了,则GSM向特定手机发送:Fall!同时蜂鸣器报警,如果老人没跌倒,则蜂鸣器不报警。如果老人没有跌倒,而是弯腰等等,这属于误报警,则老人可以自己用按键取消键取消警报。

3、如果心率传感器检测到老人心率高于120,则GSM向特定手机发送:High Heart!

4、如果温度超过38度,则GSM向特定手机发送:has a cold!

4、注意本设计一次上电上述情况每个只能触发一次上报短信,不会连续发送。

5、短信处理过程有GSM信号灯指示。

资料下载地址

https://pan.baidu.com/s/1QhR-6MoeNlXZsQ84CY4Bbg?pwd=8888

unsigned char sdLater = 0;
void Init_Timer0(void);				//函数声明
void TIM2Inital(void);
void SendStr(unsigned char *s,unsigned char length);
void UART_Init(void);
void SendByte(unsigned char dat);

void main (void)
{     
	static unsigned char ErrorNum=0;
	static unsigned char CheckNum=0;

	
	LED = 0;
	DelayMs(20);          //延时有助于稳定
	Init_ADXL345();	  //清屏
	

	for(i=0;i<50;i++)
	DelayMs(100);          //延时有助于稳定

	SendStr("AT+CMGF=1\r\n",11);	 //设置字符
	for(i=0;i<7;i++)
		DelayMs(100);          //延时有助于稳定

	LED=1;			//关闭led
	while (1)         //主循环
	{
	    if(ReadAdxl345==1)   //定时读取adxl345数据
	    {
			ReadAdxl345=0;
			ReadData_x();  						//三轴检测函数
			CheckNum++;
			if((temp_X<550)||(abs(temp_Y)>750))       //方位值判断 查看正常次数
			{
				ErrorNum++;
			}
			if(CheckNum>=5)	  	//进行5次处理
			{
				
									
				ErrorNum=0;		  //清空滤波计数
				CheckNum=0;	
			}
	    }

		if(ReadTempFlag==1)		//读取温度标志
		{
			ReadTempFlag=0;
			temp1=ReadTemperature();	//读取温度
			temperature=(float)temp1*0.0625;	  //温度值转换
			if(checkT<5)checkT++;  //检测次数
			
			if(checkT>=2)
			{
				if(temperature > 38)
				{
					if((reportFlag==0)&&(first4==0))	  //当前没有任何触发
						reportFlag=4;					
				}		
			}
		}

		
		if(displayOK==0)//如果显示关  检测心率是否真实
		{
		 	rate = 0;
		}
		

		if(ReportLater>=15)	//15s
		{
			if(reportFlag!=0)
			{			
				LED=0;
				SendStr("AT+CMGF=1\r\n",11);   //设置字符集
				for(i=0;i<7;i++)
					DelayMs(100);          //延时有助于稳定
	
			    SendStr("AT+CSCS=\"GSM\"\r\n",15);	 //设置
				for(i=0;i<7;i++)
					DelayMs(100);          //延时有助于稳定
	
//				SendStr("AT+CMGS=\"+8618105140357\"\r\n",26); //可以修改电话号码
				SendStr("AT+CMGS=\"+8618029401425\"\r\n",26); //可以修改电话号码
				for(i=0;i<7;i++)
					DelayMs(100);          //延时有助于稳定
				if(reportFlag==1)
				{
					SendStr("Smoke!",6);	//可以修改短信内容,9代表短信内容长度,不可以发汉字,如果发汉字的话,需要转化为特定的码	
					first1=1;
				}
				
				else if(reportFlag==4)
				{
					SendStr("has a cold!",11);	//可以修改短信内容,9代表短信内容长度,不可以发汉字,如果发汉字的话,需要转化为特定的码	
					first4=1;
				}
									
				DelayMs(100);          //延时有助于稳定
	
		        SendStr( (uchar *)Crtl_Z, 1);        //发送
				for(i=0;i<20;i++)
					DelayMs(100);          //延时有助于稳定
	
				LED=1;
				ReportLater=0;	//上报延时清零
				reportFlag = 0;//上报标识清零			
			}
		}

	}
}
 资料下载地址

https://pan.baidu.com/s/1QhR-6MoeNlXZsQ84CY4Bbg?pwd=8888

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值