本帖最后由 Liyj336 于 2020-6-28 12:32 编辑
【RT-Thread作品秀】家庭智能报警器作者:李元江 概述(说明应用产生的背景、所采用的软硬件方案、实现功能)进入21世纪以来,我国科技日新月异,经济飞速发展,不断推动社会进步和发展,国民生活水平大大提高,生活方式也发生了很大的变化。2017年我国GDP总量为131735.85亿美元世界排名位于第二,GDP总量比十年前翻了三倍,由此可见国民的人均收入越来越多,比以前拥有更多的财产。但这也给人们的日常生活带来了安全隐患,如入室盗窃案件的发生率显著增加。因此家庭防盗对保护人民财产安全具有现实意义。同时,随着人民生活水平的提高,洗衣机、空调、电视机等各种家电在家庭中越来越普及,这些电器设施都存在火灾隐患,如若发生火灾却不能及时报警,将给人民财产造成极大损失。所以,研究智能化的家庭报警装置来减少火灾和盗窃的发生是十分必要的。 本设计的家庭智能报警器,主要的功能是防火和防盗,使用传感器对火灾和室内非法入侵进行检测,并完成报警。增加GPRS无线通讯、录音播放等模块使报警功能更多样化和智能化,使用无线收发模块与传感器相结合,这样可以实现传感器和MCU的无线连接,让火灾探测器和人体感应探测器安装更方便,没有线路的困扰可以随意安装在想要检测的区域。GPRS无线通讯模块是系统重要的部分,家里有报警警情发生时,系统会拨打预先设置好的电话号码,系统也能与手机端进行数据传输,这样可以在手机APP可以观察家里的温湿度和报警情况,在APP端拥有控制按钮,可以设置系统的手自动模式、布防、撤防。使用实时时钟模块让系统可以拥有实时时间,每次启动防火防盗装置时不必都进行时间设置。本防火防盗系统可以设置成手动模式或者自动模式,手动模式下可以手动设置系统进入布防状态还是撤防状态。系统拥有一个OLED12864显示屏,能够显示实时时间、布撤防时间、室内温湿度、布撤防状态和手动自动模式。录音播放模块检测到非法入侵,会循环播放事先录制好的声音,给入侵者起到震慑作用。系统设置有蜂鸣器,在检测到火灾发生时蜂鸣器会发出响亮的蜂鸣声。系统设置有四个按键。按键1:可以选择防火防盗系统自动、手动模式。按键2:在系统在手动模式下可以控制进入布防状态还是退出布防状态。按键3:可以对系统自动模式下的布防时间进行调节。按键4:对系统自动模式下撤防时间进行调节。当用户在家时,可以对系统进行撤防控制,关闭防盗的功能,防止用户在家时产生错误的报警信息,系统在手动模式下时,可以通过主机按键或者手机APP按钮对系统进行撤防。每三秒系统通过GPRS模块向手机APP发送温湿度和探测器检测情况。当有火灾发生时,蜂鸣器发声报警,并向用户手机打电话报警。在用户不在住宅的时间内,可以在系统手动模式下进行人工设防,也可以让系统进入自动模式,系统会根据设置好的布防时间、撤防时间进行布防或者撤防。当系统在布防状态时说明已经开启防盗的功能,无线门磁开关探测器探测到火灾或者无线人体感应探测器到非法入侵,产生的报警信号经过无线收发模块传到单片机,之后会进行一系列的报警措施,向用户手机拨打电话,循环播放预先录制好的语音震慑入侵者。 RT-Thread使用情况概述(简要总结下应用中RT-Thread使用情况:内核部分、组件部分、软件包部分、内核、其他)由于这次比赛准备的时间比较急,很多RT-Thread好的资源都没有使用到,代码是基于官方提供的雅特力F403A的例程基础上进行更改。主要使用了内核线程管理部分的资源。创建有6个线程。 线程一:OLED12864显示更新线程。 线程二:给手机端发送数据线程。 线程三:系统进行自动布撤防线程。 线程四:传感器检测线程。 线程五:按钮控制线程。 线程六:报警任务线程。 硬件框架(概述应用所采用的硬件方案框图,并对核心部分做介绍)系统主体有四个部分:控制主机、无线火灾探测器、无线门磁开关探测器、无线人体感应探测器,每个部分都需要+5V电源进行供电。传统的防火防盗装置采用有线连接的方式,这不利于探测器的安装,也会影响住宅的美观。本设计的防火防盗系统做了很大的改进,在系统的四个部分使用无线收发模块,实现主机和探测器之间的无线连接。总体组成框图如图1所示。 图1 系统框架 1. 控制主机 系统控制主机是系统的核心部分,能对系统进行控制,显示系统的状态信息,对传感器传输的数据进行处理,发送报警信息等。控制主机内部硬件如下: (1)控制器MCU MCU是防火防盗系统正常工作的基础,对I/O口的输入信号进行分析处理,控制I/O的输出电平信号进而控制系统其它模块的正常工作。 (2)无线通讯模块 无线通讯模块主要作用是利用GSM网络实现系统在警情发生时,能自动呼叫预设的手机号码;使用GPRS网络让系统与手机进行数据传输,实现在手机APP可以观察系统的状态和室内情况,还能通过APP对系统进行控制。 (3)温湿度传感器 使用温湿度传感器可以检查住宅的温湿度情况,并把温湿度显示在OLED显示屏,还能通过GSM/GPRS模块把检测到的温湿度发送到手机APP。 (4)声音报警单元 声音报警单元包括蜂鸣器和录音语音模块,蜂鸣器在火灾发生时可以发声报警,录音语音模块在检测到有人非法入侵时,循环播放提前录好的声音,对盗贼进行震慑。 (5)键盘模块 本系统设置有四个按键。按键1:可以选择防火防盗系统自动、手动模式。按键2:在系统的手动模式下可以控制系统进入布防状态还是撤防状态。按键3:可以对系统自动模式下布防时间进行调节。按键4:对系统自动模式下撤防时间进行调节。 (6)无线接收模块 单片机与无线接收模块连接,干簧管传感器、烟雾传感器、人体感应传感器与无线发射模块连接,这样实现了单片机和传感器之间的信息无线传输,解决了布线带来的各种困扰,也不会影响住宅的美观。 2. 无线门磁开关探测器 无线门磁开关检测器主要由干簧管传感器、磁铁、无线发射模块、电源模块组成。使用时把检测器放在门上,当门被打开时,干簧管和磁铁分开,干簧管没有磁铁的磁化作用,产生报警信号,并由无线发射模块发送报警信号。 3. 无线人体感应探测器 无线人体感应检测器由人体红外感应模块、无线发射模块、电源模块组成。当有人在人体感应模块的检测区域内活动,传感器就会产生报警信号,并由无线发射模块发送报警信号到主机。 4. 无线火灾探测器 无线火灾检测器是由MQ-2烟雾传感器、无线发射模块、电源模块组成。MQ-2烟雾传感器不仅可以检测到颗粒状烟雾,还能检测到甲烷和一氧化碳等气体,可以对家里的火灾和燃气泄漏进行检测。 软件框架说明(介绍应用所采用的软件方案框图、流程图等)系统软件设计主要有包含MAIN主程序设计、各线程任务处理程序设计。 在MAIN主函数中,主要完成MCU外设初始化,板级外设初始化,和创建各线程任务,如图2所示。创建完线程,程序由RT-Thread系统进行任务调度,完成各线程处理。 图2 主程序流程 软件模块说明(介绍应用软件关键部分的逻辑、采用的实现方式等)1.OLED显示线程 OLED12864拥有图形显示数据RAM(GDDRAM)是一个为映射静态RAM,采用保存位模式来显示相关内容。该RAM容量大小为128*64b,与显示屏上的128*64个点阵相对应,要实现控制显示屏哪个点阵的亮灭可以通过改变该点阵对应的RAM位为0或者1。 由于OLED12864模块没有带字库,要显示符号、文字或者图片只能通过取模软件把内容转化为16进制码来实现。比如要显示一个温字,在取模软件输入温字,在显示区域内会出现如图3所示,这是把通过点阵的方式显示出一个温字,亮的地方为1,暗的地方为0,生成以下的十六进制代码。 温(0) {0x10,0x60,0x02,0x8C,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00}, {0x04,0x04,0x7E,0x01,0x40,0x7E,0x42,0x42,0x7E,0x42,0x7E,0x42,0x42,0x7E,0x40,0x00},/*"温",0*/ 图3 取模软件显示温字图 在你想要显示的地方给OLED12864写入数据,就能显示相应的内容。在OLED显示子程序中有显示手自动模式、布撤防状态、温湿度情况、实时时间和自动模式下的布撤防时间。OLED显示子程序流程如图4所示。 图4 OLED显示线程流程图 2.数据发送线程 系统设置为每隔3秒,发送防火防盗检测情况、温湿度情况到手机APP,流程如图5所示。 图5 数据发送线程流程图 3. 按键控制线程 按键控制主要完成设置手自动模式,调整自动模式下布撤防的时间。设置有软件去抖动,当按钮按下被松开时才进行相应操作,防止被认定为多次按键操作,其程序流程如图6所示。
图6 按键控制线程流程图 4.传感器检测线程 探测器检测子程序主要是用来检测是否有探测器的报警信号传过来。如果有报警信号传过来,则设置相关的标志位,在报警子程序中,会根据这些标志位执行相应的报警功能。在系统布防状态下才会对门磁开关探测器和人体感应探测器进行报警信号的检测,而对于火灾探测器在布撤防状态都会进行报警信号的检测,其程序流程图如图7所示。 图7 探测器检测线程流程图 图8 自动布撤防线程流程图 5.自动布撤防控制线程 自动布撤防就是在自动模式下系统根据时间自动进行布撤防的操作。如果你想在白天上班时进行布撤防,则设置布防时间小于撤防时间;如果想在晚上休息时进行布撤防,设置布防时间大于撤防时间。其程序流程如图8所示。 6.报警线程 报警子程序会根据人体感应标志位、烟雾标志位、门磁开关标志位执行报警程序,这三个标志位通过检测报警信号子程序进行置位复位。其程序流程如图9所示。 图9报警线程流程 演示效果(演示效果请采用3张高清图片,并录制一段不少于1min视频解说应用所实现的效果,视频上传至B站或者腾讯视频,给出链接即可)图10 手机端数据显示图
图11 OLED显示内容
图12 系统拨号报警情况
演示视频链接:https://b23.tv/D9urZV 代码地址(代码可上传至gitee或者github,给出链接地址或压缩包方式)代码地址: https://gitee.com/Liyj_336/RTT_AT32_Code.git
|