基于51单片机的老人防跌倒报警器体温检测GSM短信上报原理图方案设计

硬件电路的设计

(下方附文件)
系统的功能分析及体系结构设计
3.1.1系统功能分析
本设计由STC89C52单片机电路+ADXL345加速度传感器电路+按键电路+蜂鸣器报警电路+DS18B20温度传感器电路+LED灯电路+GSM模块电路+电源电路组成。
1、板子竖直放置的时候,蜂鸣器不报警,板子歪倒一定角度,则蜂鸣器鸣叫报警。一段时间约15s未回复正确状态,GSM发送报警信息给手机:Help me!!。
2、如果温度超过38度,蜂鸣器报警,持续温度过高约15s左右,同时短信报警:has a cold
3、设计带有误报警按键,蜂鸣器报警的时候,如果老人认为是误报警,则按键按下,蜂鸣器停止报警,如果持续问题存在还会报警。
4、短信处理过程有指示灯显示。
5、GSM模块是SIM800A,该模块和SIM900A电路程序完全兼容外观外形一模一样。
3.1.2系统总体结构
本系统具体框图如下图所示:
在这里插入图片描述
原理图:

在这里插入图片描述
GSM_SIM800A模块电路设计
GSM模块,是将GSM射频芯片、基带处理芯片、存储器、功放器件等集成在一块线路板上,具有独立的操作系统、GSM射频处理、基带处理并提供标准接口的功能模块。GSM模块具有发送SMS短信,语音通话,GPRS数据传输等基于GSM网络进行通信的所有基本功能。简单来讲,GSM模块加上键盘、显示屏和电池,就是一部手机。
SIM800A是SIMCOM公司推出的一款高性能工业级 GSM/GPRS 模块, 该模块具有极高的性价比,在双频的市场中占据极大份额。
GSM_SIM800A模块采用高性能工业级GSM/GPRS模块:SIM800A,工作频段:GSM900/1800MHz。硬件设计在官方设计上加以优化,采用高效开关电源供电,SIM卡采用主流的卡座,质量更坚固。GSM_SIM800A模块在外围硬件的设计上参考了SIM800A 模块的硬件设计指南,对板子的电源、保护和抗干扰上做足了功夫。电源采用开关电源模块供电,电源利用效率高。
模块应用领域:远程监控、远程智能抄表、智能家居和车载设备等远程通讯设备。
SIM800A是一款两频GSM/GPRS模块,为SMT封装。其性能稳定,外观小巧,性价比高,能满足客户的多种需求。SIM800A工作频率为GSM/GPRS 900/1800MHz,可以低功耗实现语音、SMS和数据信息的传输。SIM800A尺寸为24243mm,能适用于各种紧凑型产品设计需求。
一、主要特性
(1)两频900/1800MHz
(2)GPRS multi-slot class 12/10
(3)GPRS mobile station class B
(4)满足GSM 2/2+ 标准
– Class 4 (2W @900MHz)
– Class 1 (1W @1800MHz)
(5)尺寸: 24243mm
(6)重量: 3.1g
(7)通过AT命令控制(GSM 07.07 ,07.05 and SIMCOM 增强AT命令集)
(8)SIM应用工具包
(9)供应电压范围: 3.4 ~ 4.4V
(10)低功耗
(11)操作温度范围: -40℃ ~ 85℃
(12)数据传输GPRS class 12:最大85.6 kbps(下行速率)
(13)CSD达14.4 kbps
(14)140USSD
(15)非透传
二、在短信应用方面有如下特点
(1)点对点MO and MT
(2)短信广播
(3)文本和PDU模式
三、模块接口说明
(1)5V 接5V
(2)GND 接GND
(3)R 串口接收端,与模块通信用的
(4)T 串口发送端,与模块通信用的
四、模块使用说明
(1)开机异常或自动关机
如果发生如下现象:
a、上电后,看到绿灯开始闪烁,很快又灭了,关机了;
b、开机正常后,发送短信进行数据传输时突然就关机了;
以上现象在保证 SIM 卡正常时,一般都是供电不足造成的。
电源请保证以下几点:
a、电压为5V,电压过低,模块会不工作。
b、电流需保证能提供2A的峰值。开机和数据传输过程电流较大,输出电流不够会造成电压跌落,而关机。
c、电源电流纹波不要过大,电压波动大,模块也会关机。
模块接口原理图如下图所示。
在这里插入图片描述

软件

在这里插入图片描述

#include <reg52.h> 
#include <intrins.h>
#include <stdio.h>
#include  <math.h>    //Keil library  
#include"delay.h"
#include"18b20.h"
#include "adxl345.h"

sbit buzzer=P1^4;	  //定义接口
sbit key=P2^2;  
sbit led_gsm=P1^1;

unsigned long times_20ms=0;		  	//定时20ms计时

unsigned char shaidaoFlag=0;	//发送消息标志
unsigned char read_adxl345=0;	//读取标志
unsigned char sdDelaySec=0;		  //摔倒计时

unsigned char readTem=0;	//读取温度
unsigned char hotDelaySec=0;	//温度过高计时
unsigned char hotFlag=0;		  //温度过高标志

unsigned char i;

void Init_Timer0(void);//函数声明
void UART_Init(void);
void uartSendByte(unsigned char dat);
void uartSendStr(unsigned char *s,unsigned char length);

void main (void)
{
	static unsigned char ErrorNum=0;   //adxl345数据判断结果计数
	static unsigned char CheckNum=0;
	float temperature=0.0;
	Init_Timer0();        //定时器0初始化
	UART_Init();

	led_gsm = 0;
	for(i=0;i<20;i++)	 		//短暂延时gsm稳定
	{DelayMs(100);}

	Init_ADXL345();                 	//初+始化ADXL345
	Single_Read_ADXL345(0X00);	//读出的数据为0XE5,表示正确
	uartSendStr("AT+CMGF=1\r\n",11);
	buzzer=1;
	led_gsm =1;
	while(1)         //主循环
	{
		if(readTem==1)		 //定时读取温度标志
		{
			readTem=0;
			temperature=(float)ReadTemperature()*0.0625;   //读取温度

			if(temperature>=38.0)		  //温度过高
			{hotFlag = 1;}//温度过高标志			
			else
			{hotFlag=0;} 		//清除温度过高标志							

			if(hotFlag == 1) hotDelaySec++;//温度过高计时	 1s处理一次
			else hotDelaySec = 0;//否则清零

			if(shaidaoFlag == 1) sdDelaySec++;//温度过高计时  1s处理一次
			else sdDelaySec = 0;//否则清零
													
		}
		if(read_adxl345==1)
		{
			read_adxl345=0;
			ReadData_x();
			CheckNum++;
			if((temp_X<450)||(abs(temp_Y)>750))       //方位值判断 查看正常次数
			{
				ErrorNum++;
			}
			if(CheckNum>=5)	  	//进行5次处理
			{
				if(ErrorNum>1)	  //3次以上正常情况 不进行上报
				{shaidaoFlag =1;}//摔倒标志					
				else
				{shaidaoFlag =0;}//清楚 摔倒标志
				ErrorNum=0;		  //清空滤波计数
				CheckNum=0;		  //清除总计数				
			}
		}

		if((hotFlag == 1)||(shaidaoFlag == 1))//有异常
		{buzzer= 0;}
		else buzzer=1;			   //关闭蜂鸣器		

		if((hotDelaySec>=15)||(sdDelaySec>=15))//15S 上报
		{
			led_gsm=0;

			uartSendStr("AT+CMGF=1\r\n",11);
			for(i=0;i<3;i++)	 		//短暂延时gsm稳定
			{DelayMs(100);}

		    uartSendStr("AT+CSCS=\"GSM\"\r\n",15);
			for(i=0;i<3;i++)	 		//短暂延时gsm稳定
			{DelayMs(100);}

			uartSendStr("AT+CMGS=\"+8618105140357\"\r\n",26); //可以修改电话号码
//			SendStr("AT+CMGS=\"+8615706086115\"\r\n",26); //可以修改电话号码
			for(i=0;i<2;i++)	 		//短暂延时gsm稳定
			{DelayMs(100);}

			if(hotDelaySec>=15)
			{
				uartSendStr("Has a cold!",11);	//可以修改短信内容,11代表短信内容长度,不可以发汉字,如果发汉字的话,需要转化为特定的码
				hotDelaySec=0;	//清除计数
			}
			if(sdDelaySec>=15)
			{
			 	uartSendStr("Help me!!",9);	//可以修改短信内容,9代表短信内容长度
				sdDelaySec = 0;//清除计数
			}
			for(i=0;i<2;i++)	 		//短暂延时gsm稳定
			{DelayMs(100);}
								
			uartSendByte(0x1a);uartSendByte(0x1a);
			for(i=0;i<30;i++)	 		//短暂延时gsm稳定
			{DelayMs(100);}	

			led_gsm=1;
			
		}

		if(key==0)
		{
			hotFlag=0;	   //上报过热标志清零
			shaidaoFlag=0; //摔倒标志 清零
			buzzer=1;			   //关闭蜂鸣器
			
		}
	}
}

.

链接:https://pan.baidu.com/s/1F0WtP7gEZpGa6XQobYnAIA
提取码:vgsc

.

### 回答1: 107、51单片机智能老人跌倒报警体温gsm短信上报107是一款智能化设备,旨在保护老年人的安全和健康。该设备采用了107单片机51单片机进行控制,配备有多种传感器,能够实时监测老人的身体状况和周围环境变化,一旦老人出现跌倒等紧急情况就会自动报警并发送短信给指定的联系人。同时,该设备还能够实时监测老人体温,一旦体温异常,也会及时给出提示,以便及时处理。 该设备基于GSM网络进行短信上报,用户只需要将设备插入SIM卡,并设置好联系人号码和其他参数即可使用。使用该设备的老人需要佩戴一个智能手环,手环内置有加速度传感器和倾斜传感器,可以实时检测老人的运动状态,同时手环还能够监测老人的心率等身体指标,帮助用户了解自己的健康状况。 总之,107、51单片机智能老人跌倒报警体温gsm短信上报107是一款高科技智能设备,主要用于老年人的健康管理和安全保护,具有广泛的应用前景。 ### 回答2: 107、51单片机智能老人跌倒报警体温gsm短信上报是一种智能设备,旨在帮助老人更好地保护自己的安全和健康。该设备采用107单片机51单片机控制系统,可以实时监测老人体温和活动情况,当老人发生跌倒体温异常时,设备会立刻报警并自动发出紧急短信。同时,该设备还配备有GSM网络模块,可以远程上报老人的位置信息,方便家人或护理人员进行及时救助。 此外,107、51单片机智能老人跌倒报警体温gsm短信上报还具有一些其他特性。例如,设备采用三轴加速度传感器,可以准确检测老人的身体姿态和活动状态,实时记录老人的运动轨迹,同时还能根据老人的步态和行为模式进行智能识别和预警。此外,设备还具有人体红外传感器,可以检测老人的离床和入床情况,确保老人睡眠期间不会发生意外。 总之,107、51单片机智能老人跌倒报警体温gsm短信上报是一款高效可靠的老人护理设备,能够有效提升老人的安全保障和生活质量,帮助老人体验更加健康、舒适的晚年生活。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值