基于ESP32 的智能三角警示牌设计
2024-01-16张宾王辰洪轲
张宾,王辰,洪轲
(无锡城市职业技术学院,江苏无锡,214000)
0 引言
根据国家统计局的数据[1],近五年(2017-2022)我国民用汽车保有量和驾驶人员数量逐年增加,由汽车引发的交通事故数量、伤亡人数和经济损失虽有波动,但一直保持在较高水平,对人们的生命和财产安全构成了巨大的威胁。根据道路交通安全法的规定,车辆在道路上发生故障、事故或其他紧急情况时,驾驶员应立即设置警示标志。三角警示牌是一种常用的警示标志,用于提醒其他车辆减速慢行,避免二次交通事故的发生[2]。根据安静芳[3]等人的研究,二次交通事故的主要原因包括驾驶员超速、疲劳驾驶、应急操作不当等,同时道路结冰湿滑、团雾等极端恶劣天气也是造成二次交通事故的关键因素。避免二次交通事故的关键是及时有效地警示来车方向的驾驶人员,使其有足够长的时间和距离余量处理突发情况。因此,提升三角警示牌的警示效果对于减少二次交通事故的发生至关重要。普通三角警示牌的警示距离有限,在事故风险更高的恶劣天气情况下,其警示效果更差。另一方面,普通三角警示牌只能被动地由驾乘人员发现,缺乏主动警示的功能。综上所述,迫切需要有效的手段来提高三角警示牌的警示效果,以降低二次交通事故发生的概率和减少二次事故发生后的损失。
1 整体方案设计
当代社会,智能交通、物联网、车联网等相关技术已经发展成为保障道路交通安全的重要手段。本文基于ESP32单片机模组,设计了一种智能三角警示牌,旨在通过智能化技术的应用,提高三角警示牌警示效果。
■1.1 主要功能
在普通三角警示牌的基础上,为通过多种方式和手段提警示效果,本文所设计的智能三角警示牌主要增加了以下功能:
(1)通过北斗和GPS 模块获取智能三角警示牌的精准位置;
(2)通过拨码配置影响占用的车道,提供更精确的事故位置数据;
(3)通过4G 模块将上述位置上传至服务器端,为事故告警等系统服务提供精准数据支撑;
(4)通过ESP32 单片机模组的蓝牙或者WiFi 连接手机APP;
(5)通过添加碰撞传感器,在探测到即将发生碰撞时向手机APP 发送报警信息。
■1.2 系统构成
为实现上述功能,本文设计的智能三角警示牌的原理框图如图1 所示,主要包括ESP32 单片机模组、电源模块、定位模块、拨码配置模块、4G 通信模块和碰撞检测模块。
图1 智能三角警示牌原理框图
ESP32 单片机模组是智能三角警示牌的核心控制单元,负责与其他模块交互,实现位置获取、碰撞检测、数据发送等系统需求的功能。
定位模块实现通过卫星定位系统获取所在的经纬度坐标,能够通过串口接收控制模块的查询指令并返回位置数据,用于定位三角警示牌的摆放位置。
拨码配置模块采用一个8 位拨码开关,每位代表一个车道,用于配置智能三角警示牌占用影响的车道,实现对车道级的精确定位,最多支持单向8 车道。
4G 通信模块通过串口与主控模块交互,用于将定位模块和拨码配置模块生成的精确定位信息通过蜂窝网络转发至服务器上。
碰撞检测模块利用超声波测距模块,它能够测量智能三角警示牌与后方物体的距离和速度,ESP32 模块根据预设的参数来判断是否存在碰撞的危险。
电源模块采用电池组供电,电池组输出电压12V,经过电源调整电路后输出3.3V 电源供ESP32 单片机模组和其他模块使用。
2 硬件设计
■2.1 主控系统电路
本文选用的主控模块为乐鑫公司的ESP32-S3-WROOM-1 模组,它包含一颗32bit 主频高达240MHz 的双核处理器,并内嵌了2.4GHz WiFi 和Bluetooth 5(LE)模块,适用于多种应用场景[4]。其外围电路原理图如图2 所示。
图2 ESP32 主控模块外围电路原理图
图2 中所包括主控模组的最小系统电路和功能模块的接口电路。最小系统电路包括晶振电路、复位电路、调试UART 接口电路、JTAG 电路及启动方式选择电路等,这些内容本文不再赘述。功能模块包括前述电源模块、拨码配置模块、定位模块、4G 通信模块、拨码配置模块及碰撞检测模块等,它们的内部电路或接口将在后面的章节进行介绍。
主控模块ESP32-S3-WROOM-1 模组中的核心芯片ESP32-S3 集成了2.4 GHz WiFi (802.11 b/g/n),支持40 MHz 带宽。ESP32 的Bluetooth 5(LE)可通过Coded PHY 与广播扩展实现远距离通信,在使用编码方案时,可以较小的输出功率达到更大的覆盖范围,在接收机灵敏度为-95 d Bm 时传输距离可以达到400 m[5]。2.4G WiFi 在室外环境下的传输距离可以达到150~400m,因此在三角警示牌的摆放范围内(普通道路100m,高速公路200m)能够通过WiFi 或Bluetooth 5(LE)与手机终端进行正常通信。
■2.2 定位模块
定位模块选用中科微电子的ATGM336H 模块,该模块支持多种导航卫星系统,包括GPS、格洛纳斯、北斗和伽利略。它能同时接收多个卫星信号,提供准确的位置、速度和时间信息[6]。定位模块通过图2 中的JP6 与ESP32 模组的IO4 和IO5 连接,通过串口将定位数据发送给单片机。
■2.3 拨码配置模块电路
为解决GPS 和北斗定位精度达不到车道级的问题,考虑到很多情况下交通事故会占用影响不止一个行车道,本文设计了由用户手动选择拨码开关来标识占用车道情况的方案,实现对智能三角警示牌所影响车道的准确定位。如图2 中SW2 所示,本设计将一个8 位拨码开关通过上拉电阻接入ESP32 的IO 引脚,车道从左到右依次对应第1、2……8 个拨码开关,最多支持8个车道。受影响的车道开关闭合,对应的IO引脚为低电平。未受影响正常的车道开关打开,对应的IO 引脚为高电平。闭合多位拨码开关表示多条车道同时受到影响,ESP32通过检测IO 引脚电平情况,即可得到车道占用情况。
■2.4 4G 数据传输模块
为降低开发难度和风险,本文选用成熟的4G 模组作为数据传输模块,ESP32 模组只需要通过串口与之交互即可实现数据传输功能。本文选用的成都移讯通科技有限公司4G 数据传输 模 组, 该 通 信 模 组 支 持GSM、WCDMA、CDMA2000、TDSCDMA、LTE-FDD、LTE-TDD 等 多 种2G/3G/4G 网 络 频 段,在不同网络环境下性能稳定。模组支持多种工作协议模式,包括AT 命令模式、透传模式和协议模式。本文使用的是AT 命令模式,ESP32 单 片机 的IO4 和IO5 与 模 块RX-TTL 和TX-TTL 通过接插件相连,通过串口向4G 模组发送AT 命令实现服务器地址配置、定位数据发送等功能。
■2.5 碰撞检测电路
常见的碰撞传感器包括接触式传感器和非接触式传感器两类。接触式传感器通过物理接触来检测碰撞,如压力传感器、力传感器等。非接触式传感器则通过测量物体之间的距离或反射信号来检测碰撞,如超声波传感器、激光传感器、红外线传感器等。在本文应用场景中,智能三角警示牌有可能会被高速行驶的车辆撞击毁坏,如果采用接触式传感器,很难在电路断电之前完成碰撞检测和数据发送,所以接触式传感器不适用本文场景。
综合考虑成本及检测速度和精度,本文选择非接触式的超声波测距传感器模组HC-SR04 用于碰撞检测。HC-SR04超声波测距模块可提供 2cm ~400cm 的非接触式距离感测功能,模块包括超声波发射器、接收器与控制电路,对外有四个接口,分别是:(1)Vcc:+3V~5.5V 电源供电;(2)Trig:触发信号;(3)Echo:回响信号;(4)Gnd:接地。HC-SR04 通 过 图2 中JP5 接 插 件 连 接 到ESP32 的IO17 和IO18 两个引脚,ESP32 控制IO17 引脚发出脉冲触发信号,并在IO18 引脚上检测相应的回响信号,通过回响信号宽度即可计算出目标距离。
■2.6 电源模块电路
为确保智能三角警示牌能正常工作足够长的时间,本文设计电源采用大容量电池组供电,输出电压为12V,而ESP32 等模块的工作电压为3.3V,需要通过电源电路对其进行降压和稳压,电源电路的原理图设计如图3 所示。本文选用了上海贝岭公司的国产BL8033 作为电源转换芯片,它是一个完全集成的、高效的3A 同步整流降压转换器,支持4.5V~16V 的输入电压范围,转换效率高达96%,且能在一个较宽的输出电流负载范围内高效工作,能够满足智能三角警示牌所有模块的电源需求。
图3 电源电路原理图
3 软件设计
ESP32 芯片整合了WiFi 和蓝牙功能,其高性能和低成本的特点使其在物联网(IoT)领域中占据重要地位。同时,乐鑫官方开源了大量的开发板和开发工具链,因此,ESP32在开源社区中受到了热烈的欢迎,并为MicroPython 和Arduino 提供了强大的支持。MicroPython 的目标是为嵌入式系统提供Python 解释器,与传统的C 语言开发相比,使用MicroPython 可以更快速、更简单地构建嵌入式程序。因此,本文选择使用MicroPython 对ESP32 主控模块进行开发。
软件的运行流程如图4 所示,整个软件采用单循环的方式运行,不使用中断程序。在智能三角警示牌上电后,首先进行系统初始化工作,然后依次初始化外围的4G 模块和定位模块,连接手机蓝牙和WiFi 热点(手机端告警APP 打开后会创建手机WiFi 热点),最后通过向4G 模块发送AT指令的方式配置接收定位数据的服务器地址。在完成初始化工作后,开始循环判断是否到达上传定位数据时间(20 秒定时,该时间可以配置),如果达到上传时间,则开始向定位模块查询定位数据,并读取拨码开关状态,将上述信息打包成json 格式数据通过4G 模块上传至服务器。其余时间不间断利用超声测距模块对后方车辆进行检测,如果检测到3 米以内有物体存在,则立刻通过蓝牙和WiFi 向手机APP发送警报信息。
图4 系统软件流程图
如图4 所示,软件的运行流程采用单循环方式,不采用中断程序。在智能三角警示牌通电后,首先进行系统初始化,然后依次初始化外围的4G 模块和定位模块,连接手机蓝牙和WiFi热点(手机端告 警APP 打开后会创建手机WiFi 热点),最后通过向4G 模块发送AT 指令的方式配置接收定位数据的服务器地址。完成初始化后,开始循环判断是否到达上传定位数据的周期(默认20秒,该周期可以根据实际情况调整),如果到达上传时间,便开始向定位模块查询定位数据,并读取拨码开关状态,将上述信息打包成json 格式数据通过4G 模块上传至服务器。其余时间则不间断利用超声测距模块对后方车辆进行检测,如果检测到3 米以内有物体存在,则立即通过蓝牙和WiFi向手机APP 发送警报信息。
4 结语
本文针对普通三角警示牌警示距离近、定位精度不高、缺乏主动警示等警示效果不佳的问题,利用智能交通、物联网等技术手段,基于ESP32 单片机模组设计了一款智能三角警示牌。该智能三角警示牌能够结合北斗、GPS 的定位数据和拨码开关手动配置的车道数据,通过4G 模块将精确的位置数据发送给服务器,能够为事故告警系统提供更加精确、详细的数据支持。同时,该智能三角警示牌还能利用超声波测距模块对碰撞进行检测预警,并通过手机APP 向前方的驾乘人员发送报警信息。此智能三角警示牌不仅能为事故后方车辆驾驶人员提供精确的事故位置信息,通过告警系统在足够远的地方提醒他们谨慎驾驶,降低二次事故的发生风险;另一方面,即使后方车辆与智能三角警示牌发生碰撞,也能向前方驾乘人员发出警报,保护他们的生命安全。综上所述,本文设计的智能三角警示牌能够有效解决普通三角警示牌警示效果不佳的问题,有效降低二次交通事故的发生风险,减少二次交通事故发生时的损失。