多端实时同步的公交电子智能站牌系统

2022-02-22 13:34姜昌成
物联网技术 2022年2期
关键词:站牌服务器端公交车

姜昌成,张 奕

(桂林理工大学,广西 桂林 541001)

0 引 言

公交电子站牌的出现不仅让城市居民的出行变得更加便利,也减缓了城市道路的交通压力。随着电子信息产业与计算机的快速发展,电子公交站牌系统的研究也引起相关部门的重视。但是已有的电子站牌仍存在一些缺陷,例如:不能通过后台实时动态远程更新屏幕显示的数据与信息、造价过于昂贵等。因此,针对以上缺陷,本文在系统可行性分析的基础上,设计并实现了一种新型公交电子智能站牌系统:结合时下流行的物联网技术,使电子公交站牌不仅可实时显示某公交线路的站点信息,还可灵活显示运行在某站台线路的公交车预计到站耗时以及公交车行驶速度等信息。通过请求后台服务器端数据接口可实时对站牌端数据进行远程同步更新。同时,通过移动端应用开发将站牌数据适配到手机应用,实现电子站牌的公交信息数据在移动端应用实时同步显示的目的,使乘客能随时随地通过手机应用查看该站台相关公交车信息数据。新型公交电子智能站牌系统成本低廉,信息同步实时远程更新速度快,适用于在小城市进行应用与推广。该系统将改变未来小城市居民的候车方式,提高居民的出行效率,并可以进一步缓解城市道路交通压力。

1 系统功能需求

公交电子智能站牌系统主要分为4个部分:公交车端、电子站牌端、移动端与服务器端。公交车端负责采集公交车实时位置信息,并上传定位数据到阿里云物联网平台,通过阿里云物联网平台将数据转发到服务器端应用。服务器端负责对公交车端上传的数据与指定站牌数据进行处理,并开发相应公交车数据接口。移动端与电子站牌端可以调用服务器端数据接口,并将数据显示到屏幕,提供给用户或者乘客查看。系统功能架构如图1所示。系统多端整体运行流程如图2所示。

图1 系统功能架构

图2 多端系统整体运行流程

2 系统详细设计

2.1 硬件设计

该系统使用Air202 S6核心板作为电子站牌与公交车端核心模块,模块具备GPRS通信功能,可以使用Lua脚本编程,实现GPS模块位置信息读取与解析、常用显示屏驱动等功能。公交车端使用Air530模块作为定位模块,Air530 GPS模块是一款性能优异并且封装小巧的多模式GPS模块,该模块尺寸小,耗能低,可应用于多种场景。Air202 S6核心板通过USART2串口与GPS模块相连,波特率设置为9 600。公交车端通过SPI协议驱动0.96英寸OLED显示屏进行相关参数的显示。电子站牌通过SPI协议驱动1.8英寸TFT_LCD显示屏,将该屏作为电子站牌系统显示模块。由于公交车端与电子站牌端使用的硬件接口较类似,因此经过对系统硬件原理图的绘制以及系统硬件PCB电路图的设计,将公交车端与电子站牌集成在同一块PCB板中。系统硬件设计原理如图3所示。系统硬件PCB电路板如图4所示。

图3 系统硬件原理

图4 系统硬件PCB电路板

2.2 软件设计

公交车端与电子站牌端的应用程序功能基于Luat嵌入式系统框架实现,Luat嵌入式系统框架使用Lua语言将传统的通信模块AT指令封装为可调用的功能接口,开发者直接调用相关接口即可实现指定功能,极大地降低了系统的开发费用。

(1)电子站牌端

电子站牌端是系统的核心部分,它作为对外展示公交车数据信息的窗口,发挥着承上启下的作用。通过调用服务器数据接口,将公交车端上传的公交车数据信息显示在电子站牌显示屏中,展示给乘客。电子站牌接电源初始化系统后进入等待连接GPRS网络状态,如果未成功连接GPRS网络,则重新连接,连接上GPRS网络后建立HTTP客户端,请求服务器端数据接口获取本站点公交车数据信息,并将获取的数据在LCD显示屏上实时显示出来。实时显示某辆公交车与本站点的距离、公交车到达本站预计需要的时间以及公交车行驶速度等。

(2)公交车端

公交车端将公交车定位信息上传到服务器,提供给服务器端进行计算。系统程序可以通过串口读取GPS模块输出的NMEA语句并对其进行解析,从而获取公交车端经纬度以及行驶速度等信息。同时,将系统的运行状态与GPS定位等信息在OLED屏上显示。主要用于实时显示公交车端运行时的参数信息,例如:公交车的经纬度信息、公交车行驶速度、网络接入情况等。公交车端系统上电后进入等待连接GPRS网络状态,连接上GPRS网络后初始化MQTT客户端,连接阿里云物联网平台并订阅设置好的Topic,完成订阅后每隔5 s读取一次GPS模块的数据信息,并将其上传到阿里云物联网平台。

(3)移动端

系统启动后,移动端应用程序调用服务器端数据接口getStations并传入公交线路参数,进而获取公交线路各站点信息,用户点击指定站点可以跳转到地图页面,地图初始化完毕后启动一个新线程getBusData,请求公交车与站点关联的数据信息,通过调用高德地图SDK将每个站点的坐标点和公交车位置显示在地图中。同时,在系统运行的过程中会实时请求服务器端应用数据接口,获取公交车实时数据信息并更新。数据接口与电子站牌共用一个接口,实现移动端应用与电子站牌数据的实时同步显示。

(4)服务器端

服务器端应用基于SpringBoot框架进行业务开发,主要将公交车端上传的数据信息进行解析处理,并通过查询数据库获取公交车站点信息,将公交车与站点之间的距离、预计到达站点时间等信息封装成JSON字符串,开发相应数据接口供电子站牌与移动端应用调用。服务器端在系统启动时建立子线程,基于AMQP协议创建JMS客户端接入阿里云物联网平台,接收公交车端上传的公交数据信息。服务器端接收到公交车端上传的数据信息后将数据缓存到Redis数据库中,业务代码读取Redis数据库中的公交车数据信息,并查询MySQL数据库获取指定线路站点信息,经过计算封装处理后实现相关功能数据接口的开发。

3 系统实现

在完成所有功能的设计后进行系统整体测试,测试环境选在G321国道。公交车端通过软件编程设定为1736号公交车,使用电动车搭载本公交车端系统,模拟公交车在公交线路上的行驶状况。测试过程在公交车到达桂林市雁山镇站台时结束。公交车端上电后系统正常运行。Air202 S6核心板注册GPRS网络,完成GPRS网络注册后接入网络。Air530 GPS模块在首次接通电源后进行冷启动,搜索卫星需要2~3 min,进行公交车定位。公交车端运行时的经纬度信息与行驶速度会发生相应的变化,公交车端运行效果如图5所示。

图5 公交车端运行效果

电子站牌端设定站牌为桂林市博文学院-文明路(5路),对公交路线上雁山镇站牌进行实地测试,使用Android手机打开移动端应用并选中雁山镇站点模拟乘客使用过程。公交车节点运行在公交路线上时,可以通过电子站牌与移动端应用查看公交车实时位置信息。电子站牌运行实际效果如图6所示,移动端应用运行效果如图7所示。通过对系统整体功能进行实地测试,检验了系统运行的稳定性和可行性。

图6 电子站牌运行效果

图7 移动端应用运行效果

4 结 语

本文对新型公交电子智能站牌系统的设计与实现过程进行了全面分析与阐述,并对系统实现的功能进行了多条实际公交线路的实地测试,检验了系统运行的稳定性和可行性。本文设计与实现的系统具有成本低廉、稳定性强等优点,具有较好的应用与推广价值。

猜你喜欢
站牌服务器端公交车
你们认识吗
Linux环境下基于Socket的数据传输软件设计
浅析异步通信层的架构在ASP.NET 程序中的应用
公交车上
公交车奇妙日
基于Qt的安全即时通讯软件服务器端设计
城里的公交车
网页防篡改中分布式文件同步复制系统