《单片机课程设计-基于GSM的智能家居系统.doc》由会员分享,可在线阅读,更多相关《单片机课程设计-基于GSM的智能家居系统.doc(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、徐州师范大学物电学院课程设计报告课 程 名 称: 单片机课程设计 题 目:基于GSM的智能家居系统设计与实现专 业 班 级: 学 生 姓 名: 学 生 学 号: 日 期: 2011年6月 指 导 教 师: xxx教务部印制说明:1、报告中的第一、二、三项由学生在课程设计开始前填写,由指导教师指导并确认签字。2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩,并填写成绩评定表。3、所有学生必须参加课程设计的答辩环节,凡不参加答辩者,其成绩一律按不及格处理。答辩小组成员应由2人及以上教师组成。答辩后学生根据答辩情况填写答辩记录表。4、报告正文字数一般应不少于3000字,也可由指导教师根
2、据本门课程设计的情况另行规定。5、平时表现成绩低于6分的学生,取消答辩资格,其该课程设计成绩按不及格处理。6、课程设计完成后,由指导教师根据完成情况写出总结。7、此表格式为徐州师范大学物理与电子工程学院提供的基本格式,指导教师可根据本门课程设计的特点及内容做适当的调整。一、课程设计目的、任务和内容要求:随着经济的快速增长,快节奏的生活状态使得人们越来越注重生活的质量和品位。如何建立一个高效率、低成本的智能家居系统已成为当今世界的一个热点问题。目前,国内外各种类型的智能家居产品越来越多,其中大部分是基于电话网的安防控制系统。但在我国,家庭电话用户正逐步减少,且电话线路易被破坏,故此类产品有一定局
3、限性。随着电信 GSM 网络覆盖范围的广阔化、无缝化、以及手机的日益普及为基于 GSM 网络的智能家居系统提供了巨大的应用空间1。本文所介绍的基于 GSM网络的智能家居系统采用 GSM 模块进行短信息收发,以单片机为控制核心,进行信息反馈和远程控制,实现了远程报警、远程遥控等功能。具体设计任务如下: 1熟悉GSM的工作原理; 2写出智能家居系统的设计方案;3用硬件加以实现;4写课程设计报告。 二、进度安排:第3天: 查找资料,熟悉的设计原理,给出设计总体方案;第46天: 各模块的详细设计;第712天: 硬件连线,调试;第1314天:写课程设计报告。三、主要参考文献:1 杨利平基于网络技术的远程
4、智能家居系统J仪器仪表学报,2009 ,25 (4):309-311.2 刘松,赵忠,孙学磊.基于GSM 的远程家庭智能监控系统设计J.电子测量技术,2009,32(1):89-91.3 张俊. SMS 短消息传输的远端控制技术及其实现J .仪器仪表学报,2003 ,24 (4) :610-611. 指导教师签字: 年 月 日徐州师范大学物理与电子工程学院课程设计报告目 录摘 要 IIAbstract . II1 引言. 12 系统工作原理及主要功能 .12.1 系统工作原理 .2 3 主要功能模块.33.1 单片机控制模块 .4 3.2 GSM模块 .5 3.3 传感器模块 .6 3.2 液
5、晶显示模块 .7 4 硬件接口电路设计. 74.1 单片机与GSM模块的连接.74.2 电器控制电路.7 5系统软件设计.85.1 AT模式选择及AT指令.8 5.2 系统软件的设计.8 6结论.9参考文献 .9 附录1 主要程序代码 .10 附录2 TC35模块电路 .27摘 要摘要:介绍了一种基于GSM网络的智能家居控制系统的工作原理及主要功能。采用 STC单片机为系统控制核心,对家庭中可能出现的意外情况用各种传感器进行采集,利用GSM模块的短信收发功能,实现远程安防及家电控制。实践证明本系统性能可靠,成本低,可广泛应用于现代住宅中。关键词(小4号 黑体 顶格):智能家居;GSM模块;传感
6、器;远程控制AbstractAbstract:Describes a network based on GSMof Smart Home Control system works and the major functions.Using the STC microcontroller for system control by the core, with the family situation that may arise unexpectedly collected by various sensors,make use of the send and receive SMS func
7、tion of the GSM module, remote security and appliance control. Practice has proved that the systemis reliable, low cost, can be widely used inmodern houses.Keywords:smart home; GSMmodule; sensor; remote control- 30 -1 引言随着经济的快速增长,快节奏的生活状态使得人们越来越注重生活的质量和品位。如何建立一个高效率、低成本的智能家居系统已成为当今世界的一个热点问题。目前,国内外各种类
8、型的智能家居产品越来越多,其中大部分是基于电话网的安防控制系统。但在我国,家庭电话用户正逐步减少,且电话线路易被破坏,故此类产品有一定局限性。随着电信 GSM 网络覆盖范围的广阔化、无缝化、以及手机的日益普及为基于 GSM 网络的智能家居系统提供了巨大的应用空间1。本文所介绍的基于 GSM网络的智能家居系统采用 GSM 模块进行短信息收发,以单片机为控制核心,进行信息反馈和远程控制,实现了远程报警、远程遥控等功能。2 系统工作原理及主要功能2.1 系统工作原理图 1 为智能家居系统的工作原理图2。系统在正常工作时处于低功耗监控状态,一旦发生警情即各类传感器检测到异常信号(如盗窃、火警、煤气等)
9、时,单片机通过从不同引脚接收到的信号同预先存储在ROM中的信息进行对比,判断出异常情况的类型,然后将报警信号由串口传送给GSM模块,最后将报警短信发送给用户,几秒钟后,用户的手机上就可以接收到报警短信,提醒用户采取措施。另外用户可通过发送短信,由GSM模块接收,经单片机解码后,驱动系统中的电器控制电路去控制相应的家电,从而实现远程控制电器工作的目的3。系统的主要功能:(1)自动报警功能:当用户住宅出现异常情况时,系统会自动发送报警短信给预先设定手机号码的用户,直至用户回复为止。(2)家电控制功能:接收用户发送来的控制命令,实现短信的译码功能,并由单片机根据相应的译码来实现不同家电工作及停止功能
10、。单片机控制中心红外传感器烟雾传感器煤气传感器家电控制电路家电GSM模块图1 系统设计原理图3主要功能模块3.1单片机控制模块系统的控制器选用 STC89C52RD+单片机,8位STC89C52RD+单片机是STC公司生产的一款51单片机,具有运行稳定、价格便宜等特点。其支持的最高时钟为40MHz,内部包括8 kB的Flash程序存储器ROM 、256B的数据存储器RAM,具有 ISP 在线编程功能,大大减少了开发复杂度,同时可节省购买编程器的额外投入。图2为单片机控制模块电路图。图2 单片机控制模块3.2 GSM模块本系统设计使用的GSM模块是 Siemens 公司的TC35I。TC35I是
11、Siemens公司推出的新一代无线通讯模块,可以快速安全地实现数据、语音的传输、短信息服务(SMS)和传真等功能,可以工作在GSM 900 kHz和1 800 kHz两个频段,RS232数据口符合ETSI 标准GSM0707和GSM0705。通过独特的40引脚的ZIF连接器,实现电源连接、指令、数据、语音信号及控制信号的双向传输;通过ZIF连接器及50天线连接器,可分别连接SIM卡支架和天线。该模块向用户提供标准的AT命令接口,为数据、语音、短消息和传真提供快速、可靠、安全的传输,方便用户的应用开发及设计。TC35I模块主要由 GSM基带处理器、GSM射频模块、供电模块(ASIC)、闪存、ZI
12、F连接器、天线接口六个部分组成4。TC35I 构成框图如图 3 所示。电 源 部 分GSM 射频部分GSM基带处理器天线接口FLASH40芯ZIF插座图3 TC35I 构成框图3.3 传感器模块本系统传感器模块由一组功能不同的传感器构成,用于各种异常情况监测。防盗窃使用红外线反射型传感器,将红外线反射型传感器安装在通道的位置或门窗的两侧,当有人进入时红外线反射型传感器就会检测出来,检测信号通过转换电路转换成低电平,然后送去给单片机,单片机对应引脚检测到送来低电平后就会启动防盗报警系统工作。防火使用离子式烟雾传感(SS-668),通过监测烟雾的浓度来实现火灾防范。烟雾报警器内部采用离子式烟雾传感
13、,当一定量烟雾进入烟雾传感器的反应腔,引起电路电平变化。离子式烟雾传感器是一种技术先进,工作稳定可靠的传感器,为火灾预防和早期发现提供帮助。燃气传感器使用金属氧化物半导体传感器(或称MOS)。MOS也可以用来检测毒性水平。它由一个金属氧化物半导体的传感器件(如氧化物SnO2)构成。在新鲜空气条件下,它的电导较小,而一旦接触还原性气体或者易燃易爆气体,电导会增加引发检测电路电平跳变从而启动报警系统工作。注:由于时间所限,本系统中,除红外报警电路外,烟雾传感器报警电路和煤气传感器报警电路均采用按键模拟的方法实现。红外报警电路如图4。图4 红外报警电路3.4 1602液晶显示模块1602液晶显示模块
14、主要用于显示当前系统的工作状态。模块电路图如图5。图5 1602液晶显示模块4 硬件接口电路设计本系统硬件接口电路主要由单片机与GSM模块的接口电路和电器控制电路构成。4.1 单片机与GSM模块的硬件连接单片机与TC35I的连接图如图6所示,TC35I的数据接口采用串行异步收发,符合ITUTRS232接口电路标准,工作在CMOS电平(2.65V)。数据接口配置为8位数据位、1位停止位、无校验位,可以在300115*103bps的波特率下运行。由于数据通信电路中TC35I数据接口工作在CMOS电平,而STC单片机工作在TTL电平,工作电压范围一般比TC35I宽,故应在单片机和TC35I之间加电平
15、转换电路。本设计使用TI公司的MAX232芯片为核心,实现电平转换及串口通信功能。STC51单片机MAX232电平转换芯片电 源SIM卡TC35I模块图6 单片机与TC35I的连接图4.2 电器控制电路图7为系统的电器控制电路,它是通过单片机由弱电控制继电器的开/关,从而实现控制强电的接通/断开,P_JDQ3、P_JDQ4处可接不同的电器,控制系统可以根据 GSM模块收到的不同短信息控制命令,由单片机做相应的译码,然后再由单片机控制不同家电工作或停止运行。图7 电器控制电路5 系统软件设计5.1 AT模式选择及AT指令对TC35I的操作均采用AT指令,它包含了GSM语音和短信息的控制。根据AT
16、指令的GSM07.05标准,发送和接收中文或中/英文混合的短信息必须采用PDU模式,Text 模式只支持传送英文及数字信息。PDU模式的编解码过程复杂,本系统使用Text模式就可以满足系统功能需求,故选择Text模式作为系统的通讯模式。模块的通讯全部采用AT+XXXX完成。发送短消息的基本命令如下:(1)设置短消息发送格式(0-PDU,1-文本)AT+CMGF=1;(2)发送短消息(短消息内容为 test )AT+CMGS=13753485896(目的地址)testz z 表示 ctrl+z;(3)列出所有的短消息 AT+CMGL= “ALL”;4)读取短信息内容(Once more),假设I
17、NDEX 6,AT+CMGR=6。5.2 系统软件的设计系统的软件设计采用C语言编写,系统安防主程序及中断程序流程图如图5所示。系统首先对单片机的串口、中断和TC35I短信模块初始化,STC单片机不断监测有没有新短信来,当检测到有新短信来时,则置相应的指示灯亮并读取短信,根据短信中的指令打开相应的继电器。同时,当外部报警电路有信号时,进入系统外部中断,通过中断处理子程序完成对相应防盗、防火、防煤气泄漏等事件的短信息发送。利用STC单片机通过UART串口向GSM模块发送一系列AT指令,就能实现基于GSM的短信息的收发、查寻和管理。系统上电复位串口模块、1602、TC35模块等初始化,读取初始密码
18、(提前写在STC的内部EEPROM中)N判断是否有新短信来?Y读取短信指令判断指令是否正确?NY发送操作失败短信并提醒用户重新发送根据指令打开相应继电器并发送操作成功短信中断处理子程序置报警标志位为1发送报警短信到机主中断返回图5 系统安防主程序及中断程序流程图5 结论本设计方案借助于GSM网络通信技术和单片机的控制功能,实现了安防监控和远程控制。GSM模块与控制电路集成在同一线路板上,这样既节约了成本,又提高了整个系统通信的稳定性,不仅可用于居民住宅,还可以用于仓库、厂房与花卉大棚等地方的安防监控与电路远程控制等,并具有实现简单、成本低、适用范围广、安全可靠等优点,具有广泛的应用前景。参考文
19、献1 杨利平基于网络技术的远程智能家居系统J仪器仪表学报,2009 ,25 (4):309-311.2 刘松,赵忠,孙学磊.基于GSM 的远程家庭智能监控系统设计J.电子测量技术,2009,32(1):89-91.3 张俊. SMS 短消息传输的远端控制技术及其实现J .仪器仪表学报,2003 ,24 (4) :610-611.附1 主要程序代码1、MAIN.C 主程序代码如下:#include#include#includeDataType.h#includeTC35.h#includePublic.h#includeLcd1602.h /头文件不区分大小写#includeeeprom.hv
20、oid main(void)uchar num;init_1602(); /1602初始化 并 显示相关文字write1602_com(0x80);for(num=0;num14;num+)write1602_date(Table1602Anum);Delay_ms(5);write1602_com(0x80+0x40);for(num=0;num14;num+)write1602_date(Table1602Bnum);Delay_ms(5);Delay_ms(2); LED1=0; /注册指示灯 开Start_GSM();/开启TC35Delay_ms(46000);/延时大约20秒 ,等
21、待模块联网/UART_init();/串口初始化/GSM_INIT();/对tc35模块进行初始化 /Write_Password();Read_Password();LED1=1; /注册指示灯 开while(1)receive_ready(); /此函数的功能是判断是否有新短信来,如果来的话就置位 receiveready 为1if(receiveready=1) LED2=0;read_message(); /发送读取短信指令receiveready=0;sendready=1; /LED2=1;Delay_ms(300);message_read(); /判断短信,准备是否回复短信给目
22、标号码if(send=1) Delay_ms(2000);readcommend(); /读取短信内容,做出相应操作:开关继电器等sendmessage(); /发送回复短信指令 其中 包含提取对方手机号操作Delay_ms(1000);delete_message(); /删除读短信指令flag=0;for(Rx=0;RxRxIn;Rx+) /每一次操作完成后对接收数组清零/SystemBufRx=0x00; Rx=0; send=0; if(BaoJing=1) sendBaoJing(); BaoJing=0; Delay_ms(6000); LED4=1; /*/函数void rece
23、ive(void) interrupt 4 using 1;实现功能:通过串口接收数据/*/void receive(void) interrupt 4 if(RI) if(RxRxIn) SystemBufRx=SBUF; Rx+; RI=0; /*/void int0(void) interrupt 0 :实现功能: 实现紧急短信报警*/void int0(void) interrupt 0 BaoJing=1;LED4=0; /* / */2、 TC35.C #include#include#includedatatype.h#includepublic.h#includetc35.h#
24、includeeeprom.h uchar code AT=AT;/握手信号 uchar code ATE=ATE;/关回显 uchar code AT_CNMI=AT+CNMI=2,1;/设置这组参数来了新信息直接显示到串口,不作存储 uchar code AT_CSCA=AT+CSCA=+8613800516500;/设置服务中心号码 徐州移动 +8613800516500 徐州联通 +8613010350500 uchar code AT_CMGF=AT+CMGF=1;/设置短信的格式为text格式 uchar code AT_CMGR=AT+CMGR=;/读取短信指令 uchar co
25、de AT_CMGS=AT+CMGS=;/发送短信指令 uchar code AT_CMGD=AT+CMGD=;/删除短信指令 uchar code successfully=Operate Successfully!;/发送操作成功信息到目标号码 uchar code fail=Operate failed,try again!;/发送操作失败信息到目标号码 uchar code danger=Danger!; /发送警报信息 提示有人闯入、煤气泄漏、失火的信息 uchar code MyTel=+8615152810108; /我的手机号码 uchar AT_delete12; uchar
26、 AT_Read12;/用来存储发送读取短信指令 uchar AT_SendNumber25; /用来存储发送短信号码指令 uchar numberbuf3; /用来保存短信条数 uchar idata SystemBufRxIn; /储存出口接收数据 uchar CommandBuf8;/用来储存指令 uchar Rx=0; / uchar idata state17; /用来存储IO口状态 /uint temp;/记录状态 /uchar temp1;/用于记录P0口状态 /uchar temp2; /用于记录P2口状态 /bit check=0;/查询标志位 bit receiveread
27、y=0; /接收短信标志位 bit sendready=0; /发送短信准备标志位 bit send=0; /发送短信标志位 bit flag=0; /指令标志位 bit BaoJing=0; /报警标志位!/*/函数void UART_init;实现功能:对串口进行初始化/*/void UART_init (void)TMOD=0x20; /选择定时器1 PCON=0x00;/波特率不加倍 SCON=0x50;/串行工作方式1允许串行接收 TH1=0xFD;/实验板上晶振位11.0592MHZ,选择波特率为9600 TL1=0xFD;/在相应计数器上赋值 EA=1;/总中断开启EX0=1;
28、/外部中断0允许位IT0=0; /跳变沿触发方式,从高-低的负跳变有效 ES=1;/串行中断开启 TR1=1;/开启定时器1/*/函数void sendchar(uchar ch);实现功能:发送一字节数据/*/void sendchar(uchar ch)SBUF=ch;while(TI=0);TI=0;/*/函数void sendstring(uchar *p);实现功能:通过串口发送字符串/*/void sendstring(uchar *p) while(*p) sendchar(*p); p+; sendchar(0x0D);/? 回车 sendchar(0x0A);/? 换行/*/函数void Start_GSM(void);实现功能:对TC35进行启动,开启TC35/功能详述:单片机上的IGT管脚是跟TC35的IGT管脚相连;需要启动TC35,必须在 15脚(/IGT)加时长至少为100ms的低电平信号,/且该信号下降沿时间小于1ms。启动后,15 脚的信号应保持高电平./