已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 46 页 共 46 页淮阴工学院毕业设计说明书(论文)1 绪论1.1研究背景家居的智能化在最近几年越来越受到人们的重视。在这个信息化的社会中,智能化的设备不停的冲击着人们的眼球,从iPhone到PC,从VR到AR,从Google Glass到Apple Watch1 Moller, Sebastian; Krebber, Jan; Smeele, Paula Source:Evaluating the speech output component of a smart-home system, Speech Communication, v 48, n 1, January, 2006, p 1-27-2,网络,计算机,智能手机,智能手表,带给我们无限的惊喜。在这种智能化的洪流之下,几乎所有的人都不由自主的在想,可不可以,或者说有没有可能,把我们生活中息息相关的一些家具,也变成智能化。抓住消费者的这个心理,很多厂商开始了自己的智能化尝试。比如海尔的全自动智能洗衣机,美的的智能空调,以及其他智能产品。这些产品的问世都标志着人们对未来智能家居行业的期望与探索的决心3-7。在传统的设备中,几乎所有的电器都是需要人工打开或者关闭,这样就导致一个问题,比如有人下班以后,非常热,想要快速的享受到凉爽的环境,但是空调的工作条件,工作方式不能让房间迅速的冷却下来。以至于人们开始思考如何让空调在主人到家之前预先运转呢?传统电器的解决方案是定时开关。诚然,这是一个相当有效的解决方案,甚至在某些层面上已经完全解决了预先运行的问题。但是,假设主人加班或者提前下班,空调的预先运行时间却不会改变。这就导致了要么预先设定的时间没有什么卵用,要么空调白白运转了很久浪费了让这个月的电费账单爆炸9-12。由于信息技术,网络技术的发展,“远程控制”成为了现代新一代的智能家居设备的主旋律2 潘朝,罗小巧,黄佳,李平,崔顺艳.基于GSM短信的智能家居控制系统的设计J,电子测量技术.2013.6.121-124。但是由于这是一块非常新的市场,并且是一个交叉市场,传统的家居厂商和新兴的互联网设备厂商、软件商,纷纷涌进这个全新的额领域,企图在这个市场饱和之前分一杯羹。由于缺乏有效的领导和标准规范,导致现在的智能设备良莠不齐,各自为政13-15。这就导致用户不能像想象中的那样自如的使用着智能化的果实,反而被层出不穷的各种协议和接口弄得筋疲力尽。所以本文拟提出一个一体化的解决方案,使用一站式的服务,解决主要的智能家居的问题。1.2发展的历程据考证,智能家居的概念已经发展了很久,虽然近些年来才刚刚进入大众的视线,但是相关的论文资料,研发工作早在几十年前就已经有了起步。虽然经历了许多失败,但是在1984年,美国的联合科技公司用智能化的概念,对一栋已经废弃了的大楼进行了改造。他们使用计算机对这栋楼的空调,电梯,灯饰以及其他设备进行监视和控制3 贾飞.基于无线传感器网络技术的智能家居系统的设计与实现学位论文.太原理工大学.2008。除此以外,他们还给这个大楼提供了网络信息服务。这是人类历史上第一次成功的智能家居案列,四年以后,也就是1988年,当时的美国电子工业协会EIA制定了第一个关于家庭住宅的电气标准家庭自动化与通讯标准6,也就是人们常说的家庭总线标准。自1997年起,我国也颁布了相关的标准小康住宅电气设计标准4 柯国琴.基于单片机的智能家居系统的研究学位论文.合肥.合肥工业大学.2010。到现在为止,中国的智能家居还仅仅是起步阶段,但是从上世纪90年代以来,我们的智能家居技术也每天都向着成熟的方向发展。即使在几年以前,智能化的家庭对大部分的中国人来说还是一个全新的陌生的概念,但是现在来看,随着iPhone等智能设备的普及,越来越多的人开始有了更多的追求智能化的体现。不仅仅是个人数字产品,更是日常使用的器物上。这一股智能化的风潮更是激起了更多企业的热情,他们不惜耗费大量的人力,物力,财力,时间去研究这个领域的内容,想要获得更大的利益。这也造成了中国智能家居行业百家争鸣的现象,前景无比广阔5 Harvey, Fiona Home smart home, Engineer, v 291, n 7605,Jun 14, 2002, p16。相比之下,国外的智能家居就有更加长足的发展。早在1998年,新加坡就有了所谓“新加坡式的智能家居”,并且在当年的“亚洲家用电器和电子消费产品国际展览会”上进行了展出6 许远向,吴静,刘佩佩等.基于单片机和GSM模块的智能家居系统设计J.电子技术与软件工程.2014(12):47-48,这一套系统包含了主要功能有:三表抄送,安防报警,监控中心,家电控制,三网接入,住户信息留言,系统软件配置到现在为止,发达国家已经大量应用了智能家居系统。2003年,Samsung公司推出了一个一体化的解决方案,他们通过机顶盒和网络,将家居控制,信息家电,安防设备,娱乐信息四大模块集中了起来,变成了一个全面的、面向互联网的控制网络7 张永宏,曹健,王丽华.基于51 单片机与nRF24L01 无线门禁控制系统设计J.2013,64-69.。在看见了如此广阔的前景,许多公司都开始了进行智能家居的研究,他们有竞争有合作,为这个全新的市场带来了新鲜的活力和无限的希望。1.3本文的研究内容本文拟设计的智能家居系统包含安防报警,自动调节,远程控制三大模块。采用中央集中处理的方式进行智能家居系统的设计。纵观最近的智能化的设备,有以下4个趋势8 郭占龙.基于单片机的智能家居控制系统的设计J.微计算机信息.2007(05)9 大西雅人,寺本圭一.HEMS標準夕特集普及向 照明取组)J,照明学会誌.2015.10. 99(10), 554-55710 刘志平,赵国良.基于nRF24L01的近距离无线数据传输J.应用科技.2008.3:55-5811 董萍.基于nRF2401A 的家庭智能系统的设计与实现J.武汉轻工大学学报.2015.6:88-9112 周兴中,陈万林,刘林菊,何艳霞.基于51 单片机的智能家居监测系统硬件设计J.计算机与信息技术.2010.12-13,1713 A.R.AI-Ali , M.AL Rousan,M.Mohandes. GSM-based wireless home appliances monitoring & control systemJ.IEEE.2004.April.19-23.Information and Communication Technologies: 237-23814 Jayashri Bangali,Arvind Shaligram. Design and Implementation of Security Systems for Smart Home based on GSM technologyJ.International Journal of Smart Home.2013(Vol.7, No.6 ):201-20815 马荣,荣艺博,宋文根,汪嘉文,朱显锋.基于51 单片机的智能窗帘控制器设计J.中国科技信.2015.76-7716 Guang-xue Yang,Feng-jiao Li.Investigation of Security and Defense System for Home Based on Internet of Things.International Conference on Web Information Systems and Mining.2010 9-1217 GUO Longhua, DONG Mianxiong,Kaoru Ota, WU Jun, LI Jianhua. Event-Oriented Dynamic Security Service for Demand Response in Smart Grid Employing Mobile NetworksJ. 中国通信,2015,12:63-75. 18 WANG Guang-wei,LU Sheng-li. Smart Home Gateway Based on ZigBee TechnologyJ. International Journal of Plant Engineering and Management, 2015,04:240-249. 19 张红叶. 智能家居生态与安防系统设计与实现D.太原理工大学学报, 2015.04期:448-45020 付珊珊. 基于ARM的智能家居管理终端的研究与实现D.安徽理工大学,2014.02:148-14921 秦鼎鼎. 基于RFID和GPRS的无线通信平台的医疗应用D.哈尔滨工程大学,2011.03:169-17022 李秀晴. 嵌入式智能家居远程控制系统的设计与实现D.曲阜师范大学,2012.03:35-3723 吴文锋. 基于物联网技术的智能家居控制系统研究与设计D.广东工业大学,2015.03:34-3524 何一楠. 智能家居远程控制系统的研究D.黑龙江大学,2007.04:17-1925 郑艳欣. 基于NRF24E1奶牛体温无线收发系统的设计与研究D.河北农业大学,2010.06:70-7326 Jayashri Bangali, Arvind Shaligram.Design and Implementation of Security Systems for Smart Home based on GSM technologyJ.International Journal of Smart Home.2013.7.Vol.7,No.6:201-20827 Mohd Helmy Abd Wahab, Norzilawati Abdullah, Ayob Johari, Herdawatie Abdul Kadir. GSM Based Electrical Control System for Smart Home ApplicationJ.Journal of Convergence Information Technology.2010.2.vol5.issue1.4:43-47-20:从分散式到总线式。智能化设备的最开始的开发和研究是由各个公司单独开发完成的,这就导致相互之间的不兼容,无法完成有效的信息交换。让人觉得家居很“笨”,很无聊,现在总线式的控制,为家庭提供了一站式的解决方案,有效提高了相互协作的效率。从通用机到专用机。在智能设备最开始起步的时候,大部分的控制器都使用了PC,这就导致了大量的资源的浪费,好比杀猪用了宰牛刀,成本又高,又不划算。而现在使用的MCU,更加具有针对性,稳定性也有了可观的提高。通讯协议由自主定义到行业规范。就好比USB接口,在很多年前,USB接口多种多样,谁都不愿意使用别人的接口,直到有了行业规范,大大方便了用户的使用。主要企业由零星的小企业到规模宏大的大集团。比如在处理器行业中,几十年前百家争鸣,到现在的规模宏大的Intel和AMD独领风骚。这是一个行业的发展必然趋势。根据以上的几个趋势。本次毕业设计我采用了一个C52单片机做为中央控制站,其余3台单片机做为从站点,负责信息的收集与基础工作。采用nRF2401+模块做为通信工具,连接所有站点,组成完整的智能家居网络。分为中央控制模块,远程控制模块,烟雾报警模块以及防盗&控光模块。基本系统框图如下:图1中央控制模块图2防盗&控光模块图3烟雾报警模块图4远程控制模块2 智能家居的总体设计2.1中央控制模块2.1.1 nRF2401+模块(1) 概述nRF2401+模块做为一近距离传输模块,是一个工作在2.4GHz这个世界通用的ISM频段的单片式的无线收发芯片。其中包含的内容为频率发生器、增强型ShockBurstTM模式控制器、功率放大器、晶振、调制解调器。在这些参数中,输出功率、频道选择和协议的设置均可以通过SPI接口设置。nRF2401+芯片具有极低的消耗,当工作在发送模式时(-6dBm),电流仅仅只有9mA,接收模式时,电流12.3mA。掉电模式和待机模式电流更低,仅有1mA-4mA。主要工作模式有以下几种:表1 nRF2401+模块的基本工作模式模式PWR_UPCSNCE接收模式101发送模式101待机模式1-0关机模式0-(2) 引脚介绍nRF2401+芯片共有20个引脚,但是加上外围电路之后,需要人工使用的只有8个引脚,其功能如下:表2 nRF2401+模块的引脚说明引脚名称描述功能CE输入控制2401+的收发状态CSN输入片选使能低电平使能SCK输入输入/输出数据时的时序信号MOSI输入串行输入数据MISO输出串行输出数据IRQ输出引发单片机中断,低电平使能(3)nRF2401+模块的基本使用2401+模块的配置字共有15个字节,其中最高位是系统保留的TEST位,119-104为数据长度位,103-24位是本机的地址位,23-18位是接收频道地址位数,17-1位是CRC选择,通信方式使用,发射速率,晶振频率等设置所保留的位。最后一位第0位是控制2401+模块处于发送还是接收模式的配置位,当它为1时,2401+处于接收模式,当它为0时处于发送模式。首先是配置2401+模块的收发地址,选用相同的0xFF,0xFF,0xFF,0xFF,0xFF做为收发地址,此处程序如下:const u8 TX_ADDRESSTX_ADR_WIDTH=0xFF,0xFF,0xFF,0xFF,0xFF; /发送地址const u8 RX_ADDRESSRX_ADR_WIDTH=0xFF,0xFF,0xFF,0xFF,0xFF; /接收地址此处的地址采用宏定义的方式,用几个容易记住的字母来代替枯燥的数字,在以后编写的时候可以重复使用,不用担心输入错误而导致的程序出错。在宏定义了2401+的地址之后,就是引脚声明,将物理链接的引脚在程序中写出来,目的是告诉单片机在执行程序的时候应该使用哪几个引脚可以达到目的效果。接下来的程序是2401+模块的基础子程序,包含写寄存器(单字节)、读寄存器(单字节)、写寄存器(多字节)、读寄存器(多字节)、2401+的发送配置初始化程序、接收配置初始化程序。其中发送初始化程序和接收初始化的程序就是写入2401+的配置字,这两个配置字的区别仅仅在最低位一位不同。此处写入配置字的例程如下:nRF24L01_CE=0; /开始写入配置字 2401_Write_Reg(write_register+RX_PW_P0,RX_PLOAD_WIDTH);/选择数据有效宽度2401_Write_Reg(FLUSH_RX,0xff);/清除RX FIFO寄存器2401_Write_Buf(write_register+TX_ADDR,(u8*)TX_ADDRESS,TX_ADR_WIDTH);/写本机地址2401_Write_Buf(write_register+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH);/设置发送地址 2401_Write_Reg(write_register+EN_AA,0x01); /使能自动应答 2401_Write_Reg(write_register+EN_RXADDR,0x01); /使能接收地址2401_Write_Reg(write_register+SETUP_RETR,0x1a); /设置自动重发时间(500+86us);最大重发10次,确保能够发送成功。2401_Write_Reg(write_register+RF_CH,0); /设置nRF2401+的发送频率为2.4GHz 2401_Write_Reg(write_register+RF_SETUP,0x0F); /设置基本发射参数0dB增益,2Mbps,低噪声增益开启2401_Write_Reg(write_register+CONFIG,0x0f); /设置基本工作模式其中最后一位控制接收模式 2401_CE=1;/配置字写入结束写完2401+的配置程序之后就是检测2401+模块是否存在的子程序。在写完这个程序之后,就是发送数据包的程序,例程如下:void SEND_BUF(u8 *buf)nRF24L01_CE=0;2401_Write_Reg(write_register+CONFIG,0x0e);nRF24L01_CE=1;delay_us(15);2401_TxPacket(buf);nRF24L01_CE=0;2401_Write_Reg(write_register+CONFIG, 0x0f);nRF24L01_CE=1;在将CE置低之后,2401+处于写入配置字状态,这个时候写入发送的配置字,即最后一位为0,再将CE置高,驱动2401+模块处于发送状态,这个时候用子函数写入buf中的内容,发送完毕后将CE置低,写入接收的配置字,再将CE置高,驱动2401+模块处于接收状态。为下一次接收通信信号做好准备。2.1.2GSM模块(1) 概述本次毕业设计的GSM模块采用芯讯通(SIMCOM)公司生产的SIM900A模块,该模块采用的通讯频率是GSM900/1800MHz。可以基本实现语音通话、短信彩信收发、GPRS数据上网。通过同一公司生产的指定硬件还可以获得更强大的功能升级。该模块的最大发射功率可以达到2W,瞬时最高功率8W,所以采用5V2A电源进行供电。SIM卡接口采用的是MICRO SIM卡,所以一般的大卡需要剪卡才能使用。支持TTL及232接口,支持3.3V/5V系统。(2) 引脚介绍本模块由于高度的集成,所以需要使用的引脚只有6个。引脚功能如下表所示:表3 GSM的引脚介绍引脚名称描述功能VCC/独立电源的正极接口GND1接地独立电源的负极接口EN输入SIM900A的使能高电平接口GND2输入SIM900A的使能低电平接口RXD输入TTL电平串行输入接口TXD输出TTL电平串行输出接口(3) GSM模块的基本使用本次毕业设计对于GSM模块的使用仅仅使用了它读取短信和发送短信的功能。所以其他有关功能就不在说明了。首先在使用GSM模块收发短信的时候需要写入本地的短信中心号以及接收方的手机号码。由于本次使用的C52单片机没有设置文字输入功能,所以短信的内容也要预先设置好放在程序之中。此部分的程序内容如下:static unsigned char *SMS_Num=+8613800517500; /此处是淮安地区的短信中心号static unsigned char *phone /接收方的手机号static unsigned char *content=HELLO FROM GSM; /发送短信的内容此处使用固定的常量来定义这些基本数据,以便以后的程序调用。在写入了这些基本信息之后就是GSM模块的一些基础程序例如引脚初始化、定时器0的初始化、清除串口缓存、查找字符串、发送指令、等待模块注册成功、设置为发送TEXT文本短信模式、发送短信等子程序。在使用时需要使用一个发送函数,该发送函数部分如下:void SendSM(void)Timer0Init(); /初始化定时器GPIO_config();EA=1;/开中断Uart1Init(); /初始化串口,使用9600波特率Wait_CREG(); /等待模块注册成功Set_Text_Mode();/设置短信为TEXT模式Send_Text_Sms();/发送一条编好的短消息while(1) /进入空操作防止重复发送;这只是一个发送函数,在实际应用的时候不需要最后的while语句,或者将其替换为其他的内容。在接收短信时,需要不停查询SIM900A模块中接收到的短信内容,此时查询的子函数如下,并且利用该子函数写的读取的子函数程序如下:u8 Check_ATARASHI_Msg()u8 temp=0;if(strstr(Uart1_Buf,+CMT)!=NULL) /若缓存的字符串中包含“+CMT”表示有新短信delay_ms(3); /等待数据全部接收完成 temp=Uart1_Buf;return temp; /返回接受到的数据 CLR_Buf1();读取短信内容的子函数如下:void main(void)Timer0Init(); /初始化定时器0GPIO_config();EA=1;/开总中断Uart1Init(); /初始化串口9600Wait_CREG(); /等待模块注册成功Set_Text_Mode();/设置为TEXT模式while(1)strstr(Check_ATARASHI_Msg(),”xxxxx”); /检测其中的内容其中xxx的内容可以改变为自己想要的内容,strstr函数在检测到字符串2为字符串1的子函数时会返回出现的位置,如果没有检测到则返回NULL,可以使用该特性做短信内容的简单检测。2.1.3 LCD1602显示屏(1) 概述该显示屏的显示范围是16*02,所以得名1602显示屏。它是一块工业级的字符显示屏,可以同屏显示32个字符。每个字符之间有一定的间隔,这就导致了该显示屏只能显示字符而不能很好的还原图形。市场能买到的1602显示屏基本都采用的是HD44780液晶芯片,这与其他的液晶芯片基本相同,所以1602的代码能够应用于其他型号的液晶显示屏。(2) 引脚介绍LCD1602显示屏采用标准的16脚接口,其中引脚的功能如下所示:表4 LCD1602显示屏的引脚介绍引脚名称描述引脚功能GND电源5V电源负极VCC电源5V电源正极V0输入对比度调整端RS1选择数据0选择指令寄存器选择RW1读操作0写操作读写信号线EN1时读取信息,负跳变执行使能端D0-D7输入数据/指令输入口A电源背光电源正极K电源背光电源负极(3) LCD1602显示屏的基础使用在使用LCD1602屏的时候首先需要定义RS,RW,EN以及D0-D7的定义,以方便后面编程使用。在写入了这些定义之后开始写写入命令函数和写入数据函数,这两个函数的程序如下:void write_com(u8 com)RS=0; /选择写入指令P0=com; /D0-D7数据写入delay(5);EN=1;delay(5);EN=0; /负跳变执行void write_data(u8 date)RS=1; /选择写入数据P0=date; /写入数据delay(5);EN=1;delay(5);EN=0; /负跳变执行在这两个函数的基础上,可以给出1602的初始化程序以及在任意位置写入数据的函数。这两个函数的内容如下:void write_content(u8 add,u8 state) /在任意位置写入数据write_com(0x80+add);write_data(state);下面的这个函数的内容是LCD1602屏幕的初始化,在此之前有一个显示内容的初始数组:u8 code table=S1:OF S2:OF GJP;u8 code table1=S3:OF S4:OF ZGY;u8 code table2=S5:OF S6:OF ;u8 code table3= WELCOME ;/数组定义完毕void LCDinit()u8 num;/RS=0;RW=0;EN=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x80);for(num=0;num16;num+)write_data(tablenum);delay(5);/第一屏第一行write_com(0x80+0x40);for(num=0;num16;num+)write_data(table1num);delay(5);/第一屏第二行/初始化成功初始化后的1602将显示的内容就是数组1以及数组2中的内容。以后可以使用在任意位置写入数据的函数覆盖数据。做到数据的更新。以上就是1602屏的基础使用内容。2.1.4中央控制模块(1) 中央控制模块的构成本毕业设计的中央控制模块由1块STC89C52单片机开发板、1个SIM900AGSM模块、1个nRF2401+模块、1块1602显示屏、1个有源蜂鸣器以及几个按键组成。实物图如下:图5中央控制模块实物图预期目标:当模块工作时,单片机的电源指示灯亮,打开电源后,显示屏显示欢迎信息,然后转而显示远程控制模块上所连接的用电器的工作状态,按键可以分别控制窗帘的升降、显示屏翻页。可以通过2401+模块对其他模块进行有效的控制。在烟雾报警器发出报警信号后可以让蜂鸣器响起来。并且可以通过GSM模块发送报警信息给指定的手机号码。同时在接受到用户发送来的短信后可以对短信内容进行分析并执行相应的动作。(2) 程序解释本毕业设计的中央控制模块的功能是协调各个部件间的相互协作,以及统一管理。所以大部分的程序只是起到了中转信号的作用。只有少量的程序是控制1602显示屏显示内容。由于2401的程序、GSM模块以及1602显示屏的主要程序已经在上面个讲述过了,所以在此不再赘述。以下是中央控制模块的主程序部分:流程图如下:图6中央控制模块软件示意图首先是主程序的初始化,由于中央控制模块所控制的模块较多,所以需要初始化的内容也比较多:Timer0Init(); /初始化定时器0EA=1;/开总中断Uart1Init(); /初始化串口,并设定波特率9600Wait_CREG(); /等待GSM模块注册成功while(NRF24L01_Check(); / 等待nRF2401模块连接NRF24L01_Init(); /初始化2401模块LCDinit(); /初始化LCD1602屏在模块的各个分部分初始化完成之后中央控制模块的单片机进入正常工作状态。使用while(1)无限循环函数来完成正常工作状态的循环。在正常工作状态的大循环中,我们将正常工作状态分为两个部分,上半部分负责处理由2401传来的数据,下半部分负责处理由GSM传来的数据。上半部分的程序内容如下:if(NRF_IRQ=0) / 如果2401模块接收到数据if(NRF24L01_RxPacket(rece_buf)=0) if(rece_buf0=3) /如果传来的数据是3位的数据,就是控制信号 if(rece_buf1=1&rece_buf2=1&rece_buf3=1) /启动火灾报警程序 Set_Text_ModeT(); /设置GSM模块为TEXT发送模式 Send_Text_Sms(catch fire); /发送短信内容“catch fire” if(rece_buf1=1&rece_buf2=1&rece_buf3=2) /启动入侵报警程序 Set_Text_ModeT(); /设置GSM模块为TEXT发送模式 Send_Text_Sms(breaking waring);/发送短信内容“breaking waring” if(rece_buf0=6) /如果传来的数据是6位的数据,就是状态信号 for(i=1;i6;i+) if (rece_bufi=1) rece_bufi=C;write_content(4,ON); /将当前状态由1变成C关 else rece_bufi=O;write_content(9,OF); /将当前状态由0变成O开 Set_Text_ModeT(); /设置GSM模块为TEXT发送模式 Send_Text_Sms(rece_buf0); /发送当前各个用电器的状态在完成了上半部分的程序后,下半部分的程序如下:if(Check_New_Message()=1) /GSM接收到新短信后if(strstr(Uart1_Buf,Fire_close)!=NULL) rece_buf1=1;rece_buf2=1;rece_buf3=6;rece_buf0=3;SEND_BUF(rece_buf);CLR_Buf1();/如果GSM模块收到fire close,就发送指令代码116,并且清空串口数据if(strstr(Uart1_Buf,Window_open)!=NULL) rece_buf1=1;rece_buf2=1;rece_buf3=3;rece_buf0=3;SEND_BUF(rece_buf);CLR_Buf1();/如果GSM模块收到window open,就发送指令代码113,并且清空串口数据if(strstr(Uart1_Buf,Window_close)!=NULL) rece_buf1=1;rece_buf2=1;rece_buf3=4;rece_buf0=3;SEND_BUF(rece_buf);CLR_Buf1();/如果GSM模块收到window close,就发送指令代码114,并且清空串口数据if(strstr(Uart1_Buf,Window_auto)!=NULL) rece_buf1=1;rece_buf2=1;rece_buf3=5;rece_buf0=3;SEND_BUF(rece_buf);CLR_Buf1();/如果GSM模块收到window auto,就发送指令代码115,并且清空串口数据if(strstr(Uart1_Buf,FAcheck)!=NULL) rece_buf1=2;rece_buf2=0;rece_buf3=0;rece_buf0=3;SEND_BUF(rece_buf);CLR_Buf1();/如果GSM模块收到FAcheck,就发送指令代码200,并且清空串口数据if(strstr(Uart1_Buf,S1ON)!=NULL) rece_buf1=2;rece_buf2=0;rece_buf3=1;rece_buf0=3;SEND_BUF(rece_buf);CLR_Buf1(); write_content(u8 add,u8 state);/如果GSM模块收到S1ON,就发送指令代码201,并且清空串口数据if(strstr(Uart1_Buf,S2ON)!=NULL) rece_buf1=2;rece_buf2=0;rece_buf3=2;rece_buf0=3;SEND_BUF(rece_buf);CLR_Buf1(); write_content(u8 add,u8 state);/如果GSM模块收到S2ON,就发送指令代码202,并且清空串口数据if(strstr(Uart1_Buf,S3ON)!=NULL) rece_buf1=2;rece_buf2=0;rece_buf3=3;rece_buf0=3;SEND_BUF(rece_buf);CLR_Buf1(); write_content(u8 add,u8 state);/如果GSM模块收到S3ON,就发送指令代码203,并且清空串口数据if(strstr(Uart1_Buf,S4ON)!=NULL) rece_buf1=2;rece_buf2=0;rece_buf3=4;rece_buf0=3;SEND_BUF(rece_buf);CLR_Buf1(); write_content(u8 add,u8 state);/如果GSM模块收到S4ON,就发送指令代码204,并且清空串口数据if(strstr(Uart1_Buf,S5ON)!=NULL) rece_buf1=2;rece_buf2=0;rece_buf3=5;rece_buf0=3;SEND_BUF(rece_buf);CLR_Buf1(); write_content(u8 add,u8 state);/如果GSM模块收到S5ON,就发送指令代码205,并且清空串口数据if(strstr(Uart1_Buf,S6ON)!=NULL) rece_buf1=2;rece_buf2=0;rece_buf3=6;rece_buf0=3;SEND_BUF(rece_buf);CLR_Buf1(); write_content(u8 add,u8 state);/如果GSM模块收到S6ON,就发送指令代码206,并且清空串口数据if(strstr(Uart1_Buf,S1OFF)!=NULL) rece_buf1=2;rece_buf2=1;rece_buf3=0;rece_buf0=3;SEND_BUF(rece_buf);CLR_Buf1(); write_content(u8 add,u8 state);/如果GSM模块收到S1OFF,就发送指令代码210,并且清空串口数据if(strstr(Uart1_Buf,S2OFF)!=NULL) rece_buf1=2;rece_buf2=2;rece_buf3=0;rece_buf0=3;SEND_BUF(rece_buf);CLR_Buf1(); write_content(u8 add,u8 state);/如果GSM模块收到S2OFF,就发送指令代码220,并且清空串口数据if(strstr(Uart1_Buf,S3OFF)!=NULL) rece_buf1=2;rece_buf2=3;rece_buf3=0;rece_buf0=3;SEND_BUF(rece_buf);CLR_Buf1(); write_content(u8 add,u8 state);/如果GSM模块收到S3OFF,就发送指令代码230,并且清空串口数据if(strstr(Uart1_Buf,S4OFF)!=NULL) rece_buf1=2;rece_buf2=4;rece_buf3=0;rece_buf0=3;SEND_BUF(rece_buf);CLR_Buf1(); write_content(u8 add,u8 state);/如果GSM模块收到S4OFF,就发送指令代码240,并且清空串口数据if(strstr(Uart1_Buf,S5OFF)!=NULL) rece_buf1=2;rece_buf2=5;rece_buf3=0;rece_buf0=3;SEND_BUF(rece_buf);CLR_Buf1(); write_content(u8 add,u8 state);/如果GSM模块收到S5OFF,就发送指令代码250,并且清空串口数据if(strstr(Uart1_Buf,S6OFF)!=NULL) rece_buf1=2;rece_buf2=6;rece_buf3=0;rece_buf0=3;SEND_BUF(rece_buf);CLR_Buf1(); write_content(u8 add,u8 state);/如果GSM模块收到S6OFF,就发送指令代码260,并且清空串口数据将这两个部分的程序写在一起,然后用无限循环语句将这两个部分合并在一起就可以无限执行了。每次循环都会按照循序执行到每条语句,确保GSM和2401模块接收的数据都得到了有效的处理。并且由于循环的时间小于100ms,所有的语句都将在100ms之内完成。编译之后成功生成HEX文件,结果如下图:图7编译成功输出图(3) 调试过程由于主控模块的调试需要其他模块的在线支持,所以该模块的调试情况详见智能家居的成品测试部分。此处附录所有的短信控制命令以及内部的命令代码:表5 用户使用代码表短信含义Catch fire烟雾报警器警报,发生火灾Fire close用于解除警报Window open手动打开窗帘Window close手动关闭窗帘Window auto自动窗帘控制Breaking waring有不明侵入,窗子被打破S1ON/S1OFF用电器1开/关S2ON/S2OFF用电器2开/关S3ON/S3OFF用电器3开/关S4ON/S4OFF用电器4开/关S5ON/S5OFF用电器5开/关S6ON/S6OFF用电器6开/关FAcheck查询各用电器的状态表6 内部的命令代码代码情况111火警112有不明侵入,窗子被打破113手动窗开114手动窗关115窗户手动自动切换116火警复位200查询用电器状态代码201/210用电器1开/关202/220用电器2开/关203/230用电器3开/关204/240用电器4开/关205/250用电器5开/关206/260用电器6开/关用电器查询返回0用电器开用电器查询返回1用电器关2.2烟雾报警模块2.2.1烟雾报警模块的构成本毕业设计的烟雾报警模块由一块STC89C52单片机、MQ-2烟雾传感器、nRF2401+模块、5V有源蜂鸣器以及一个LED灯珠组成。实物图如下:图8烟雾报警模块实物图预期目标:当模块工作的时候,烟雾传感器以及单片机的电源指示灯亮,整个系统处于工作状态。当检测到有烟雾或可燃气体时,MQ-2烟雾传感器输出低电平,触发中断,单片机通过nRF2401+模块发送报警代码,通知中央控制模块。与此同时,自动点亮LED灯并驱使蜂鸣器发出声音进行报警处理。当解除报警状态时。可以通过硬件电路重置单片机解除报警状态,或者通过软件的方式重置单片机。2.2.2技术参数查阅MQ-2烟雾传感器的说明可以知道该传感器的最低探测浓度是100ppm液化气和丙烷,300ppm丁烷,5000ppm甲烷,300ppm氢气,100ppm酒精。当检测到上述气体后可以迅速触发单片机反应。整个模块的反应时间小于1秒。峰值功率0.9W。2.2.3程序解释整个模块的开发过程一共耗时一周,主要工作是nRF2401+模块的调试以及程序主体的编写在编写过程中,首先写出2401+模块相关的程序,分为引脚定义,基础通信函数,配置字写入函数,检查函数,读取函数等。流程图如下:图9烟雾模块流程图2401+模块的配置因为在前面已经说过了,所以在此不再说明,同样是配置的地址和基础的子函数。写完了基础的子函数之后,就是本模块的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州黔西南州水资源开发投资(集团)有限公司招聘3人历年真题库带答案解析
- 广州农商银行2026届校园招聘备考题库附答案
- 2025江苏宿迁宿城区人民医院招聘事业编制工作人员57人参考题库附答案解析
- 2025年湖南工商大学第二次公开招聘21人历年真题库带答案解析
- 2025贵州遵义市正安县面向“三支一扶”计划期满人员专项招聘乡镇事业单位人员招聘3人备考题库附答案解析
- 2025年永吉县总工会公开招聘工会社会工作者(6人)备考公基题库带答案解析
- 大通县2025年面向社会公开招聘森林草原专职消防员笔试模拟试卷附答案解析
- 2026泰安银行股份有限公司校园招聘70人历年真题汇编带答案解析
- 2025山东滨州博兴县招聘戏曲表演专业技术人员2人笔试模拟试卷附答案解析
- 2025福建厦门市集美职业技术学校非在编教师招聘1人历年真题汇编附答案解析
- 黑龙江省哈尔滨市九中2025-2026学年高一上学期期中语文试题(含答案及解析)
- 2025年乌苏市公安局开招聘警务辅助人员(67人)笔试考试参考试题附答案解析
- 2025重庆医科大学附属大足医院招聘4人笔试考试参考试题及答案解析
- DB5201-T 126-2022 商务楼宇等级划分与评定
- 2025版食管胃交界癌诊疗指南
- 北京市朝阳区2025-2026学年高三上学期期中质量检测化学试题(含答案)
- 2025年法律职业伦理试题和答案
- 2025北京国家电投集团创新投资招聘1人笔试历年常考点试题专练附带答案详解2套试卷
- 集成电路芯片设计企业组织架构详解
- 2025广东深圳市罗山科技园开发运营服务有限公司第二批招聘4人笔试考试参考试题及答案解析
- 学堂在线 人工智能 章节测试答案
评论
0/150
提交评论