物联网工程-基于onenet的智能家居安防系统_第1页
物联网工程-基于onenet的智能家居安防系统_第2页
物联网工程-基于onenet的智能家居安防系统_第3页
物联网工程-基于onenet的智能家居安防系统_第4页
物联网工程-基于onenet的智能家居安防系统_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

基于OneNet的智能家居安防系统摘要:传统的安防措施在很多方面不仅耗时和消耗人力物力,并且容易让用户错失事故处理最佳时段。为了解决该问题,本人设计了一个基于OneNet的智能家居安防系统。它可以利用各传感模块作为信息采集点,采集家居环境中的各个区域的值。该系统以STM32F103ZET6芯片为信息处理中心,能够根据用户需求对采集的数据实时整合处理,并且通过EDP协议把家居情况发送到OneNet手机端,方便用户实时远程监控。不仅如此,它还可以设置阀值,当测量数据超范围时可以实时发送警报信息。关键词:家居安防,STM32,OneNet

BasedontheOneNetsmarthomesecuritysystemdesignAbstract:Inmanyaspects,thetraditionalsecuritymeasuresnotonlyconsumetimeandmanpower,butalsomaketheuserslosethebesttimetodealwiththeaccident.Tosolvethisproblem,IdesignasmarthomesecuritysystembasedonOneNet,whichcollectsthevaluesofeveryareainthehomeenvironmentthrougheverysensormodule.ThesystemtakesSTM32F103ZET6chipastheInformationProcessingCenter,whichcanintegratethecollecteddatainrealtimeaccordingtotheneedsoftheusers,andsendthehomesituationtotheOneNetmobilephonethroughEDPprotocol,soastofacilitatethereal-timeremotemonitoringoftheusers.Furthermore,itcansetthresholdstodeterminewhetherthecollecteddataneedstosendareal-timealertmessagetotheuser.Keywords:HomeSecurity,STM32,OneNet

目录1 绪论 11.1 研究背景和意义 11.1.1 背景分析 11.1.2 本课题的研究意义 11.2 课题研究方法和内容 21.2.1 研究方法 21.2.2 研究内容 22 系统分析 32.1 用户需求分析 32.2 可行性分析 42.2.1 经济可行性分析 42.2.2 技术可行性分析 43 系统总体设计及硬件实现 53.1 系统总体设计 53.2 系统硬件实现 53.2.1 STM32控制器模块 53.2.2 红外寻迹循迹避障传感器 63.2.3 DHT11温湿度传感器 73.2.4 HX711压力传感器模块 83.2.5 MIFARERC522RFID射频传感器 83.2.6 OV7670图像传感器 93.2.7 ESP8266串口WiFi 93.2.8 0.9寸OLED显示屏 103.2.9 其他模块设计 104 系统软件实现 124.1 开发工具的介绍 124.1.1 KeiluVision5 124.1.2 OneNet 124.2 逻辑框架 124.3 硬件模块控制代码实现 134.3.1 红外寻迹循迹避障传感器的配置 134.3.2 DHT11温湿度传感器的配置 144.3.3 HX711压力传感器模块的配置 154.3.4 MIFARERC522RFID射频传感器模块的配置 174.3.5 OV7670图像传感器模块的配置 184.3.6 ESP8266串口WIFI模块的配置 194.3.7 按键和蜂鸣器模块的配置 204.3.8 TFT显示屏配置 204.3.9 OLED显示屏配置 224.3.10 main主控函数 234.3.11 串口初始化 244.3.12 中断函数 254.4 手机端软件实现 264.4.1 安全提醒界面 264.4.2 智能控制界面 284.4.3 智能监控界面 304.4.4 EDP通信协议 325 系统调试与效果 335.1 调试步骤 335.2 调试问题和处理方法 335.3 运行效果演示 335.3.1 安全提醒功能 335.3.2 智能控制功能 345.3.3 智能监控功能 356 结论 36参考文献: 37致谢 38PAGE38绪论研究背景和意义背景分析本世纪是信息技术高速发展的黄金时代,并且现代人们家居生活质量水平不断地提高。在居住的方面,我们不再满足于日常生活的冷暖,更加注重家居生活的安全方面。近年来各种类似入室盗窃,入室偷窥,家居火灾等家居安全事故数量越来越多。为了应对该问题,目前最为广泛的处理措施是安装防盗网防盗门摄像头等设备。可是传统的处理方式防君子不防小人,达不到高效应对和预防安全事故的目的。监测不力,处理不及时都是家居安防失败的主要原因。因此,我认为智能家居安防尤其重要,此时毕业设计选题智能家居安防系统就是想针对这方面进行研究,同时希望能够在此有所收获。物联网网络传输层需要第三网络运营商的支持,因此在这次设计中将使用华为公司的OneNet。不仅是因为云的概念不断深入人心,新的家居安防概念也被更多人理解与接受。而且OneNet日益标准化,它开放标准,打破封闭,大幅降低建网成本,更加合适日常的家居安防环境搭建。同时降低了网络的复杂度,很多人都可以使用,不再局限于学习互联网方面的人。OneNet有数据传输可靠、时效快的特点,尽可能确保家居安全系统反应快和回馈准确。本课题的研究意义家居安全事故总是接二连三地发生,类似单身女性单凭个人的能力是比较难对抗入室强盗或者偷窥狂魔而遇害,孤寡老人会因为记忆力的衰退而忘记厨房关火而造成火灾等事故越来越多。由此可知新型家居安全已经是市场需求,旧时的家居安全措施过于简单,目前已经不能很好地满足用户新的需求。因此选取此类研究论题,希望设计出一款基于OneNet的智能家居安防系统。它不但可以预防意外,而且当意外发生时,帮助用户求助外界。同时希望可以提高系统感知外界自主判断力,提高信息传输效率,减少劳动力,给用户提供一个安全舒服的家居环境。并且希望系统可以与手机连接,这方便生活,减少不必要的繁杂。手机端有提醒信息功能,这更是防患于未然。课题研究方法和内容研究方法本系统在设计过程中主要采用了以下的研究方法:1、文献研究法。下载同类题材的期刊和论文等相关文献查看从而使自己全面地、正确地了解所要研究内容。2、调查法。在家庭和朋友群询问他们最希望安全家居具备的功能,同时在本人生活的小区上门访问居民对家居安防系统的需求。进而完善该系统应具备的功能。3、个案研究法。对众多家居安全事故发生的某一特定对象加以调查分析,弄清楚特点及其形成过程和原因。观看各类法制关于家居安全事故的案件,找到攻破安全问题的难点并且进行预防处理。4、实验法。先对该系统需要的功能局部调试和测试代码,系统是否能如期地实现其功能。最后合并调试环节,对运行测试的结果进行分析、修改bug、完善系统。研究内容本论文编写总共分为六个部分,具体的内容安排如下::绪论。主要分析家居安防系统设计的意义和介绍本论文的研究背景以及说明课题题研究方法和内容。:系统分析。对用户需求和可行性进行分析。:系统总体设计和硬件实现,介绍芯片和各模块的描述及功能。:系统软件实现。主要介绍开发工具、系统逻辑框架、各硬件模块控制代码的实现和软件模块的实现。:系统调试。不同角度展示系统运行效果。:结论。主要分析系统的优点,同时发掘系统问题和可改进之处以及如何对缺点进行改进等。

系统分析用户需求分析对于智能家居安防系统,用户基本需求如下:当家居环境测量值高于阀值立即通过手机端通知用户。不需要立即回家就可以看到家居实际情况。忘记关门有补救方法。(4)安全性相对高。(5)设备方便操作、占地位置小。(6)仅使用手机端,无需再佩戴其他设备。(7)当意外发生,可以求助。针对第1点,系统将设置安全提醒模块,异常情况及时发送警报;针对第2点,系统将增加智能监控模块,使用手机即可查看家居的每一个角落情况和当前温湿度值;针对第3点,系统将添加智能控制模块,可以远程控制门禁状态和部分家用电器开关,给用户一个舒适的环境;针对第4点,安防系统向智能化发展,减少人工操作,避免人为疏忽,提高安全性。并且应用系统将添加账号密码登录和规定系统仅使用指定WiFi名称和密码,这大大地增加系统的安全性;针对第5点,本系统将采用微小型的STM32F103ZET6单片机作为控制核心,占地体积小。同时系统操作主要体现在手机APP上,界面简单,方便操作。针对第6点,系统只需要在手机浏览器或者下载设备云APP登录账号就查看家居系统;针对第7点,系统将设置按键触发蜂鸣器,锋利的蜂鸣器声音可以起到警示作用和吸引邻居的关注。本系统设计根据用户需求,通过代码编写进行系统设计来实现智能监控、安全提醒、智能控制、按键求助等功能。可行性分析经济可行性分析经济可行性的具体标准有投入产出比、效率、利润率等。在效率方面,用户可以在最快的时间就可以掌握最新的家居情况,便捷用户,有效提高家居事故处理效率;在投入产出比方面,OneNet平台大部分控件可以提供免费使用。前期系统制作需要传感器和芯片等支出费用,并且该类产品价格低廉;后期费用支出主要在于服务器费用方面。因此投入产出比相对较低;在利润率方面;产品投入低和维护成本低,并且智能家居安防市场呈现出生机勃勃的走势,越来越多的用户愿意在智能家居安防建设方面付出。此具有很大的利润空间,因此利润率相对传统安防市场高。技术可行性分析(1)本系统主要功能代码通过c语言编辑,简洁紧凑,具有很高的运行效率。并且涉及的知识点在学校有接触学习。(2)OneNet技术成熟,轻便开发。在一定的时间,可以完成系统的编程设计。综上所述,该系统从经济可行分析和技术可行性分析方面考虑都是可行的。

系统总体设计及硬件实现系统总体设计根据用户的功能需求以及结合所学的专业知识,本系统总体设计主将分为硬件设计部分和软件设计部分。具体如下:硬件部分使用STM32F103ZET6单片机、HX711压力传感器、红外寻迹循迹避障传感器、MIFARERC522RFID射频传感器、DHT11温湿度传感器、ESP8266串口WIFI、OV7670图像传感器、2.8寸TFTLCD液晶触摸屏、0.9寸的Oled显示屏等。软件部分则分为STM32F103ZET6的初始化、各模块初始化、OneNet界面设计、数据的采集、传输和处理。在这其中,各类传感器通过IO端口与STM32进行信息传输,同时STM32芯片通过EDP协议与OneNet手机端通信。当各类传感器检测到家居各区域的信息时传输到STM32芯片,使用一定的条件判断决定是否发送提醒信息。系统硬件实现STM32控制器模块目前STM32已经成为32位领先型单片机。它不仅体积小巧,性能较好,可靠性相对高,而且成本低、寿命长。这些优点可以说明它合适于家居安防系统。这次系统设计使用的是STM32F103ZET6芯片,它方便调试比较复杂和需要大量FLASH场所的程序,各种外设功能和高达72MHz的CPU工作频率非常合适开发家居安防系统应用。如图3-1所示,本系统设计使用其中的GPIO引脚用于和各传感器进行数据的通信,VDD引脚提供各传感器的供电。芯片引脚如下:图3-1STM32F103ZET6最小系统红外寻迹循迹避障传感器本次设计使用红外类型是红外寻迹循迹避障传感器。它具有干扰小、使用方便等特点。该模块的输出端口out可以与STM32的IO口连接。当红外寻迹循迹避障传感器检测到异常障碍物的时候,out端口输出低电平信号。其中检测的距离可以使用电位器进行人为调节,方便使用。当使用顺时针方向去调电位器,检测距离变长。同时逆时针方向调电位器,检测距离变短。可以根据自己的需求去调节电位器从而改变检测的距离。障碍物目标的反射率和形状的影响检测距离的主要因素。其中面积越小距离越大,颜色反射率越高距离越大。但是本系统设计对距离的精准性初步没有详细要求,使用模块是比较电压通过电位器设定好阀值。因此可以根据是否超过阀值判断是否有外界生物入侵到家居。本系统设计使用模块out端口输出电平信号(0和1)。与STM32的连接如图3-2和图3-3所示:图3-2门模块的红外寻迹循迹避障传感器连接图示图3-3窗模块的红外寻迹循迹避障传感器连接图示DHT11温湿度传感器DHT11温湿度传感器是含有已校准的相对湿度和相对温度数字信号输出的复合传感器。该传感器是由感湿元件、八位单片机和NTC热敏电阻测温元件相连接。它是家居安防系统的最佳选项,因为它无需额外的部件就可以进行超长距离的信号传输,可达二十米以上。同时,DHT11有低功耗模式和高速模式可以超快响应转化,因此可以节省能耗。该传感器传输数据传输一共为四十比特,遵守低位后出规律。数据格式:八比特湿度整数数据+八比特湿度小数数据+八比特温度整数数据+八比特温度小数数据+八比特校验和,数据的传输是使用单总线数据格式。STM32与DHT11之间的信息通讯和数据同步是使用DATA串口。本系统设计采集温湿度数据通过读取STM32的PE0引脚的值获取,与STM32的连接如图3-4所示:图3-4DHT11温湿度传感器连接图示HX711压力传感器模块HX711压力传感器是一款采用了精度高的模拟/数字转化器芯片的传感器。该芯片不仅内含有两路模拟通道和一百二十八倍的增益低噪声可编程放大器,还集成了片内时钟振荡器等外围电路。这个是一款响应速度较快、精确度高、抗干扰能力强、集成度高的采样前端。串口通讯由管脚SCK和DOUT构成。它用来输出数据、增益和选择输入通道。与STM32的连接如图3-5所示:图3-5HX711传感器连接图示MIFARERC522RFID射频传感器MFRC522是一款采用了调制和解调概念和有电压低、成本少、易携等特点的RFID读写卡芯片。内部提供了高效率的解调和解码电路处理应答器信号。它采用串行通信与STM32芯片通信,且有SPI、I2C和串行UART模式可以选择,本安防系统设计使用SPI模式,减少连线,在家居环境中布线更安全方便。图3-6MFRC522传感器连接图示MFRC522支持相对独立的多对电源供电,可以隔绝不同模块之间的信息干扰,可以确保系统稳定运行;硬件掉电、软件掉电和发送器掉电3种节电模式可以减少耗能;具备循环冗余校验码和奇偶校验功能,提高可靠性。该模块与STM32的连接方法如图3-6所示:OV7670图像传感器OV7670具有支持VGA分辨率摄像头和影像处理器功能。改模块对工作电压要求低低和占空间小,比较合适嵌入式应用开发。可以通过自动影响控制功能,得到清晰并稳定的彩色图像。例如:自动曝光、锐度、白平衡,自动消除灯光条纹、伽玛曲线等。本系统设计的照片像素是240*320。这个模块占用STM32芯片18个引脚,与STM32的连接方法如图3-7所示:图3-7OV7670传感器连接图示ESP8266串口WiFiESP8266芯片是一款使用简便和不需编写时序信号的串口通讯转无线通讯模芯片。关断电流不大于5微安,深度睡眠时电流是10微安以下,待机时消耗功率小于1.0mW。因此该模块能耗消耗非常低,非常合适家居环境使用。并且使用灵活便捷,在2ms之内就可以唤醒、连接并传递数据包。数据接口支持HSPI、I2C、GPIO、UART等。本设计使用的是GPIO串口传输。ESP8266串口WiFi模块有Station、AP、AP兼Station三种工作模式。本系统设计是采用Station模式,可以连接上当前环境WIFI热点。该模块与STM32的连接如图3-8所示:图3-8ESP8266串口WiFi传感器连接图示0.9寸OLED显示屏该硬件分辨率为128*64,像素点大小为0.154*01815(mm),无需背光就可显示中文字。功耗低和对比度高合适家居安防小系统。与STM32的连接如图3-9所示:图3-9OLED显示屏连接图示其他模块设计(1)TFT显示屏该硬件是一款尺寸为2.8寸,分辨率为320*240,色彩深度为16位的通用TFTLCD模块。它具有功耗低、背光亮度好和高灵敏度的优点,非常合适家居安防系统图片显示。该模块与STM32的连接如图3-11所示:图3-11TFT显示屏连接图示(2)KEY按键本系统使用stm32芯片自带的KEY键做按键处理。与STM32的连接如图所示:图3-12KEY连接图示(3)蜂鸣器本系统使用stm32自带的蜂鸣器与按键配合完成功能。与STM32的连接如图所示:图3-13蜂鸣器连接图示(4)LED灯5mm的LED灯珠发光二极管是具有二个电极的装置,单方向传导电流的器件,与STM32的连接如图3-14所示:图3-14LED灯连接图示

系统软件实现开发工具的介绍KeiluVision5KeiluVision5是51系列兼容C语言软件开发系统。Keil通过一个集成开发环境可以把C编译器、调试器、宏汇编、编辑器、库管理等合并在一起。使用它不仅编译后生成的汇编代码紧凑,而且产生的目标代码效率极其高。在软件的开发时可使用C语言,在结构、阅读性、维护性上有显著的优势,因而容易理解。OneNetOneNet平台支持多类传感器和硬件的急速接入和BigData服务。它不仅提供丰富的应用程序编程接口和应用模板有效地减少物联网应用开发和部署成本,还满足系统设备连接、协议适配、数据存储和安全性等需求。OneNet平台的数据传输支持使用五大协议:NB-LoT协议、EDP协议、Modbus协议、TCP协议、MQTT协议。本系统优先使用EDP协议。该协议适用于系统设备和平台保持长连接点对点控制的安防家居的系统。逻辑框架系统设计整体逻辑框架如图4-1所示:在STM32开发板端,对各硬件模块初始化,对于采集的数据处理并在对应的模块显示。同时这些数据传输到OneNet端,进行数据交互,对应地修改各模块的状态值。OneNet平台还可以下发命令到STM32,收到数据信息对于修改模块的状态值图4-1逻辑框架图示硬件模块控制代码实现红外寻迹循迹避障传感器的配置第一步定义KEY_Init函数去初始化红外传感器,把GPIO_Mode设置成上拉输入;第二步使用STM32的库函数GPIO_ReadInputDataBit使用IO读取电平数据给予对应芯片的引脚。当没有数据变化的时候,读出来的IO值是1;当红外检测到数据的时候,读出来的IO值是0。以下为红外初始化配置以下为IO读取电平函数DHT11温湿度传感器的配置对于DHT11温湿度传感器的配置需要完成以下操作:首先在文件Dht11.c中添加头文件dht11.h;第二步,设置DHT11数据引脚模式。定义DHT11_Input函数来设置DHT11数据引脚为输入模式和定义DHT11_Output来设置DHT11数据引脚为输出模式;第三步,定义DHT11_ReadData把读取到的数据整合;第四步,读取数据。定义DHT11_ReadByte函数来读取DHT11传感器的每一个字节和定义DHT11_ReadData来整合数据;最后定义DHT11_GetTemp用来读取IO口的温度数据和定义DHT11_GetHemp用来读取IO口的湿度数据。该模块的流程图如图4-2所示图4-2DHT11的配置流程HX711压力传感器模块的配置对于HX711压力传感器的配置需要完成以下操作:第一步在HX711.c文件里面添加头文件HX711.h和delay.h;第二步定义Init_HX711pin初始化函数;第三步定义HX711_Read函数,使用128的增益读取数据;第四步定义Get_Maopi函数调用HX711_Read函数去获取初始时的压力数据,用于调整精确度。第五步定义Get_Weight函数,它调用HX711_Read函数读取数据和调用Get_Maopi函数调整精确,从而来获取实时的重量。设置300g的阀值,当实时重量与初始值查值超过阀值就设定Flag_Error为1,否则为0;以下为HX711压力传感器的读取数据的代码MIFARERC522RFID射频传感器模块的配置对于RFID传感器的配置需要完成以下操作:第一步在rc522_function.c和rc522_config.c文件里面对应添加rc522_function.h、rc522_config.h、stm32f10x.h、delay.h、string.h、usart.h、oled.h、rc522_config.h头文件;第二步定义PcdReset函数用于用于对RC522复位,设置发送和接收的常用模式和MIFARE卡通讯;第三步定义RC522_Init函数进行初始化,对SPI进行了配置。定义PcdRead函数读取RFID卡数据,并且在其中调用GPIO_SetBits和GPIO_ResetBits库函数来设置1和设置0;第四步定义M500PcdConfigISOType函数对ISO14443A进行初始化;第五步定义IC_test函数测试门禁状态值。在这其中调用PcdRequest函数去寻卡和PcdAnticoll函数防冲撞;具体流程如图4-3所示图4-3RFID配置流程OV7670图像传感器模块的配置对于OV7670传感器的配置需要完成以下操作:第一步在ov7670.c文件里面添加以下8个头文件:sys.h、ov7670.h、ov7670cfg.h、timer.h、delay.h、usart.h、sccb.h、exti.h;第二步,定义OV7670_Light_Mode设置图片的白平衡,使用switch选择5中模式其一;定义OV7670_Color_Saturation函数设置图片的色度;定义OV7670_Brightness设置亮度;定义OV7670_Contrast函数设置对比度;定义OV7670_Special_Effects设置特性的模式;第三步,定义OV7670_Init函数对图像传感器模块初始化;第四步,定义OV7670_Window_Set函数设置图片设置窗口,在参数分别输入图像的X轴始点,Y轴始点,宽度,高度,来控制图片分辨率。这个缩小数据量来适应数据的传输;最后,定义camera_refresh函数对LCD显示屏进行图片的输出,并且对图片进行格式转换平台可识别的JPEG格式;定义OneNet_SendData_Picture函数调用ESP8266_SendData函数把JPG_enc_buf数组缓存的照片上传到OneNet平台;转照片格式代码所示:ESP8266串口WIFI模块的配置对于ESP8266传感器的配置需要完成以下操作:首先在esp8266.c文件里面添加以下头文件:stm32f10x.h、esp8266.h、delay.h、usart.h、string.h、stdio.h和定义ESP8266_Init函数初始化该模块;然后定义ESP8266_WaitRecive函数去循环检测是否有数据需要接收;同时定义USART3_IRQHandler函数去收发中断,防止串口被刷爆;其次定义ESP8266_SendCmd函数去发送指令。同时定义ESP8266_SendData函数在接受发送指令后发送数据到云平台;具体如图图4-7所示。同样的,云平台也是可以获取数据。定义函数ESP8266_GetIPD去获取数据。具体如图4-8所示。ESP8266串口WIFI发送数据实现:ESP8266串口WIFI获取数据的实现:按键和蜂鸣器模块的配置对于按键和灯的配置需要完成以下操作第一步key.c文件中添加以下头文件:stm32f10x.h、key.h、sys.h、delay.h头文件;第二步定义KEY_Init函数对按键初始化;同时定义KEY_Scan函数在按键状态发生改变的时候改变蜂鸣器的状态。按键触发蜂鸣器的实现代码:TFT显示屏配置对于TFT显示屏的配置需要完成以下操作在lcd.c文件夹加lcd.h、stdlib.h、font.h、usart.h、delay.h头文件;第一步定义LCD_SetCursor函数去设置光标的位置;定义LCD_Scan_Dir函数设置lcd的自动扫描方向;定义LCD_DrawPoint函数画出X轴和Y轴的坐标;定义LCD_Display_Dir函数设置显示屏的显示方向,dir值为0就是竖屏,为1则是横屏;定义LCD_SSD_BackLightSet函数设置背光,当背光等级越大越亮;第二步定义LCD_Clear、LCD_Fill和LCD_Color_Fill函数分别用于清屏的填充颜色、填充指定区域的单种颜色和指定区域的颜色块;第三步LCD_Set_Window函数是用与设置窗口,并且自动设置画点坐标到左上角的窗口;定义LCD_Scan_Dir函数设置图片的扫描方向为从上到下,从左到右;定义LCD_Init用于对屏幕初始化;第四步定义LCD_ShowChar来显示一个字符,规定字符的大小为12即1206的字体,同时定义LCD_ShowString显示字符串,调用LCD_ShowChar函数使用while循环把字符串显示出来;用于在系统通电初始单片机功能以外的外接设备时显示是否初始化成功;最后,定义camera_refresh函数用于更新LCD显示,在有帧中断更新的时候调用LCD_Scan_Dir和LCD_Set_Window函数把图片显示出来。TFT显示屏图片显示实现代码:TFT显示屏的字符串显示的实现代码:OLED显示屏配置对于OLED显示屏的配置需要完成以下操作首先在oled.c文件里面添加以下头文件:oled.h、stdlib.h、delay.h、oledfont.h;第二步定义OLED_Init函数初始化SSD1306;第三步定义OLED_Set_Pos函数设置坐标;定义OLED_ShowChar显示一个字符,在这当中调用OLED_Set_Pos函数去设置字符显示位置;最后定义OLED_ShowString函数和OLED_ShowNum函数分别用于显示字符串、数字,当前函数的实现主要是调用了OLED_ShowChar函数实现了OLED屏幕内容的输出;屏幕显示字符串代码实现:

屏幕显示数字代码实现:main主控函数在main.c文件添加网络协议、网络设备、硬件驱动,单片机头文件;定义Hardware_Init函数用于初始化单片机功能以及外接设备;具体流程如图4-4所示:图4-4main流程图Main函数代码:串口初始化第一步定义USART_ITConfig函数使能接收中断,USART_Cmd函数使能串口;第二步定义Usart1_Init函数和Usart3_Init函数分别对串口1和串口3进行初始化,在这当中他们调用第一步的函数去使能接收中断和串口;最后Usart_SendString函数是用于串口的数据发送;定义USART1_IRQHandler函数用于串口1的收发中断。串口使用的波特率为1115200。中断函数首先在timer.c文件添加头文件timer.h、led.h、usart.h;第二步定义TIM6_Int_Init对定时器6初始化,使用TIM_ITConfig函数使能定时器6更新触发中断,调用TIM_Cmd函数使能TIM外设,利用RCC_APB1PeriphClockCmd函数使能时钟。在这里设置先占优先级为1.从优先级为3;第三步,定义EXTI8_Init对外部中断8初始化;使能各类外部中断通道,设置抢占优先级和子优先级为0;定时器6的初始化函数如下所示:外部中断8的初始化:

手机端软件实现本系统的手机端使用OneNet设计,OneNet手机端有3大界面:安全提醒,智能控制,智能监控。安全提醒界面通过在各个模块设置警告阀值,超过阀值出现提醒信息;智能监控界面可以在手机端发送命令来控制家居里的部分电器开关;智能监控界面可以查询当前家居监控图片和温湿度等。在OneNet平台创建一个接入协议为EDP的产品,该产品的产品ID为591593588。在OneNet页面点击添加应用设备,输入设备的名称和编号。该设备编号为IiU9E=FHKkT=uBdXjjx5MsySwfY=安全提醒界面该手机界面的尺寸为724*768。门、窗、房、厨为text控件,是固定文字。为了美观,给固定文本控件增加背景颜色rgba(110,193,142,1),文字加颜色rgba(183,44,44,1),具体如图所示。右边是对应的提醒语句,当超过阀值就出现文字提醒。这里是是text控件,属性为数据流值。门对应的数据流是DoorWarning;窗对应的数据流是windowWanin;房对应的数据流是BedWarning;厨对应的数据流是TemperatureW。刷新频率都为3秒。为了美观,给背景增加背景颜色rgba(150,210,71,0.52)。具体如图所示。图4-5OneNet安全提醒界面安全提醒界面代码实现智能控制界面该手机界面的尺寸为724*768。固定文本控件设置内容如上一样。按钮是switch类型,接受的数据是数据流类型。大灯对应的按钮数据流为Led。门禁对应的按钮数据流是Door。开关值为1,开关设备会向设备发上面设置的开关值。刷新频率为3秒。安全提醒界面本如图4-6所示:图4-6OneNet智能控制界面灯和门禁开关状态改变代码实现智能监控界面该手机界面的尺寸为724*768。当前温度和当前湿度是固定文本控件。对应的数值框是text控件,属性为数据流值。温度模块对应的是Temperature数据流,湿度模块对应的是Humidity数据流。按钮控件接受的是Photograph数据流。实时监控图片是通过按钮控制拍照。图片是image控件,接受的是pic数据流。智能监控界面里拍摄图片上传图片代码实现智能监控界面如图4-7所示:图4-7Onenet智能监控界面EDP通信协议产品ID、设备名、接入协议、鉴权信息以及MasterKey等参数可作为登录参数,使用SDK中的对应接口组织EDP连接报文,发送到平台,与平台建立EDP连接。首先定义EDP_PacketSaveData函数封装协议头;EDP_DeleteBuffer删除数据包。释放数据内存;ESP8266_SendData发送数据包,他们都被OneNet_SendData调用来OneNet平台数据上传;然后定义EDP_PacketCmdResp函数用于命令回复组包;EDP_UnPacketCmd用于下发命令解包;定义EDP_UnPacketRecv用于EDP数据接收类型判断;这些函数被OneNet_RevPro函数调用和用于OneNet平台数据的接收;图4-8EDP协议数据发送和接收的流程

系统调试与效果调试步骤第一步,根据功能需求编写代码。第二步,编译源代码生成可执行文件并下载到stm32,和云平台配合调试。第三步,在OneNet平台发布产品,可以通过手机浏览器登录账号或者下载设备云APP登录账号。调试问题和处理方法系统设计首次无法编译通过。答:根据报错语句可以发现很多地方头文件没有添加。无法传输图像答:查询相关的博客,把摄像头拍摄的RBG格式转化为BMP类型,BMG在转化为平台可识别的JPEG格式程序调试运行,但OneNet云平台在安全提醒界面无法按照设想传输报错语句答:查询开发者手册,发现可以数据流支持char类型,无法支持终端传输过来的中文字符。因此修改云端界面提醒语句为简单易懂英语语句。运行效果演示前期操作是为单片机连接电源,开启单片机。并开启规定名称和密码的WiFi给系统连接。在按键求助模块中是按下STM32芯片的KEY0键可触发蜂鸣器发出求救信号。为方便用户,本设计系统支持设备云APP和网站查看。具体上架公布网站是/iotbox/appsquare/appview?openid=a64afa3f10e2617af46e62c3e57ae5db安全提醒功能该界面在门禁状态为Close时,生物体靠近门对应的红外传感器,它采集的数据不触发门禁提醒功能,当门禁状态为Open时,生物体靠近红外采集的数据触发门禁提醒,手机页面对应出现DoorWarning字段。当生物体靠近窗对应的红外传感器,它采集的数据触发提醒功能,页面对应出现Windowwarning字段。当温度值超过阀值27度,触发提醒功能,手机页面对应出现TemperatereWarning字段;在OLED显示屏上显示当前温度值和湿度值。当压力传感器承重值超过阀值触发提醒功能,页面对应的出现BedWarning字段;在OLED显示屏上显示当前重量值。具体效果演示如图所示:

图5-1安全提醒界面手机界面演示效果图5-2房间对应的实物图智能控制功能在智能控制界面可以通过按键的ON或者OFF的转变下发命令控制灯的亮灭和门禁的开关。图5-3智能控制界面点灯操作图5-4LED灯控制效果智能监控功能在智能监控界面显示当前的温度和湿度,方便用户查看和根据判断警报信息精准性。可以通过按键的状态改变实时更新拍摄家居情况。图5-5智能监控界面拍照操作图5-6监控图片显示效果

结论本论文主要描述了家居安防系统中,硬件环境搭建和软件系统的设计过程,包括以下内容:Keil

uVision5

OneNet开发工具的介绍说明;各类传感器的介绍和引脚连接使用情况;STM32F103ZET6芯片的介绍和使用引脚情况;通过代

温馨提示

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

评论

0/150

提交评论