王芳艳,焦铬,陆金佳,袁依平
(衡阳师范学院计算机科学与技术学院,湖南衡阳 421000)
近年来随着信息技术的快速发展,机动车辆数量逐年增长,机动车辆的交通事故和突发情况高频发生,根据《中华人民共和国道路交通安全法》相关法律规定,车辆在发生故障或交通事故时应在车后规定距离设置三角警示牌。传统警示牌结构简单、功能单一且市场管控不严,这导致大量不合规范,设计错误的警示牌的出现。这些警示牌在处理道路交通事故中带来诸多不便,如在高速公路或快速公路上车辆发生事故时需要人为放置警示牌,因视线盲区或后方车辆驾驶员的不规范驾驶行为导致二次事故频繁发生。
现针对传统警示牌存在的弊端,本文设计了一种基于北斗导航的智能三角警示牌,该警示牌的底部增加智能履带小车[1],用户通过多途径连接手机端App,使用App远程控制警示牌放至相应位置,保障人员安全。同时使用红外避障模块,使得履带车更平稳可靠。小车安装BD+GPS 双定位[2],通过精确定位将数据返回至服务器,将事故发生点传回给地图用户,提醒后方行驶车辆注意避让,同时将事故车辆信息以及事故点数据迅速发送给交警以及保险公司,通过短信提醒实现三方互连。普通警示牌的有效显示距离为50~150米,可视距离短,可视效果差,智能警示牌增加LED灯串,即使在晚上或大雾天气警示距离也能达到100~200 米。解决大雾、夜间或者特殊天气导致反光效果差,车辆用户辨识度低的问题,可以有效警示后方车辆。
基于北斗导航的智能三角警示牌蓝牙连接采用Arduino Uno单片机作为主控单元的智能小车,智能小车安装BDS+GPS[3],通过获取智能三角警示牌的经纬度数据,通过物联网卡,MQTT进行数据的传输进入服务器端,嵌入式端再通过云服务器获取数据返回给Web端,地图软件Web 服务API 向开发者提供HTTP接口,开发者可通过这些接口使用各类型的地理数据服务,返回结果支持JSON和XML格式。
智能三角警示牌开启后,可由北斗卫星导航系统在全球范围内实时为各类用户提供精确定位、导航、授时服务定位地图的数据,短信提醒用户事故发生地,用户灵活规划路线或者规避路线,为了防止放置警示牌时进一步造成人员伤亡,使用App远程控制警示牌放至相应位置,从而避免二次事故发生。
本文设计的智能三角警示牌主要有:蓝牙连接控制、北斗+GPS双定位、LED发光组、三端互连、三方提醒的智能性能。
本文提出的基于北斗导航的智能警示牌是利用stm32F103RE 芯片来统筹协调各个模块,使用低功耗蓝牙模块和5G 通信技术实现对警示牌的无线控制,利用BC35模块实现北斗+GPS双精定位,通过为智能警示牌添加LED灯发光组更好地实现警示后方车辆。
1)三方提醒:地图用户通过接收短信提醒,选择新的路线或者小心驾驶,注意安全。后台定位系统通过北斗返回的数据将事故发生地展示在地图上,以便进行交通管理,统计事故发生地。提醒交警和救援人员,询问车主是否需要交警以及救援人员的帮助,快速处理交通事故、精准救援。
2)多途径推送告知:事件同时分发,多途径告知后方地图用户和交警及保险公司。通知信息可在地图、后台管理系统等相关平台进行推送。
教师在APP上进行课程内容概要的总结,并请学生扫二维码开展课程评价的调查问卷填写。学生扫二维码进入问卷星页面,进行课堂评价。通过学生评价,知晓本课程的教学内容是否完整、教学方法是否合理、教学重难点是否突出和教学效果是否理想等,以便日后加以改善与提高。
3)警示距离加长:通过给普通的警示牌增加LED灯串,解决大雾、夜间或者特殊天气导致反光效果差,车辆用户辨识度低的问题。
4)BD高精定位自动回传:设备支起,自动回传位置信息至云端,北斗模块定位锁定事件出现位置。
5)远程控制警示牌,保障人员安全:在警示牌的底部增加智能履带小车,用户通过多途径连接手机端App,使用App远程控制警示牌放至相应位置,保障人员安全。同时使用红外避障模块,使得履带车更平稳可靠。
嵌入式端程序分为环境数据采集、系统控制和网络三个模块,这三个模块各自针对不同的功能封装了一组函数,使用这些函数可完成对经纬度数据采集工作;完成使用蓝牙对智能小车的控制[4];实现通过NBIOT模块接入网络功能。本文因篇幅关系将只针对几个重点函数进行介绍。其程序模块图嵌入式端程序模块(如图1所示)。
2.2.1 北斗+GPS模块
主要用于小车精确定位,准确传回定位点,加快救援工作与紧急避险。模块电路图(如图2所示)。
2.2.2 MQTT协议NBIOT模块
NBIOT 通信模块是一款使用NB-IoT 网络进行无线网络数据传输的嵌入式终端[5]。NBIOT模块用于无线连接云服务器,传输北斗数据。其广覆盖特点可以在快速及高速公路上连接5G信号。
通过步进电机驱动模块控制智能小车的运动,准确全面控制智能小车运动的方向。小车有5个运动方向,前进、后退、左转、右转和停止,结合道路的路面状况实时更新智能小车运动方向。
2.2.4 HC08蓝牙模块
HC-08 蓝牙串口通信模块主要用在用户通过手机自带的蓝牙功能打开软件发送数据,而智能小车上的蓝牙模块在接收到手机端发送的数据后,进行判断,从而控制智能小车的运动状态[6]。
2.2.5 红外避障传感器
该模块利用红外射线检测运动方向是否遇到障碍物,当遇到障碍物时提前进行躲避,保证小车平稳移动。
2.2.6 LED灯串
LED灯串采用了红色灯珠,提高了小车在黑夜或者特殊天气的可视范围。主要用于发生车辆事故时警示后方车辆。
在本次设计中,主程序主要在单片机的控制下,通过蓝牙连接,来控制小车的移动[7]。在这个过程中小车所使用的HC08 蓝牙模块的初始值、各个变量的初始值以及蓝牙模块的UUID都需要都必须与主程序上的相互对应,单片机会在蓝牙连接成功后,对从串口接受的数据进行读取和分析,读到的数据如果是F、B、L、R、S 则对应小车的前进、后退、左转、右转、暂停[8]。
本程序是基于Android 系统,所用的开发工具为Android Studio 集成开发工具。首先设计本手机端软件界面方面考虑到用户体验感以及实用的便捷性,尽可能全面地实现程序功能,本程序对软件界面设计做了优化界面设计,但是界面又简洁易上手,有助于用户快速操作上手。
3.2.1 手机界面程序设计
在Android Studio中新建一个空项目,然后通过创建Activity 活动,编写.java 逻辑处理文件和.xml 样式设置文件。设置采用Java语言为开发语言,在安卓系统中生成可运行的App,给用户提供一个可视化并且界面简单,操作易上手的蓝牙小车的控制界面。首先用户登录后需要进行蓝牙连接小车,结合用户的需求控制小车,同时为用户提供了系统咨询。
3.2.2 手机监听程序设计
首先小车的主控制界面控制移动按钮是BUTTON按钮绑定监听事件,以便实现在蓝牙连接成功后可以通过用户点击不同的按钮,通过广播发送对应移动按钮的字符给蓝牙模块,每一个按钮都有一个ID属性,在主函数处理中使用了switch 语句,通过不同的ID 选择不同的case,选择蓝牙所要发送的字符,在程序中需要写入小车蓝牙模块的UUID,以便确保蓝牙连接搜索时可以快速搜索到小车的蓝牙地址。打开程序后,再打开小车的开关,打开软件点击菜单栏点击蓝牙打开,自动打开手机蓝牙,点击扫描蓝牙,找到小车蓝牙地址点击连接,连接成功会弹出吐司弹框告诉用户蓝牙连接成功,可以遥控小车移动。其次有一个系统资讯按钮也绑定了监听事件,点击后跳转到另外一个Activity,资讯的主页,再通过不同的IMAGEBUTTON空间来跳转资讯详情页。
主要使用多个蓝色点模拟正常车辆,利用函数判断模拟的车辆是否在事故发生点的危险范围内,如若接近,则再次使用短信接口将前方发生危险,注意规避的提醒消息发送给正在行驶过程的中的用户,规避二次事故的发生。
本软件Web 网页端主要是北斗返回数据给服务器再通过地图JS API搭建地图平台,接着获取到与硬件相连的One Net 平台的API-KEY,用C#网络爬虫和正则表达式提取到事故发生点的经纬度,通过ASP.NET Core MVC 架构将经纬度返回到地图上,采用红色点进行标记(如图3 所示),使用圆圈动画将事故发生点显著标记,再使用短信接口将救援信息发送给用户,方便用户联系到警务,救援。
图3 地图标点
Web 服务主要由Controller、Views、Models 三个文件夹构成,Controller文件夹包含了页面请求,WebAPI接口功能,Views文件夹包含了前端页面的搭建显示,Models 包含了请求模型[9]。故障车辆的位置通过与ONENET 平台的连接来返回数据。对故障车辆以及提醒短信的发送通过调用阿里云短信发送接口来实现。
本文介绍了基于北斗导航的智能三角警示牌的具体设计与实施方案。基于北斗导航的智能三角牌集成高精度定位服务,在汽车遇到抛锚、追尾等事故时,它能够精准定位事故发生地并同步至地图App提醒周边车辆注意避让,还能协助车主联系交警、保险公司和救援单位等,能够帮助车主更高效、安全地处理行车时遇到的突发事件。