智能家居系统-安防系统设计_第1页
智能家居系统-安防系统设计_第2页
智能家居系统-安防系统设计_第3页
智能家居系统-安防系统设计_第4页
智能家居系统-安防系统设计_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

12 1.1本设计在国内外的发展概况及存在的问题 31.1.1智能家居国内外发展历史 3 4 51.1.4智能家居不足之处 51.2安防系统设计的主要目的与意义 51.3本设计应解决的主要问题 6 6 62.1.1红外监控系统 72.1.2火灾监控系统 7 7 72.2.2传感器选择 7 83.1控制器介绍 83.2控制器的选择 93.3硬件设计原理图 3.4环境监控模块 3.4.1烟雾监测模块 3.4.3报警模块 4.1编程软件 4.2环境监测模块 4.2.1ADC模块设计 4.2.2OLED模块设计 4.2.3LED模块设计 5制作安装与调试 参考文献 错误!未定义书签。 3力不足的现状。这是家庭初次应用电力技术。从那以后,智能1984年,创建了智能家居的开发基础。美国建设者协会成立了一个名为“Smart4场的发展发布了各项政策为智能家居的成长供给了壮大的后方支援。萌发了“云+端”能家居消费额几乎为960亿美元,智能家居市场规模呈高速增长态势。全站财产研究院公布的《中国智能家居行业市场前瞻与投资计划陈述示,2016年中国智能家居市场规模大605.7亿元,2020年前中国将成为亚洲区域最大的智能家居市场。现了“家庭自动化”这一概念。制造了一个体系化毗连家用电器、安防设备等进行,用速成长这一前提,智能家居的才展现了它惊人的潜力,近几年由于无线传输技术、通信时、准确、快捷的交流与传通,逐渐将机械化慢慢的被信息化、数据化的控制所取缔。在二十世纪八十年代中期,是智能家居由抽象走向实际的新的时代。它采用智能家居的系统化、通讯化的理念用于建造城市建筑CityPalaceBuilding,设计了设备监控与各种通讯服务,自此世界才建造出第一代智能大厦,是真正意义上的智定来源,采取措施提高先发制人的效率,同时减少损失。目前,在5普通住宅,设施都比较基础,普及性和可实施性都比较弱,总的来说,国内还处于还处于智能家居研究的起步阶段。672.1.1红外监控系统2.1.2火灾监控系统STM32F103作为核心处理器,是一8是一个几乎能够永久使用的器件,不会产生飞弧或者射频噪声之类的问题,不容易干扰其他设备的工作,不会因安装的失误而引发的较大的电路问题,用电子线路控制,所以能发出声音响亮清脆,不易被其他的杂音所覆盖,而且消耗电流小,更加的环保节能。9OLEDGNDVCCGND3.BBAAAAAAAAVMQ2*2VCCGNDVCC4K-FGNDVCCBBBBAAAAAABBBBBBB5G3.LED1*3VCCGNDDDXX3VCCV3+321GND全隐患并做出应急措施。具体程序设计流程图见图3.4.1。数据采用校验和方通。通过调节器选定临界浓度后,若传感器周围的可燃气体或者烟雾浓度不超过设定浓度,报警系统不工作;当检测到的气体或烟雾浓度超过限定浓度后,DO口输出高电平,本设计中红外监测传感器主要用于监测家中是否有可疑人员触摸,原理图如3此软件在行业中受到了大量用户的追捧,它拥有着强大而且现代化的编译工具,使得在嵌入式单片机开发过程中能够得心应手,程序员可以在线使用CC++语进行方便快速本系统的软件设计主要是单片机开发板上各个功能模块的设计,本设计使用Keil4.2环境监测模块环境监测模块分为两个模块,红外对管为家中监控无人时是否有可疑人员非法入侵,以保证家中无外部侵入,一旦有非法入侵,蜂鸣器及LED灯泡则能够起到提前报警的作用;MQ-2烟雾监测传感器起到了监视空气中是否含有过高浓度的可燃性气体以及火灾产生的烟雾的作用。一旦这两个监控模块有任意一个发现了异常情况,就发送高电平信息给蜂鸣器和LED小灯泡,使蜂鸣器工作发出报警声,同时给LED小灯泡发送高电平,并同时与蜂鸣器同时工作,发出光亮以达到相对应的报警内容,让用户在家中第一时间知晓安全隐患并作出应急的措施。环境监测模块程序设计流程图见图4.2。4.2.1ADC模块设计APB2PeriphClockCmd();ADC_Init();voidAdc_Init(void){ADC_InitTypeDefADC_InitStructure;GPIO_InitTypeDefGPIO_InitStructure;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;GPIO_Init(GPIOA,&GPIO_InitStructure);ADC_DeInit(ADC1);//复位ADC1,将外设ADC1的全部寄存器重设为缺省值ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;//ADC工作模式:ADC1和ADC2工作在独立模式ADC_InitStructure.ADC_ScanConvMode=ADC_InitStructure.ADC_ContinuousConvMode=DISA;数转换工作在单次转换模式ADC__InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigCo/n/v_None;转换由软件而不是外部触发启动ADC__InitStructure.ADC_DataAlign=ADC_DataAlign//ADC__InitStructure.ADC_NbrOfChannel数目ADC__Init(ADC1,&ADC__InitStructure);ADC_Cmd(ADC1,ENABLE)/;/使能指定的ADC1ADC_ResetCalibration(ADC1)使;能/复/位校准while(ADC_GetResetCalibrationStatus(ADADC_StartCalibration(ADC1)开;启/A/D校准while(ADC_GetCalibrationStatus(AD//ADC_SoftwareStartConvCmd(ADC1,ENABLE)/;/使能指定的ADC1的软件转换启动功能}//获得ADC值//ch:通道值0~3u16Get_Adc(u8ch){ADC_SoftwareStartConvCmd(ADC1,ENABLE);//使能指定的ADC1的软件转换while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));//等待转换结束果}{{}}4.2.2OLED模块设计voidOLED_ColorTurn(u8i){{OLED_WR_Byte(0xA6,OLED_CMD);//正常显示}{OLED_WR_Byte(0xA7,OLED_C}}{{OLED_WR_Byte(0xC8,OLED_COLED_WR_Byte(0xA1,OLE}{OLED_WR_Byte(0xC0,OLED_COLED_WR_Byte(0xA0,OLE}}{{}}voidOLED_DisPlay_O{OLED_WR_Byte(0x8D,OLED_COLED_WR_Byte(0x14,OLED_COLED_WR_Byte(0xAF,OLED_}voidOLED_DisPlay_Of{OLED_WR_Byte(0x8D,OLED_COLED_WR_Byte(0x10,OLED_COLED_WR_Byte(0xAF,OLED_}{{OLED_WR_Byte(0xb0+i,OLED_CMD)OLED_WR_Byte(0x00,OLED_CMD);OLED_WR_Byte(0x10,OLED_CMD);OLED_WR_Byte(OLED_GRAM[n][i],OLED_DAT}}{{{}}}GPIO口,如果没有参数需要传递的话,那么必须要写入void,即我们要写成led_init(vo我们就不用再写入void,我们可以直接调用led_initvoidLED__GPIO_Config(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph__GPIOB,EAGPIO_InitStructure.GPIO__Pin=GPIO__Pin_12|GPIO__Pin_13|GPIO__Pin_14|GPIO__P选iGPIO_InitStructure.GPIO_Mode=GPIO_Mode__Out__PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed__50MHz;GPIO_Init(GPIOB,&GPIO_InitStructGPIO_SetBits(GPIOB,GPIO__Pin_13|GPIO__Pin_13|GPIO__Pin_14|GPIO__Pin_15//关闭所有LED}voidLED_Init(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph__GPIOB,钟GPIO_InitStructure.GPIO__Pin=GPIO__Pin__6|GPIO__Pin__7|GPIO__Pin__8;//端口配置GPIO_InitStructure.GPIO_Mode=GPIO_InitStructure.GPIO_Speed=50MHzGPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_SetBits(GPIOB,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8);}本设计为使用了STM32芯片设计的智能家居控制系统,主控制器为STM32,实现了ADC、显示模块,通过用小灯泡及蜂鸣器对各个功能模块的异常发出警告。本设计满足[3]吴毅成,基于BACnet的智能家居安防系统设计与实现[D],2005,1-22011(4).[6]徐进强,BENQ-M23GSM/GPRS模块在远程智能家居控制中的应用[J].现代电子技术,2010(18).andKey-basedSchemeforProvidingIntegralSecu-rityforaSmartGridICT[J].MobileNetworks&Applications,2017(1):1-15/2018-11-10.),):2015,36(122794~2797.[10]i199IT.StrategyAnalytics:2023年全球智能家居市场规模达1550亿美元[EB/OL].[13]庄宿国,赵伟刚,杨霞辉,等.基于AutoCAD平台的涨圈密封参数化软件开发[J].火箭推[14]蒲星星,王建设,高玉闪,等.液氧煤油发动机故障监控特征参数提取研究[J].火箭推进,2017(6):26-31.[19]林建华,林二妹.基于STM32无线网络智能家具控制系统设计与实现[J].攀枝花学院学报,2019(2):35-39.[20]樊智一.基于STM32的无线WIFI温湿度监测系统设计[J].电子世界,2016(18):35-37.[21]耿树芳,王宁,张雪莹,等.一种基于STM32的智能家居无线网关设计[J].廊坊师范学院学[22]余金遥.基于GPRS的网络监控系统的研究[D].荆州:长江大学,2018.[23]孟锦涛,刘淮霞.stm32单片机在室内监测研究[J].计算机产品与流通,2018(8):74.***************************************************************************//----------------------#include"stm32f10x.h"#include"bsp_usart1.h"#include"stdio.h"#include"delay.h"{LED_GPIO_Config();//LNVIC_Configuration();while(1){OLED_ShowChinese(0,0,0,1OLED_ShowChinese(16,0,1,1OLED_ShowChinese(32,0,2,1OLED_ShowChinese(48,0,3,1OLED_ShowChinese(64,0,4,1OLED_ShowChinese(80,0,5,1OLED_ShowChinese(96,0,6,1OLED_ShowChinese(112,0,7,1OLED_ShowChinese(0,20,8,1OLED_ShowChinese(16,20,10,16OLED_ShowChinese(32,20,11,16OLED_ShowString(48,20,":",16//adcx=Get_Adc_Average(ADC_Chadcx=Get_Adc_Average(ADC_Channel_1,10)OLED_ShowString(90,20,"g/L",16{}{}}}***************************************************************************ADC:adc.cAPB2PeriphClockCmd();ADC_Init();{ADC_InitTypeDefADC_InitStructure;GPIO_InitTypeDefGPIO_InitStructure;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;GPIO_Init(GPIOA,&GPIO_InitStructure);ADC_DeInit(ADC1);//复位ADC1,将外设ADC1的全部寄存器重设为缺省值ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;//ADC工作模式:ADC1和ADC2工作在独立模式ADC_InitStructure.ADC_ScanConvMode=ADC_InitStructure.ADC_ContinuousConvMode=DISA;数转换工作在单次转换模式ADC__InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigCo/n/v_None;转换由软件而不是外部触发启动ADC__InitStructure.ADC_DataAlign=ADC_DataAlign//ADC__InitStructure.ADC_NbrOfChannel数目ADC__Init(ADC1,&ADC__InitStructur;ADC_Cmd(ADC1,ENABLE)/;/使能指定的ADC1ADC_ResetCalibration(ADC1)使;能/复/位校准while(ADC_GetResetCalibrationStatus(ADADC_StartCalibration(ADC1)开;启/A/D校准while(ADC_GetCalibrationStatus(AD//ADC_SoftwareStartConvCmd(ADC1,ENABLE);//使能指定的ADC1的软件转换}{ADC_SoftwareStartConvCmd(ADC1,ENABLE);//使能指定的ADC1的软件转换while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));//等待转换结束果}{{}}***************************************************************************LED:led.cvoidLED_GPIO_Confi{GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2PeriGPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;//GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_IGPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);}{GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph钟GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_SetBits(GPIOB,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8);}***************************************************************************OLED:oled.c{{OLED_WR_Byte(0xA6,OLED_C}{OLED_WR_Byte(0xA7,OLED_C}}{{OLED_WR_Byte(0xC8,OLED_COLED_WR_Byte(0xA1,OLE}{OLED_WR_Byte(0xC0,OLED_COLED_WR_Byte(0xA0,OLE}}{{}}voidOLED_DisPlay_O{OLED_WR_Byte(0x8D,OLED_COLED_WR_Byte(0x14,OLED_COLED_WR_Byte(0xAF,OLED_}voidOLED_DisPlay_Of{OLED_WR_Byte(0x8D,OLED_COLED_WR_Byte(0x10,OLED_COLED_WR_Byte(0xAF,OLED_}{{OLED_WR_Byte(0xb0+i,OLED_CMD)OLED_WR_Byte(0x00,OLED_CMD);OLED_WR_Byte(0x10,OLED_CMD);OLED_WR_Byte(OLED_GRAM[n][i],OLED_DAT}}{{{}}}voidOLED_DrawPoint(u8x,u8y){}voidOLED_DrawLine(u8x1,u8y{if((x1<0)||(x2>128)||(y1<0)||(y2>64)||(x{{}}{{}}{{OLED_DrawPoint(x1+i,y1+i*}}}voidOLED_DrawCircle(u8{{{}}}{size2=(size1/8+((size1%8)?1:0))*(size1/2);/for(i=0;i<size2;i++){for(m=0;m<8;m++){{}}}}voidOLED_ShowString({while((*chr>='')&&(*chr<='~'))//判断是不是非法字符!{OLED_ShowChar(x,y,*chr,s{}}}u32OLED_Pow(u8m,u8n){while(n--){}}{{temp=(num/OLED_Pow(1{OLED_ShowChar(x+(size1/2)*t,y,'0',size}{OLED_ShowChar(x+(size1/2)*t,y,temp+'0',size1);}}}voidOLED_ShowChinese{while(size3--){{{}}}}voidOLED_ScrollDisplay(u8num,u8space){while(1){{OLED_ShowChinese(128,24,t,16);中}{{{{OLED_GRAM[i-1][n]=OLED_GRAM[i}}}}{{OLED_GRAM[i-1][n]=OLED_GRAM[i}}}}{OLED_WR_Byte(0xb0+y,OLED_CMDOLED_WR_Byte(((x&0xf0)>>4)|0x10,OLED_CMOLED_WR_Byte((x&0x0f)|0x01,OLED_C}voidOLED_ShowPicture(u8x0,u8y0,u8x1,u8y1,u8BMP[]){{{OLED_WR_Byte(BMP[j],OLED_}}}{GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能A端口时钟GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_7;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;/度50MHzGPIO_Init(GPIOA,&GPIO_InitStructure);//初始化GPIOD3,6GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_4);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能A端口时钟GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Init(GPIOB,&GPIO_InitStrGPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_8);OLED_WR_Byte(0xAE,OLED_CMD);//--turnoffoledpanelOLED_WR_Byte(0x00,OLED_CMD);//---setlowcolumnaddressOLED_WR_Byte(0x10,OLED_CMD);//---sethighcolumnaddressOLED_WR_Byte(0x40,OLED_CMD);//--setstartlineaddressSetMappingRAMDisplayStartLine(0x0OLED_WR_Byte(0x81,OLED_CMD);//--setcontrastcontrolregisterOLED_WR_Byte(0xCF,OLED_CMD);//SetSEGOutputCurrentBrightnessOLED_WR_Byte(0xA1,OLED_CMD);//--SetSEG/ColumnMapping0xa0左右反置OLED_WR_Byte(0xC8,OLED_CMD);//SetCOM/RowScanDirection0xc0上下反置OLED_WR_Byte(0xA6,OLED_CMD);//--setnormaldisplayOLED_WR_Byte(0xA8,OLED_CMD);//--setmultiplexratio(1to64)OLED_WR_Byte(0x3f,OLED_CMD);//--1/64dutyOLED_WR_Byte(0xD3,OLED_CMD);//-setdisplayoffsetShiftMappingRAMOLED_WR_Byte(0x00,OLED_CMD);//-notoffsetClockOLED_WR_Byte(0xDA,OLED_CMD);//--setcompinshardwareconfigurationOLED_WR_Byte(0x12,OLED_CMD);OLED_WR_Byte(0xDB,OLED_CMD);//--setvcomhOLED_WR_Byte(0x40,OLED_CMD);//SetVCOMDeselectLevelOLED_WR_Byte(0x02,OLED_COLED_WR_Byte(0x8D,OLED_CMD);//--setChargePumpenable/disableOLED_WR_Byte(0x14,OLED_CMD);//--set(0x10)disableOLED_WR_Byte(0xAF,OLE}************************************************

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论