基于LoRa通信的可视化城市照明系统设计
2021-10-18田国瑞常彦文
王 伟,田国瑞,常彦文
(北京石油化工学院信息工程学院,北京 102617)
路灯在城市照明中发挥着重要作用的同时也消耗了大量的电能。传统的路灯主要采用的是光控和时控的控制方式,控制方法简单易于实现,但对电能的利用率不高,而且无法反馈路灯运行的状态信息,增加了人工巡查维护的问题,造成了人力物力的浪费。为了节约电能,降低路灯的运维成本,国内有人提出了基于ZigBee的城市路灯管理系统[1],虽然在总体上解决了路灯管控的问题,但由于ZigBee通信距离近,不得不进行深度组网,但如此组网会加大路灯的功耗,并且父节点若出现故障,会造成大面积路灯瘫痪,处于无监管状态。目前基于LoRa的智能照明系统研究只针对路灯在城市中的定位以及简单实现定时对照明控制[2],面对复杂的情况,无法实现对大量信息同时上传的功能。王晓晖等[3]虽实现了LoRa对远距离的路灯控制,但未能实现上报节点信息等功能。针对路灯控制管理系统实际情况及不足,笔者提出了一种基于LoRa远距离通信的照明系统,使管理者能够及时准确地看到系统运行情况。运用了LoRa技术、4G技术构建了高效的、远距离的通信网络;运用阿里云中的IoT Sudio模块对各个路灯节点上传的ID号在地图上标定位置,并显示每个路灯节点的实时信息;路灯节点的外线传感器、光照强度传感器采集到的现场信息以及电能计量模块的实时电能功耗等信息一并上传至协调器,协调器接收到每个节点的信息后再把数据传到阿里云服务器,以更直观的方式看到每个节点的各个参数以及运行状况,并对现场照明发送指令实行远距离控制每个照明单元。
1 系统总体设计
系统主要是由照明控制云平台、网关协调器和路灯控制终端3部分组成,如图1所示。在最底层的终端单元实现对现场情况进行分级照明,并且采集数据信息,主要采集的信息有电能、电流、电压、照明情况以及指令执行情况等实时数据;位处中间层的是网关协调器的作用是接收云端服务器发来的指令并对该报文进行解析、透传到路灯节点,并把节点的数据转发到云服务器;云服务器接收实时数据保存并处理,将数据图形化到地图上的每个节点,并根据实时需求下发各种命令。
图1 系统总体框架Fig.1 The overall framework of the system
2 系统硬件设计
在智慧城市中应用最多的通信技术是WiFi、Bluetooth、Sigfox、LoRa等[4]。在低功耗远距离传输中LoRa技术具有巨大的优势,其各项优势参数如表1所示。由表1中可以看出,其不仅功耗低,而且通信距离远、可靠性高。LoRa在低功耗广域网领域中是一种革命性的物联网接入技术,广泛应用在智慧农业、智慧城市等方面。
表1 LoRa远距离通信参数
2.1 路灯控制节点的设计
LoRa节点的设计主要有6个模块,如图2所示。路灯控制节点中的MCU主控芯片采用的是ST公司的STML451CCU6,通过LoRa模块与SPI串口通信,实现对单个路灯节点的控制任务[5]。
图2 路灯控制节点的框架Fig.2 Street lamp control node frame
光照强度传感器采用GY302,光照强度测量范围是0~65535lx,传感器内置16 bitAD转换器直接数字输出。数据通过IIC总线向MCU发送数据,单片机采集到的GY-302数据越大,电流值越大,进而得到测量光照强度的目的[6]。
电能计量模块用的是HLW8112,能够测量线电压、电流,并能够计算出功率、有功功率等。该器件有2个可配置的脉冲输出引脚,通过INT1和INT2两个引脚实现过流、过压、过零和漏电检测的功能[7]。该器件采用常规直流5.0 V电源供电,并与STM32用SPI接口相连。
LoRa无线通信模块采用的是ZM470SX模组,其主要由SX1278芯片、外围电路和无线射频收发电路组成[7]。其DIO0引脚通过高低电平的变化发送中断至STM32芯片,进行数据的收发以及发送完成提示等,并且通过SCK、MISO、MOSI、NSS引脚与单片机进行SPI数据交互,通过配置不同的时钟极性与时钟相位来控制单片机与SX1278的数据采集方式,采用Mode1模式:CPOL=0,CPHA=0,即表示SCK=0是处于空闲状态,有效状态为SCK处于高电平时的输出,CPHA=0表示数据采样在第1个边沿,数据发送在第2个边沿。
2.2 网关协调器
网关协调器由6个模块组成,分别有各自的功能,如图3所示,其中MCU主控芯片采用的是ST公司运用哈佛架构的Cortex-M3内核的STM32F103ZGT6芯片,其具有32位RISC核心,工作频率为72 MHz,高速嵌入式存储器(闪存向上)。1M字节FLASH和最高96千字节的SRAM,以及广泛范围的增强I/O和外围设备连接到2个APB总线[8]。设备提供3个12位ADC、10个通用16位定时器加2个PWM定时器,以及标准和先进的通信接口:2个I2C、3个SPI、2个I2SS、1个SDIO、5个USART、1个USB[9]。通过控制模块与LoRa模块通信,实现对路灯节点的控制任务。综合通信速率、STM32F103的运算速率、路灯120s的轮询间隔以及路灯现场信息时效性等因素的影响,一个协调器最多控制64个路灯节点。
图3 网关协调器的总体框架Fig.3 The overall framework of the gateway coordinator
APR346电源芯片是用于同步整流的二次侧MOSFET驱动器。同步整流可以有效地降低二次侧整流器的功耗,为5~20 V输出电压的应用提供了高性能的解决方案[10]。
RP502是基于CMOS工艺的降压型同步整流DC/DC 转换器。将这2种整流降压模块相结合,可以实现输出3.3、12 V电压。经过APR346可以实现对220 V交流电转成12 V直流电给led灯供电,再经过RP502将电压转换成3.3 V给MCU、传感器、SX1278供电,使系统稳定运行。
4G模块采用的是移远的EC20模块,包含76个LCC引脚,采用了低功耗技术,在睡眠模式下,电流仅需4.3 mA。嵌入了TCP、UDP等数据传输协议,并且扩展了AT指令,与过USART串口实现与STM32的异步双向通信,最大上行传输速率50 Mbps,能够实现在复杂情况下上报大量实时信息。
3 软件设计
3.1 通信协议的设计
在每个路灯终端节点采集到实时信息后,需要上传到LoRa网关集中器,这就需要1套通信协议进行数据的解析。因此,对物理层进行了自定义协议设计,对本文数据报打包与解析,实现数据的透传。数据传输的方式为数据帧模式,且传输序列为二进制的字节流。路灯节点与集中器通信协议帧格式如表2所示。
表2 LoRa网关与节点通信协议帧格式
帧头固定为0x3a,为了区分各个帧数据;命令包含2个字节,0x01是LoRa网关查询路灯节点状态的命令,包括电压、电流、当前亮度、光照强度、功率等实时信息;0x02命令是返回当前路灯节点信息;目的地址是网关发给每个路灯节点的唯一ID;源地址是该网关的地址;CRC是对传输的数据进行循环冗余校验,其校验范围是从命令开始到帧数据。
路灯节点在功能上要实现采集实时数据和上传实时信息的功能,其与网关集中器的工作流程如图4所示。路灯节点在无线传输过程中会遇到多个节点同时发送信息给网关集中器的情况,这就会造成信号叠加的现象,因此,为了避免产生多个节点同时通信信道冲突,提高信号传输的可靠性,采用确认重发和响应机制、TDMA机制[11]。每个路灯节点都被分配到了1个独一无二的网络ID,网关集中器存储了控制区域内的所有路灯的ID,当网关发广播命令后,要求每个节点发送实时信息,每个节点按照预先设置好的时间间隙发送数据,利用CAD检测信道中的前导码信号进而唤醒节点;每个路灯节点网关接收到节点信息后,返回给节点一个ACK,判定数据发送成功,随即进入待机状态,节省电能;如果节点没有接收到ACK,则继续发送数据包,若还是没有接收到ACK,则停止发送数据,进入待机模式。
图4 网关与节点的交互流程Fig.4 Gateway and node interaction flow
3.2 云平台的设计
远程监控软件的设计是基于阿里云物联网平台的IoT Studio开发,包括Web监控软件。IoT Studio开发服务提供了移动可视化开发、Web可视化开发等开发工具,解决了物联网应用层软件开发周期长、成本高、技术复杂等问题。
阿里云平台是基于MQTT协议的物联网平台。MQTT即消息队列遥测传输,由客户端、代理(broker)组成。其运作机制为:客户端首先向broker发送连接请求,broker在收到客户端的请求之后,立即进行认证,若认证通过,则在客户端与代理之间搭建一个TCP通道,之后客户端利用该通道订阅关注的主题(Topic)。当客户端的状态发生变化或者要求改变状态时,则向相应的主题发布消息,代理会将该消息下发至已订阅该主题的所有客户端[12]。MQTT是一种多对多的通信协议,设备与设备之间并不是直接相连接的,而是经过代理实现其之间的通讯。工作流程如图5所示,其是一种异步协议,能够实现请求端与响应端解耦[13]。
图5 MQTT工作流程Fig.5 MQTT workflow
运用物联网平台的IoT Studio设计的可视化界面如图6所示,把每个路灯节点以及网关集中器标定在高德地图上,并且把每个节点的耗电量、功率等状态信息在每个节点的位置能够直接显示出来。
图6 路灯监控大屏Fig.6 Street lamp a day of on-site lighting information
在阿里云物联网平台设计可视化界面时,大致需要4个步骤:首先,构建产品与设备,先在物联网平台上设备注册1个有效的身份信息,并获取设备证书信息(ProductKey、DeviceName和Device-secret)。该证书信息将被烧录到各个现场设备上,用于设备连接平台时,进行身份认证,区分各个设备;然后,对每个产品定义实物模型,从属性、服务和事件的3个维度定义产品的功能。阿里云物联网平台将根据功能构建出产品的数据模型,用于云端后台与设备端进行实时数据通信[14];之后,建立各个设备与平台之间的通信,开发设备端的SDK,烧录设备的证书信息;最后,服务端订阅设备消息,服务端通过订阅消息类型,接收设备的相关消息,如设备上下线通知、设备实时信息上报等功能[15]。
4 实验结果与分析
LoRa智慧路灯系统功能测试可以分别通过Web端登陆智慧路灯管控平台查看及管控路灯的运行,同时可以与LoRa路灯网关通过4G模块与阿里云平台进行数据交互。为检验该系统的性能,在北京某科技公司毓秀路段进行了功能测试,测试选取了5个路灯节点和1个网关协调器,每个路灯节点按照20 m相隔的方式安置在街道上且均为单侧照明,每个路灯节点分配1个ID号用于识别各个位置的照明节点,每个节点利用这个ID上传现场照明路况,图6为路灯节点在地图上的位置信息,且路灯节点的运行状态可以通过该界面显示出来。网关协调器将传来的ID号与云端分配的阿里云三元组进行匹配,并把路灯节点发送的消息通过EC20转发到阿里云服务器,云端通过三元组的信息确认路灯的位置信息并实现云端远程监控路灯现场情况。在PC端显示的某日的路灯节点在云端的数据记录并生成曲线,结果如图7所示,主要有电流、电压、瞬时功率以及光照强度等实时信息的状态参数,通过图形化界面更便于分析当日路灯的状况,进而分配亮度等级以节省电力。
图7 路灯某天现场照明信息Fig.7 Street lamp a day of on-site lighting information
在路灯实时运行过程中2种不同路灯的功耗对比测试如图8所示。该科技公司此路段原为高压钠灯照明路段,现改良为用ARM芯片调制出的PWM波,进而控制LED路灯的方式,利用三相多功能电表测得2种不同方式的电能消耗,可以明显地看出ARM调制的LED路灯功耗明显低于高压钠灯,节能效率提升了75.3%,功耗大大降低。
图8 LED路灯与高压钠灯功耗对比Fig.8 Comparison of power consumption between LED street lamps and high pressure sodium lamps
综上所述,LoRa智能路灯在管理上可以实现远程监控,其在地图上直观地显示出各个路灯照明节电的信息并对路灯故障报警;在功耗上,相较于上一代的高压钠灯有明显的降低,节能效果更加明显,因此,LoRa路灯更适合现代城市照明。
5 结束语
针对传统的城市照明系统能耗偏大、管控不及时、人工巡查成本高等问题,综合利用计算机技术、网络通信技术、无线传输技术和嵌入式开发等技术设计了基于可视化城市照明系统,该系统通过现场传感器采集的实时信息可以在现场做出判断是否开关并分配亮度等级,实现实时管理,而且路灯节点将信息上报控制中心,控制中心可综合各方面信息进一步对路灯节点实现控制。