发明内容
为了解决上述现有技术存在的问题和缺陷,本发明提出了一种隧道内去网关的物联网随车调光系统及方法,通过搭建全新的去网关的随车调光系统,不仅实现了隧道内照明设备“车来灯亮、车走灯暗、灯随车走”的动态照明效果,同时还减少了系统对网口、IP地址等资源的占用,数据传输更加可靠,减少了系统布设成本以及后期的维护成本。
为了实现上述发明目的,本发明的技术方案如下:
一种隧道内去网关的物联网随车调光系统,其特征在于,所述系统包括LED隧道灯、服务器、中继和节点,服务器与中继之间采用以太网进行通讯,中继和节点之间采用蓝牙进行通讯;
所述LED隧道灯安装在隧道内,用于隧道内照明;
所述服务器用于接受中继传输的信息并下发指令,服务器下发指令至隧道入口处的中继,中继将此指令转发至节点,指令在节点中按照设定的传播方向、传播距离以及跳传间隔进行传递,最后由隧道出口处的中继反馈至服务器;
所述中继用于转发节点与服务器之间的数据和指令,隧道内的入口处和出口处各安装一个中继;
所述节点包括A类节点和B类节点,隧道的入口照明段、过渡照明段、中间照明段和出口照明段的开始位置处以及各照明段内每间隔60米分别设置A类节点,A类节点连接与其距离最近的一个LED隧道灯,隧道内剩余的LED隧道灯处分别布设一个与其连接的B类节点;所述A类节点用于对隧道内通行的车辆实施检测以及控制与其连接的LED隧道灯,所述B类节点用于控制与其连接的LED隧道灯,各个节点之间通过蓝牙进行通讯;
系统中的中继以及隧道内的节点均具有自己的编号,按照隧道入口至出口的顺序对系统内的中继和节点依次进行编号。
进一步地,隧道内的节点或中继只能接收与其相邻的前四个和后四个节点发送的蓝牙数据。
一种隧道内去网关的物联网随车调光方法,具体如下:
服务器或节点生成一包数据包,然后将此数据包传输给周围设备,周围设备收到此数据包后,首先判断数据包内的数据是否完整以及传输过程是否出错,然后根据数据包的属性、数据传输方向、数据传播距离以及跳传间隔,判断是否应控制对应的LED隧道灯变亮,并且是否需要向周围其它设备再次广播传输此包数据;
隧道内的LED隧道灯被点亮,经过设定的亮灯时长后,LED隧道灯的灯光变暗;隧道内其他节点收到后,执行相同的操作,亮灯指令在一个设定的方向上,按照设定的数据传播距离,将此距离范围内的照明设备依次点亮,最终实现隧道内车来灯亮的动态随车调光效果。
进一步地,所述服务器自动生成一包数据后直接通过TCP协议发送给入口处的中继,入口处的中继再存入其自身的数据缓冲区中,定时器每25毫秒从数据缓冲区中取出一包数据,并将此包数据利用蓝牙广播给周围设备。
进一步地,所述节点自动生成一包数据包存于其自身的数据缓冲区中,定时器每25毫秒从数据缓冲区中取出一包数据,并将此包数据利用蓝牙广播给周围设备。
进一步地,所述周围设备收到此包数据后,首先判断此数据包内的数据是否完整以及传输过程是否出错,然后根据数据包的属性、数据传输方向、数据传播距离以及跳传间隔,判断是否应控制对应的LED隧道灯变亮,并且是否需要向周围其它设备再次广播传输此包数据,包括:
步骤a.当周围设备收到数据包后,首先判断该数据包内的数据头、数据尾以及校验位是否正确,若正确则转入步骤b,否则丢弃此包数据,等待接收下一个广播的数据包;
步骤b.周围设备根据数据包的数据传输方向,判断自身是否处于数据规定的传输方向上,若是,则转入步骤c,否则不再进行后续处理并将此包数据丢弃,等待接收下一个广播的数据包;
步骤c.周围设备根据数据包的数据传播距离,判断自身是否处于数据传输距离内,若是,则转入步骤d,否则不再进行后续处理并将此包数据丢弃,等待接收下一个广播的数据包;
步骤d.周围设备根据数据包的属性执行相应的操作,并判断自身是否满足跳传间隔,若是,则将此包数据放入自身的数据缓冲区内,25毫秒后定时器将其取出并通过蓝牙广播出去,周围其它设备收到后,重复以上步骤,数据包按照指定的数据传播方向进行传输,最终反馈至服务器;若周围设备自身不满足跳传间隔,则不再对该数据包进行后续处理,等待接收下一个广播的数据包;
步骤d1.若周围设备收到的数据包为故障数据包,则该设备不执行任何指令,直接将该数据包广播给周围其它设备,服务器收到故障数据包后提示管理维护人员对隧道内的设备进行维修;
步骤d2.若周围设备收到的数据包为参数设置数据包,则该设备根据数据包内参数修改指令,将其对应控制的LED隧道灯的参数进行修改;
步骤d3.若周围设备收到的数据包为车辆检测数据包,则该设备根据数据包内的亮灯指令,将其对应控制的LED隧道灯点亮。
进一步地,若周围设备收到数据包后,判断自身内部数据缓冲区中有相同的数据包,则将该包数据丢弃,并同时将自身内部数据缓冲区相同的数据包删除。
进一步地,所述参数修改指令包括LED隧道灯亮灯时长指令、LED隧道灯亮度等级调节指令以及关闭随车调光指令。
本发明的有益效果:
(1)本发明的随车调光系统摒弃了传统的节点+网关的形式,搭建了一种全新的去网关形式的随车调光系统,各个节点之间通过蓝牙跳传的方式进行数据传输,中继只负责服务器与节点之间的数据转发,中继与服务器之间采用以太网进行通讯,避免了没有移动信号造成数据传输链路断开的问题,而且整个隧道只有两个中继,只需要占用两个网口和2个IP地址,不仅减少了系统的布设成本和维护成本,还使得节点的控制更加可靠。
(2)本发明的去网关随车调光系统可以在没有移动信号的隧道内实施,不会影响数据的传输与节点的控制,系统的适用性更强。
具体实施方式
为了使本领域的技术人员更好地理解本发明中的技术方案,下面将通过几个具体的实施例来进一步说明实现本发明发明目的的技术方案,需要说明的是,本发明要求保护的技术方案包括但不限于以下实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
现有的物联网随车调光系统主要采用节点+网关的方式进行随车调光,达到“车来灯亮、车走灯暗、灯随车走”的动态照明效果,能够实现隧道内安全节能照明。此系统将控制器分为多个子网段,每个子网段安装一个4G型网关或者以太网型网关,网关和节点之间采用蓝牙进行通讯,网关和服务器之间采用4G或者以太网方式进行通讯,用于数据统计传输和控制。
节点+网关的隧道调光系统中存在多个网关,每个网关只负责所在网段的节点的数据统计传输和控制,当系统有网关发生故障或是断电时,其所在段的数据传输链路与服务器断开,会造成数据丢失和无法控制相应节点,进一步地,该系统中网关数量多,设备成本增加,后期维护成本也会相应增加。并且,当系统中采用4G型网关时,某些地方隧道内部没有移动信号或者信号弱,也会存在传输链路断开的情况,而当采用以太网型网关时,每个网关需要占用一个网口和一个IP地址,系统中网关数量大,占用的资源也就越多,某些隧道存在网口不够的情况。
基于此,本发明的实施例提出了一种隧道内去网关的物联网随车调光系统及方法,通过搭建全新的去网关的随车调光系统,不仅实现了隧道内照明设备“车来灯亮、车走灯暗、灯随车走”的动态照明效果,同时还减少了系统对网口、IP地址等资源的占用,数据传输更加可靠,减少了系统布设成本以及后期的维护成本。
为了便于对本发明技术方案进行理解,首先对本发明实施例所公开的一种隧道内去网关的物联网随车调光系统进行详细的介绍。
在本实施例中,本发明首先依据《公路隧道通风照明设计规范》将隧道全长从入口至出口的顺序,将隧道大致分为了入口照明段、过渡照明段、中间照明段以及出口照明段这四个大段。
本发明的实施例公开了一种隧道内去网关的物联网随车调光系统,参照说明书附图1所示,所示系统主要包括LED隧道灯、服务器、中继和节点,服务器与中继之间采用以太网进行通讯,中继和节点之间采用蓝牙进行通讯,其中:
所述LED隧道灯沿隧道长度方向安装在隧道顶部,用于实现隧道内的照明,给隧道内的驾驶员提供良好的照明视线;
所述服务器用于接受中继传输的信息并下发指令,服务器下发指令至隧道入口处的中继,中继将此指令转发至节点,指令在节点中按照设定的传播方向、传播距离以及跳传间隔进行传递,最后由隧道出口处的中继反馈至服务器;
所述中继包括以太网模块和蓝牙芯片,用于转发节点与服务器之间的数据和指令,隧道内的入口处和出口处各安装一个中继;
所述节点包括A类节点和B类节点,隧道的入口照明段、过渡照明段、中间照明段和出口照明段的开始位置处以及各照明段内每间隔60米分别设置A类节点,A类节点连接与其距离最近的一个LED隧道灯,隧道内剩余的LED隧道灯处分别布设一个B类节点,该B类节点与对应位置处的LED隧道灯连接;所述A类节点用于对隧道内通行的车辆实施检测以及控制与其连接的LED隧道灯,所述B类节点用于控制与其连接的LED隧道灯,各个节点之间通过蓝牙进行通讯;
在本实施例中,相邻两个A类节点之间,设置有多个B类节点;隧道内,每个LED隧道灯对应连接配置一个节点,也就是说一个节点只控制其对应位置处的一个LED隧道灯。
在本实施例中,系统中的中继以及隧道内的节点均具有自己的编号,按照隧道入口至出口的顺序对系统内的中继和节点依次进行编号。
在本实施例中,需要说明的是,A类节点为雷达型节点,主要包括蓝牙芯片、电压输出接口以及雷达,A类节点不仅能够控制隧道内LED灯的点亮、亮度等级等,同时还能够对隧道内的车辆进行检测;B类节点为普通节点,主要包括蓝牙芯片和电压输出接口,B类节点只能够控制隧道内LED灯的点亮、亮度等级等,不能够检测隧道内的车辆。A类节点和B类节点都是现有技术,能够通过市面购买得到。
在本实施例中,还需要说明的是,在对系统中的中继或节点进行编号时,通常按照数字从大到小的顺序进行编号,并且按照隧道入口处到出口的顺序依次对中继和节点进行编号,隧道入口处的中继编号为1001,隧道入口处的第一个隧道LED灯所对应的第一个节点其编号为1000,第二个隧道LED灯所对应的第二个节点的编号为999,第三个隧道LED灯所对应的第三个节点的编号为998,第四个隧道LED灯所对应的四个节点的编号为997,第五个隧道LED灯所对应的第五个节点的编号为996,依次类推,出口处的中继在系统中其编号是在最末尾的,是最小的。在对隧道内节点进行编号时,A类节点和B类节点按照入口至出口的顺序统一进行编号,与节点类型,以及所处的隧道段没有关系。
在本实施例中,隧道内布灯和节点布设是按照中间布灯的形式进行设置的,即LED隧道灯以及节点沿隧道长度方向布设在隧道顶部中间位置处。
当然,隧道内的布灯也可以参照两侧布灯进行设置,两侧布灯时,A类节点设备布设于隧道行车道的左侧,分别在入口照明段、过渡照明段、中间照明段以及出口照明段的开始位置处以及各个照明段内每间隔60米设置,A类节点连接与其距离最近的一个LED隧道灯,隧道内剩余的LED隧道灯处分别布设一个B类节点。对于两侧布灯的隧道,在编号时,隧道入口处的中继编号为1001,隧道内入口处的第一个A类节点其编号为1000,第一个B类节点的编号为999,第二个A类节点的编号为998,第二个B类节点的编号为997,第三个A类节点的编号为996,第三个B类节点的编号为995,依次类推,隧道中位于隧道左右两侧的的A类节点和B类节点交叉进行编号;同理,出口处的中继在系统中其编号是在最末尾的,是最小的。
在本实施例中,每个节点或中继利用蓝牙的白名单过滤策略,使其只能够接收到与其相邻的前四个和后四个设备的蓝牙数据,其他数据则被过滤掉,从而防止数据过多对控制器扫描和解析数据造成很大的负荷,导致在处理有效数据时不及时。
在本实施中,当节点或中继收到一包蓝牙数据后,对数据按照规定的数据协议进行解析,看是否是符合协议的数据,如果不符合则舍弃该包数据,如果是符合的,则从数据包中解析出数据来源、数据传播方向、数据传播距离以及数据包属性等信息,节点或中继收到数据包后,首先与其内部自身数据缓冲区中的数据进行比较,判断是否存在相同的数据包,如果存在有相同的数据包,则将该包数据丢弃,并同时将自身内部数据缓冲区中相同的数据包删除,如果数据缓冲区中没有这包数据,那么则需要根据数据包的数据传播方向、数据传播距离以及数据包属性执行相应的操作,最终实现隧道内照明设备“车来灯亮、车走灯暗、灯随车走”的动态照明效果。
在本实施例中,需要说明的是,节点或中继收到的蓝牙数据包内包括数据头、包属性、数据来源、数据跳传间隔、数据传输方向、数据传输距离、指令动作、校验位以及数据尾等信息。
在本实施例中,数据头用于判断是否是每包数据的第一位,以此数据作为基准,才能找出第二位、第三位等数据,数据尾用于表示接收到一包完整的数据,校验位用于判断此包数据在传输过程中有没有发生传输错误的情况。因此,在本实施例中,判断是否为符合协议的数据是指根据蓝牙数据包内的数据头、数据尾以及校验位信息判断此数据包内的数据是否完整以及传输过程是否出错,如果没有问题,再执行下一步操作,否则直接丢弃该数据包。
在本实施例中,数据传输方向、数据传输距离以及数据跳传间隔可以根据自身的需求进行设定。其中,数据传输方向分为正向和反向,按照通常的规则,一般从隧道入口至出口称之为正向,反之则为反向,数据的传输方向一般设置为从隧道入口至隧道出口的正向传输;数据传输距离是指该数据能够传输多少个节点,超过此距离就不再传输,例如编号为88的雷达型节点(即A类节点)检测到车辆后,发起一包包属性为车辆检测的车辆检测数据包,数据包中的数据传输距离为10,传输方向为正向,那么这包数据只会被传输至编号为88-10=78的节点处,隧道内编号小于78的节点则不跳传此数据包,并且也不执行该数据包包含的指令动作;进一步地,跳传间隔是指此包数据是在节点之间挨个传播,还是间隔多少个节点进行传播,处于两个数据跳传节点之间的中间节点则不跳传,例如,跳传间隔设置为1则表示此包数据是在节点之间挨个进行传播的,而跳传间隔设置为4,则表示此包数据间隔4个节点进行传播,通常情况下,为满足隧道内的照明要求,在隧道动态调光工作模式下,执行亮灯指令时,车辆检测数据包是在节点间挨个依次传播的。
在本实施例中,还需要说明的是,数据来源是指此包数据是由哪一个节点或中继生成的,则用此节点或中继的编号进行表示。
在本实施例中,包属性是用于表示此包数据是检测到车辆的车辆检测数据包还是设备报修的故障数据包,或者是参数设置数据包,又或者是其它的数据包。
在本实施例中,需要说明的是,车辆检测数据包一般是由隧道内设置的A类雷达型节点检测到车辆后所发出的,参数设置数据包一般是由服务器下发的,而对于故障数据包,隧道内的所有节点均可以生成。
基于同一发明构思,本发明的实施方式中还公开了一种隧道内去网关的物联网随车调光方法,该方法是基于上述隧道内去网关的物联网随车调光系统实现的。具体的,所述调光方法具体如下。
服务器或节点生成一包数据包,然后将此包数据传输给周围设备,周围设备收到此包数据后,首先判断此数据包内的数据是否完整以及传输过程是否出错,然后根据数据包的属性、数据传输方向、数据传播距离以及跳传间隔,判断是否应控制对应的LED隧道灯变亮,并且是否需要向周围其它设备再次广播传输此包数据;
隧道内的LED隧道灯被点亮,经过设定的亮灯时长后,LED隧道灯的灯光变暗;隧道内其他节点收到后,执行相同的操作,亮灯指令在一个设定的方向上,按照设定的数据传播距离,将此距离范围内的照明设备依次点亮,最终实现隧道内车来灯亮的动态随车调光效果。
在本实施例中,需要说明的是,若数据包是服务器生成并下方的,那么服务器自动生成数据包后,直接通过TCP协议发送给入口处的中继,入口处的中继再存入其自身的数据缓冲区中,定时器每25毫秒从数据缓冲区中取出一包数据,并将此包数据利用蓝牙广播给周围设备。
在本实施例中,还需要说明的是,若数据包是由节点生成并下方的,那么节点自动生成数据包后,该数据包会存于其自身的数据缓冲区中,定时器每25毫秒从数据缓冲区中取出一包数据,并将此包数据利用蓝牙广播给周围设备。
在本实施例中,所述周围设备收到此包数据后,首先判断此数据包内的数据是否完整以及传输过程是否出错,然后根据数据包的属性、数据传输方向、数据传播距离以及跳传间隔,判断是否应控制对应的LED隧道灯变亮,并且是否需要向周围其它设备再次广播传输此包数据,具体包括如下内容:
步骤a.当周围设备收到数据包后,首先判断该数据包内的数据头、数据尾以及校验位是否正确,若正确则转入步骤b,否则直接丢弃此包数据,等待接收下一个广播的数据包。
步骤b.周围设备根据数据包的数据传输方向,判断自身是否处于数据规定的传输方向上,若是,则转入步骤c,否则不再进行后续处理并将此包数据丢弃,等待接收下一个广播的数据包。
在本实施例中,需要说明的是,判断自身是否处于数据规定的传输方向上,具体如下:
若数据包的传输方向为正向时,设备判断自身编号是否小于数据来源的编号,若小于则表述该设备处于数据规定的传输方向,否则表示该设备不处于数据传输方向;
当数据包的传输方向为反向时,设备判断自身编号是否大于数据来源的编号,若大于则表述该设备处于数据规定的传输方向,否则表示该设备不处于数据传输方向。
步骤c.周围设备根据数据包的数据传播距离,判断自身是否处于数据传输距离内,若是,则转入步骤d,否则不再进行后续处理并将此包数据丢弃,等待接收下一个广播的数据包。
在本实施例中,需要说明的是,判断自身是否处于数据传输距离内,具体如下:
判断自身编号是否大于数据来源编号减去数据传输距离的绝对值,若大于,则表示该设备处于数据传输距离内,否则表示该设备不处于数据传输距离内。
步骤d.周围设备根据数据包的属性执行相应的操作,并判断自身是否满足跳传间隔,若是,则将此包数据放入自身的数据缓冲区内,25毫秒后定时器将其取出并通过蓝牙广播出去,周围其它设备收到后,重复以上步骤,数据包按照指定的数据传播方向进行传输,最终反馈至服务器;若周围设备自身不满足跳传间隔,在其执行相应的操作后,该设备不再对该数据包进行后续处理,等待接收下一个广播的数据包;
步骤d1.若周围设备收到的数据包为故障数据包,则该设备不执行任何指令,直接将该数据包广播给周围其它设备,服务器收到故障数据包后提示管理维护人员对隧道内的设备进行维修;
步骤d2.若周围设备收到的数据包为参数设置数据包,则该设备根据数据包内参数修改指令,将其对应控制的LED隧道灯的参数进行修改;
步骤d3.若周围设备收到的数据包为车辆检测数据包,则该设备根据数据包内的亮灯指令,将其对应控制的LED隧道灯点亮。
在本实施例中,需要说明的是,该设备不再对该数据包进行后续处理,是指设备不会将该数据包存入自身的数据缓冲区内,也就不会再向外广播该数据包。
在本实施例中,需要说明的是,判断自身是否满足跳传间隔,具体如下:
设备首先从蓝牙协议中解析出此包数据的直接来源(调用官方API即可),数据直接来源是指该包数据是由谁发出来的,用发出该数据包设备的编号进行表示;设备判断自身编号是否等于数据直接来源编号减去跳传间隔的绝对值,若等于,则表示该设备满足跳传间隔要求,该设备会将接收到的数据包存入自身的数据缓冲区内,并定时将该数据包广播出去。
在本实施例中,需要说明的是,所述设备是指代系统中的中继或者节点。
在本实施例中,需要说明的是,由于服务器生成的数据包直接通过以太网(TCP)发送给中继,中继再存入其数据缓冲区内,然后定时通过蓝牙的方式广播出去,中继作为蓝牙传输链路的首个设备,系统中,服务器下方的数据包其数据来源就认为是中继,那么数据来源的编号就是对应中继的编号。
进一步地,当周围设备收到数据包后,若判断自身内部数据缓冲区中有相同的数据包,则将该包数据丢弃,并同时将自身内部数据缓冲区中相同的数据包删除。
在本实施中,收到与自身数据缓冲区相同的数据包表示自身广播出去的数据已经被符合要求的设备正确接收和处理,自身便不再需要广播此包数据了,所以删除自身数据缓冲区内相同的数据包。这一步骤保证了数据传输的可靠性,因为蓝牙广播方式是不可靠的通讯方式,自身广播一包数据后,不能保证100%的被其它设备正确接收到,所以通过25毫秒循环广播同一包数据多次,直至检测到有其它设备广播出相同的数据包,此时认为数据被可靠传播出去。
进一步地,所述参数修改指令包括LED隧道灯亮灯时长指令、LED隧道灯亮度等级调节指令以及关闭随车调光指令。
在本实施例中,需要说明的是,参数设置数据包以及故障数据包所设置的数据传播距离以及跳传间隔一般都设置的比较大,例如跳传间隔可以设置为4,这样既可以满足每个节点均能生效此设置,同时还能够加快数据包的传播速度。而对于车辆检测数据包来说,数据传播距离一般都设置的比较小,并且出数据包是在节点之间挨个进行传播的,不会间隔节点进行传播。
在本实施例中,当节点或者节点所对应控制的LED隧道灯出现故障时,节点均会生成相应的故障数据包,并按照上述流程将故障数据反馈至服务器。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。