点击空白处退出提示
遥控小车灭火系统
我要开发同款作品详情
摘 要
火灾的发生是现实生活中最常见、危害最大的灾难之一,灭火的最佳时机是火灾发生的初期阶段。
此课题根据设计任务的设想、市场调研、实际考察等方案进行了设计任务方案的论证,并且设计了相应的硬件电路和系统总结构分析以及嵌入式编程开发等工作。主要通过查阅电路基础,学习面包板制作的现有案例,通过自身的理解与条件制作遥控灭火小车主要模块功能,首先在51(STC89C52)单片机IO口、定时器、串口、ADC、中断等的知识储备的基础上学习STM32F103型微控制器,收集电子元件、相关模块原理,分析此系统的需求。其次采购物资,对元器件、模块进行焊接和组装。最后通过嵌入式编程以及场景模拟与数据分析,以及在51(STC89C52)单片机IO口、定时器、串口、ADC、中断等的知识储备的基础上学习STM32F103型微控制器。
基于STM32F103的遥控小车灭火系统是在传统灭火设备上进行延升而实现的。利用Zigbee无线传感网络技术为基础,安全灭火为目标实现,目前改设计可以模拟检测室内、室外是否有火,火势大小,以及安全灭火等一系列问题。
关键词:灭火系统;智能控制;无线通信;
Based On STM32 Intelligent Car Fire Extinguishing System
Abstract
Fire is one of the most common and harmful disasters in real life. The best time to put out fire is the early stage of fire.
This design is based on the design task of the idea, market research, actual investigation and other schemes to carry out the demonstration of the design task, and design the corresponding hardware circuit and system structure analysis and embedded programming development. Mainly through consulting circuit basis, learning the existing cases of bread board production, through their own understanding and conditions to make remote control fire extinguishing car main module functions, On the basis of 51 (STC89C52) microcontroller IO port, timer, serial port, ADC, interrupt and other knowledge reserve, learn the first step of STM32F103 microcontroller to collect electronic components, related module principle, analyze the requirements of this system. The second step is to purchase materials, weld and assemble components and modules. The third step is embedded programming, scene simulation and data analysis, and learning STM32F103 microcontroller based on the knowledge of IO port, timer, serial port, ADC and interrupt of 51 (STC89C52) microcontroller.
The remote control car fire extinguishing system based on STM32F103 is realized by extending the traditional fire extinguishing equipment. Using Zigbee wireless sensor network technology as the basis, safe fire extinguishing as the goal to achieve, is committed to solving indoor and outdoor fire, fire size, and a series of problems such as safe fire extinguishing.
Keywords:Extinguisher System;Intelligent Control;Wireless Communication;
前 言
通过在校四年大学的学习与实践,了解到嵌入式开发是在嵌入式操作系统下进行开发,包括设计硬件、软件相结合的综合研发,能够独立进行运作的器件。嵌入式是现科学发展的一种重要新兴产业,是新一代信息技术重要组成部分,嵌入式的市场发展前景较大、市场依赖性较强、用户需求较多、目前就业前景较好、较热门的信息技术行业[1]。
近年来,火灾的发生是现实生活中最常见、危害最大的灾难之一,近年来我国火灾发生较多,不管是人员伤亡还是经济损失都比较严重。
基于STM32F103的遥控小车灭火系统是在传统灭火设备上进行延升而实现的。利用Zigbee无线传感网络技术为基础,安全灭火为目标实现的,致力于解决室内、室外是否有火,火势大小,以及安全灭火等一系列问题。
STM32作为嵌入式工程师入门级微控制器,是嵌入式工程师技术成长的重要学习路线。选择STM32F103型(72MHz×1.25MIPS)作为主控芯片是因为此微控制器具有37个自定义管脚,性能是DSP的66%、多串口、多ADC、定时器多、CAP、SPI、I2C、PWM、芯片面积小、功耗低、价格低、不占用空间等特点,更适合做入门级嵌入式产品[2]。
无线通信尤其重要,在Zigbee通信方面使用CC2530单片机是最为广泛的,CC2530具备了8051内核RF收发器的优良性能。CC2530(Zigbee)模块是基于STM32F103的遥控小车灭火系统的主要模块之一,主要用途为与小车与遥控器之间的通信功能。
完成本次设计意义一是巩固在校期间学习的硬、软件专业知识,扩充课外专业知识,促进知识向能力的转化。二是设计属于自己的产品,为了今后职场考验的锻炼,面对未来的工作有了底气和骄傲。三是希望自己的产品能够进入市场,走向人们的身边,保障国家利益、人民、消防员安全等问题。
1 系统分析
1.1 总体需求分析
目前,国内火灾频频,火灾危害之烈,损失之巨。产生此灾难的主要原因是用火管理不当、没有及时发现、处理,且目前市场上仍旧采用较为传统的人为发现及人为处理火灾,传统方式可能会错过最佳灭火时机,导致生命安全和财产安全问题。如何能有效解决实时监测火焰及最佳时机灭火问题?
持续围绕国家重点产业布局,小型智能监测灭火装置是一种最新、较为安全的新型灭火方式。根据实际的需求,小型智能监测灭火装置应具有实时监测、报警、灭火、移动、照明等功能,所以灭火装置上需安装4个轮子便于移动,同时配备小车遥控器对其进行无线控制;在灭火小车内部还需安装具有120°实时监测的火焰传感器;为了实现智能照明功能,还需安装光照传感器用于监测当前场景光照强度;灭火装置将采用风力灭火和水力方式进行灭火。
在室内默认情况下,灭火小车能够对室内(120°)进行实时监测是否有火焰产生,如有火焰产生则灭火小车上的蜂鸣器会立即发出警报。相关人员在听到报警声后便于立即对灭火小车进行无线控制,前往火灾目的地,并按下遥控器上的灭火功能进行灭火。
1.2 性能需求
该系统在功能模块上应达到如下需求:
遥控小车灭火系统装置方面应具有水蓄、水力灭火、风力辅助灭火、照明、火焰检测、光照检测以及报警功能。另外该系统装置需具有无线传感网络通信功能,可以利用小车遥控器对小车进行移动控制,同时可以按下小车遥控器上的抽水电机、直流风扇、蜂鸣器、照明灯等执行器。智能控制方面应合理运用各个传感器采集数据,运用一定的算法处理数据,通过处理好的数据可以实现智能逻辑判断进行智能控制或智能报警。例如,遥控小车检测到周围有火焰发生,则小车上的蜂鸣器会自动以100MS周期响起,以达到智能报警的目的;光照传感器可以实时对灭火小车的周边环境进行光照强度进行采集,采集到的采样值通过公式进行流明值运算,通过数据平滑处理算法处理流明值。当流明值小于200LUX,则自动开启照明灯,从而达到智能控制的目的。
该系统在硬件装置上应达到如下需求:
小车遥控器方面应操作简单,电路布局简洁,电池蓄电能力高、复用性强,可用常见的充电器进行充电;灭火小车方面元器件应布局规整、整洁,安全系数高,能够有效实时监测周围环境是否有火,及时报警、照明、灭火等功能;
该系统在主控芯片性能上应达到如下需求:
单片机是整个遥控小车灭火系统的控制中枢,它控制每个子功能模块协调工作,进而完成整个遥控小车灭火系统的所有功能。该遥控小车灭火系统选用价格低廉且性能可靠的STM32F103单片机作为主控芯片,它属于STM32F系改进增强型单片机,集成了向上或向下计数器和时钟输出等更多功能。STM32F103的另一个特点是可以工作于低功耗模式,可选择空闲模式和掉电模式。在掉电模式下,时钟停止,RAM数据不丢失,同时其他功能都停止;空闲模式下,虽然CPU停止工作,但RAM、串行口、定时器和中断系统仍能正常工作。STM32F103的这些特点成为了众多嵌入式控制应用系统首选的单片机[2]。
1.3 运行环境
1.3.1硬件设备
开发PC机:具有 Pentium III 处理器以上且满足以下要求的计算机:最低 64 MB 内存,最小 2.1 GB 硬盘。
主控单片机:具有STM32F103处理器以上且满足以下要求的单片机:ARM 32位的Cortex-M3,最高72MHz工作频率,在存储器的等待周期访问时可达1.25DMips/MHZ(DhrystONe2.1),单周期乘法和硬件除法,最小 64K 硬盘,集成定时器Timer,CAN,ADC,SPI,I2C,USB,UART等多种外设功能。
主控单片机程序仿真器:ST-LINK/V2 - ST-LINK/V2。
辅助单片机:具有CC2530处理器以上且满足以下要求的单片机:8位的ARM,最低64KB 内存,最小256KB硬盘,具有IEEE 802.15.4 兼容无线收发器。[3]
辅助单片机程序仿真器:SmartRF04EB
外部设备:12*12*MM微动开关,5.8*6.8MM自锁开关,2路5V继电器,5V直流风扇,5506光敏电阻,3.3V有源蜂鸣器,发光二极管,全向麦克纳姆轮,直流减速电机。
1.3.2程序开发
操作系统:Windows 98/NT/2000/XP或更高版本
电路设计:Altium Designer 9或更高版本
电路模拟仿真软件:CZ_OpenSpice
数据分析:串口调试助手
算法测试:Dev-C++
芯片设计:STM32CubeMX
STM32F103单片机程序设计:Keil uVision5
CC2530单片机程序设计:IAR
取字模软件:PCtoLCD2002
程序底层驱动生成:STC-ISP
2 系统总体框架
2.1 模型结构
系统的模型结构如图2.1所示:
图2.1遥控小车灭火系统的模型结构图示
该系统结构分为三个逻辑层:
系统配置层:系统配置层主要根据功能需求对单片机的各个引脚IO口进行定义、单片机内、外部时钟、ADC模数转换、IIC、SPI、外部中断、串口等配置。这一层是用STM32CubeMX软件始化代码生成器来进行实现的,大大缩短了开发时间。
业务逻辑层:业务逻辑层包含系统功能的规则和逻辑的实现。主控芯片方面,如引脚的输出、输入、ADC采集,解析、处理等这样的任务。无线通信方面,必须合理运用组合键,当逻辑较为复杂时,只靠单片机内部的轮询方式远远不够,可以进行开启多个外部中断或多个定时器中断以及STM32F103内部的滴答定时器等功能同时处理多个功能模块。
数据通信协议层:数据通信协议层为业务逻辑层提供指令,这一层是运用串口通信和Zigbee通信作为解决方案文件实现多板通信任务。无线通信协议通过数据传输协议封装,如帧头、设备地址、事件类型、数据长度、数据高八位、数据低八位、帧尾、校验位[4]。
2.2 功能模块简介
图2.2 系统的模型结构图示:
图2.2遥控小车灭火系统的模型结构图示
工作流程为:
打开该系统电源开关,灭火小车主控单片机自动对各个功能的引脚、ADC模数转换、串口通信、中断和定时器进行初始化,主控单片机电源LED指示灯亮起,主控芯片初始化完毕后对辅助单片机A节点串口发送初始化命令进行A节点初始化,A节点初始化完毕后对B节点无线发送初始化命令,B节点初始化完毕后无线反馈该系统成功初始化命令。整个系统初始化完毕,主控单片机与辅助单片机将创建任务事件,主控单片机上的火焰传感器及光照传感器实时采集当前环境数据,并实时无线发送给辅助单片机。
灭火小车启动时,对周围进行火焰监测,若有明火发生,灭火小车立即报警,操作员在听到蜂鸣器报警声后,利用小车遥控器对小车进行无线控制[5]。
灭火小车上的LED将以小车遥控器发送的指令进行相应的操作,除此之外,光照传感器可以实时对灭火小车的周边环境进行光照强度进行采集,采集到的采样值通过公式进行流明值运算,通过数据平滑处理算法处理流明值。当流明值小于200LUX,则自动开启照明灯,系统判定为夜间,并自动开启照明灯,用于模拟消防车上的远光灯;若光照强度大于200LUX,系统则判断为白日,并自动关闭照明灯。
灭火小车到底目的地后,操作者可以使用遥控器的灭火功能键,选择风力灭火或水力灭火,若火势较大时,可以同时使用风力、水力进行灭火。
如果小车超出遥控器通信范围,小车将自动发出警报声、且原地等待,LED灯快速闪烁便于操作者寻找。重新进入遥控器通信范围,小车将回到初始状态,等待操作者的命令。
3 技术介绍
3.1 STM32与单片机简介
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统[6]。
单片机主要目前应用在常见的电子产品,例如LED滚动屏、无线开关、数据记录,自动洗衣机、冰箱、电磁炉。作为一个把微处理器、存储器、I/O接口、定时器/计数器、串行接口、中断系统等电路集成在一块芯片上形成的单片系统的单片机。当单片机与传感器两者结合后,就可以设计出大量的、实用的系统。
3.2 CC2530单片机简介
CC2530 结合了领先的RF收发器的优良性能,业界标准的增强型8051 CPU,系统内可编程闪存,8-KB RAM 和许多其它强大的功能[7]。
CC2530内置的RF收发器可以作为短距离无线通信(30m2),另外CC2530具有一系列通信标准,ZigBee组网的首选协议栈,特点是近距离、低复杂度、自组网、低功耗。
3.3 串口通信简介
3.3.1 通信协议
一个可靠通信体系,除了好的硬件电路外,通信协议也至关重要。在单片机系统RAM资源与执行速度都非常有限的情况下,一个简捷有效的协议是非常重要的。下面具体介绍一种比较适用于单片机通信的协议,数据以包的形式传送。数据包结构[8]:
①包头——指示数据包的开始,有利于包完整性检测,有时可省略;
②地址——数据包要传送的目标地址,若只有双机通信或硬件区分地址可以省略;
③包长度——指示整个数据包的长度;
④命令——指示本数据包的作用;
⑤参数——需要传送的数据与参数;
⑥校验——验证数据包的正确性,可以是和校验、异或校验、CRC校验等或者是它们的组合;
⑦包尾——指示数据包的结尾,有利于包完整性检测,有时可省略。
3.3.2 通信流程
首先,要在FRAM里划分好各个区域,各个单片机的参数区、数据接收区等。然后,单片机可以向另一个单片机发送数据包,发送完毕之后通过向握手线B发送1个脉冲通知对方取走数据;接收方读取数据并进行处理后,向FRAM内发送方的数据接收区写入回传数据或通信失败标志,再向握手线B发送1个脉冲回应发送方。[9]
如果需要另一块单片机发送的话,只需交换一下操作上述过程即可。
3.4 通信协议
该系统使用RS-232串口通信和ZigBee无线通信,作为主控单片机和辅助单片机A节点以及辅助单片机B节点的数据交互。建立了4个异步并行全双工串口通信,使用了2.4GHz频段进行无线通信。主控单片机用于分析命令,处理事件,辅助单片机A节点用于ZigBee无线透传功能,辅助芯片B节点用于执行小车动作。
3.5 主要数据包
本系统设计了8位数据包,在此介绍其中8位数据的作用。
(1)数据包。该表中的数据,所有单片机会自动识别,并作出对应功能,在通信时可能会发送丢包,使用利用校验位进行计算,判断出此包数据是否正常,若正常不做如何操作,若异常,则发送数据错误命令,相应的单片机重新发送数据包。(见表3.1)[10]。
表3.1 数据包设计
帧头 设备地址 事件类型 长度 高八位 低八位 帧尾 校验位
0x00 0x01 0x01 0x08 0x10 0x0A 0xFF 0x0F5
3.6 算术平均滤波法
算术平均滤波法适用于对一般的具有随机干扰的信号进行滤波。这种信号的特点是信号本身在某一数值范围附近上下波动,如测量光照、液位[11];
基本方法:按输入的N 个采样数据 ,寻找这样一个 Y ,使得 Y 与各个采样值之间的偏差的平方和最小。(见表3.2)
An=(a1+a2+……+an)/n
3.2 算术平均滤波法
4 系统详细设计
4.1 灭火小车总体电路原理图
此系统装置硬件部分采用STM32F103最小系统板与CC2530单片机进行组合。采用2000mA可蓄5V电池供电,两者通过3,3V降压芯片进行降压处理,同时共VCC和GND,并配备两个10PIN口的接线端子共给两块单片机作为源代码的下载入口,以及两个MX232芯片作电平转换,作为两个单片机的串口通信向PC端发送数据,便于数据分析与调试[12]。
灭火小车总体电路原理图如图4.1 所示:
图4.1灭火小车总体电路原理图图示
4.2 串口通信电路
此系统两块单片机相隔距离近,属于近距离串口通信,所以无需MX232芯片进行电平转换,共VCC和GND即可。STM32F103单片机与CC2530单片机若要和PC开发机进行串口通信则需要使用MX232芯片进行电平转换,且必须通过TTL仿真器转换成USB与PC通信。
STM32F103与CC2530串口通信电路如图4.2所示:
图4.2 STM32F103与CC2530串口通信电路图示
4.4 时钟树配置
此系统运用STM32CubeMX进行引脚定义和外设功能配置,最高时钟频率设为72MHz,分频为8位频,ADC采集频率为12M。运用了IIC、SPI、串口等通信协议,2个ADC采集和6个输入、15个输出引脚、2个定时器[13]。
ADC:用于模数转换光照强度。
IIC:使用串行总线通信协议读取火焰传感器。
SPI:作用于数据交互和显示。
串口:用于两块单片机的串口通信以及PC开发机的数据分析。
输入IO口:用于人体红外传感器和微动开关按键输入功能(低电平为有人和按键按下,高电平为无人和按键抬起)。
输出IO口:用于LED灯、继电器、蜂鸣器的输出。
定时器:定时器设置为PWM输出功能,对舵机进行占空比调速和输出电压等操作。
STM32F103时钟树配置如图4.3所示:
图4.3 STM32F103时钟树配置图示
4.5 管脚配置
此系统运用STM32CubeMX进行引脚定义和外设功能配置,最高时钟频率设为72MHz,分频为8位频,ADC采集频率为12M。运用了串口1、ADC和9个输、16个输出引脚、2个定时器。
IIC管脚为:PB7、PB6
SPI管脚为:PD0、PD1、PA13、PA14
串口管脚为:PA2、PA3、PA9、PA10
ADC管脚为:PA0、PA1(ADC1中断查询,2个通道分别为Rank1、Rank2)
输入管脚为:PC13、PC14、PC15、PB8、PB13
输出管脚为:PA5、PA6、PA7、PB12、PB15、PA11、PA15、PB3、PB4、PB5
PWM输出管脚为:PAB
系统管脚配置如图4.5所示:
图4.5系统管脚配置图示
5系统实现
5.1 系统设计内容介绍
灭火小车处于开启状态,可以对周围(120°)场景进行实时监测是否有火灾发生,如有火灾发生则通过蜂鸣器自动报警。
用户可以通过遥控器对灭火小车进行控制,到达火灾目的地,通过遥控器开启灭火器,火势较小时通过直流风扇进行灭火,火势较大时则通过直流水泵喷水灭火。
Zigbee灭火小车与遥控器通过Zigbee透传通信模式,灭火小车检测到有火灾发生时通过指令发送给遥控器进行报警。遥控器按下键位时,发送相应的指令控制灭火小车。
5.1.1 小车主体介绍
小车主体分为三个板块,分别为底层、中层、顶层板块,每个板块都有相应的事件处理,和任务作业[14]。
小车底层板块内设300ml的蓄水装置和5V直流水泵。蓄水装置采用间断续水水池设计,其目的为了防止内部压强过小,无法合理的进行水分配,导致灭火过程中的意外。
小车中层板块配备了火焰传感器、1000mA直流5V可蓄电池。火焰传感器可对周围(120°)场景进行实时监测
小车顶层主要由STM32F103单片机、CC2530单片机、光照传感器、蜂鸣器、LED灯、按键、电机驱动模块、5V直流风扇组成。两块单片机功能分别作为小车主控与遥控器通信功能。光照传感器则与LED灯进行联动交互。
小车主体如图5.1所示:
图5.1小车主体图示
5.1.2 遥控器介绍
此系统遥控器由CC2530作为数据通信模块,内置200mA可蓄电池,外观主要由按键、LED灯组成。功能可分为两类事件任务,一类是用于发送数据,如左边的四个方向控制键和右边执行灭火命令事件任务。另一类是接收数据,如接收到报警事件,蜂鸣器则报警,超出通信范围,通信灯会亮起等事件任务。(见表5.13)
按键序号 功能 数据包 校验位 结束符
KEY1 向前移动 0X01 0X00 数据包+结束符+1 取低八位 FF
KEY2 向左移动 0X02 0X00 数据包+结束符+2 取低八位 FF
KEY3 向后移动 0X04 0X00 数据包+结束符+3 取低八位 FF
KEY4 向右移动 0X08 0X00 数据包+结束符+4 取低八位 FF
KEY5 打开或关闭照明灯 0X00 0X01 数据包+结束符+9 取低八位 FF
KEY6 打开或关闭抽水机 0X00 0X02 数据包+结束符+10 取低八位 FF
KEY7 打开或关闭风扇 0X00 0X04 数据包+结束符+11 取低八位 FF
KEY8 打开或关闭蜂鸣器 0X00 0X08 数据包+结束符+12 取低八位 FF
表5.2 数据包设计
遥控器左面:KEY1、KEY2、KEY3、KEY4分别为白色、蓝色、黄色、红色
遥控器右面:KEY5、KEY6、KEY7、K
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论