为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

智能家居家庭防盗系统设计与实现

2021-09-24 4页 doc 5MB 35阅读

用户头像 个人认证

非洲男人

暂无简介

举报
智能家居家庭防盗系统设计与实现PAGE智能家居家庭防盗系统的设计与实现PAGEI目录TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc419618819"第1章绪论PAGEREF_Toc419618819\h1HYPERLINK\l"_Toc419618820"1.1研究背景PAGEREF_Toc419618820\h1HYPERLINK\l"_Toc419618821"1.2国内外研究现状PAGEREF_Toc419618821\h1HYPERLINK\l"_Toc419618822"...
智能家居家庭防盗系统设计与实现
PAGE智能家居家庭防盗系统的设计与实现PAGEI目录TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc419618819"第1章绪论PAGEREF_Toc419618819\h1HYPERLINK\l"_Toc419618820"1.1研究背景PAGEREF_Toc419618820\h1HYPERLINK\l"_Toc419618821"1.2国内外研究现状PAGEREF_Toc419618821\h1HYPERLINK\l"_Toc419618822"1.3前景意义PAGEREF_Toc419618822\h2HYPERLINK\l"_Toc419618823"1.4系统特征PAGEREF_Toc419618823\h2HYPERLINK\l"_Toc419618824"1.5论文组织结构PAGEREF_Toc419618824\h3HYPERLINK\l"_Toc419618825"第2章系统相关技术基础PAGEREF_Toc419618825\h4HYPERLINK\l"_Toc419618826"2.1AT指令PAGEREF_Toc419618826\h4HYPERLINK\l"_Toc419618827"2.2C语言简介PAGEREF_Toc419618827\h5HYPERLINK\l"_Toc419618828"2.3MDK-ARM软件PAGEREF_Toc419618828\h5HYPERLINK\l"_Toc419618829"第3章系统PAGEREF_Toc419618829\h7HYPERLINK\l"_Toc419618830"3.1系统框架PAGEREF_Toc419618830\h7HYPERLINK\l"_Toc419618831"3.2程序图PAGEREF_Toc419618831\h7HYPERLINK\l"_Toc419618832"第4章系统硬件结构PAGEREF_Toc419618832\h8HYPERLINK\l"_Toc419618833"4.1STM32F103开发板PAGEREF_Toc419618833\h8HYPERLINK\l"_Toc419618834"4.2DHT11温湿度传感器PAGEREF_Toc419618834\h10HYPERLINK\l"_Toc419618835"4.3MQ-2烟雾传感器PAGEREF_Toc419618835\h10HYPERLINK\l"_Toc419618836"4.4HC-SR501人体红外检测PAGEREF_Toc419618836\h11HYPERLINK\l"_Toc419618837"4.5蜂鸣器PAGEREF_Toc419618837\h11HYPERLINK\l"_Toc419618838"4.6GSM通信模块PAGEREF_Toc419618838\h12HYPERLINK\l"_Toc419618839"第5章系统详细设计PAGEREF_Toc419618839\h14HYPERLINK\l"_Toc419618840"5.1设计目标PAGEREF_Toc419618840\h14HYPERLINK\l"_Toc419618841"5.1.1温湿度检测报警功能PAGEREF_Toc419618841\h14HYPERLINK\l"_Toc419618842"5.1.2MQ-2气体检测报警功能PAGEREF_Toc419618842\h16HYPERLINK\l"_Toc419618843"5.1.3人体红外检测报警模块PAGEREF_Toc419618843\h18HYPERLINK\l"_Toc419618844"5.1.4密码门禁系统PAGEREF_Toc419618844\h20HYPERLINK\l"_Toc419618846"5.1.5短信报警功能PAGEREF_Toc419618846\h24HYPERLINK\l"_Toc419618848"第六章系统测试PAGEREF_Toc419618848\h28HYPERLINK\l"_Toc419618849"6.1系统整体测试PAGEREF_Toc419618849\h28HYPERLINK\l"_Toc419618850"6.2烟雾传感模块测试PAGEREF_Toc419618850\h28HYPERLINK\l"_Toc419618851"6.3人体红外检测模块测试PAGEREF_Toc419618851\h29HYPERLINK\l"_Toc419618852"6.4GSM模块测试PAGEREF_Toc419618852\h30HYPERLINK\l"_Toc419618853"第7章总结与展望PAGEREF_Toc419618853\h31基于智能家居的家庭防盗系统设计PAGE18第1章绪论1.1研究背景随着社会的日益发展,人们的生活水平逐渐升高,人们对家庭设施于财务的安全意识也逐渐增强,而对于家庭安全是一个独立的完整的系统,逐渐兴起的物联网技术在家庭安全防盗方面起到了重要的作用,利用建立在物联网技术上的智能家居系统给家庭安全防盗系统带来了光明的前景。基于智能家居的家庭安全防盗系统具有四个显著的特征:1.美观整洁:智能家居系统采用当下最先进的物联网技术,利用多个传感器节点收集信息并传送到主控制器,整个系统中不需要胡乱搭线不需要占用太大空间。2.易操作:安全防盗系统采用可视化显示屏,通过按键进行输入,使用过程不需要任何技术要求。3.安全性高:利用物联网技术的家庭防盗系统采用高质量高灵敏度的传感器,进行检测于设防,一旦有危险因素发生,系统会作出实时的反应发送报警信息。4.不影响人们正常生活:基于智能家居的安全防盗系统可以有户主自由的进行开启于关闭,准确性高,不会产生误报,错报等尴尬情况。[1]小区安全防盗系统建设已逐渐纳入许多小区建设的必备HYPERLINK"http://b2b.c-ps.net/b2b-42402-1"\t"_blank"项目中了。以HYPERLINK"http://b2b.c-ps.net/b2b-781-1"\t"_blank"深圳为例,几乎所有新建的住宅楼盘都预装了防盗系统,并禁止安装防盗网,而HYPERLINK"http://b2b.c-ps.net/b2b-2698-1"\t"_blank"上海、HYPERLINK"http://b2b.c-ps.net/b2b-782-1"\t"_blank"广州、温州、南昌等地更是花费重金拆除了防盗网,其防盗功能则必须由电子防盗系统来完成。1.2国内外研究现状1984年世界上第一座智能大厦在美国诞生,很快掀起一股“智能建筑”热潮。在短短的十几年中美国、日本、欧洲的几万座智能大厦纷纷建成,美国1986年成立了“智能建筑协会”,其中会员横跨17个国家,并宣布1995年以后要大幅度增加智能型大楼的比例。日本建设省1985年成立了国家智能建筑专业委员会,对智能建筑的发展给予政策上的支持,使日本在智能建筑上成为发展非常快的国家。据统计,日本新建的建筑物中60%以上是智能型的。进入90年,英国、法国、加拿大、瑞典等国家都相继建成一批有自己特色的智能建筑。美国犹他州emWare公司最近开发成功一项全新理念的安防技术,可使上班的人们透过Internet来监控自家住宅的安全,用户只要在计算机运行的网络测览器软件中用鼠标点击一下,即可使用该技术达到监控的目的。据称,该系统的软件除了可以控制门锁外,还可控制家中的恒温设备、安全设备、娱乐设备等,甚至可用于监护住在家中的病人。我国智能建筑的建设始于1990年,北京的发展大厦可谓是我国智能建筑的雏形,随后建成了北京燕莎中心、上海商城、广州世贸中心、南京禄口机场等一批具有一定智能化的建筑。我国智能住宅与智能小区虽然起步比较晚,但发展速度确实很快。以北京、深圳、上海、广州等较发达的城市为龙头在近几年内形成了一股智能化住宅热。目前,公安部、建设部均要求智能住宅小区必须具有安防系统。可以预见,智能住宅、智能小区将成为未来建筑业的发展主流。特别是在我国,随着人们生活水平的日益提高,住宅小区的智能化程度将成为评价住宅小区的重要指标。1.3前景意义通过家庭安防系统的实现,可以为人们在未来建设智慧家庭,智慧小区,智慧城市奠定重要的技术基础,可以在未来家庭与区中通过利用传感器节点进行信息采集并发送给用户常用的智能设备,达到随时随地无延时无障碍实时的惊醒远程控制与远程接受,智能家居与安全防盗在慢慢的改变着人们的生活和工作方式,其应用和经济社会效益前景非常良好。1.4系统特征智能家居的安全防盗系统,分为两个方面,包括安防于防盗,安防是对家庭内部的环境检测,防盗系统主要是对入侵者的检测与报警。首先,安防喜用采用stm32f103开法板上的温室度传感器以及自己外接的烟雾传感器,当温度过高超过设定的温度值时,会自动报警,当室内检测到有害气体时,也会触发报警。其次,对于防盗系统采用一个红外人体检测没模块,该模块会向一片区域投射红外线,把次区域当作设防区域,当有人入侵时,一旦进入了次区域,次模块便会向主控制器发送报警信息,控制器会采取相应的措施,同时GSM模块会向预留在模块里的手机号码发送报警信息,用户自己回家时,也需要根据显示屏的提示输入密码,只有输入正确才能进入。本系统从操作性、简介性、安全性、可靠性多个角度进行设计与实现,其研究意义重大,使用意义更不可小觑,体现了当下最前沿的发展方向。1.5论文组织结构本论文共分五章。论文的第1章为绪论,这一章主要讲述了本系统的研究背景、国内外研究现状、前景意义、系统结构和论文的组织结构。第2章主要介绍了开发本系统的相关技术基础,主要介绍了C语言、MDK-ARM、STM32F103开发板的简介等基础知识。第3章主要介绍了家庭安防系统所需要的硬件支持,包括STM32F103开发板、DHT11温湿度传感器、MQ-2烟雾传感器、HC-SR501人体红外检测模块、GSM通信模块,以及分别对每个模块的简单介绍,功能用法的简单分析。主要从可行性及系统的需求两个方面进行的分析。可行性分析从技术、经济、操作三个方面分析确定了系统开发的作用和意义。需求分析则确定了系统具体应该实现的功能。论文从第4章开始介绍开发此系统的详细设计与功能实现过程,主要包括对每个模块功能的实现方法,编程思路,然后根据功能描述系统测试后的现象等,在该章节最后,把相关模块的驱动实现代码做了简单的介绍。最后一章是对本系统的总结与对未来发展和改善的展望。第2章系统相关技术基础2.1AT指令AT指令集是从HYPERLINK"http://baike.baidu.com/view/34654.htm"\t"_blank"终端设备(TerminalEquipment,TE)或HYPERLINK"http://baike.baidu.com/view/543316.htm"\t"_blank"数据终端设备(DataTerminalEquipment,DTE)向终端适配器(TerminalAdapter,TA)或数据电路终端设备(DataCircuitTerminalEquipment,DCE)发送的。其对所传输的数据包大小有定义:即对于AT指令的发送,除AT两个字符外,最多可以接收1056个字符的长度(包括最后的空字符)。每个AT命令行中只能包含一条AT指令;对于由HYPERLINK"http://baike.baidu.com/view/34654.htm"\t"_blank"终端设备主动向PC端报告的URC指示或者response响应,也要求一行最多有一个,不允许上报的一行中有多条指示或者响应。HYPERLINK"http://baike.baidu.com/view/4583747.htm"\t"_blank"AT指令以回车作为结尾,响应或上报以回车换行为结尾。与SMS有关的GSMAT指令(fromGSM07.05)如下:AT指令功能AT+CMGCSendanSMScommand(发出一条短消息命令)AT+CMGDDeleteSMSmessage(删除SIM卡内存的短消息)AT+CMGFSelectSMSmessageformate(选择短消息信息格式:0-PDU;1-HYPERLINK"http://baike.baidu.com/view/300107.htm"\t"_blank"文本)AT+CMGLListSMSmessagefrompreferredstore(列出SIM卡中的短消息PDU/text:0/“RECUNREAD”-未读,1/“RECREAD”-已读,2/“STOUNSENT”-待发,3/“STOSENT”-已发,4/“ALL”-全部的)AT+CMGRReadSMSmessage(读短消息)AT+CMGSSendSMSmessage(发送短消息)AT+CMGWWriteSMSmessagetomemory(向SIM内存中写入待发的短消息)AT+CMSSSendSMSmessagefromstorage(从SIN|M内存中发送短消息)AT+CNMI2.2C语言简介C语言是国际上广泛流行的计算机高级语言,它适合最为系统描述语言,既可以用来编写系统软件,也可以编写应用软件,C语言的主要特点如下:1.语言简洁、紧凑、使用方便、灵活:语言一共有32个关键字、9种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。2.运算符丰富:C语言的运算符包含的范围很广泛,共有34种运算符,C语言把括号、赋值、强制类型转换等都作为运算符处理。3.数据类型丰富,具有现代的数据结构:C语言提供的数据类型有:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型等,使用十分灵活和多样化。4.语法限制不太严格,程序设计自由度大。5.C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。2.3MDK-ARM软件MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。MDK-ARM专为微控制器应用而设计,不仅易学易用,而且功能强大,能够满足大多数苛刻的嵌入式应用。MDK-ARM有四个可用版本,分别是MDK-Lite、MDK-Basic、MDK-Standard、MDK-Professional。所有版本均提供一个完善的C/C++开发环境,其中MDK-Professional还包含大量的中间库。完美支持Cortex-M、Cortex-R4、ARM7和ARM9系列器件。业行领先的ARMC/C++编译工具链IDEHYPERLINK"http://baike.baidu.com/view/14867.htm"\t"_blank"集成开发环境,HYPERLINK"http://baike.baidu.com/view/185339.htm"\t"_blank"调试器和仿真环境确定的KeilRTX,小封装实时操作系统(带源码)TCP/IP网络套件提供多种的和各种应用提供带驱动类的USB设备和USB主机栈为带图形用户接口的嵌入式系统提供了完善的GUI库支持。ULINKpro可实时分析运行中的应用程序,且能Cortex-M指令的每一次执行关于程序运行的完整代码覆盖率信息执行分析工具和HYPERLINK"http://baike.baidu.com/view/2466792.htm"\t"_blank"性能分析器可使程序得到最优化。Keil开发软件项目包包括user,libraries,stm32,cmsis等文件夹如图2-1所示。图2-1Keil项目包项目调试中选中ST-Link仿真调试如图2-2所示。图2-2选中ST-Link在Device选项中,选中STM32F103RB型芯片,在C\C++选项中的includePath中将路径设置为..\Library\inc;..\User;..\Stm32;..\bsp,在Debug选项的setting中,将ort选为sw,最大频率为1MHz。第3章系统分析3.1系统框架智能家居防盗系统主要由MQ-2烟雾传感器、Hc-sr501人体红外检测传感器、GSM模块和MCU组成,其中MCU是有意法半导体公司生产的STM32系列单片机,烟雾传感器与人体红外传感器分别采集外界信息,并通过GSM模块以手机短信的形式发布报警信息给用户。系统框架如图所示3-1。图3-1系统框架3.2程序流程图系统的整个流程,从门禁系统开始,当用户通过按键输入开门密码时,如果输入正确,门可以自动打开,在家庭内部,各种传感器采集数据,如果有恶性情况发生,则通过设置GPRS相关格式与参数,发送手机短信给用户。程序流程图如图3-2所示。图3-2程序流程图第4章系统硬件结构4.1STM32F103开发板STM32F103使用高性能的ARM®Cortex™-M332位的RISC内核,工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强I/O端口和联接到两条A总线的外设。所有型号的器件都包含2个12位的ADC、3个通用16位定时器和1个PWM定时器,还包含标准和先进的通信接口:多达2个I2C接口和SPI接口、3个USART接口、一个USB接口和一个CAN接口。STM32F103xx中等容量增强型系列产品供电电压为2.0V至3.6V,包含-40°C至+85°C温度范围和-40°C至+105°C的扩展温度范围。一系列的省电模式保证低功耗应用的要求。STM32F103xx中等容量增强型系列产品提供包36脚至100脚的6种不同封装形式;根据不同的封装形式,器件中的外设配置不尽相同,STM32F103x是一个完整的系列,其成员之间是完全地脚对脚兼容,软件和功能上也兼容。Stm32f103芯片管脚图如图4-1所示。图4-1Stm32f103芯片管脚图每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。每个I/O端口位可以自由编程,然而I/0端口寄存器必须按32位字被访问(不允许半字或字节访问)。GPIOx_BSRR和GPIOx_BRR寄存器允许对任何GPIO寄存器的读/更改的独立访问;这样,在读和更改访问之间产生IRQ时不会发生危险。Stm32最小系统PCB封装图如图2-4所示。图4-2Stm32f103开发板pcb封装图Stm32f103开发板如图4-3所示。图4-3Stm32f103开发板实物图4.2DHT11温湿度传感器DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。4.3MQ-2烟雾传感器MQ-2气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。MQ-2气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸汽的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低成本传感器。电路图如图4-4所示。图4-4蜂鸣器电路图主要特点及应用:1.较宽的浓度范围内对可燃气体有良好的灵敏度。2.对液化气、丙烷、氢气的灵敏度较高3.长寿命、低成本4.简单的驱动电路即可5.家庭用气体泄漏报警器6.工业用可燃气体报警器4.4HC-SR501人体红外检测HC-SR501是基于红外线技术的自动控制模块,采用德国原装进口LHI778探头设计,灵敏度高,可靠性强,超低电压工作模式,广泛应用于各类自动感应电器设备,尤其是干电池供电的自动控制产品,传感器驱动电路如图4-5所示。图4-51.全自动感应:人进入其感应范围则输出高电平,人离开感应范围则自动延时关闭高电平,输出低电平。[2]2.光敏控制(可选择,出厂时未设)可设置光敏控制,白天或光线强时不感应。3.温度补偿(可选择,出厂时未设):在夏天当环境温度升高至30~32℃,探测距离稍变短,温度补偿可作一定的性能补偿。4.两种触发方式:(可跳线选择)。4.5蜂鸣器蜂鸣器是一种一体化结构的电子讯响器,采用HYPERLINK"http://baike.baidu.com/view/2070482.htm"\t"_blank"直流电压供电,广泛应用于HYPERLINK"http://baike.baidu.com/view/3314.htm"\t"_blank"计算机、打印机、复印机、报警器、HYPERLINK"http://baike.baidu.com/view/1387196.htm"\t"_blank"电子玩具、汽车电子设备、电话机、HYPERLINK"http://baike.baidu.com/view/281961.htm"\t"_blank"定时器等电子产品中作发声HYPERLINK"http://baike.baidu.com/view/481400.htm"\t"_blank"器件。HYPERLINK"http://baike.baidu.com/view/183969.htm"\t"_blank"蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在HYPERLINK"http://baike.baidu.com/view/134362.htm"\t"_blank"电路中用字母“H”或“HA”(旧标准用“FM”、“ZZG”、“LB”、“JD”等)表示,蜂鸣器电路如图4-6所示。图4-6蜂鸣器驱动电路图4.6GSM通信模块短信报警功能采用sim900模块,该模块利用GSM技术,GSM模块既要提供无线通信的功能,也要提供应用的接口,因此其软件构成主要包括如下:通信功能单元:按照3GPP规范设计的通信软件,包括物理层、协议栈,还包括与语音相关的声码器单元。嵌入式实时操作系统单元:支撑各软件单元的运行、调度、资源管理和分配等。硬件驱动单元:管理无线模块的硬件资源,通过调用硬件驱动接口来使用模块的硬件,如UART、Memoris、SPI、I2C、Power、SIM、Keyboard、GPIO等。1.人/机接口单元:为使用者提供接口。2.1个网络状态指示灯(红色)3.SIM900A模块的所有IO口均用排针引出,方便使用4.ATK-SIM900A模块(开发板)采用工业级标准设计,特点包括:5.板载RS232串口(支持硬件流控制),方便与PC/工控机等设备连接;6.板载3.5mm耳机和麦克风座,方便进行语音通信开发;引出所有SIM900A模块的IO口,并对通信部分IO口做了兼容性设计,方便连接3.3V/5V单片机系统;板载高效同步降压电路,转换效率高达90%,支持超宽电压工作范围(5~24V),非常适合工业应用;板载电源防反接保护,TVS电源保护和SIM卡ESD保护,保护功能完善;板载RTC后备电池(XH414H-IV01E),无需担心掉电问题;[7]GSM模块背面如图4-5所示。图4-5GSM模块背面走线第5章系统详细设计5.1设计目标本系统是根据需求分析按照用户的需求以及结合人机交互方面的考虑设计的系统,主要实现如下功能:5.1.1温湿度检测报警功能空气温湿度检测报警系统,它所使用的传感器,是采用DHT11温湿度传感器来采集温湿度的信号,将采集到的数字信号所获得的数据直接送入STC89C52的单片机中,单片机再对数字信号进行处理,经过单片机处理的信号再次通过1602字符液晶显示器将温湿度值显示出来,若通过温湿度传感器所采集的数据过高,则会通过报警电路发出报警,提醒人们空气中的温湿度对人的身体不利,,温室度传感器我如图5-1所示。图5-1DHT11温湿度传感器DHT11温湿度传感器通过根据工作时序编程,将采集的模拟量转化成40个比特位,经过移动算法转化成十进制的数显示出来,温湿度实现代码如下。Gpio.cvoidgpio_config(){GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOB,&GPIO_InitStructure);//led1的控制管脚GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOC,&GPIO_InitStructure);//蜂鸣器控制管脚GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_OD;GPIO_Init(GPIOC,&GPIO_InitStructure);//DHT11输入管脚}Dht.c#include"stm32f10x.h"#include"dht.h"#include"delay.h"intT,R;intread_bit(){inta=0;while(GPIO_ReadInputDataBit(DHT_PORT,DHT_PIN)==0);//屏蔽低电平while(GPIO_ReadInputDataBit(DHT_PORT,DHT_PIN)==1){delay_us(10);a++;}if(a<5){return0;}return1;}//在高电平中输出40个比特位voidread_data(){inti;charch[40];GPIO_ResetBits(DHT_PORT,DHT_PIN);delay_ms(20);//拉高点平等待DHT11响应,延时50us.GPIO_SetBits(DHT_PORT,DHT_PIN);delay_us(50);if(GPIO_ReadInputDataBit(DHT_PORT,DHT_PIN)==0){while(GPIO_ReadInputDataBit(DHT_PORT,DHT_PIN)==0);//屏蔽低电平while(GPIO_ReadInputDataBit(DHT_PORT,DHT_PIN)==1);//屏蔽高电平,可以接受bitfor(i=0;i<40;i++){ch[i]=read_bit();//读取比特}T=ch[0]*128+ch[1]*64+ch[2]*32+ch[3]*16+ch[4]*8+ch[5]*4+ch[6]*2+ch[7]*1;R=ch[16]*128+ch[17]*64+ch[18]*32+ch[19]*16+ch[20]*8+ch[21]*4+ch[22]*2+ch[23]*1}}Dht.h#ifndef__DHT_H#define__DHT_H#include"stm32f10x.h"/***********************宏定义**********************/#defineDHT_LOWGPIO_ResetBits(GPIOC,GPIO_Pin_12)#defineDHT_HIGH()GPIO_SetBits(GPIOC,GPIO_Pin_12)#defineDHT_PORTGPIOC#defineDHT_PINGPIO_Pin_12/***********************函数声明*********************/intread_bit(void);voidread_data(void);#endif5.1.2MQ-2气体检测报警功能有害气体检测报警系统以MQ-2电阻式烟雾传感器和模拟电子技术为核心,设计出一种技术水平较好的烟雾报警器。其中选用MQ-2型半导体可燃气体敏感元件烟雾传感器实现烟雾的检测,具有灵敏度高、响应快、抗干扰能力强等优点,而且价格低廉,使用寿命长。泄漏气体报警系统的工作过程,就是泄漏气体达到一定浓度时(通常浓度值应非常低),经气体检测装置将气体泄漏信号变成电信号,通过DO管教输出的高低电平传给总控制器,来发出报警信息。当轻按打火机时,里面的气体会释放,烟雾传感模块会检测到并触发报警如图5-2所示。图5-2MQ-2模块检测部分是由固定安装的MQ-2传感器,它负现场数据,并将采集得到的数据变成模拟的电信号;信号传递部分负责将从处理器得来的经过编码的数据发送出去,MQ-2实现代码如下。Mq-2.c#include"stm32f10x.h"#include"mq2.h"/***********************相应外设GPIO口的初始化*******************/voidMQ2_Config(){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO,ENABLE);//打开始终GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOB,&GPIO_InitStructure);//MQ-2输入管脚/*****************串口复用管脚****************/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;;GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOC,&GPIO_InitStructure);//蜂鸣器管脚GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOB,&GPIO_InitStructure);}Mq-2.h#ifndef_MQ2_H_#define_MQ2_H_#include"stm32f10x.h"voidMQ2_Config(void);#endifMain.c#include"include.h"intfputc(intch,FILE*f);externintT,R;intmain(void){delay_init();GPIO_Config();COM_Config();read_data();lcd_config();Qc12864_SoftInit();Qc12864_Display_Str();while(1){if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_4)){GPIO_SetBits(GPIOC,GPIO_Pin_11);//打开蜂鸣器}else{GPIO_ResetBits(GPIOC,GPIO_Pin_11);//关闭蜂鸣器}}}5.1.3人体红外检测报警模块热释电红外传感器应用电路:为了探测移动人体,通常使用双元件热释电红外传感器,这种传感器内部,两个敏感元件反向链接,当人体静止时两元件极化程度相同,相互抵消。但是人体移动时,元件极化程度不同,净输出电压不为0,从而达到探测移动人体的目的,把模块连接到开发板上,OUT口输出高低电平来表示区域有无人的存在,并且向总控制器发出状态信息,模块上面采用德国进口的菲涅尔透镜扩大辐射区域,通过旋钮可以分别调节延时与距离的灵敏度。两个黄色的旋钮分别为距离调节和延时调节,目前延时在0.5s,距离在3m如图5-3。图5-3hc-sr501模块HC-SR501连接图如图5-4所示图5-4hc-sr501连接图通过检测到是否有人的状态输出高低电平,从而返回给单片机,来控制相应的外设进行报警,人体红外实现代码如下。Hc-sr501.cVoidhc-sr501_config(){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA,&GPIO_InitStructure);//hc-sr501传感器输入管脚GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOB,&GPIO_InitStructure);//led1灯GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOC,&GPIO_InitStructure);//蜂鸣器}Main.c#include"include.h"intfputc(intch,FILE*f);externintT,R;intmain(void){delay_init();GPIO_Config();COM_Config();read_data();lcd_config();Qc12864_SoftInit();Qc12864_Display_Str();while(1){if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15)){GPIO_ResetBits(GPIOB,GPIO_Pin_0);//点亮led1}else{GPIO_SetBits(GPIOB,GPIO_Pin_0);//关闭led1}}}5.1.4密码门禁系统密码门禁系统,主要采用串口的数据发送与接受来模拟开门过程,通过编程,将每次输入的四位数字存储到两个不同的数组中,其中第一次的输入作为原始密码,匹配这两个数组,若全部相同则设置一个标志位为1,不同则为0,通过标志位的返回值来控制开发板上的继电器模拟开门过程,整个过程全部在LCD显示屏上显示,使得人机交互更为简洁方便。利用串口助手模拟显示屏如图5-5,5-6所示。图5-5初始密码设置图5-6串口助手模拟门禁系统密码门禁系统是设置了两个数组,第一次输入四个数作为原始密码,第二次输入的是开门密码,当输入正确时打开继电器,密码门禁系统实现代码如下。Key.c#include"key.h"voidKEY_Config(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(KEY_CLK,ENABLE);GPIO_InitStructure.GPIO_Pin=KEY1_PIN|KEY2_PIN;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(KEY_PORT,&GPIO_InitStructure);}Key.h#ifndef_KEY_H_#define_KEY_H_#include"stm32f10x.h"#defineKEY_CLKRCC_APB2Periph_GPIOC#defineKEY_PORTGPIOC#defineKEY1_PINGPIO_Pin_0#defineKEY2_PINGPIO_Pin_1#defineKEY1_FLAGGPIO_ReadInputDataBit(KEY_PORT,KEY1_PIN)voidKEY_Config(void);#endifUsart.c#include"USART.h"voidUSART_Config(void){GPIO_InitTypeDefGPIO_InitStructure;USART_InitTypeDefUSART_InitStructure;//定义串口结构体变量RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA,&GPIO_InitStructure);//打开串口复用管脚USART_InitStructure.USART_BaudRate=9600;USART_InitStructure.USART_WordLength=USART_WordLength_8b;USART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_Parity=USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;USART_Init(USART1,&USART_InitStructure);USART_Cmd(USART1,ENABLE);//结构体初始化GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_SetBits(GPIOC,GPIO_Pin_10);GPIO_Init(GPIOC,&GPIO_InitStructure);}Main.c#include"include.h"#include"stdio.h"intfputc(intch,FILE*f);intmain(void){charch1[4],ch2[4];inti=0,h=0,m=0;//标志位delay_init();USART_Config();printf("请设置秘密");while(1){while(i!=4){if(USART_GetFlagStatus(USART1,USART_FLAG_RXNE)==1){ch1[i]=USART_ReceiveData(USART1);USART_SendData(USART1,'*');i++;}}//贮存初始密码if(m!=1){printf("\r\n");printf("输入密码");m=1;}while(h!=4){if(USART_GetFlagStatus(USART1,USART_FLAG_RXNE)==1){ch2[h]=USART_ReceiveData(USART1);USART_SendData(USART1,ch2[h]);h++;}if(h==4){h=0;//for(j=0;j<4;j)if((ch1[0]==ch2[0])&&(ch1[1]==ch2[1])&&(ch1[2]==ch2[2])&&(ch1[3]==ch2[3])){printf("\r\n");printf("输入正确欢迎光临");delay_ms(1000);//延时1秒GPIO_ResetBits(GPIOC,GPIO_Pin_10);printf("\r\n");}else{printf("\r\n");printf(输入错误,请重新输入:");}}}}}/*******************字符输出函数******************/intfputc(intch,FILE*f){while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==0);USART_SendData(USART1,ch);returnch;}5.1.5短信报警功能短信报警功能是在当人体红外检测模块被触发为开关,当hc-sr501模块检测到有人入侵时,系统会发出报警信息,并向预留在sim900模块里的手机号码发送短信。GSM-sim900模块如图5-7所示。图5-7GSM模块利用AT指令发送中文短信。AT//测试准备工作AT+CMGF=1//设置发送为TXT模式AT+CSMP=17,167,2,25//设置发送为中文模式AT+CSCS="UCS2"//编码字符为Ucode编码AT+CMGS="00310035003000360033003200340034003700350035"67094eba95ef5165ff01//有人闯入!1A//十六进制发送短信测试采用AT指令,如图5-8所示。图5-8GSM模块GSM模块实现代码Gsm.c#include"stm32f10x.h"#include"delay.h"#include"gsm.h"voiddelay(u16n){u16i;while(n--){for(i=0;i<3000;i++);}}voidUART1_Send_Str(u8*s){u8i=0;while(s[i]!='\0'){USART_ClearFlag(USART1,USART_FLAG_TC);USART_SendData(USART1,s[i]);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);i++;}}/*****************************************功能:发送AT测试模块是否准备就绪返回:ok*****************************************/voidAT(){u8code[]="AT\r\n";UART1_Send_Str(code);delay(3000);}/*****************************************功能:发送AT+CMGF=1设置发送模式为TXT返回:ok*****************************************/voidCMGF(){u8code[]={"AT+CMGF=1\r\n"};UART1_Send_Str(code);delay(3000);}/*****************************************功能:发送AT+CSMP设置发送为中文模式返回:ok*****************************************/voidCSMP(){u8code[]={"AT+CSMP=17,167,2,25\r\n"};UART1_Send_Str(code);delay(3000);}/*****************************************功能:发送At+CSCS设置编码格式为Ucode编码返回:ok*****************************************/voidCSCS(){u8code1[]={"AT+CSCS=\"UCS2\"\r\n"};UART1_Send_Str(code1);delay(3000);}/*****************************************功能:发送目标电话号码的Ucode的格式返回:ok***********
/
本文档为【智能家居家庭防盗系统设计与实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索