基于51单片机设计的的GSM的远程家庭智能报警系统PPT内容预览:
本设计采用的是飞思卡尔公司的加速度传感器MMA7455I。
差容式加速度传感器
输出信号为数字信号,CS端口的高低电平决定其通信方式
在本设计中采用IIC通信
内部还有信号调理和电压转换电路电路
二 温湿度传感器
在本设计中采用的是温湿度传感器DHT11,DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,采用的是NTC测温元件。
运用IIC协议读出加速度信号,并通过液晶屏分别显示X、Y和Z轴的加速度。
对加速度信号的处理过程:
本设计只对X轴信号进行处理,为了有效避免误报现象,我采用的是用加速度的平均值进行位移的计算:
其中的时间t我们设定为加速度值大于
到位移大于0.1m之间的时间长度。此时停止对加速度信号进行采集同时报警!
DHT11为温湿度传感器,我只取其采集的温度信息并对其判断处理。
在DHT11子函数中,由于其通信的特点,运用最多的是对不同延时程序的调用。
本设计针对现有的GSM无线网络,介绍了基于GSM的远程家庭智能报警系统的设计及实现方法。利用各种传感器,如温湿度传感器、加速度传感器等对家中可能出现的各种意外情况进行采集,并通过组建的家中内部无线网络及时向单片机进行中断报警。GSM模块在单片机控制下,利用GSM网络,将各种报警信息通过短信的方式发送到预先设定的手机中,达到了远程无线智能报警的功能。同时,本文在对加速度信号的处理上,采用新的方法,即使用加速度平均值,并设定参考点的思路和方法,有效避免了漏报、误报现象的产生,是系统更加稳定。经过测试,该系统经济、可靠、稳定性高。家庭无需为传感器布线,具有广泛的市场推广价值。
单片机源程序如下:
- #include <reg52.h>
- #include <intrins.h>
- #include <lcd_1602.h>
- #include <IIC.h>
- #include <DHT11.h>
- #include <DGSM.h>
- #include <math.h>
- #define uchar unsigned char
- #define uint unsigned int
- uint ttt,tt;
- int jiasu;
- uint chen,juli,flag;
- uchar str[8]="H: T: ";
- uchar code table4[10]="0123456789";
- //uchar U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L;
- /***************rs=P1^2;rw=P1^1;e =P1^0;液晶显示还有P0*****************/
- /***************sda=P1^3;scl=P1^4;传感器************/
- /***************P2_0 = P2^0 ;温湿度**********************/
- /**************************************************************************/
- /************ 延时程序 **************/
- /**************************************************************************/
- void DelayUs(unsigned char us)//delay us
- {
- unsigned char uscnt;
- uscnt=us>>1;/* Crystal frequency in 12MHz*/
- while(--uscnt);
- }
- void DelayMs(unsigned char ms)//delay Ms
- {
- while(--ms)
- {
- DelayUs(250);
- DelayUs(250);
- DelayUs(250);
- DelayUs(250);
- }
- }
- void delay_50ms(uchar t)
- {
- uint j;
- for(;t>0;t--)
- for(j=6245;j>0;j--);
- }
- void sendx() //函数功能:向1602发送x轴测量数据
- {
- uchar x1,x2,x3,xsign;
- char x;
-
- x=iic_read(0x06);
- if(abs(x)>5)
- {
- TR0=1;
- while(abs(x)>5)
- {
-
- flag++;
- x=iic_read(0x06);
- //if((x&0x80)==0x00)
- //{
- // xsign=0x2b; //+
- // }
- // else
- // {
- // xsign=0x2d; //-
- // x=x-0x01;
- // x=~x;
- // }
- // x1=(x/63);
- // x2=((x*100/63)%100)/10;
- // x3=(x*100/63)%10;
- jiasu=jiasu+x;
- }
- }
- TR0=0;
- chen=tt;
- tt=0;
- juli=(jiasu/flag)*15*chen*chen/200;
- if(juli>100)
- A1=0;
- if((x&0x80)==0x00)
- {
- xsign=0x2b; //+
- }
- else
- {
- xsign=0x2d; //-
- x=x-0x01;
- x=~x;
- }
- // x1=(x/63);
- // x2=((x*100/63)%100)/10;
- // x3=(x*100/63)%10;
-
- // else
- // A1=1;
- x1=x/100;
- x2=x%100/10;
- x3=x%10;
- write_com(0x8B);
- write_data(xsign);
- delay_50us(10);
- write_com(0x8C);
- write_data(table9[x1]);
- delay_50us(10);
- write_com(0x8E);
- write_data(table9[x2]);
- delay_50us(10);
- write_com(0x8F);
- write_data(table9[x3]);
- delay_50us(20);
- }
-
- /***********************************************************/
- /**************** 主函数 ****************/
- /***********************************************************/
- void main()
- {
- uchar j;
- uchar shi,ge,shi0,ge0;
- init1602();
- Ini_UART(); //串口初始化
- Delaym();
- DelayMs(15);
- self_test7455();
- iic_write(0x10,0x15);//校正X值
- iic_write(0x12,0x25);//校正Y值
- iic_write(0x14,0x10);//校正Z值
- delay_50ms(20);
-
- while(1)
- {
-
- RH();
- shi=U8RH_data_H%100/10;
- ge=U8RH_data_H%10;
- str[2]=table4[shi];
- str[3]=table4[ge];
-
- shi0=U8T_data_H%100/10;
- ge0=U8T_data_H%10;
- str[6]=table4[shi0];
- str[7]=table4[ge0];
- if((shi0>3)||(shi>4))
- {
- if(shi0>3)
- A2=0;
- else
- A2=1;
- if(shi>4)
- A1=0;
- else
- A1=1;
- }
- write_com(0x80);
- for(j=0;j<8;j++)
- {
- write_data(str[j]);
- delay_50us(10);
- }
-
- sendx();
- //delay_50ms(1);
- if(A1==0)
- {
- ATD(); //打电话
- Delaym();
- Delay1(10000);
- ATH();
- Delaym();
- A1=1;
- }
- if(A2==0)
- {
- CMGF();
- Delay1(3000);
- CMGS();
- Delay1(3000);
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码完整的文档预览: http://www.51hei.com/bbs/dpj-85501-1.html
所有资料51hei提供下载(含完整文档+程序+ppt文件):
基于GSM的远程家庭智能防盗系统.rar
(2.53 MB, 下载次数: 234)
|