基于单片机的智能家居电控系统(源码+万字报告+实物)
目 录
摘 要 I
Abstract II
第一章 绪论 1
1.1 设计背景 1
1.2 国内外研究现状 1
1.3 设计的主要内容 2
第二章 设计方案 3
2.1 设计思路 3
2.2 模块的选择 4
2.2.1 单片机模块的选择 4
2.2.2 声音传感器的选择 4
2.2.3 人体传感器介绍 5
2.2.4 OLED液晶介绍 5
2.2.5 一氧化碳采集检测模块 6
2.2.6 独立按键式模块 6
2.2.7 数模转换器 6
2.2.8 指纹识别模块 7
2.2.9 WiFi模块 7
2.3 系统总体构成设计 7
2.4 本章小结 8
第三章 硬件电路设计 9
3.1 STM32概述 9
3.2 人体红外传感器模块电路 10
3.3 一氧化碳检测模块 11
3.4 OLED液晶显示电路 12
3.5 声音检测电路设计 13
3.6 指纹模块 13
3.7 按键控制电路 14
3.8 电源电路 15
3.9 报警电路 16
3.10本章小结 16
第四章 软件系统设计 17
4.1 软件主程序架构 17
4.2 OLED显示流程图 18
4.3 红外检测流程图 19
4.4 一氧化碳检测流程图 20
4.5 报警流程图 21
4.6 系统程序设计软件 22
4.7 设计过程 23
4.8 本章小结 24
第五章 系统调试 25
5.1 焊接调试 25
5.2 软件调试 27
5.3 硬件调试 27
5.4 功能调试 28
5.5本章小结 29
结论 30
参考文献 31
致谢 32
第一章 绪论
1.1 设计背景
近年来,由于科学技术的飞速发展,电子电路的普及,单片机在日常生活中越来越普遍。它的应用范围广泛,在智能物流、智慧农业等领域得到广泛应用。在这个信息化的世界里,单片机的普及使得人类的工作变得更加便捷,并且在许多领域取得了巨大的成就。它的出现,使得人类的工作变得更加高效、安全,并且在许多领域得到广泛应用[1]。这项技术的出现,不仅极大地推动了社会的进步,而且还为工业单片机的应用奠定了坚实的基础。
随着WIFI技术的不断发展,它被越来越多的人们使用,并且发挥着至关重要的作用。因此,决定将其作为电子防盗系统的核心部分。这种新兴的技术不仅可以提高安全性,而且也可以帮助更好地管理社区。目前,通过使用一氧化碳浓度传感器来监测室内的安全情况,如果发生盗窃事件,这些技术就会发挥重要的作用。为了深入探索这些技术的运用,开发了一款基于单片机的电子安全监控系统。
1.2 国内外研究现状
随着现在互联网技术的飞速发展,小型社区及个人的智能化电子控制技术也得到了广泛的关注。许多著名的公司都在努力开发出具备电子监测报警功能的智慧型住房,以满足社会对安全性的要求,并且这些技术的自动化、智能化程度也在逐步攀升。在许多发展中的城市,人们都拥有先进的消防、安全检查、紧急求助和紧急事件处置技术。这些技术包括使用计算机和互联网技术,对现场的数据和信息进行收集和整合,并在中心计算机上对其进行实时的分析和处理,从而更好地识别和控制危险的源头和特征,并制订相关的紧急措施。近年来,许多发达国家已经开始采用先进的技术[2],如智能家庭安全防护、远程医疗、智能安全检测、智能安全管理、智能安全检测、智能安全管理、智能安全管理,为世界所借鉴!
随着全球范围内的科学技术的进步,许多IT公司正在努力投入到智能家居电子设备的研究、制造以及应用中,以期获得更高的竞争力,特别是那些拥有较高财力、较强科学技术的公司,正在抢先一步抢占着中高端市场的份额。尽管国内的智能电控报警系统发展落后,仍然存在着一定的差异,尤其是在某些领域,中国的几个制造企业的产品,例如海尔、联想等,其优势在于其精致的设计、完善的配置以及卓越的性价比,使其在国际市场上更加占据优势。随着政府对家庭电气设备的监管日益严格,目前还未出台专门针对该领域的行业技术规范,因此,企业们纷纷采用多元化的技术解决方案,从而限制了该领域的发展[3]。但是,未来,随着技术的持续发展,必然会出现统一的规范。随着技术的不断发展,越来越多的国产智能电控系统已经开始使用无线通信技术,这种技术的应用可以降低系统的设计和施工的费用,为消费者提供更加便捷的服务,并且前景一片光明。
1.3 设计的主要内容
这个智能家庭电控系统的设计基于STM32单片机,它是单片机中最基础的组件之一。它的主要功能包括检测、显示和报警。人体红外传感器可以检测到周围环境中的人体红外信号,单片机可以接收到这些信号,并利用相应的公式计算出准确的值。在报警系统中,用户可以通过按键设置一氧化碳浓度,并选择防盗模式。如果浓度超过了预定的上限,系统会发出LED报警灯。这样,用户就可以及时发现并解决问题。
第二章 设计方案
2.1 设计思路
在设计智能家居电控系统的过程中,会优先考虑它的安全性。其中,安全报警系统的核心作用在于实现对住宅中的安全情况的实时监测,包括检查室内的可疑情况,以及及时采取相应的应对措施。为了实现这一目标,会使用传感器和报警灯。为了更好地检测室内的安全状态,我采取了多种技术手段,包括使用一氧化碳浓度传感器、人脸识别技术以及其他技术。与传统的电子安全报警系统不同,还采用了OLED液晶屏来提供更加直观的信息。除此之外,电子万年历也具备报警的功能,可以通过操纵按钮来调节一氧化碳浓度,并且可以使用人体红外线来检测,当浓度超出预定的阈值时,报警灯会亮起,以此来提醒使用者注意安全。在此基础上,经过多方考量,最终决定使用STM32单片机,它具备多种功能,而且性能优越,可以满足多种应急情况的需求。为了确保准确性,采用了先进的技术来实现对空气中的一氧化碳的监测。使用了ADC0832来实现模拟,并结合了OLED液晶屏、报警灯以及WIFI模块,构建了这套完整的监测系统。接下来,将深入探讨这项设备的运行机制,并以图2-1为例来展示其全貌。
图2-1 整体工作原理图
2.2 模块的选择
2.2.1 单片机模块的选择
方案一:采用STM32单片机,这款具有极佳的性价比、出色的功能的嵌入式应用,其中包括arMCOrtex-m核心、2.0V-3.6V的I/O管脚、出色的安全时钟工作模式、具有自动唤醒的低功耗工作模式、以及RC振荡器[4],以及可以在-40℃至+85℃或105℃之间调节的一氧化碳值。STM32单片机的外形如图2-1所示。
图2-1 为STM32单片机实物图
方案二:采用AT89C51单片机,区别于51单片机的位处理器,它可以实现多种复杂的处理任务,包括传输、调整位置、校准和检查,以及处理位的逻辑计数,具有极强的可靠性和可扩展性,可以满足各种复杂的需求。此外,该电影中的RAM空间中新增了一个具有多种作用的空间,可以非常方便地利用。
经过全面评估,决定采用方案一作为本次设计的核心控制单元。
2.2.2 声音传感器的选择
声音传感器可以被视为一种高灵敏度的麦克风,它可以捕捉和处理各种环境中的噪声,并将其转换为清晰的振动图像,但却无法准确地识别出噪声的强度。
方案一:采用声音检测声音传感器模块,该模块包括一个电容器式的驻极体话筒,用于监控音频信号的大幅度变化。在声波经由该器件的时候,驻极体的薄层将产生一个微弱的振荡,从而产生一个0-5V的信号,随即经由A/D变换器变换为数字,最终由数据采集器完成,并将数字发送至单片机。该声音模块具备高灵敏度的听觉,并且具备LM393类比器的输入/输出,使得它的信号更加明显,而且具备良好的波形质量,并且具备强大的控制功能,最高可以实现15mA的测量精度。它还配备了一个固定的螺丝孔,方便安置与固定。通过使用蓝色数字电位器,能够改变测量的准确性。详情请参见图2-2。
图2-2 声音传感器实物图
方案二:采用MAX4466麦克风前置放大器,MAX9814是一款低成本、高品质麦克风放大器。内置自动增益控制(AGC)以及低噪声麦克风偏置,该器件集成低噪声前置放大器、可变增益放大器(VGA).输出放大器、麦克风偏压发生器以及AGC控制电路[6]。
用于本设计需要采集人的声音信号完成相应功能,故选择方案一。
2.2.3 人体传感器介绍
方案一:采用HC-SR505小型人体感应模块。HC-SR505小型人体感应模块是基于红外线技术的自动控制产品,灵敏度高,可靠性强,超小体积,超低电压工作模式。广泛应用于各类自动感应电器设备[5],尤其是干电池供电的自动控制产品。
方案二:采用HC-SR501人体感应模块,HC-SR501人体感应模块是一款具有极高灵敏度的人体感应器,其最大检测角度可达100°,并且可以实现单次触发和重复触发两种模式,可以有效地保护环境。此外,该模块还配备了3个接线脚,分别为电源接入脚VCC、地接入脚GND以及测量结果输出脚OUT 。
用于本设计不由干电池供电,使用220V交流电进行供电,故采用方案二的HC-SR501人体感应模块。
2.2.4 OLED液晶介绍
方案一:采用OLED液晶屏,中景园科技设计的OLED液晶屏,其尺寸为0.96寸,拥有4032个像素的控制点,能够实现32个中文汉字的同步显示,而且每个屏幕上的文本数量也不会少于8个。该液晶显示器配备有10m/s的高速4线SPI总线,它的四个接口分别是D0、D1、RES和DC,它们分别负责控制和传输信号。此外,该显示器的工作电源采用直流5V,具体参见图2-3。
图2-3 OLED液晶屏实物图
方案二:LED点阵模块指的是利用封装88的模块组合点元板形成模块,它连接微处理器与8位数字的7段数字LED显示﹐也可以连接条线图显示器或者64个独立的 LED。其上包括一个片上的B型BCD编码器、多路扫描回路,段字驱动器,而且还有一个88的静态RAM用来存储每个数据[6]。只有一个外部寄存器用来设置各个.LED的段电流。每个数据可以寻址在更新时不需要改写所有的显示。LED点阵显示模块可显示汉字、图形、动画及英文字符等﹔显示方式有静态、横向滚动、垂直滚动和翻页显示等。
图2-4 LED点阵显示器实物图
因为方案一的OLED液晶显示器可以更直观地显示信息,故采用方案一
2.2.5 一氧化碳采集检测模块
方案一:采用MQ-2气敏传感器探头,它的工作电压在3.3v-5v之间,具有模拟(AO)和数字(DO)双路输出,该传感器对一氧化碳气体的灵敏度很高,而且性能稳定、使用寿命很长和响应速度快等特点[8]。
该器件数字接口(DO)输出高电平,可直接连接STM32控制器I/O口,通过嵌入式控制器检测,以此检测房间空气气体。模拟接口(AO)需要与AD转换器连接,通过AD转换测得空气气体浓度数值。气体浓度越大,AO口输出的电压值就越高。
图2-5 MQ-2气体检测模块
方案二:采用MQ-3气体传感器。MQ-3气体传感器所使用额的气敏材料是在清洁空气中电导率较低的二氧化锡( SnO2)。当传感器所处环境中存在酒精蒸汽时,传感器的电导率随空气中酒精气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。MQ-3气体传感器对酒精的灵敏度高,可以抵抗汽油、烟雾、水蒸气的干扰。这种传感器可检测多种浓度酒精气氛,是一款适合多种应用的低成本传感器[9]。
图2-6 MQ-3气体检测模块
本模块主要是利用传感器进行检测一氧化碳浓度因此采用方案一。
2.2.6 指纹识别模块
方案一:采用AS608光学指纹模块。AS608光学指纹模块是一种生物识别技术,通过对人体指纹进行采集、处理和比对,以确定身份认证,它通常由硬件传感器和软件算法两部分组成。
AS608光学指纹模块的原理基于人类指纹具有唯一性和不可伪造性的特点,指纹是指手指上表皮的凹凸纹路,这些纹路的形态、数量和分布位置是每个人独一无二的,即使是同卵双胞胎也具有不同的指纹特征,这种唯一性使得指纹识别成为一种可靠的身份认证方式。
方案二:采用ATK-301电容指纹识别模块。ATK-301电容指纹识别模块是ALIENTEK推出的一款高性能的电容半导体指纹识别模块。其采用了瑞典FPC公司按压式电容指纹传感器,该传感器具有功耗低、稳定、图像一致性效果好、耐静电等级高的特点。模块搭配GigaDevice(兆易创新)生产的指纹控制专用芯片,针对指纹传感器做出了大量的图像优化、速度优化、算法优化,使模块具有识别速度快,通过率高的等特点[11]。相对传统光学指纹模块,本模块具有识别速度更快、体积更小、功耗更低等特点。模块配备了串口通讯接口,用户无需研究复杂的图像处理及指纹识别算法,只需通过简单的串口通讯按照通讯协议便可控制模块。
考虑在本设计中的用途及性价比等方面,最终采用方案一。
2.2.7 WiFi模块
方案一:采用ESP8266芯片的WiFi模块。ESP8266是目前物联网通信中应用非常广泛的模块芯片,也就是将实物和互联网连接上的媒介[12]。它最大的功能就是可以开WIFI和连接WIFI,既然都可以开WIFI和连WIFI了自然就可以连接上互联网了。
图2-6 WiFi模块
方案二:采用ESP32芯片的WiFi模块。ESP32集成了天线开关、射频balun、功率放大器、低噪放大器、过滤器和电源管理模块、整个解决方案占用了很少的印刷电路板面积。ESP32可作为单个系统运行应用程序或是主机MCu的从设备、通过SPI/或SDIo或12C/UART接口提供wi-Fi和蓝牙功能ESP32转为移动设备、可穿戴电子产品和物联网应用而设计、该款芯片拥有业内高水平的低功耗芯片的所有特征、比如分辨时钟门控、省电模式和动态电压调整等。
由于ESP32芯片的WiFi模块成本较高,且ESP8266芯片更加方便,更加兼容故采用方案一。
2.3 系统总体构成设计
这个系统由两个主要部分组成:一个用于处理数据、控制信号、存储数据以及处理信息。另一个用于处理数据、存储数据以及处理信息。在这两个主要部分中,一个用于处理数据,另一个用于处理信息[13]。在这两个主要部分中,一个用于处理数据,另一个用于处理信息。在硬件部分的基础上,进行了一系列的软件开发,以便更好地掌握整台单片机的运行。为此,使用了KEIL软件,并使用C语言进行了全面的系统架构的构建,在测试过程中,如果无误,会把所产出的.hex文件存入到单片机中。该软件采用了模块化设计,main函数作为程序的核心,而其余的功能则由各个独立的子程序来实现,例如:一氧化碳值的监控、人体红外线的探测、按钮设置、报警功能以及WIFI的传输功能。
2.4 本章小结
在本次设计中,选择了STM32单片机作为主控制器,并将其划分为4个部分:检测、显示、警报和控制。其中,一氧化碳检测采用了传感器,通过数模转换器进行模数转换,以获取当前的一氧化碳浓度值,而人体红外检测则使用了人体红外传感器,以实现对空气质量的实时监测。并且可以通过报警值设置、报警灯以及短信报警等功能。
第三章 硬件电路设计
3.1 STM32概述
STM32单片机被认为是一款性能卓越、能够满足多种复杂任务的微控制器,它可以控制多个传感器、接口、电路板等,从而实现对复杂任务的快速、准确的控制,为STC公司的工业控制提供了强有力的支持。与传统的计算机技术不同,单片机可以被看做一个更加精细的电子设备,它可以完整地实现复杂的功能[14],从而满足不同的需求。它的应用范围极其广阔,几乎所有的家庭设备,从最基本的电子设备,例如冰箱、空调、洗衣机,到更加复杂的操纵设备,例如遥控器、鼠标、键盘、闹钟等。随着技术的进步,许多新型的、先进的、集成的单片机已经被普遍采纳到各种领域,从仪表仪器、航空航天、家庭电子、到医疗设施,它们不仅为人们的日常生活带来便利,而且还为各种复杂的传感技术带来更大的可靠性。
STM32单片机是一种具有40线引脚的封装方式,它能够与外部设备如传感器等相连,并且能够实现信息的交流。这种封装方式使得单片机能够与外部设备进行高效的连接,从而提高系统的性能。尽管单片机的引脚数量有限,但是如何充分利用它们的优势,以达到最佳的性能,仍然具有重要的研究价值。为此,可以通过优化引脚的尺寸、外观,以及采用双功能或多功能的引脚,来增强单片机的功能,从而提升其可用性。图3-1展示了STM32单片机的封装结构,将通过这张图来深入探讨它的各个方面。
图3-1 STM32单片机封装引脚图
单片机的存储部分由RAM和ROM组成,它们的分离设计使得数据的存储更加高效、灵活。RAM可以存储更少的数据,而ROM则可以存储更多的大型数据。
RST复位是一种非常有效的单片机操作方式,它可以让单片机在断电后自动重新启动,只需要向单片机发送一个信号,即可实现单片机的初始化和程序的重新启动。这种方式在日常的单片机系统中得到了广泛的应用。
PEROM阵列的三个锁定位电擦除功能是一种高效的技术,它可以根据需要调整ALE管脚的电压,使其维持10ms的低电压,从而实现芯片的清洁[15]。为了实现这一目的,需要将所有的代码都写入“1”,并且只有当没有其他的未知数据时,这一步才算得上是有效的。
图3-2 最小系统电路图
3.2 人体红外传感器模块电路
HC-SR501是一种高性价比的红外传感器,它可以通过无接触的方式捕捉到人体发出的红外光,然后通过高精度的数字调制技术,实现高精度的输出,而且无须使用任何的红外线和电磁波,从而节省了大量的资源[16]。鉴于传感器的测量精度较低,其测量结果的振荡频率也较低(低至1 mV),无法用来实现对照明系统的有效监测,因此,需要采用一种特殊的信号处理技术,将其原有的非线性振荡特性转换为可供单片机运行的高精度的数字信息。按照规定,人体检查的电路应当符合图3-3的描述。
图3-3 人体检测电路图
3.3 一氧化碳检测模块
在这个设计中,选择使用MQ-2型一氧化碳报警器作为原型。这种装置使用的是具有离子形态的N型半导体,能够有效地捕获大量的氧分子。这种装置能够降低大部分的电子密度,从而提高系统的抗干扰能力[17]。当物质与某个物质相遇时,它的势垒将随着它的加入而改变,从而使物质的电导率也随之改变。通过分析这些改变,能够获取有关物质的相关信息。
当接触到易燃的气体(如CH4)时,由于气体中的氧原子会被分解,而在二氧化锡半导体的表层会形成气体的正离子,从而使得气体的分解过程更为顺利。此外,气体的分解还会释放出大量的电子,从而提高二氧化锡半导体的导带电子的数量,从而减小它的电阻。当空气中不存在一氧化碳的情况下,MQ-2型燃烧器会根据当前的环境条件,采用先进的技术,将二氧化锡半导体的负离子吸附至最低,从而使得它的电阻率达到最初的阈值。此外,该传感器还具备多种功能,能够准确地监测和控制可能发生的火灾事故。
MQ-2型传感器具备出色的检测能力,能够准确检测出各种形式的一氧化碳,特别是烷烃类物质。MQ-2型传感器具有出色的可靠性、可靠性和持久性,其初始状态稳定,响应速度快,长时间使用表现优异。MQ-2型传感器具有出色的抗干扰能力,能够有效抑制任何可能对环境造成危害的因素,比如酒精、一氧化碳等,从而保证环境的安全。电路的电压范围极其广泛,从24V到0.2V,甚至更高,都能满足要求。
经过精心设计,数模转换器可提供8位分辨率、双信道A/D变换、5V电源供电、250KHZ的工作频段、32微秒的切换时限、及低的耗电量,使其成为一种理想的模数转换器件,可满足当前环境监测领域的需求,特别是对于一氧化碳的监测,更是可靠可靠。根据图3-4,可以看到一个用于监控的一氧化碳传感器。
图3-4 一氧化碳检测模块电路
3.4 OLED液晶显示电路
当OLED 液晶屏被安装于单片机系统中,它可以实时监测环境中的一氧化碳浓度以及是否存在任何危险,并将其准确地反映给相关的使用者。OLED液晶屏的特点是,它的工作电压仅需5V,尺寸紧凑,可以提供丰富的信息,使其能够被广泛地运用于各种设备中。OLED液晶屏具有独一无二的功能,它的屏幕被划分成2行,每行可以清晰地展现16个汉字,因此,它的屏幕上可以同时存储32个汉字。它的运行机制依赖于液晶的优势,它的屏幕上的信息会随着外部的电流变化,经过精确的调节,就会呈现出各种不同的信息。当与单片机交互时,需要将SDA与SCL口相互联系,并且需要使用上拉电阻来实现。为了更好地显示出检测出的一氧化碳、人体红外以及它们的最高报警阈值,设计了OLED液晶显示屏,其引脚连接图如图所示。
图3-5 OLED 液晶显示屏电路图
3.5 声音检测电路设计
图4-5描绘出的是一种具有延时功能的电路,该电路能够根据用户的需求,控制"开启"和"自动关闭"的电源,同时延长电源的使用时限,使用户能够更加轻松地控制电源的打开,这也正是该电路的独到之处。通过精心设计的集成电路,可以把它划分为若干个相互连接的部分,这样就可以更好地完成不同的任务。这些部分通过5V的电源来提供动力,并通过OUT接口来接收和发送数字信息。
图3-6 声音监测电路
3.6 指纹模块
AS608是这次设计的指纹模组,它的电路结构如图3-6所示,可以满足多种应用场景的需求。
图3-6 指纹模块电路图
AS608指纹模块由1、光学头 2、通讯接头 3、DSP晶片 4、稳压晶片 5、CMSO传感器 6、FLASH 晶片 CMSO 传感器等组件组成,它可以提供准确的指纹信息,从而满足用户的安全需求。
3.7 按键控制电路
单片机的按键控制电路由4个微动开关并联而成,它们的工作原理是通过检测电平来控制按键的操作。然而,由于按键开关的操作时间较长,容易出现误差,因此,在编写按键控制电路时,需要添加一个去抖函数,以提高精度。通过按键控制,可以调整人体红外和一氧化碳值报警的上限值,并且可以设置接收信息的手机号码。按键1代表增加,按键2代表减少,按键3可以调整设定的值,按键4则会返回。图3-8展示了按键控制的电路原理:
图3-8 按键控制电路
3.8 电源电路
为了满足单片机的需求,提供了一个直流5V的电源系统。该控制系统由一个3口的开关电源座子以及一个6口的供电控制器组成。2口的开关电源座子与外界的供电插座进行了联接,而3口的供电控制器则负责控制整个网络的运行。此外,1口的供电控制器也与其他两个口的开关电源进行了联接,它们的功能是一致的,即为了进一步提高整个系统的性能,增加整个系统的稳定性。当考虑到该系统的稳定性,2、5口的引脚应该被优先考虑,因此,应该将1、3口的引脚设置成输入,而将5口的引脚设置成接地,4、6口的引脚设置成输出,而2口的引脚应该被设置成接地。由于的数字单片机的传感器和无线传输芯片的工作电压均为5V,因此能够保证它们的性能。但是,对于那些需要额外的12V电压的传感器,会使用升压技术来调整它们的工作电压,使它们能够达到要求。的电源系统参见图3-9。
图3-9 电源电路
3.9 报警电路
通过调节一氧化碳的浓度,以及开启防盗模式,单片机可以实现对周围空间的实时监控,以及及时发现可能存在的危险情况,与预定的报警阈值相对照。此类报警系统由报警灯组成在这个系统的设计中,将会使用三个不同的灯来发出预警。这三个灯的名字都可以用来表达它们的功能。第一个灯的功能是发出1k的信号,第二个灯的功能是发出PNP信号,第三个灯的功能则是发出LED信号。
图3-4 报警灯电路
3.10本章小结
通过对硬件的初步了解,画出了STM32单片机、人体红外系统、一氧化碳检测模块等硬件电路图。来确保后续设计的准确性。并了解了各个模块的引脚接线,方便编程于焊接工作。
第四章 软件系统设计
在本次设计中,将硬件与软件相结合,以实现的功能。在确定设计功能和硬件设计之后,将进入软件设计阶段。从任务的角度来看,这一过程可以分为两大部分:首先是主程序的构建,即要实现的功能;其次是各个功能的操作流程,旨在实现设定的所有功能。
为了设计一个更加完善的智能控制器,除了需要软硬件基础的支持外,C语言也是目前智能管理领域的主要编程语言。它具有良好的可读性和易于在不同系统之间迁移的特点,使得它成为一种理想的解决方案。C语言的目标更加明确,因此它可以被用于多个操作系统,因而大大降低了开发成本,节省了大量的资源。
在本软件系统设计过程中,经过了深入的思考,最终选择了C语言来完成程序设计。实际调试结果表明,采用C语言能够大大节省时间,并且能够显著提高软件系统的设计速率。经过多次调试,系统最终实现了预期的功能。
本文将详细阐述此次设计的软件,以及各个模块运行的流程示意图。在完成程序设计后,需要将各个模块的程序烧制到硬件系统中,这时就需要使用串口通讯来实现烧制。
4.1 软件主程序架构
经过精心的硬件设计与调试,以确保系统的高效性。因此,必须绘制出一个明确的步骤,以便于根据不同的环境条件,从一氧化碳检测、OLED液晶屏、报警灯以及语音模块等多个组件中进行精确的配置。随之而来,APP的各项功能也随之启动,它们可以实时监控周围的空气质量,以及周围的人群,发现异常,及时发送报警。为此,APP的设置必须进行初步的调整,以确保其正常工作。随后,通过点击鼠标,可以调节室内空气中的一氧化碳和红外线的浓度,若达到了预定的阈值,LED的报警指针将自动点亮,如图4-1所示为主程序流程图。
图4-1 整个主流程图
4.2 OLED显示流程图
在这次的产品设计中,选择了OLED液晶电视屏作为监控屏。一旦OLED液晶显示屏接通电源,就会开始初始化屏幕上的数据,并将其中的所有数据清除,同时也会释放出内部的存储空间。接下来,将使用数字单片机来实现双向通信,它可以控制液晶显示屏的亮度和显示信息。OLED可以通过按键控制,实时调整一氧化碳浓度和人体红外报警阈值,同时,数字单片机还可以根据输入接口的指令,将信息转换成可视化的形式,如图4-2所示,从而让显示屏能够正常运行。
图4-2 OLED初始化流程图
4.3 红外检测流程图
热释电传感器通常被广泛应用于红外传感器,它们的前端配备了一块特殊的滤波器,可以过滤掉1-14μm的杂波,从而提高传感器的抗噪声性。当目标被发现时,将发射高频信号,而此时,三极管将被激活,将发射低频信号,并将信号发送至单片机。按照图4-3,红外探测的过程可以简化。
图4-3 人体红外检测流程图
4.4 一氧化碳检测流程图
当一氧化碳采集到当前的数据后,把模拟量传输给数模转换器进行处理,数模转换器进行初始化后,因为数模转换器有2个通道,所以要进行选择,本次设计选择的数据通道为0,然后进行读取数据,一个字节为8位,进行一位一位读取,把当前读取的信息转换为数字量,换算成当前的电压值。先初始化数模转换器引脚,ADC0382_DIO=Ch; CH=0 选择通道0,数模转换器开始读取数据ad_value_temp = Read_ADC0382(0); 读取转换后的数据,从最高位开始依次输出(D7~D0)for(i = 0;i < 8;i++) {dat <<= 1;//左移运算符,例如c<<=2就是 c=c<<2把c左移2位得度到的值给c。dat=dat<<1,把dat左移1位得度到的值给dat; dat |= ADDO;//C语言中的 |= 意思为:按位或后赋值.在C语言中, ^= 表示根据不同的位置进行前置和后置的赋值,而 &= 则表示根据不同的位置进行前置和后置的赋值,其中ndat = 0; //将D0的值设置为0,然后从D1到D7,接着将ADCLK 设置为1;//将_nop_()和_nop_()的值设置为0;//将CS的端设置为0,并将其设置为1,最终将if的设置改变,以产生一次时钟脉冲,其中ADDO==1 ndat |= 0x80; ADCLK=0将 ADCLK调节至0,将CLK端的 ADDI调节至1,并将数据端的值调节至//,以便恢复至最初的模式,如图4-4 所示。
图4-4 为一氧化碳检测流程图
4.5 报警流程图
在主函数被激活之后,首先需要通过按键设置一氧化碳值和人体红外浓度的警报阈值,然后检查是否达到了这个阈值,并发出警报信号,以确保空气质量的安全。如果超出了这个阈值,LED报警指示灯会亮起,通过WIFI传输到用户的手机上。以下是图4-5中的报警流程。
图4-5 报警流程图
4.6按键流程图
在按下按键1时选择为密码解锁,再按下按键3确认解锁。按下按键1输入密码,密码正确后完成解锁;若开始按下按键2则为指纹解锁,按下按键3确认后,采集指纹,指纹正确后完成解锁。
图4-6 按键流程图
4.7语音流程成图
利用语音传感器模块,捕捉声音指令,完成灯光的打开与关闭。
图4-7 语音流程图
4.8指纹解锁流程图
运用指纹模块的指纹采集功能,完成对智能家居的解锁。
图4-8 指纹解锁流程图
4.9 WIFI流程图
使用WIFI模块使手机能与单片机相连接,完成相应操作。
图4-9 WIFI模块流程图
4.10 系统程序设计软件
Keil软件系统是一种集成化的编程平台,它采用汇编语言和C语言编程,并且拥有大量单片机库函数,可以通过调用系统来实现程序的运行。此外,Keil还整合了C翻译器、接口等模块,可以在Windows窗口中快速编辑计算机程序和.hex文档,从而极大地提高了开发效率和质量。Keil软件的最大优势在于它能够同时使用C语句和汇编来设计语句,这样可以充分利用C语句的逻辑结构清晰易懂的特点,大大提高程序设计的效率。此外,keil还可以在重要的地方嵌入汇编,使得程序设计的执行结果既能实现语句设计的效果,又能实现程序设计的执行效果,从而实现了将两种编程语言的实现方式有机结合,从而提升了程序设计的效率和质量。Keil软件已经成为了行业的标准和规范。
KEIL软件系统是一种经典的集成化开发工作环境,它可以支持多种通用单片机控制器,并且采用C编程语言进行设计,用户界面设计简洁友好,具有良好的清洁度和易用性,可使开发更加有效、便捷,从而大大提高了研发效率和产品质量。C语言已经成为了许多工程师、学员和教师们最喜爱的集成化开发环境,因为它具有强大的执行能力和简单易懂的特点,所以它成为单片机技术领域开发人员的首选语言。Keil界面如图4-6所示,具有良好的用户体验。
图4-11 Keil界面
作者:炳烛之明科技