在这里插入图片描述

一、项目介绍

摘 要
针对城市“停车难”状况,本课题规划出一套依靠多传感器融合的智能车位检测及引导控制系统,该系统把STM32F103C8T6当作主控芯片,整合了红外传感器,限位行程开关,TFT彩屏,语音模块,舵机以及ESP32CAM无线模块,红外传感器用来探测车辆入库情况,限位开关用以判定车位是否被占,二者相融合可以做到精确检测。系统依照A,B,C车位的先后顺序,经由语音提示和显示屏信息智能引导驾驶员停车;当车辆停放完毕之后就会自动开始计算停放时间和费用,按下指定按钮即可办理结账手续;而ESP32CAM则具备向云端服务器传送相关数据并允许手机应用程序执行远程操控的能力,经过试验验证,这个系统运作起来非常平稳,检测准确性较高,引导规则合乎情理,收费机制也很稳定,确实能够在很大程度上优化停车场的日常运作效能,具备不错的应用前景。

关键词:车位检测;多传感器融合;STM32;智能引导;限位开关

主要研究内容
本课题旨在设计并实现一套融合多传感器的智能车位检测与引导控制系统,主要研究内容包括以下几个方面:
系统总体方案的设计包含对功能需求的剖析,从而确定车辆检测,语音指引,道闸控制,计时计费以及 APP 远程观测等核心功能,经由对系统总体架构实施设计,把模块划分及接口关系加以明确,并确定数据流向和控制逻辑。
(2)主控芯片选型及硬件电路设计方面,选定 STM32F103C8T6作为主控芯片,并完成了最小系统电路的设计,设计包含红外传感器,限位开关,TFT 彩屏,语音模块,舵机,按键以及 ESP32 CAM 的接口电路,从而完成硬件平台的搭建。
(3)针对多传感器融合技术展开研究,探究红外传感器以及限位开关的工作原理与输出特性,并规划适合停车场场景的数据融合策略,涵盖信号收集,去抖动处理以及逻辑评判等方面,从而提升车位检测的准确率及其抗干扰性能。
系统软件的设计与达成需依托Keil平台并用C语言展开模块化编程,要完成主程序框架,传感器数据采集,引导逻辑判断,显示驱动,语音控制,舵机控制,计时计费以及无线通讯等软件模块的设计。
系统检测与功能核实环节需创建检测环境,逐个模块地检测硬件功能,开展系统整体联调,核查引导逻辑是否正确,计费功能是否准确以及APP远程控制是否有效,以保证系统符合设计方案。

系统功能需求分析
融合多传感器的智能车位检测与引导控制系统的六项核心功能缺一不可,其中,车位检测及识别功能处于系统根基地位,该系统采取了红外对管传感器与限位行程开关合作的多传感器融合策略,红外传感器具备快速响应特点,其设置于入口处用以感知车辆驶入并引发检测,而限位行程开关则置于车位地面之处,依靠机械触点的闭合与断开来精确判别车位是否已被占据,两者所采集的数据相互结合,便能较好地规避单一传感器在复杂环境下可能出现的误检或者漏检情况,大幅优化检测准确性以及系统的稳定性能,进而为后面的引导与经营功能形成稳固的根基。
信息显示,语音引导以及门禁自动控制这三项功能一起形成了系统的核心部分,其中信息显示依靠TFT彩屏及时显示出A,B,C这三个车位的占用车情况,计费数额以及指引方向等信息,语音模块在车辆进入和停放时会说出相关指示语句,从而达成视觉和听觉两个方面的指引效果,而门禁控制则按照所检测到的车辆状况来自主调控舵机以开关道闸,以此模拟现实中的停车场进出口管理流程,保证车辆可以顺利进出。
计时计费功能和车位预约功能分别解决经营管理和用户体验方面的问题,计时计费做到无人化收费,车辆停入车位之后就开始计时,每秒钟收费一元,最高不超过二十元,而且经由独立按键来完成费用结算。车位预约功能让用户可以提前经由APP锁定车位,在预约的时间内不会产生费用,如果超时系统会自动释放,这明显改善了用户满意度以及停车场的服务质量。
数据云端同步加上异常处理功能来保障系统稳定运行,依靠ESP32 CAM模块的WiFi功能,系统会及时把车位状态,计费金额以及预订信息等数据传送到手机APP上,从而达成远程的监测与经营。一旦网络出现异常,系统就有故障自动检测的功能,可以保证关键业务流程不断开,使得系统长时间处于稳定运行的状态。

系统总体架构设计
本系统采取分层式模块化架构设计,包含感知层,控制层,网络层及应用层这四层,各层依靠标准化接口实施数据交互,以此保障系统的可扩展性和可守护性。感知层处于系统最低层级,其职责在于采集停车场现场的原始数据,主要依赖设置于入口处的红外传感器来监测车辆抵达情况,还要利用安装在A,B,C这三个车位地面上的限位行程开关来判定车位的占有状态,所收集到的数据经由GPIO接口传递给控制层以供处理。
控制层是系统核心,以STM32F103C8T6微控制器为主控芯片,负责协调各功能模块:接收感知层的数据并加以处理,执行多传感器融合的逻辑来判断车位的状态,控制TFT彩屏的内容更新,指挥JR6001语音模块进行播报,按照检测结果来控制SG90舵机去带动道闸,运行计时计费的相关逻辑,经由串口与ESP32 CAM模块开展数据的交互,在网络出现异常的时候保障核心功能不受到损害。
网络层负责调控层与应用层之间数据的输送工作,其重点在于ESP32 CAM模块自带的WiFi功能,该通信模块会把现场控制器的数据整合封装后传送到手机APP上,并且还能够接收到应用层下达下来的控制命令,而且,ESP32 CAM具备视频监测能力,可以达成对停车场现场的直观显示效果。
应用层为系统与用户交互所处的界面,其中涵盖手机 APP,经由 APP,用户可以随时查看车位状况,计费数额以及现场视频,而且还能在远处实施车位结算,车位预订等相关操作。应用层借助网络层同控制层达成间接交互,从而创建起完备的智能停车经营闭合回路。

本系统以STM32F103C8T6为主控芯片,其内置ARM Cortex - M3内核,最高工作频率达72MHz,具备64KB Flash 和 20KB SRAM存贮容量,足以应对本系统传感器数据收集,语音提示控制,舵机动力输出以及无线通讯等各项任务的处理需求,该芯片内部整合诸多外设接口,覆盖多个定时器,ADC,USART, I2C 和 SPI 等,给各类传感器的接入供应了充裕的硬件支撑,STM32F103C8T6有着功耗小,性价比高,开发资料全面等长处,在工业控制领域以及物联网终端设备中有较广的应用范围,很契合本系统的功能需求。
在这里插入图片描述
最小系统电路设计包含时钟电路,复位电路以及程序下载电路这三部分,时钟电路以8MHz外部晶振作系统主时钟源,经由内部PLL倍频之后可达到72MHz的工作频率,并附带一个32.768kHz晶振用以给实时时钟模块给予精确的计时,复位电路采取按键结合RC复位的方法,从而保证系统在上电和人工复位的时候能平稳地启动。
在这里插入图片描述
独立按键电路设计
本系统有三个独立按键,它们分别对应A,B,C三个车位的收费结算功能,还设有一个系统复位按键,用以达成本地的人机交互操作。这些按键都是轻触式开关,其特点是手感清晰,使用寿命长,当按下某个按键的时候,开关触点会闭合,这样就会把对应GPIO引脚拉低到低电平;而当这个按键放开的时候,触点就会断开,引脚依靠上拉电阻重新回到高电平,单片机借助检测引脚电平的下降沿来判断按键的操作情况,并且在软件当中执行去抖操作,防止因机械抖动造成的误触发。
电路设计中,每个按键均有一端连接到STM32的GPIO输入引脚,另一端则接地,GPIO引脚具备内部或外部10kΩ上拉电阻。为提升抗干扰能力,在PCB布局时,按键走线应尽可能短,并远离高频信号线,就按键功能而言,当车辆停进车位并且开始计费之时,按下对应车位的按键便能完成对该车位费用的结算,结算结束后,系统会控制舵机运行来模拟车辆离开的情形,复位按键用于系统重启,在出现异常状况的时候,可以手动让系统回到正常工作状态,按键经过防水防尘封装之后,就能够符合停车场环境下的使用需求。

二、文档介绍

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、项目设计

开发环境与编程语言
本系统软件设计以C语言为编程语言,于Keil MDK集成开发环境当中去完成程序的编写,编译以及调试工作,C语言具备诸多优势,比如执行效率较高,可移植性较好,而且在模块化开发方面较为得力,从而能够最大程度地发挥出STM32F103C8T6单片机的硬件潜力,同汇编语言比起来,C语言不必深入探究处理器指令集以及存储器架构,寄存器调度和寻址形式由编译器自动处理,这便极大地提升了开发的速度,C语言带有大量的库函数,并且其语法结构十分清晰,由此导致的程序代码既具备较好的可读性又具可维持性,利于后续实施功能扩充和系统更新,C语言存在模块化编程的特点,各个功能模块得以分别开展编写和检测工作,最终经由主程序统一加以调用,这样一种开发手段既提升了代码的重复利用率也优化了开发的效率。
KeilMDK是由ARM公司推出的一种专门针对搭载Cortex - M内核微控制器的开发工具软件,它集成了编辑,编译,链接,调试以及仿真等功能模块,能够满足完整嵌入式软件开发过程的需求,其内部设置有ULINK调试端口,可以达成程序上传与断点调试的目的,如此一来,开发者就能随时查看变量数值以及寄存器情况,从而迅速找出程序存在的故障所在,而且,这款软件附带很多示例代码集与设备专用资料,对STM32F103这一型号的处理器芯作了改良适配,所以当开发者想要开展底层硬件控制工作时,不必去理会复杂的寄存器层面交互事宜,只需要调用一些经过封装好的预定义API调用来即可,这样就极大地缩减了整个设计制作阶段所花费的时间精力。 编译完毕后生成的 HEX 文件经由 SWD 接口被下载到 STM32 单片机上执行。

系统主程序流程设计
系统主程序采取前后台架构来设计,其中前台负责处理那些急需即时性的事件,其为中断服务程序所掌控,后台则是由主循环来达成各个功能模块之间的协调调度。当系统上电之后,会先执行初始化流程,此流程关乎到系统时钟的设置,GPIO引脚的初始化,定时器的设置,串口的初始化以及各外设模块的初始化,等到这些初始化工作完毕以后,液晶屏便显示出停车场的主界面,这个界面上显示了A,B,C这三个车位的位置示意图及其当下的状态信息,然后系统就会转入到主循环当中,在这个循环里,它会定期地去监测红外传感器的输入情况,限位开关的状态,按键的输入还有串口指令,依照所检测到的情况去运行对应的处理函数。 主循环以轮询的方式检查各输入信号,如此一来就能保证在任何时候都有机会察觉到状态的改变并作出回应。
主程序的核心逻辑围绕车辆检测与引导展开。当红外传感器检测到车辆驶入时,系统立即读取三个限位开关的状态,判断当前车位占用情况。根据预设的引导优先级,系统生成相应的引导指令:A车位如果空着,就提示“建议您向左开去停在A车位”,A车位被占,B车位空着时,提示“建议您直行停进B车位”。A,B车位都满了但是C车位还有空位,就提示“建议您向右行驶停靠在C车位”,如果停车场内车位全都停满了,就显示“很抱歉,车位已满”。这些引导指令经由语音播报模块发出,而且会在TFT彩屏上显示出指向性箭头和相关的文字提示信息,一旦限位开关觉察到有车停进了某个车位,系统就会激活这个车位对应的计时器来开始收费,即每一秒收费1元钱,最高限额是20元钱,当车主按下了自己车位上的结账按钮之后,系统便会停止该车位的计时功能,并将费用重新归零,还得操控舵机运作以模仿车辆离开的样子。

在这里插入图片描述
各功能模块软件设计
显示模块的软件设计依靠 ST7735 驱动芯片来达成控制时序,显示驱动程序包含很多基本函数,其中主要有初始化函数,写命令函数,写数据函数,设置光标函数以及清屏函数等。初始化函数依照 ST7735 数据手册所规定的时序,发送一系列初始化命令,用于设置显示模式,色彩格式以及扫描方向,从而让屏幕转入到正常的工作状态之中,而写命令和写数据函数经由 SPI 接口来传送数据,需控制 CS,DC 和 SCL 引脚之间的时序协调,以保障命令及数据能够得到精准传递。 在基本驱动之上,系统规划了图形化显示界面,屏幕被划分成三个区域,分别用于显示车位状态,计费金额以及引导信息,当车辆检测状态发生改变时,系统会调用显示更新函数去更改对应区域的显示内容,其中,引导箭头借助自定义图形数组储存来做到方向指示。在这里插入图片描述
系统硬件集成与调试
系统硬件融合依照电路设计图纸来完成各个功能模块同 STM32 主控核心板的连接,TFT 彩屏模块经由 SPI 接口与单片机开展交流,JR6001 语音播报模块采取 UART 串口执行连接,SG90 舵机接入 PWM 输出引脚,红外传感器和三个限位开关各自连接到指定的 GPIO 输入引脚,三个独立按键则连接到另一组 GPIO 引脚,ESP32 CAM 模块借助串口与主控展开数据交互,电源电路给各个模块给予稳定的工作电压,保证所有模块都能得到正常的供电。 硬件融合完毕以后,要检查各个结合点,保证电路结合准确牢固,没有短路或者接触不良的情况发生。
硬件调试工作是分模块逐步开展的,先对主控最小系统执行调试,以确认单片机能正常工作。接着分别对各个外设模块加以单独调试,查看TFT彩屏显示状况,语音播报的清晰程度,舵机转动是否灵活,红外传感器检测是否灵敏,限位开关触发是否可靠,按键响应是否精准,当各个模块单独调试均无问题之后,便实施系统联调,保障模块之间的通信正常,整体硬件系统稳定可靠,从而给后续的软件功能达成给予硬件支撑。

引导逻辑功能实现
引导逻辑功能会遵照车位的占用状况来自动产生语音及显示引导信息,该系统会随时监测三个限位开关的状态以保存车位的占用信息,当红外传感器察觉到有车辆进入时,就会激活引导逻辑加以判断,其依照 A 车位优先,B 车位次之,C 车位为末的优先顺序来进行判断。倘若 A 车位为空闲,系统便发出左转驶向 A 车位停靠的引导命令,并且在液晶屏幕上显现“A位向左开”,并且描绘出指向左侧的箭头;要是 A 车位被占用而 B 车位还是空着的,就发出向前直行停泊 B 车位的指令,屏幕上则显示“B位直行”;一旦 A 和 B 车位都被占满只有 C 车位还空闲,那么就给出右转驶向 C 车位停靠的引导指令,屏幕上也就出现“C位向右开”的字样;可要是所有车位都已经停满了,那就显示出车位已满的指示,屏幕上便会显现“车位已满”这几个字。
引导逻辑在软件中由状态机设计来达成,其中定义了四种引导状态,分别对应四种引导场景。每当车辆进入检测触发阶段时,系统会依照当下车位的占据状况转进到相应状态,并执行该状态所对应的操作,操作涵盖向语音模块发出相应的语音指令,还要调用显示更新函数在屏幕上显示引导文字和方向箭头,而且这些引导信息会在一直显示到车辆停好或者离开为止,等到车辆停进车位以后,系统就会按照最新的车位状态去更新引导信息,从而为后面开来的车做好准备,经过检验之后可以知道,引导逻辑能够精准地应对各类车位排列情形,符合即时指引的需求。

计费功能实现
计费功能可自动记录车辆停入车位之后所经过的时间,并逐步累加相应的费用,限位开关感知到车辆停进某个车位时,系统就会开启此车位的计时器以执行秒级别的计量操作。费用的计算按照每秒钟提升一元的标准来执行,而且存在一个设定好的限额,当执行计费的时候,液晶显示屏会随时更新显示属于该车位应缴纳的费用数额,如果车辆刚刚停好就匆匆开走,系统将会把它当作是无效停车处理,既不会收取任何费用,也不会占用这个车位。这样的设计可防止由于车辆短暂停留或者误触发而造成的错误计费情况发生。
费用结算功能经由独立按键达成,车辆欲退出时,按下对应车位的结算键,系统感知到此按键动作便开始结算流程,停止该车位计时器,把最终费用加以记录,更新车位状态为闲置,并清除费用数额,液晶显示屏相应区域重新显示闲置。结算完毕之后,系统指挥舵机运作来模拟抬杆放行,表明车辆已离开,如果车辆进入之后并未产生费用就直接离去,系统检测到限位开关复位时就会立即释放车位,不需要按键结算,计费功能的设计是合理的,可以满足停车场实际经营的需求。

手机APP功能实现
手机APP的功能依靠ESP32 CAM模块的WiFi通信能力达成远程观测与控制,ESP32 CAM经由串口接收由STM32传送的车位状态数据,其中涵盖车位的占有状况,计费数额等相关信息,当ESP32 CAM接入本地WiFi网络之后,就会与手机APP形成通信联系,并把数据及时上传到手机APP当中,手机APP的界面设有车位分布图,即时状态指示以及控制开关等元素,一旦车位的状态出现改变,那么在应用程序端也会立即更新显示内容,从而保证用户可以得到最新的消息,而视频监测功能则是利用ESP32 CAM本身所配备的摄像头来拍摄现场的画面,以此做到对停车场现场情况的直观呈现。
APP的控制功能具有与本地按键等同的操作权限,用户可经由APP远程执行车位结算,车位预订等操作。当用户向APP发送控制指令时,ESP32 CAM收到指令之后,会经由串口转发给STM32,主控接收到指令之后会对其进行解读,并按照指令内容来执行相应功能,最后给出执行的结果,车位预约功能使得用户可以选定空闲的车位执行预约,系统会把该车位标示为预约状态,而且会在液晶屏上予以显示,在预约的有效时段之内是不会进行收费的,如果用户已经到达并且停好车,那么系统就会自动转换成正常的收费模式;倘若超过了预定的时间还没有到来,系统便会自动解除预约状态,从而保证APP和系统之间的数据保持一致,以此来保障远程操作既精准又及时。

总 结
城市化进程加快,汽车保有量不断增多,“停车难”问题愈发成为烦扰城市经营和市民出行的明显矛盾,本论文设计并完成了一套依托多传感器融合的智能车位检测与引导控制体系,利用传感器技术,植入式系统以及无线通信技术,创建起一个包含即时检测,智能引导,自动计费及远程经营的智能停车方案。
系统的硬件设计以STM32F103C8T6单片机为核心,利用模块化设计思路完成各个功能模块的电路设计及制作,红外对管传感器置于入口处用以检测车辆进出情况,限位行程开关装在车位地面用以确认车位的占有状态,二者相互配合达成稳定的多传感器融合目标。TFT彩屏即时显示车位状况和引导信息,JR6001语音模块发出清晰的语音引导,SG90舵机模仿道闸执行自动控制,而ESP32 CAM则做到无线视频监测并执行数据同步,各模块的电路设计恰当,接口标准,给系统的稳定运行给予了硬件层面的支撑。
在软件设计上,凭借KeilMDK开发环境用C语言来写程序,规划系统主程序流程以及各个功能模块的激发程序,主程序采取前后台结构随时监测传感器输入并执行相应的引导逻辑,依照A车位优先,B车位次之,C车位最后这种优先顺序生成对应的声音播报和屏幕显示信息,其计费功能做到车辆停进之后自动开始计时,每隔一秒钟收费一元钱,最高限额为二十元,而且经由独立按键来达成费用结算,无线通讯模块可与手机APP实行数据同步,具备远距离查看车位状况,预定车位以及远端控制的能力,经过系统检测证实,车位探测精准无误,引导逻辑恰当得体,计费功能可信稳定,通讯流畅畅通,系统运转正常,符合预先设定的设计目的。

更多推荐