摘 要:随着智慧交通、车联网及车路协同技术的发展,交通管理装置作为智慧交通系统的重要组成部分,将发挥越来越重要的作用,为城市交通的安全、高效、便捷做出更大的贡献。本文旨在研究与设计一种在物联网(IoT)环境下实现营运车辆判别、对驾驶员提醒预警的装置。系统基于Wio Terminal单片机进行嵌入式开发,采用开源的Eclipse Mosquitto环境搭建消息代理服务器,并通过MQTT协议通信;本文详细探讨了其功能和技术特点以及其在交通安全管理场景中的应用,以期为物联网交通管理领域的应用提供参考和借鉴。
关键词:物联网;智慧交通;营运车辆;MQTT;Wio Terminal;安全预警
中图分类号:TP212 文献标识码:A 文章编号:2095-1302(2024)04-0-04
DOI:10.16667/j.issn.2095-1302.2024.04.039
0 引 言
近年来,随着道路交通的快速发展和人民生活水平的提高,交通问题已经成为经济社会发展面临的重要挑战之一。智慧交通是一种以先进信息技术为基础的交通运输系统,其以智能化、信息化、集成化为主要特征,旨在提高交通效率、改善交通环境、保障交通安全。它是未来交通发展的必然趋势,也是实现交通现代化的重要途径。而电子信息技术为智慧交通的发展带来了重大的变革,物联网、移动互联、云计算等技术在交通领域的发展和应用,使得智慧交通能够在交通管理优化,检测车辆及智慧化服务等方面提供更加敏捷、高效的出行环境。在货运交通方面,大货车驾驶员行驶途中可能存在长途驾驶疲劳问题,据统计,疲劳驾驶发生交通事故占全国交通事故总量的21%,并且疲劳驾驶发生交通事故死亡率高达83%。因此,为了提高驾驶安全性,对于大车研究和开发相关的技术和装置已经成为一个非常重要的
课题。
1 背 景
1.1 MQTT
MQTT协议是ISO标准(ISO/IEC PRF 20922)下基于主题进行订阅和发布,为硬件性能低下的远程设备以及相对糟糕的网络环境而设计的消息协议[1]。该协议使用Last Will和Testament特性通知有关客户端异常中断,具有提供一对多消息发布,解除应用程序耦合,TCP/IP提供网络连接,对负载内容屏蔽消息传输等特性[2]。其主题是应用信息上的附加标签,需要发挥其作用构建发布和订阅信息主体间的信息传输路径。MQTT协议由MQTT客户端和MQTT消息代理服务器组成,在这两者中又定义了3种身份:发布者(Publisher)、代理(Broker)、订阅者(Subscriber)[3]。其中,客户端为消息的发布者和订阅者,服务器为消息代理。MQTT传输的消息由主题(Topic)和负载(payload)两部分组成:Topic代表消息的类型,订阅者订阅(subscribe)某一Topic后,会收到该主题的消息内容;Payload代表订阅者具体所需要的内容[4]。MQTT协议基本结构如图1
所示。
消息发布服务质量等级说明见表1所列。MQTT有3种消息发布服务质量(QoS),包括:至多一次(QoS 0),消息发布完全依赖底层TCP/IP网络,存在消息丢失等问题;至少一次(QoS 1),确保消息到达,可能会重复;只有一次(QoS 2),
确保消息到达一次,可以运用在一些严格计费的系统中[5]。
MQTT协议的功能如下:
(1)会话(Session):服务器与客户端在状态交互的过程中存在会话功能,可跨越多个连续网络实现。当清除会话(Clean Session)处于0的位置时,代理服务器需将此时会话状态作为基础,对客户端间的通信路径予以恢复。若会话存在丢失问题,则应在最短时间完成新的会话构建[6],服务器设备应当将客户端质量级别为QoS 1和 QoS 2的消息作为状态信息进行保存。当Clean Session位于1的位置时,代理服务器要全部丢弃已保存的客户端信息,待客户端重新连接上线后,不会再接收旧有消息,而需重新订阅[7],确保QoS 1和QoS 2消息具有良好的服务质量,同时在标志位为0时不会存在信息遗漏。
(2)订阅(Subscribe):与会话功能形成关联,包括最大服务质量(QoS)和主题筛选器[8]。
(3)主题筛选(Topic Filter):由一个主题命名通配符筛选器,可应用到订阅表达式中,用以完成所匹配的多个主题订阅[9]。
1.2 Wio Terminal
Wio Terminal是基于SAMD51的微控制器,具有由Realtek RTL8720DN提供支持的无线连接,同时也兼容Arduino和Micro-Python。目前,仅Arduino支持无线连接。它以120 MHz(升压至200 MHz),4 MB外部闪存和192 KB
RAM运行,支持蓝牙和WiFi,是一款适用于物联网和嵌入式系统开发的产品。Wio Terminal的主要原则是提供全面的硬件支持和易于使用的开发环境,以便开发者能够快速构建复杂的物联网应用程序。其硬件资源包括2.4英寸LCD屏幕、6轴加速度计、麦克风、扬声器、多个I/O接口以及WiFi和蓝牙通信模块等[10]。Wio Terminal基本结构示意图如图2
所示。
2 系统设计与实现
2.1 总体设计
本系统中的硬件设备包括Wio Terminal、传感器模块、移动通信终端等。Wio Terminal可连接至US-016超声传感器、MQTT服务器、LED显示屏等,负责发送和接收小车长度数据。传感器模块包括US-016超声传感器和LED指示灯,负责感应小车移动位置,并发送至Wio Terminal计算小车长度。将程序通过VSCODE写入Wio Terminal终端,开启传感器模块的电源,连接终端,设备初始化后即可测量。车辆经过始末位的传感器后,可在Wio Terminal终端收到车长
信息。
2.2 硬件设计
本硬件的设计分为2个终端,终端以无线热点连接互联网并与Eclipse Mosquitto MQTT服务器通信,实现消息收发。
系统框图如图3所示。系统终端均提供5 V电压供电。同时,第一个终端的电池还为2个超声波传感器供电,连接5 V与GND端。超声波传感器的OUT端分别接Wio Terminal的D0(A0)和D1(A1)引脚,实现D/A转换,输入距离量。D2(A2)和D7(A7)引脚接入2个LED指示灯,用来指示超声波模块是否检测到物体。当车辆完全经过第一个终端后,借助终端算法进行数据处理,将数据通过MQTT协议上传到MQTT服务器,由另一端接收并作出车辆大小判决,最终将提示语显示到LED显示屏上。
2.3 软件设计
2.3.1 程序设计
系统软件程序由C++编写,主要由2个以Wio Terminal为核心的数据发布和接收节点以及MQTT服务器平台组成。两终端的程序流程如图4所示。发布终端开启后会进行引脚初始化,并自动连接WiFi;接着Wio Terminal会以给定的MQTT服务器地址自动尝试连接服务器。之后进入算法部分,两超声波传感器会在上方有车辆经过时采集对应时间节点的信息,经公式运算得到车长数据;计算后的数据通过MQTT协议发布,发布的数据根据预设的Topic发送到订阅此Topic的接收终端。对于接收终端,在初始化后同样执行自动连接WiFi和MQTT服务器的操作;区别于发布终端,接收终端执行监听程序,当收到车长数据后,进入判断程序以判断车辆是否为小轿车、大货(客)车,或车辆超长,并发送对应的控制信号给LED显示屏显示相应提示语。
2.3.2 算法实现
车长检测方法如图5所示。两传感器自身长度可忽略不计,其间距L=1 m,使其与车辆行驶方向相同;检测阶段,车辆需在整个装置上方驶过完成车长测量。因两传感器距离较短,在检测期间车辆行驶速度可视为匀速。当传感器1检测到车头时,此时LED1指示灯亮起,程序调用millis()
函数记录当前的时间节点Start_Time(ts);车辆继续行驶至传感器1检测不到车尾时,此时传感器2仍被车身覆盖,LED1指示灯熄灭,LED2指示灯仍亮,并记录时间节点为Mid_Time(tm),此时车辆行驶了一个车长x的距离;当车辆继续行驶至传感器2检测不到车尾时,LED1、LED2均熄灭,此时车辆行驶了x+L米,记录完成时间
End_Time(te)。
根据3个时间值、已知的传感器间距L以及速度列出方程(1);经过推导,由式(2)计算出车长。
(1)
(2)
2.3.3 算法流程
图6所示为算法流程。其中定义了一个状态变量process,用来保证超声波传感器执行的是上升沿、下降沿检测,同时可以防止传感器失灵、误触而导致程序错误运行。如图6所示,2个传感器同时检测上方是否有物体。而只有传感器1识别到车头,并且再次识别不到车尾后才可让传感器2进行识别,防止传感器2比传感器1先行触发。process=2,传感器2工作,判断车辆是否在其上方,若是,则process变为3,检测何时车尾经过,并在传感器2检测不到车尾后开始根据已有数据计算车长。
此设计按照类似状态机的执行顺序,使得程序按照检测步骤循序渐进执行,防止某一环出错导致检测失败。
3 系统测试
选取测试对象为小轿车(型号为奔驰e300L),依次按照4 km/h、20 km/h、40 km/h、60 km/h和80 km/h车速行驶经过此装置,得出车长测试结果见表2所列。
经资料查询,该型号车辆标准长度x为5 078 mm,可以看到车速在4 km/h时测量值较为准确,车长测量值随车速增加而递减,根据公式(3)对不同车速下的测量值做误差分析,得到误差率结果:
(3)
由于测试时不能保证行车速度不变,而汽车在测试时匀速行驶是准确测量车长的必要条件,所以3次测量值均存在误差。此外,如图7所示,当车速增加时,误差率增大。经过简要分析,考虑是因为超声波传感器发送方波时存在时间间隔,并且探测范围有一定的感应角度,因而导致此
误差。
4 结 语
本文对基于MQTT协议的营运车辆安全预警提示装置进行了详尽的介绍和分析,并且探讨了其在智慧交通领域中的应用,以期用简易的车长判别方法识别大小车,并且对营运车辆驾驶员进行提示,防止其由于长途驾驶而产生疲劳驾驶行为造成交通安全隐患。同时,对于检测超长车辆,本装置也有一定的参考价值。本文认为,随着物联网技术的不断发展和完善,物联网智慧交通管理设备将在未来的交通运输领域发挥越来越重要的作用。因此,建议政府和企业在未来的交通运输规划中积极推广物联网智慧交通管理设备,搭建物联网生态环境,并注重设备的研发和创新,以推动交通运输行业的可持续发展。
注:本文通讯作者为刘翌新。
参考文献
[1]李想. 物联网发布/订阅系统的研究与实现[D].成都:电子科技大学,2019.
[2]易博文,赵全友,谢柱明,等.远程报警微量注射泵系统设计[J].中国新通信,2019,21(20):174-175.
[3]何小俊,刘泽阳,徐鸿鑫,等.基于MQTT规约的电能量采集终端远程运维平台[J].电气时代,2022,42(10):81-85.
[4]刘一镔,徐畅.基于HomeAssistant和MQTT的控制系统研究[J].信息通信,2020,34(9):51-54.
[5]张冲. 移动社交网络即时通信机制的设计与实现[D].沈阳:中国科学院研究生院(沈阳计算技术研究所),2014.
[6]陈治平,刘姗姗,康盛.“互联网+”智慧能源信息系统远程协同共享研究[J].电气自动化,2022,44(3):431-438.
[7]陈治平,刘姗姗,康盛.基于MQTT通信的二次供水智能感知终端研制与应用 [J].电气自动化,2022,44(5):115-118.
[8]沈周锋,郑慧珍.基于鸿蒙系统的农业监测器的研究[J].九江学院学报(自然科学版),2022,37(1):59-62.
[9]张朝兰,姜孝均,易大江.基于MQTT协议物联网文件传输的实现[J].互联网周刊,2023,26(4):20-22.
[10] Seeed Studio Inc.Wio Terminal介绍[EB/OL].https://wiki.seeedstudio. com/Wio-Terminal-Getting-Started/.
收稿日期:2023-04-03 修回日期:2023-05-11
作者简介:刘翌新(2002—),男,北京人,就读于北京工业大学电子信息工程专业。
谢婧婷(2002—),女,北京人,就读于北京工业大学通信工程专业。
李小松(1996—),男,河北人,硕士,就职于公安部道路交通安全研究中心。