摘 要
智能化的电子产品潜移默化的改变了人们的生活方式,让生活变的舒适与便捷,品类繁杂的电子产品不断的出
现在我们身边,展示着科技的进步,人们的生活已经与智能化的产品紧紧融为一体。无论是生活中还是工业生产
中,智能化的产品已经成为不可缺失的一部分,以单片机为核心的智能化产品通过高速的数据运算,为人们的生产
和生活提供了保障。
本次设计使用单片机作为系统控制核心,依靠单片机的运算和逻辑判断速度,实现设计功能需求。单片机依靠
外围电子电路实现自身的可靠运行,以单片机为核心控制单元,协调各类传感器实现数据采集功能,通过显示器件
实现参数数据的人机交互,通过引脚控制各类执行器件执行功能。设计中使用AD软件完成原理图设计,C语言实现代
码编写,采用模块化的设计结构完成项目设计。
本页为中文摘要样版关键词: 单片机;数据采集;火灾;报警
1. 引言
1.1 课题设计的背景
现代城市生活中潜在的最大危险就是火灾,随着城市化进程的推进,人们的生活也逐渐富足安康,城市中的高
楼大厦林立,高层楼房和超高层楼房随处可见。尽管楼宇在设计时已经和消防系统联动,但是消防系统在发生火灾
时并不能起到很好的效果。从近些年全国的火灾报道中就可以知道消防系统在火灾中起到的作用是微乎其微的,最
后还是依靠消防员在外围进行灭火,虽然最后可以消除险情,但是火灾带来的损失是不可能估量的。不仅包括一些
钱财、物品的损失,还有建筑体的损坏,更严重的是造成室内的人员伤亡,给众多家庭带来深重的灾难。针对火灾
发生后的被动救援,人们更希望可以提前预判家庭环境检测的报警系统,在出现可能发生火灾的因素时就进行预报
警,及时解除危害,将火灾的发生概率降到最低。
家居生活中,对于火灾的检测主要通过温度和烟雾两个方面体现。本次设计的基于单片机的智能家庭报警器对
于温度和烟雾的检测可以很好的起到火灾预警的效果,提前对温度和烟雾的浓度进行预判,有助于提前排除失火的
隐患,可以把失火抹灭在萌芽之中,保证人们的安全。
1.2 课题研究的现状
智能家庭报警器目前研究现状主要对家庭环境检测和报警两个部分。检测部分包括温湿度检测,根据温湿度判
断家庭的环境;危险方面的检测主要是火灾和防盗方面,火灾检测包括温度是否达到高温,烟雾的浓度是否过大,
煤气是否泄漏;防盗方面包括红外的检测,震动检测等内容;报警方面分为本地报警和远程报警,本地报警包括蜂
鸣器报警和语音的报警,远程报警分为GSM短信报警和云平台报警两个方面。
1.3 课题设计的内容
本次设计采用单片机为核心控制器件,通过温度传感器实时检测室内温度数据,使用烟雾传感器检测烟雾家庭
中环境的烟雾浓度,并通过LCD1602进行显示,使用按键设置温度和烟雾浓度的阈值参数[1]。若温度测试数据大于
设定温度数据蜂鸣器实现报警,烟雾浓度数据大于设定烟雾浓度也通过蜂鸣器报警。通过硬件设备连接蓝牙模块,
通过手机APP软件显示温度和烟雾的检测数据,并可以越限时报警显示。
1.4 总体设计选择
1.4.1 单片机方案选择
STC单片机:STC单片机采用的是AT51的内核,使用KEIL软件实现程序代码编写。STC89C52单片机是一款中小型
智能控制芯片,以片内资源和外围引脚适中深受市场的喜爱,在功能开发方面具有相当的优势,书籍和网络资料众
多,编程代码案例数不胜数,可以节省产品的开发周期。另外,STC89C52单片机采用串口功能下载程序,调试相对
方便,只需携带最小的系统即可实现单片机的编程操作。
,在单片机的开发设计上通常使用的是库函数开 STM32单片机:STM32单片机运行速度比较快,采用的是ARM内核
发[2],需要一定的单片机开发基础才可以应用。网络上的学习资源比较丰富,目前国内的高等院校开设STM32单片
机课程,市场的普及率比较高。开发中采用C语言进行代码设计,编程软件采用KEIL软件实现,可适用于大部分产品
的功能设计,无论是单片机内部的资源还是外部的外设方面,都具有明显的优势,价格方面比较贵一些。
树莓派系统:树莓派是一种高端的智能控制系统,是基于ARM内核的微电脑。内部执行的是操作系统,以LINUX
系统运行工作,对外通过IO口执行器件操作。树莓派编程可以支持C语言和Python语言,同时树莓派系统可以外部搭
载鼠标、键盘等驱动设备,可执行PC机功能操作。树莓派的运行速度很快,可满足高清视频的播放和大型游戏的运
行[3]。在网络的设计功能上具有独特的优势,可以作为网络服务器使用,也可以实现网页的设计和制作,在功能使
用上几乎完美无缺,但是价格比较昂贵,一般适用于具有高附加值的高端产品。
根据价格和功能的综合考虑,本设计采用STC单片机实现设计。
1.4.2 显示屏方案选择
LCD1602显示:LCD1602显示屏由背光板和显示屏组成,可以显示字母和数字。根据ASCII码规则实现显示功能,
显示屏的显示位置分为上下两行,每一行都可以显示16个字符或者数字,显示内容的清晰度可以通过自身的引脚进
行调节。LCD1602显示屏的驱动接口采用并行口的方式,刷新显示内容的速度比较快,显示的内容数量很多[3],对
显示内容的表述很清晰,可适用于大部分的工作场合,由于是液态结构,唯一对低温环境不太适用。
数码管显示:数码显示一种最为广泛的显示方式,因其价格低廉、亮度高、使用寿命长等特点被大量应用。数
码管是一种8个LED灯的组合,通过不同LED点亮与熄灭实现外观的数字显示。数码管对于环境没有任何局限性,可适
用于任何地方,无论是高温或者寒冷地区。
本次设计采用LCD1602显示器。
1.4.3 温度模块选择
DS18B20:DS18B20是一款数字型温度检测传感器。传感器对外输出数字量的温度数值,通过单总线协议完成数据
传输,检测的温度范围可达到-55-125摄氏度[4],传感器检测的温度精度可以达到0.1摄氏度,可以满足众多场合。
在硬件设计中,仅仅使用一个数据引脚就可以完成温度数据的采集,可以有效的节省单片机资源,对外输出的温度
数据比较稳定。
LM35:LM35是模拟信号输出的温度传感器,温度检测范围为0-100度。由于输出是模拟温度信号,因此温度检测
功能需要与ad转换模块匹配。温度传感器的功耗较低,但检测精度取决于AD的转换精度,在硬件设计中会增加AD设
备的硬件成本[5]。
本次设计选择了DS18B20作为本次的温度检测器件。
1.4.4 AD模块选择
ADC0832:ADC0832可实现二路AD转换,是一款小型化的8位模数转换芯片。封装是8引脚的DIP,数据通讯采用
IIC协议与单片机引脚相连,两路的模拟量输入引脚可接收0-5V的模拟值,对应转换的数字量是0-255,两路模拟量
分别使用单独转换通道,可同时使用完成模数转换。ADC0832的芯片具有体积小,转换快速等特点,非常适用于两路
以内的模拟量采集场合。
ADC0809:ADC0809可实现8路模数转换,可适用于多路模拟量采集的场合。而芯片本身的体积比较大,8路模拟量
在使用时通过地址引脚实现锁存,有译码电路确定AD通道工作,实现8路采集的分时切换,芯片内部因没有时钟源,
所以在使用的时候需增加100KHz-640KHz时钟信号才能工作,8路的模拟量输入引脚可接收0-5V模拟电压值,转换的
数据可通过TTL三态锁存器直接连接数据总线上。
综上所诉,综合考虑到本次设计需求,本设计采用ADC0832作为AD的数据转换采集。
1.4.5 无线模块选择
蓝牙模块:蓝牙模块是一种最为简单通讯方式,可实现与手机APP的本地连接,也可以是采用蓝牙模块实现组网
功能。组网时需要区分主从设备,通讯频段为2.4G,近距离内的数据传输稳定,几乎不存在丢帧的现象,数据的传
输距离在10米左右。
Usr-wiif模块: usr-wifi模块可以实现与单片机的串行连接。网络参数配置可以通过网页实现,只需设置工作
模式和串口功能即可使用。模块连接到手机APP,标准以太网协议可通过网络调试助手进行数据参考和功能控制。该
模块使用相对简单,数据传输稳定,不存在丢失数据帧的情况。另外,USR-WIFI模块在串口配置中需要明确串口波
特率、数据位、校验位等功能,设计时需要单片机的串口功能与其保持一致[6]。
根据上述分析,本次设计采用蓝牙模块。
2. 系统硬件
2.1 单片机最小系统
单片机的智能化控制系统使其成为设备的核心处理单元。正常运行后,单片机会根据内部程序执行逻辑进行功
能性的控制,对外部数据实现采集、运算以及对外输出逻辑控制。最小系统作为单片机工作的基础条件,可以有效
的保证单片机正常运行。最小系统如下图2-1所示。
图2-1 单片机最小系统图
由图可知组成单片机最小系统的引脚分部和外围电路器件,单片机的引脚编号为40和20的是电源引脚部分。通
过这两个引脚可以为单片机提供稳定可靠的工作电源,电源电压的工作范围一般在3.6-5.5V之间。复位电路的主要
功能是保证单片机开始工作后,内部的程序运行指针从地址0x00开始执行。还有一种复位方式是手动复位,通过按
键控制给复位引脚接入高电平,使运行中的单片机内部指针强制恢复到0X00重新执行。
除了最小系统引脚外,MCU还具有4组引脚,用于外部功能控制。4组IO引脚分为P0-P3端口。每个端口包含8个子
引脚。这些通用引脚实现外部功能控制。引脚的逻辑输入和输出是通过引脚的高低电平实现的。P1和P2端口是常见
的IO端口。MCU上电后,依靠端口内部硬件实现上拉功能,开机后P1、P2端口默认保持高电平。这是单片机的设计规
则。显然,高级可以方便用户使用并避免设计逻辑错误。单片机的P0口在通电之后的引脚电平取决于外部器件的电
平,一般情况下需要外接上拉电阻,也使得引脚的电平可以明确,P3口是单片机的引脚复用端口,除了普通的引脚
功能之外,还结合单片机的内部资源实现引脚的第二功能。
2.2 液晶显示模块
液晶显示由背光源部分和液晶屏部分组成,背光源部分通过发光体实现对显示内容的映衬,提高显示内容的亮
度。液晶屏主要完成内容的显示,显示的内容通过液晶屏内部的液晶体材料在电流的作用下完成内容的显示,通过
电流的流动线路不通,实现显示内容的变化。液晶显示屏显示的内容遵循ASCII码协议,根据ASCII码的协议规定通
过程序的控制实现字符或者数字的显示。原理图如2-2所示。
图2-2 液晶显示电路图
2.3 温度模块
DS18B20温度传感器具有温度采集稳定,精度等级高等特点被广泛应用于工业和商业场合,对外直接输出数字量
的数据,数据直接乘以温度系数0.625就可以得到准确的温度数值[7],使用起来极为方便。DS18B20在引脚消耗方面
也是极为节省,仅仅需要电源和通用IO引脚即可完成温度数据的采集,数据的通讯格式采用单总线的协议完成,依
靠一个IO引脚实现时钟信号和数字信号的双向传输,需要通过严格是延时和时序才能实现温度采集。温度的检测范
围在零下55度到125度,基本上可以满足任何环境下的需求。
2.4 AD模块
ADC0832是一款普及率很高的双通道AD转换模块,采用逐次逼近的模式进行转换。模块内部没有单独的基准电压
,采用的方式是供电电源复用基准电压的模式,模块对外的数据输出协议是IIC协议,芯片有实现使能应用片选引
脚,使能引脚为低电平时,芯片开始实现模数转换,转换的时间小于等于32微妙。
ADC0832通过片选引脚选通工作,工作时依靠时钟引脚以固定的时钟频率进行采集数据传输,根据AD通道的选择
区分不同通道的AD数据。芯片的标准工作电压为5V。由于工作电压和参考电压是多路复用的,AD通道收集的模拟电
压不能超过5V,否则可能会导致收集的数据失真。ADC0832芯片有8个引脚,引脚功能分别是电源VCC、GND、2路AD通
道CH0和CH1、片选引脚CS、时钟引脚CLK、数据引脚DO和DI。
2.5 烟雾模块
本次设计选用MQ-2型烟雾传感器,属于气体传感器的一种类型,通过气敏电阻发生反应实现内阻燃烧,从而实
现气体浓度的检测,通过传感器的探头完成特定气体的检测,根据内阻的变化完成模拟数据的输出,内阻变化根据
检测气体浓度的大小,检测气体浓度越高,则内阻的变化就越大,导致模拟量越大。除了气体传感器可以输出模拟
值事故外,气体传感器模块还包含一个比较电路,还可以实现电平信号的输出[8]。电平信号的输出取决于比较电路
的可调电阻控制。如果超过比较电阻值,则输出电平。
烟雾传感器在使用时需要预热,通电后需要经过大约5分钟时间进行预热准备,使传感器内部的电阻达到稳定数
值才可以对气体进行检测,以免出现检测数据紊乱,出现误报。
2.6 报警模块
发出警报声音的模块一般采取蜂鸣器,报警时根据蜂鸣器发出的鸣响达到警示的作用,蜂鸣器的鸣响是通过震
动膜片不停震动完成的,蜂鸣器在工作的时候,电流流过电磁感应线圈,线圈感应后会产生一个定向力的磁场,在
磁场力的作用下,使得蜂鸣器是震动膜片不停的震动,继而发出报警的声音。蜂鸣器由于自身含有磁感应线圈,所
以一般情况需要大约30mA的电流才可以驱动,属于电流型驱动器件,单片机的引脚实现的是信号的控制,一般不会
具有大电流的驱动能力,所以单片机控制蜂鸣器发出鸣响时需要依靠三极管实现驱动,三极管具有开关的功能属
性,单片机的引脚控制三极管的开与关,进而实现对蜂鸣器的控制。
2.7 蓝牙模块
除了气体传感器可以输出模拟值事故外,气体传感器模块还包含一个比较电路,还可以实现电平信号的输出。
电平信号的输出取决于比较电路的可调电阻控制。如果超过比较电阻值,则输出电平。
3. 系统软件
3.1 系统程序流程图设计
程序设计是系统整体架构的运行逻辑,程序文件以main函数开始执行,main函数设计主要包括确定变量参数、
定时器功能函数、串口功能函数以及需要执行的子函数接口,在main函数设计中,一般只设计功能框架,对各个需
要执行的不同功能子函数留出接口位置即可,接口位置在设计时只需要写入子函数名称即可,主函数在执行的时
候,会根据逻辑要求调取不同的子函数实现对应的功能,流程图如3-1所示。
3.2 显示程序
本次设计数据显示功能采用LCD1602液晶显示屏完成数据的显示,显示函数的设计包括初始化功能部分、开启显
示使能位、设定显示字体的大小、确定显示地址等几个部分完成显示功能,LCD1602液晶显示屏是通过SPI协议完成
数据的输出,当主函数调用显示子函数时,显示函数进入初始化,在初始化中完成SPI协议的配置,准备接受
LCD1602配置命令,命令内容包括使能显示位、字体大小配置以及显示的首地址等功能[9],在显示命令配置完毕之
后,显示屏准备接收显示内容,收到显示内容后,显示屏根据设定的显示地址完成数据显示,
3.3 温度检测程序
温度检测使用DS18B20传感器。程序设计的过程步骤主要包括初始化、查找设备地址、查找存储器地址、发送读
取命令和接收温度数据[10]。初始化是对DS18B20传感器实现数据读写协议的基本配置,协议为单总线,寻找器件地
址是对总线上的器件进行地址甄别,传感器器件选定后,寻找温度数据的存储器地址,通过发送读取数据的命令,
等待接收温度数据,温度数据接收完毕后,把数据放入存储单元中,完成温度的数据采集。
3.4 烟雾检测程序
烟雾采集是通过烟雾传感器输出模拟电压,通过ADC0832进行数字量的转化,将烟雾传感器的模拟量转换为数字
量。
3.5 蓝牙发送程序
蓝牙模块HC-05与单片机通过串口连接,单片机通过串口发送数据到蓝牙模块。
3.6 报警程序
报警子程序完成报警工作,主要依靠判断是否达到报警条件,当达到报警条件,则启动报警,否则停止报警。流程
图如3-6所示。
达到报警条件?
图3-6报警流程图
4. 系统测试与分析
4.1 实物调试步骤
实物在测试中需要遵循以下步骤:
1.实物的焊接工作是实物设计的基础部分,焊接时应对照电路原理图完成,根据原理图的设计完成实物焊接,避免
出现电气连接错误的现象,同时焊接时需要区分器件的引脚位号,掌握焊接的时间,避免长时间的焊接造成元器件
的高温损坏。
2.实物通电前需要进行实物检查,采用目视的方法检测是否有虚焊、连焊、漏焊的现象,对照原理图的设计原理完
成全部的电气检查,检查过程中需要根据电气网络的走线完成,确保电气网络的正确性,同时需要对照传感器、元
器件资料查看器件的引脚是否正确,防止引脚的错误焊接造成功能的无法实现或者器件的损坏。
3.物理电源接通后,依靠电压表检测电路设计中关键节点和关键器件的电压,检查被测电压是否在设计要求范围
内,以确保物理工作的可靠性。
4.实物检测无误后,烧写代码程序在实物中运行,根据设计的需求,对每一个功能进行模块化调试,直到所有的模
块功能调试成功,最后进行系统的整体功能调试,完成全部的功能设计。
4.2 实物制作
设备生产是物理实现的第一步,通过对设备的焊接来完成物理的生产。系统焊接实物图片如图4-1所示。
图4-1 焊接实物图
4.3 系统电路检测
硬件设备焊接完毕后,开始完成设备的硬件电路检测,当检查完毕后,接入电源,电路一切都正常的,并没有
发生短路显现,通过观察也没有发现器件过热的问题或者产生烧焦的气体,显示屏或者电源指示灯可以正常点亮,
各个传感器等器件没有发热现象,说明实物可以正常工作。测试图如图4-2所示。
图4-2 测试图
4.4 设备系统调试
设备开始调试之前,将编写的程序烧写到单片机中运行,通过观察检测的温度数据符合检测要求,并且温度检
测准确,烟雾数据符合检测要求,并且检测灵敏,之后将按键设定温度和烟雾的阈值,通过改变外部环境的温度和
烟雾数值进行检测,采集的温度和烟雾数据随着外部环境的温度和烟雾变化而变化,通过按键更改设置的温度烟雾
参数值,按键按照程序的设计完成参数的更改,按键功能调试完毕,显示数据完全正确,显示功能调试完毕,接下
来测试具体的功能,通过环境测到的温度值和烟雾值,然温度和烟雾的测值大于设定值,通过测试后,蜂鸣器可以
正常的报警,并且蓝牙模块接收正常,可以显示温度和烟雾数据。设备系统调试图如图4-3所示。
图4-3 实物综合调试
5. 结语
本次根据设计的预期功能全部完成,在以单片机为核心的控制系统中实现的功能是全部实现,根据传感器的精
确数据采集实现了数据的运算功能,并且在单片机的程序逻辑处理下实现了控制功能的输出。在硬件设计和软件设
计两个方面的结合中,使本次的智能化控制设计得以实现。整个设计过程是有序进行的。首先要完成的是写开题报
告。在文献的检索和整理中,通过多个方面对设计需求进行了分析,对设计研究对象的背景、现状和未来趋势进行
了系统的论证,并根据论证的结论,确定了本次的具体功能需求。要求明确后,对需要实现的硬件进行全方位的选
择和筛选,在硬件设备的选择上从多个方面对价格进行比较和分析,为最终的物理设计选择合适的设备,并认真阅
读所选设备的数据文献,根据数据和典型电路图,画出本设计的原理图,然后设计完成系统的焊接工作,最后在焊
接物理对象中完成软件代码的调试,最后实现产品的功能。