班车员工下站无线提示系统设计
2021-06-14何小映
何小映
(西安航空学院电子工程学院,陕西西安 710077)
当今社会,企事业单位越来越多,单位大小不同,员工上下班乘坐的交通工具也不相同,大型企事业单位一般都拥有几辆甚至几十辆班车,而员工由于居住地不同,中途下车的比较多。一般来说,单位都会在起点到终点之间设置多个固定的停靠点,便于员工上下班乘坐班车,鉴于员工乘坐及下车是随机的,如果某些员工要在中途某个点下车,而这些员工又坐的离司机驾驶室比较远,当要下车时就会比较不方便,因为他们要提前去告诉司机,就需要在车辆行驶时从座位上站起来去告诉司机,有时车速较快,在车厢过道中行走比较危险,如果被监控拍下,司机还可能会遭到罚款和扣分的处罚[1]。所以设计了一套下车无线提示系统[2],当员工需要中途下车时,通过按键输入车的编号和站点编号,驾驶室的显示器通过无线方式接收到信息,就能提前知道某个站点是否有人下车,以及有多少人下车,从而能够提前做好准备,这样既方便了司机,也方便了员工,避免了一些交通事故的发生。
1 系统整体结构
该系统包括发送部分和接收部分,两者在硬件上彼此独立,通过无线发送模块和无线接收模块进行通信,系统的整体结构如图1 所示[3]。
图1 系统整体结构图
在系统中,员工持有的是发送器,驾驶室安装的是接收器,对每辆班车都进行了编号,如果有5 辆车,则编号从1~5。以一辆班车为例进行介绍,假设该车的车号为“1”,该车中有两名员工甲和乙,如果员工甲要在中途某站点“1”下车,只需要在发送器的按键上按下车牌号及要下站的站点名称,员工乙要在中途某站点“2”下车,只需要在发送器的按键上按下车牌号及他要下站的站点名称,站点名称及其编号已在程序中进行了处理。然后再按下发送键,发送器就发送车辆编号和站点编号,发送时有两个指示灯提示发送状态。接收器收到该车编号信息及站点信息以后,将会在液晶显示器12864B上相应的站点位置进行加一显示接收到的要下站的人数。
2 发送部分
发送部分电路主要包括STC89C52RC 单片机、矩阵式键盘、无线发送模块NRF24L01、指示电路,其框图如图2 所示[4]。
图2 发送电路框图
2.1 矩阵式键盘
键盘采用矩阵式结构,由4×4 按键构成[5],电路如图3 所示。
图3 矩阵式键盘
行线连接到P1.0~P1.3,列线连接到P1.4~P1.7,图3 中,B1~B8 表示车的编号,S1~S7 表示站点编号,可以实现8 辆车,7 个站点设置,能满足大多数单位的需求,可以按照实际情况在按键上写上车辆编号及站点名称。按键的分析采用行列反转法,首先PI口输出0xF0,读入PI 口数据并保留高四位,然后PI口输出0x0F,读入PI 口数据并保留低四位,两次数据进行或运算,根据不同的运算结果就能知道哪个键被按下。车辆编号与键值关系如表1 所示,站点编号与键值关系如表2 所示。
表2 站点编号与键值关系
表1 车辆编号与键值关系
2.2 无线发送模块
数据的发送采用无线模块NRF24L01,该模块与单片机的接口电路如图4 所示[6]。
图4 无线发送模块与单片机接口
无线发送模块采用NRF24L01[7],该模块工作在2.4 GHz 全球开放ISM 频段,需要的3.3 V 电源可以采用ASM1117 模块提供,该模块采用SPI 接口方式,管脚CE 为片 选信号,CSN 为SPI 片选 信号,SCK 为SPI 时钟,MOSI 为SPI 主出/从入信号,MISO 为SPI 从入/主出信号,IRQ 为中断输入信号[8]。
2.3 指示灯电路
指示灯电路部分采用2 个LED 发光二极管[9],其中LED 指示发送过程,该指示灯熄灭表示无数据发送,点亮时表示正在进行发送,如果接收方没有收到,将会进行闪烁表示持续发送,如果发送完毕并且收到应答信号,则LED 熄灭,LED1 点亮,所以通过这两个指示灯就可以知道发送的状态,电路如图5 所示。
图5 发送状态指示电路
2.4 发送程序流程
发送端程序为循环结构,包括矩阵键盘处理程序和无线发送程序,按键进行车辆号和站点号的输入,发送端程序流程如图6所示。
图6 发送程序流程图
整个发送程序为一个循环结构,首先判断是否有键按下,如果没有就一直等待,如果有就通过行列反转法求键值M 并判断,如果M 为车号的键值,则赋值给数组元素TX_BUF[1],如果M 为站点的键值,则赋值给数组元素TX_BUF[2],如果M=0x77,则表示已经输入完毕,将进行数据发送,当该键释放后就点亮LED,把数组TX_BUF 中的值一个一个地发送出去,每发一个LED 闪烁一次,当发送完毕后,LED 灯灭,LED1 灯亮,从而完成一次信息的发送,然后进入下一次读键。
3 接收部分
接收部分电路主要包括STC89C52RC 单片机、无线接收模块NRF24L01、指示电路、液晶显示电路[11],框图如图7 所示。
图7 接收框图
3.1 单片机与无线接收模块部分
单片机与无线接收模块的接口与无线发送电路相同,因为无线模块同时具有发送和接收的功能,该部分电路可参见图4。
3.2 液晶显示部分
显示采用12864B 液晶显示器[12],该显示器显示4 行信息,如图8 所示[13]。
图8 液晶显示器显示内容
图8所示仅为其中一辆车的显示内容,一共有4行内容。第一行显示的是车牌尾号后四位及对应的编号,车辆不同,显示的信息也不同,对于每辆车来说接收器是固定的。第二行至第四行显示的是中途下车的站点名称及人数,这些站点名称对于每个接收器来说都是相同的。站点后面加一显示要在该站点下车的员工人数,没有人下车时无显示。司机通过接收器显示的信息就能提前知道中途下车的情况,从而提前做好准备。
3.3 接收状态指示部分
指示电路用来指示接收状态,P2.6 连接发光二极管阴极,当接收到数据P2.6=0,发光二极管点亮,延时3 s 后熄灭[14],从而给司机提示。
3.4 接收部分程序流程
接收程序流程图如图9所示[15]。接收程序部分首先对12864 进行初始化,包括将其设为8 位并行口,光标及显示设置,清屏等,接下来显示初始信息,如图8 所示,第一行到第四行分别显示车辆尾号后四位及车辆编号、站点一名称、站点二名称、站点三名称,这些名称可以进行定制,在编程时初始化写入程序中。系统使用定时器0 进行300 ms 定时,用来确定接收时间,每300 ms 进行一次数据接收。接下来对接收模块进行初始化设置,包括设置接收地址、设置自动应答、设置发射功率、数据传输率等[16-18],当300 ms 定时时间到后,判断是否收到数据,如果接收到数据而且数据的第一个字节RBUF[0]为0xa1,再判断第二个字节RBUF[1]是不是本车编号,如果是,再根据第三个字节RBUF[2]的站点号,对k1~k3的值加一并显示,k1~k3分别表示在第一个站、第二个站、第三个站下站的人数。
图9 接收程序流程图
4 结论
从实际需求出发,设计了一个员工到站下车无线提示系统,该系统实现了在单位班车上员工下站时给司机发送无线提示信息,在车辆行驶过程中,到达员工需要下车的站点前,员工可以在发送器上随时按下车辆编号和站点编号,点击发送键即可发送下站提示,司机处的接收器接收到信息后,司机就可以通过观察显示器上的数据采取相应的措施,如果有员工下站则提前做好准备,避免了事故的发生,如果没有一个员工下站,则可以忽略该站,无需停靠,从而提高通行效率,具有一定的实用价值。