总体方案图示
图3 传感器布局图
2.3 接收处理原理图示
2.4 元件芯片选择
2.4.1 主控方案一 AT89c51单片机的特点: (1)带负载能力稍弱; (2)I/o口上电电平为高阻,降低编程效率; (3)需要专用下载器下载程序; 方案二 stc89c51单片机的特点: (1)带负载能力相对普通AT89C51单片机要强; (2)上电复位所有IO口默认高电平; (3)STC89C51可用单片机上的串口下载程序,不用专门的下载器, 而AT89C51需要专用的下载器才可以烧写程序; 综上所述:为提高系统的带负载能力,降低开发成本,下载成本,故选用stc89c51作为主控,实物图如下。 图5单片机实物图 2.4.2 检测模块方案一 使用门磁的特点: (1)通过两个磁铁的靠近还是远离检测; (2)若通过窗户入侵则无法检测; 方案二 使用红外模块的特点: (1)通过热释电红外原理检测; (2)设定好灵敏度后方圆几米的距离均可检测无法躲避; 综上所述,故选用方案二 红外模块 从而提高入侵检测的灵敏度和可靠性,实物图如下。
图6 红外模块实物图 2.4.3通信模块方案一 使用3G模块的特点: (1)具备通话、短信、上网功能; (2)网络传输速度快; (3)成本较高; 方案二 使用GSM模块的特点: (1)具备通话、短信、上网功能; (2)网络传输速度相对3G要慢很多;
(3)成本较低; 综上所述,本系统不需要网络通信,若使用3G高速网络通信没有意义,只需要拨打电话发送短信,GSM模块完全能够满足要求,故为降低成本选用GSM模块,实物图如下。 图7 GSM模块实物图
2.4.4 无线数据传输模块方案一 使用2.4G 无线通信模块的特点: (1)传输速度快; (2)使用复杂; (3)多用于传输音视频信号; 方案二 使用315M 无线通信模块的特点: (1)传输速度相对2.4G要慢; (2)使用方便; (3)主要用于传输开关信息; 综上所述,经过比较 由于本设计,不需要无线传输音视频信息只需要无线数据传输,故选用315M模块,实物图如下。 图8 315M无线模块实物图
2.4.5 电源模块方案一 使用直流稳压电源的特点: (1)体积大,占用空间; (2)转换效率低,浪费电能不环保; (3)电路简单; 方案二 使用开关电源的特点: (1)体积小,重量轻; (2)转换效率高,节能环保; (3)电路比直流稳压电源复杂; 综上所述,为了提高电源转换效率减小系统重量和体积,我们采用5V,2A的开关电源为系统供电,实物图如下。
图9 电源模块实物图
第3章 硬件设计
3.1 检测传输电路
3.1.1 模块原理由上述方案对比 我们选用了315无线模块和热释电红外传感器连接作为检测电路,元件原理如下: 热释电红外模块:是一种可以检测人或者动物发射的红外线而输出电信号的一种传感器。早在1938年的时候,就有人提出过利用热释电效应①探测红外辐射,但并未受到重视,直到二十世纪六十年代,随着激光、红外技术的迅速发展,才又推动了对热释电效应的研究和对热释电晶体的应用。热释电晶体已广泛用于红外光谱仪、红外遥感以及热辐射探测器,它可以作为红外激光的一种较理想的探测器。由于相对声光控为灵敏,它目前正在被广泛的应用到 走廊、楼梯、仓库、教室、卫生间等场所的自动照明。以及各种对安全要求较高的场合的自动化报警系统。 315M无线数据模块(带PT2262/PT2272 编码解码芯片):315M无线模块广泛地运用在车辆监控、遥控、遥测、小型无线网络、无线抄表、门禁系统、小区传呼、工业数据采集系统、无线标签、小型无线数据终端、安全防火系统、无线遥控系统、数字图像传输等领域中。采用2ASK调制②发送信号。PT2262/PT2272 是台湾普城公司生产的一种 CMOS 工艺制造的低功耗低价位通用编解码电路, PT2262/PT2272 最多可有 12 位(A0-A11) 三态地址端管脚(悬空, 接高电平, 接低电平),任意组合可提供 531441 地址码,最多可有 6 位(D0-D5) 数据端管脚, 设定的地址码和数据码从 17 脚串行输出,可用于无线遥控发射电路。常配合315M模块 用于车辆防盗系统、家庭防盗系统、遥控玩具、其它电器遥控系统中。
3.1.2 电路原理
图10 检测传输电路
检测传输电路如图10所示,图中用了四个无线发送模块分别接到门窗的红外传感器上,通过无线传输数据减少了布线,入侵信息会通过无线发送模块发送给与单片机连接的无线接收模块上。
图11 接收模块电路
接收模块原理图如图11所示,接收模块接收发送模块发送的数据后,此时接收模块的H1-H4管脚就会和发送模块对应管教保持一致,当没有人闯入的时候H1-H4管脚为低电平,当有人闯入的时候H1-H4管脚为高电平。无线模块通过四通道或非门连接到单片机的外部中断1的管脚上,因为使用中断方法可以提高程序的效率,减少CPU的负担。 当有一个管脚由低电平跳变为高电平的时候,通过或非门就会变成一个从高电平到低电平的下降沿,此时就会触发单片机产生外部中断,单片机就会自动停止当前程序跳转到中断服务子程序中,执行相应操作,我们在程序中通过设置标志位就可以使单片机检测到有人闯入,单片机检测到闯入后就会执行警报操作。 3.2 报警电路
3.2.1 模块原理蜂鸣器分为有源蜂鸣器和无源蜂鸣器,有源蜂鸣器内部自带震荡源,通电就可以产生声音,无源报警器需要产生震荡信号才可发声音。本部分采用有源蜂鸣器作为警报产生电路。 3.2.2 电路原理
图12 报警电路 如图12所示,电路采用三极管驱动蜂鸣器提高带负载能力增加音量,三极管的控制端alarm管脚连接到单片机的P2.7管脚上,当检测到有人闯入后单片机会启动警报子程序,控制连接蜂鸣器的管脚P2.7使蜂鸣器鸣叫,产生警报。 3.3撤防布防电路
3.3.1 模块原理本部分采用按键和315M无线发送模块作为发送,315M无线接收模块作为接收连接单片机,无线发送模块原理上文中已经叙述,见4.1.1 315M无线模块介绍。 3.3.2 电路原理图13 无线遥控器电路 无线遥控器电路如图13所示,无线遥控器由无线发送模块和按键组成,用户可通过按键遥控系统撤防布防,当按键按下的时候系统布防,蜂鸣器长响一声,当再按下的时候蜂鸣器短响三声系统撤防,蜂鸣器的响声让用户更方便的区分撤防布防。遥控器按下按键后经过315M无线模块的发送。 图14 无线接收模块电路 无线遥控器接收电路如图14所示,无线接收模块的ON管脚与单片机的外部中断0管脚连接。无线遥控器按键按下后,连接着按键的无线发送模块,会把此时的状态发送给,与单片机相连的无线接收模块,单片机检测到后就会产生中断,进入中断后单片机会根据此时的状态撤防或者布防,若此时已经布防,检测到信号后就会撤防,若此时已经撤防,检测到信号后就会布防。
3.4 无线通知用户电路
3.4.1 模块原理GSM原理介绍:GSM是全球通信系统的简称,属于第二代通信系统,具备发送短信拨打电话,GPRS上网功能,本设计采用SIM900A 这款GSM模块通过串口与单片机通信,从而在单片机的控制下收发短信,拨打电话。 SIM900A是由simcom(芯讯通无线科技有限公司)生产的紧凑型、高可靠性的无线模块,采用SMT封装的双频GSM/GPRS模块解决方案,采用功能强大的处理器ARM9216EJ-S内核,能满足低成本、紧凑尺寸的开发要求。 3.4.2 电路原理 图15 GSM模块电路
GSM无线模块与单片机的连接如图15所示,图中GSM模块的TXD(串口发送)管脚接到单片机的RXD(串口接收)管脚上,GSM模块的RXD(串口接收)管脚接到单片机的TXD(串口发送)管脚上,此时单片机就可以和GSM无线模块之间通过串口通信收发数据。
GSM与话筒和扬声器的音频接口电路如图16所示,当单片机检测到有人闯入后,会通知GSM模块发送短信并且拨打电话给用户,用户此时如果接听电话,GSM模块就会通过话筒获取家中的声音,并且通过扬声器播放用户发出的声音,用户此时可以通过电话和闯入者对话,警告其离开并尽快自首。若用户此时没有接听到电话,当用户看到短信后,可以根据情况选择拨打电话,此时机器检测到是用户打来的电话后就会自动接听。 由于撤防布防所用的无线遥控器采用315M模块传输距离只有几十米到几百米,用户除了使用遥控器遥控撤防布防之外,当用户离家较远时也可以通过手机发送短信实现远程撤防布防。 此外考虑到系统的易用和用户的界面友好特别增加了 通过发送指令更改用户手机号码的功能,传统的报警器更改用户手机号码的时候通过矩阵键盘输入号码和LCD液晶显示屏显示号码,增加了电路的成本。本设计更加充分的使用了GSM的功能和用户的手机,降低了电路总体成本,是本设计的亮点之一。用户可以通过发送 变更用户 的拼音首字母BGYH+系统密码+新手机号码,即可变更用户手机号。
系统工作流程图如图17所示,系统上电工作后会检测用户是否发送指令,若用户发送指令会执行用户指令,如撤防布防,更换用户手机号等操作,若没有收到用户指令或者执行完指令,就会检测是否打开报警系统,若没有打开则继续等待用户的指令。若打开报警系统之后,当检测到有人闯入后蜂鸣器就会警报,并且单片机通知GSM发送短信并且拨打电话通知用户,结束之后进入等待。
4.2 部分程序
4.2.1 撤防布防
/****************************************/ void fangyu(void) interrupt 2 //外部中断1中断 当无线遥控器按下后产生本中断 {
EX1=0;//开外部中断1
ON_OFF=~ON_OFF; //打开或者关闭系统的开关,实现撤防布防
EX1=1;//开外部中断1 } /****************************************/ 撤防布防部分的子程序如上所示,遥控器按下按键后经过315M无线模块的发送,单片机接收后就会产生外部中断1的中断,此时进入本函数执行开关防御系统的功能,在进入中断后要及时关闭中断功能防止再次打断造成干扰,当程序执行完后要打开中断,等待下一次中断的产生。 4.2.2 入侵检测/****************************************/ void jiance(void) interrupt 0 // 外部中断0中断 当检测到有人闯入后产生本中断 {
EX0=0; //关外部中断0
person=1; //进入中断服务程序 说明检测到有人触发中断
EX0=1; //开外部中断0 }
/****************************************/ 检测部分的子程序如上所示,当红外传感器检测到有人闯入后,就会把管脚置为高电平,此时与红外模块连接的315M无线发射模块就会把这个高电平信号发送给与单片机连接的315M无线接收模块,此时单片机就会产生外部中断0的中断,就会进入本子程序。在本程序中关闭中断防止再次打断,然后把标志位设置为1,单片机就可以判断出此时有人闯入,从而执行相应的程序。然后再打开中断,等待下一次中断产生。
4.2.3 发送短信/****************************************/ void post_msg() //发送短信 { put_str("AT+CMGF=1\r");//设置短信模式 while(SBUF != "ok") //等待GSM模块返回接受成功信息 put_str("AT+CMGS=\"182xxxxxxxx\"\r");//设置发送号码 while(SBUF != "ok") //等待GSM模块返回接受成功信息 put_str("warning\r");//发送内容 } /****************************************/ 发送短信子程序如上所示,本程序是用来通知用户家中的情况的,是系统与用户交流的关键所在,当单片机经过前面子程序的检测判断出有人闯入后就会进入本子程序,发送短信给用户,首先设置短信模式,然后设置GSM字符集,这样就可以给用户发送短信了,然后设置给哪个手机号码发送短信,在此我们用x表示未知号码,然后输入发送的内容,在这里我们用发送warning 报告给用户。
4.2.4 拨打电话/****************************************/ void post_call() //拨打电话 {
put_str("ATD182xxxxxxxx;\r");// while(SBUF != "ok") //等待GSM模块返回接受成功信息
}
/****************************************/ 拨打电话给用户,也是和用户通信的关键,当检测到有人闯入后,会自动发送短信,拨打电话给用户,发送短信子程序已经在5.2.3小节介绍,拨打电话子程序如上所示,进入本子程序后单片机就会使用AT指令控制GSM模块给用户拨打电话。若用户接听则进行通话,和GSM模块连接的麦克风和扬声器就会工作,获取家中的声音,并播放用户的声音,产生非常好的威慑作用。
4.2.5 接收短信,接听电话/****************************************/ void re_call() //读取短信,接听电话 子程序 { uchar tel_num[12] = "182xxxxxxxx"; uchar *close = "close"; uchar *open = "open"; uchar *change = "BGYH123456"; get_str();//调用串口接收子程序 把GSM发来的数据存储到 数组ring里面 put_str("AT+CLIP=1\r");// 开启来电显示 if(strstr(ring,tel_num)!=NULL) //如果判断出是用户打来的电话 { put_str("ATA\r"); //自动接听
}
put_str("AT+CMGF=1\r"); //设置文本模式 put_str("GSM\r"); //设置GSM字符集 put_str("AT+CNMI=1,1\r"); //读取新消息
if(strstr(ring,change) !=NULL)//变更用户号码 { uchar *new_tel_num =strstr(ring,change)+1 uchar i=0; for(i=0;i<11;i++) { tel_num[ i]=*new_tel_num++ ; }
}
if(strstr(ring,close)!=NULL)//如果判断出是用户发送的关机指令 { ON_OFF=0; //关闭防御系统 } if(strstr(ring,open)!=NULL) //如果判断出是用户发送的开机指令 { ON_OFF=1; //打开防御系统 } }
/****************************************/ 接收用户短信和电话子程序是本设计中最重要的一部分,因为GSM远程撤防布防,手机发送指令更改用户的手机号码,接听用户打来的电话,都需要通过本程序设置。也是本设计的亮点所在,本程序首先把用户的电话存储到一个数组中,把本机密码存储到一个数组中,正常情况下发生警报后就会自动发送短信拨打电话给数组中存储的用户号码,当用户想变更号码时,需要输入BGYH+密码+新手机号,这种设计既可以增加系统安全性,又可以方便用户更改密码。
第5章 注释[注释1]热释电传感器基本知识 热释电效应同压电效应类似,是指由于温度的变化而引起晶体表面电荷变化的现象。热释电传感器是对温度敏感的传感器。它由陶瓷氧化物或压电晶体元件组成,在元件的两个表面做成电极,在传感器监测范围内温度有ΔT的变化时,热释电效应会在两个电极上会产生电荷ΔQ,即在两电极之间产生一微弱的电压ΔV。由于它的输出 阻抗极高,在传感器中有一个场效应管进行阻抗变换。热释电效应所产生的电荷ΔQ会被空气中的离子所结合而消失,即当环境温度稳定不变时,ΔT=0,则传感器无输出。当有人进入检测区时,因人体温度与环境温度有差别,产生ΔT,则有ΔT输出;若人体进入检测区后不动,则温度没有变化,传感器也没有输出了。所以 这种传感器用来检测人体或者动物的活动传感。 为了提高探测器的探测灵敏度以增大探测距离,一般在探测器的前方装设一个菲涅尔透镜,该透镜由透明塑料制成,将透镜的上、下两部分各分成若干等份,制成一种具有特殊光学系统的透镜,它和放大电路相配合,可将信号放大70分贝以上,这样就可以测出10~20米范围内人或动物的行动。菲涅尔透镜是由法国物理学家奥古斯汀.菲涅尔发明的,他在1822年最初使用这种透镜设计用于建立一个玻璃菲涅尔透镜系统——灯塔透镜。 菲涅尔透镜利用透镜的特殊光学原理,在探测器前方产生一个交替变化的“盲区”和“高灵敏区”,以提高它探测接收的灵敏度。当有人从透镜前走过时,人体发出的红外线就不断地交替从“盲区”进入“高灵敏区”,这样就使接收到的红外信号以忽强忽弱的脉冲形式输入,从而增强其能量幅度。菲涅尔透镜作用有两个:一是聚焦作用,即将热释红外信号折射或者反射到红外传感器上,第二个作用是将探测区域内分为若干个明区和暗区,使进入探测区域的移动物体能以温度变化的形式在红外传感器上产生变化的热释电红外信号。 [注释2] 2ASK调制原理 2ASK是ASK调制的一个特例,把一个幅度取为0,另一个幅度为非0,就是2ASK。它是以单极性不归零码序列来控制正弦载波的开启与关闭。该调制方式的出现比模拟调制方式还要早,Morse码的无线电传输也是使用该调制方式。由于2ASK的抗噪声性能不如其他调制方式,所以该调制方式在目前的卫星通信、数字微波通信中并没有被采用,但是由于该调制方式的实现比较简单,在光纤通信系统中,短距离无线传输系统中,振幅键控方式却获得非常广泛的应用。 第6章 总结与展望本系统相对于传统的防盗系统,可以更方便的和用户互动,系统在检测到有人闯入后,可以给用户发送短信,拨打电话,也可以接听用户打来的电话和接收短信,并且为了方便用户,增加了短信更改用户手机号码的功能,摒弃了传统的LCD液晶显示屏加键盘的方法输入用户手机号,极大的降低了成本和系统的体积,通过用户手机即可变更。但是本产品仍然有不足,无线GSM模块也有可能会受到干扰或者遇到信号不好的时候,虽然这种情况产生的概率比较低。希望未来随着我国的北斗卫星通信、4G通信、5G通信的发展成熟,能够为解决家庭防盗这一问题提供更好的解决策略。
总电路图18 总电路图 - #include <reg51.h> // 包含51单片机管脚寄存器定义的头文件
- #include <string.h>//包含字符串操作库函数的头文件
- #define uchar unsigned char
- #define uint unsigned int
- sbit alarm = P2^7; //蜂鸣器管脚
- sbit LED0 = P0^0 // 1号窗户上的红外
- sbit LED1 = P0^1 // 2号窗户上的红外
- sbit LED2 = P0^2 // 3号窗户上的红外
- sbit LED3 = P0^3 // 门口的红外
-
-
- bit ON_OFF = 0; //撤防布防标志位
- bit person =0; //是否检测到有人
- uchar ring[20]={0}; // 保存GSM发送给单片机的数据
-
- void main()
- {
-
-
- uchar num1=0;
- uchar num2=0;
- EX0 = 1; //外部中断0
- IT0 = 1; //下降沿触发
- EX1 = 1; //外部中断1
- IT1 = 1; //下降沿触发
-
- TMOD=0x20;//设置定时器1为 方式二 自动重装初值模式
-
- TH1=0xfd;//设定波特率为9600
- TL1=0xfd;
- TR1=1;//启动定时器
- SM0=0;//SM0和SM1用来设置串口工作方式为 方式一
- SM1=1;
- PCON=0x80;//波特率不加倍
- REN=1;//允许串口接收数据
- EA=1;//开总中断
- ES=1;//开串中断
-
-
-
- while(1)
- {
- if(ON_OFF)
- {
- if(person)
- {
- alarm = 1; //蜂鸣器发起警报
- post_msg(); //发送短信,通知用户
- post_call();//拨打电话给用户
- delay(100);
- delay(100);
- alarm = 0;
- person=0;
- ON_OFF=0;
- }
-
- }
-
- }
-
- }
复制代码
以上的Word格式文档51黑下载地址:
|