赞
踩
本设计由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;//上报标识清零
- }
- }
-
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。