多模态LoRa通信技术在光伏机器人的应用
2020-11-16王硕禾黄晓波李苏晨张国驹
刘 旭, 王硕禾, 黄晓波, 李苏晨, 张国驹
(1.石家庄铁道大学 电气与电子工程学院,河北 石家庄 050043;2.北京天诚同创电气有限公司,北京 102600)
0 引言
光伏发电对人们的生活影响越来越大,清洁光伏面板能够大幅提高发电量。目前最主要的清洁方式为人力清洁,费用成本较高;光伏清洁机器人相比于人力清洁,具有投资小、运行成本低、灵活性高等优点。光伏机器人的通信系统是光伏电站清洁的重要组成部分,通信方式主要分为有线通信和无线通信2种。有线通信具有传输速率高、安全性高、抗干扰性强等优点,但由于光伏清洁机器人工作的需要,有线通信布线困难,且限制光伏清洁机器人的行为,所以光伏清洁机器人的通信方式以无线通信为主。
目前常用的无线通信技术主要有以下几种: 2G/3G/4G、WiFi、ZigBee、蓝牙、LoRa和NB-IoT等。2G/3G/4G等移动通信是付费的通信方式,对于部署大量节点的光伏清洁工作来说成本大大增加;WiFi设备功耗较高,适合短距离通信,不适合大面积的光伏发电厂;ZigBee协议比较复杂,开发成本相对较高;相比而言,LoRa技术作为一种较新的低功耗广域网技术,其工作频段低于1 GHz,另外由于采用扩频调制技术和前向纠错编码技术,使得使用LoRa技术的无线信号有较强的穿透性和抗干扰性,适用于光伏发电面积大、条件恶劣的环境。 本文从实际应用出发,利用LoRa技术对光伏机器人的通信方案进行了设计,提出了低功耗的多模态LoRa通信机制,设计了网络层的通信协议,降低了机器人的整体功耗。
1 系统方案设计
1.1 光伏清洁机器人的组成
光伏清洁机器人由机械系统、控制系统和传感器系统3部分组成[1-2]。机械系统主要包括主框架、毛刷、行走轮、侧轮等;控制系统和传感器系统主要由主控板、电机、通信模块、电池、光伏板等组成。在日常清洁工作中,机器人能够在恶劣的环境中按预先设定的方案自动进行工作,拥有很高的精度和稳定性;特殊情况时工作人员通过现场操作或无线通信对光伏清洁机器人进行控制。光伏清洁机器人节能环保,由自带的光伏板充电,无需外部充电装置。
一台光伏清洁机器人,每天可清扫400~500块光伏板,水平距离可达500 m左右,且机器人沿光伏板外沿行走,无需额外增加轨道,从而降低工作量,减少成本。光伏机器人的设计简洁可靠,运行稳定,给光伏运营带来了极大的经济效益。
图1 总体框架图
1.2 系统通信方案设计
光伏清洁机器人的无线通信系统,主要指清洁机器人与外部环境的信息交互,实现状态上传、控制指令下发的功能。本文利用LoRa技术实现无线通信,LoRa无线通信模块作为光伏清洁机器人与LoRa网关用于指令和数据进行交换的通道,同时也是实现光伏清洁机器人远程控制的关键部分,具有传输距离远、低功耗、抗干扰能力强等特点。LoRa无线通信系统设计的总体框架如图1所示。
具体实施方案为:首先,在光伏清洁机器人中安装相应的传感器,并且与主控芯片相连接,主控芯片与LoRa模块相连接,设置 MAC(Media Access Control)物理地址,使每个机器人都有自己的地址;其次,机器人将自身运行数据打包并通过LoRa无线模块传递给LoRa网关;最后,将数据传至客户端,工作人员可通过上位机对机器人进行监测和控制。当工作人员需要控制光伏清洁机器人时,上位机会将控制指令打包通过LoRaWAN网络传至主控芯片,使光伏清洁机器人做出相应的动作。
图2 硬件设计
系统采用了典型的星形网络拓扑结构[3],应用层即客户端采用微信小程序的方式,一个客户端可接入多个LoRa网关,而每个LoRa网关又可接入将近几万个终端模块。三级架构灵活方便,易于搭建。
1.3 硬件设计
系统感知层的硬件设计如图2所示,主要由传感器、单片机(MCU)模块、电源模块、LoRa射频模块和天线组成。
传感器主要负责采集光伏机器人运行数据,改变运作行程,并将数据传送给MCU。MCU作为主控板,完成控制功能并运行通信协议,组合和打包数据帧,把打包好的数据帧发送给射频收发芯片,接收和处理从射频收发芯片传送来的数据[4]。LoRa射频模块主要负责发送数据以及通过天线接收指令信号。天线主要负责接收指令和发送数据。电源模块负责整个感知层的供电,包括给传感器、MCU模块、LoRa射频模块供电;同时还包括光伏板给蓄电池充电,并将蓄电池的电量情况、充放电情况传至MCU模块。
基于光伏机器人的工作需求以及低功耗的原则,本系统中传感器采用型号为LJ18A3-8-Z/EX的接近开关,MCU采用ST公司推出的低功耗系列芯片STM32L053,射频模块芯片选用美国Semtech公司的SX1278射频芯片。
2 LoRa通信系统软件设计
2.1 感知层工作流程
软件设计在光伏清洁机器人LoRa通信系统中起着至关重要的作用,感知层既需要完成数据的采集,也需要通过LoRa射频模块完成数据的上传和命令的接收。感知层的软件工作流程如图3所示。
图3 感知层软件工作流程
感知层的软件工作主要分为以下流程:系统初始化、初始化并启动SX1278、使能串口、接受数据并判断数据类型、发送数据、进入低功耗、定时唤醒和上位机唤醒等。在执行程序前需将所有的外部中断关闭,防止在执行程序时被中断打断,引起设备的紊乱;然后进行系统初始化,主要包括系统时钟、GPIO引脚、定时器以及看门狗的初始化等。完成初始化后判断SX1278配置并启动。使能串口接收函数,接受标志完成后,判断接收数据帧类型并发送数据。完成后模块进入低功耗模式,等待唤醒。低功耗可由RTC唤醒或上位机直接唤醒。通过对感知层的软件设计,完成数据的上传以及下发命令的执行。
主控板MCU每半小时读取蓄电池电量、充电功率、状态等数据,并将数据发送给LoRa网关;在无特殊情况时,工作人员不会对机器人的行动轨迹进行干预,故一般情况上位机不用下发指令。考虑机器人上述特点,对LoRa终端的工作模式进行了设计。
2.2 LoRa终端工作模式
2.2.1 终端传统工作模式
工作于LoRaWAN标准协议下的LoRa终端节点根据实际情况的不同要求,可有3种不同的工作模式,即Class A、Class B和Class C[5]。
Class A:双向通信终端设备。工作在Class A模式下的终端设备可双向通信,每个终端设备上行链路传输都会紧跟着2个短暂的下行链路接收窗口。Class A类终端设备最为省电,但只适用于终端模块仅需向上传输数据,即进行上行链路传输,可接收来自网关的数据,但不要求实时性的情况。
Class B:增加 ping 时隙接收数据的终端设备[6]。工作于该模式下的终端会有更多的接收时隙,除了在每个终端设备上行链路传输后打开的下行链路接收窗口外,终端设备还会在指定时间打开接收窗口。为了让终端可以在指定时间打开其他的接收窗口,终端还需要接收网关的时间同步信标 Beacon。由于工作于Class B模式下的终端设备需要额外打开接收窗口,故功耗会大于A类终端功耗,但此类设备接收网关信息的实时性比A类强,所以Class B模式应用较为广泛。
Class C:最大化接收时隙的双向传输终端设备。Class C模式的终端始终开放接收窗口,仅在向外输出数据时短暂的关闭。所以Class C类的终端设备会比 Class A和 Class B类更加耗电,但同时接收的实时性是最强的。
2.2.2 终端多模态模式
LoRa终端节点传统的工作模式无法满足光伏清洁机器人的需求,Class A模式尽可能使节点处于休眠模式,降低了数据的传输功耗,但实时性太差;而Class C模式减少了通信延时,上位机可以随时唤醒并控制光伏机器人,但一直处于接收状态,功耗太大。为解决上述问题,在配置LoRa模块组网的工作模式时,采用3种模式结合的方式,对光伏清洁机器人进行约定唤醒、时钟同步[7],既符合了光伏清洁机器人的实际需求,又满足了低功耗的要求。
图4 工作模式切换过程
为了使网关能够有序地唤醒各个终端模块,避免数据传输过程中发生碰撞,终端模块可以与网关进行约定对时,将时钟进行同步。光伏清洁机器人在待机时,初始化其工作模式为Class A模式;每隔1 h将光伏机器人的工作模式设置为Class B模式,进行时钟的同步,并检测是否有下发数据,之后再切换为Class A模式;当光伏机器人进行清洁工作时,为了提高接收指令的实时性,将其工作模式转换为Class C模式,以便工作人员通过上位机对其进行干预。具体切换过程如图4所示。
终端节点初始化为Class A模式,当到达约定时间1 h后,终端节点开始搜索并接收网关向下发送的信标(beacon),实现模块与网关的时钟同步,同时打开接受窗口(ping时隙),检测是否有下发数据,一般无数据,之后再切换至Class A工作模式。当启动光伏清洁机器人进行清洁工作时,直接打开接受窗口,即启动Class C模式,直至清洁工作完成,机器人停止工作并关闭接受窗口,切换回Class A工作模式。显然,这种Class A、B、C混合型工作模式的提出避免了直接使用Class C模式的功耗大问题,同时也解决了使用Class A模式的实时性差问题,解决了功耗与实时性的矛盾。
理论上,工作在Class A模式下,平均电流为0.3 mA,Class B模式下电流为10 mA,Class C模式下电流约为80 mA,而提出的混合工作模式下平均电流约为5 mA,功耗远远小于工作在Class C模式下的功耗,且时效性与Class C模式基本等同。
2.3 网络层软件设计
网络层即LoRa网关是用来下发指令到感知层,并接受感知层的数据上发给应用层,网络层的系统工作流程与感知层相似,包括对时钟初、GPIO、定时器、看门狗等一系列初始化设置,判断并配置SX1278,使能串口接收函数。判断数据类型后工作模式的选择与感知层工作相反,如果数据来自客户端,则通过LoRaWAN网络,将数据发送给LoRa终端;若数据来自采集模块LoRa终端,需要将数据发送给客户端,以便工作人员储存并分析光伏运维数据。数据类型的判断及设计是网络层设计的重点。
本系统对网络层通信协议进行了自定义设计,网关接收到的数据类型一共有2种:来自客户端的数据格式较简单,数据格式如表1所示;而来自LoRa终端的数据较为复杂,数据格式如表2所示,当终端需要上传数据时,这些基本信息就会自动添加到通信的报文中。
表1 网络层下发数据格式
表2 感知层上传数据格式
3 系统测试
为了验证所设计通信系统的有效性,进行了2次测试:一是对LoRa无线模块与网关的通信可靠性进行测试,二是结合光伏清洁机器人进行应用性能测试。
3.1 系统性能测试
系统的性能测试主要包括系统的功耗测试以及通信距离、天线增益的测试。功耗的测试在室内完成,通信距离的测试在室外完成,具体测试如下。
3.1.1 功耗测试
从数据手册查得,射频芯片SX1278的休眠电流在200 nA左右,接收电流10 mA;主控芯片STM32L053的休眠电流低至0.27 μA[8]。在实际测量中,包括外围的晶振电路、唤醒电路等在Class A模式下,平均电流为1 mA;每1 h进行一次时间同步即切换至Class B模式,工作电流为15 mA,耗时1.5 s;而在光伏机器人的工作期间,即Class C模式下,电路电流约为90 mA,时长约20 min,混合模式下平均电流为10 mA,与上文理论相符。从整个光伏机器人的功耗来看,光伏机器人在耗电的同时,白天也通过光伏板在充电,所以5 a内甚至更长时间内无需担心电池问题。
3.1.2 性能测试
本次测试主要内容为:测试距离、天线增益的影响、稳定性。将网关工作模式设置为轮训唤醒模式,网关循环向模块下发16组2字节的数据,LoRa模块通过232转USB与计算机相连,利用串口调试助手显示模块接收到的数据。由于光伏清洁机器人处于室外,为了贴近实际的应用场景,本次测试在宽阔无遮挡的道路上进行,测试天气晴朗。
测试中选用普通小辣椒天线与吸盘天线2种天线,将天线放于距离水平面约2 m的地方,每次测试发送100个数据包,为了使实测距离最远,本次测试采用传输速率为0.468 kb/s,测试主要有2个技术指标,即传输距离和丢包数据,实测数据记录如表3所示。
表3 测试数据
由实验数据可知,实际测量的数据与相关资料记载的数据有一定的偏差,这可能与实验的地点、所用设备以及参数设置等有关。实验结果可以看出吸盘天线在1 500 m左右能够完全接收数据,丢包率为0,但随着距离的增加,其丢包率越来越大;而小辣椒天线的通信距离仅在700 m左右,在1 000 m左右就开始丢包,在2 000 m左右其完全接收不到数据。所以LoRa通信的丢包率不仅于传输距离有关,还与天线的类型即天线的增益相关。LoRa无线通信技术相比于传统的无线通信方式具有抗干扰性强,灵敏度高、超长距离等特点,适用于光伏发电厂大范围的特殊场景应用需求。
3.2 实验测试
图5 光伏清洁机器人
图6 上位机显示
将本系统设计的LoRa模块应用于光伏清洁机器人进行测试,应用场景如图5所示。本次测试位于金风科技北京天诚楼楼顶,连接 LoRa模块与光伏清洁机器人原有的控制模块,将LoRa网关放于楼顶宽阔处,天线采用增益较大的吸盘天线,放于距离地面2 m的高处。将LoRa网关设置为服务器主动下发模式,设置光伏清洁机器人每隔0.5 h将蓄电池电量、充放电情况、自身运行功率等发送至网关,并将数据保存至数据库,以便后期对数据进行分析及处理;同时通过上位机发送指令,控制光伏清洁机器人的运动轨迹,即运动或停止。
运行光伏清洁机器人,其应用层可正常接收到光伏机器人的运维数据,通过上位机下发指令,机器人可正常执行,微信小程序部分显示如图6所示。
本次实验实现了光伏运维数据的读取、存储以及机器人运行的控制,对以后的光伏运维具有重要的意义。
4 结语
利用新型的LoRa技术进行光伏清洁机器人通信,提出了基于LoRa 3种工作模式的多模态通信机制,解决了光伏清洁机器人无线通信功耗大的问题。实验结果表明,本文提出的无线通信系统的通信距离可达2 km,工作模式下电流低至10 mA,能够满足光伏机器人的低功耗、低成本、远距离的要求,同样适用于其他要求低功耗、远距离的无线通信领域,具有广泛的应用前景。