APP下载

基于树莓派的电池管理系统设计与实现

2023-01-02蔡庆秋王双园白国振张志强

软件导刊 2022年11期
关键词:树莓客户端远程

蔡庆秋,王双园,白国振,张志强

(上海理工大学机械工程学院,上海 200093)

0 引言

作为电网运输过程中的重要组成部分,储能技术不仅可以有效地利用电力设备实现需求侧管理,降低用电成本,还可以补偿负荷波动,提高系统稳定性[1]。电池作为最具投资效益的储能技术之一,因其安装灵活,建设周期短而备受关注[2]。但是由电池串联组成的电池包经过不断循环的充放电后,电池内部材料特性逐渐发生变化,从而导致电池性能下降,寿命缩短[3]。为确保电池使用良好,并延长电池寿命,必须对电池进行合理有效的管理。文献[4-6]基于嵌入式微处理器对电池数据进行实时监测和故障诊断,但是系统过于单一,仅依靠电池状态发出警告信号并中断电路,且容易受到外界干扰。文献[7]对电池充电状态进行实时监测,结合充电管理芯片保证电压输出稳定,但是缺少系统故障提示。文献[8]采用ZigBee 无线通信技术对电池系统进行信息采集与传输,并增加了故障报警功能,但是忽略了该技术存在传输数据范围短且传输速率较低的问题。文献[9]结合电池监测芯片远程监测车载蓄电池和用电器信息并统一管理,但是该系统缺乏远距离通信功能设计,无法对电池状态进行远程管理。

随着智能手机和电脑等移动端的普及,人们对生活方式的追求不断智能化、便捷化。本文结合WiFi、NATDDNS(Network Address Translation-Dynamic Domain Name Server)技术、人机界面及传感器,设计一种基于树莓派的功能性电池管理系统,以更好地远程化管理电池。该系统以树莓派为核心处理器采集和处理电池信号,用户可在电脑端使用VNC(Virtual Network Console)登录树莓派远程监测系统数据。在此基础上,基于HTTP(Hyper Text Transfer Protocol)超文本传输协议,设立PC 或手机端为客户端,树莓派为服务器,通过NAT-DDNS 网络地址转换技术使服务器能够接收到来自不同局域网的数据通讯,以此进行用户手机等移动端与服务器端之间的数据传输,实现用户远程控制电池系统的功能。该系统能耗低、稳定可靠,且与传统的单一系统相比具有多通讯协议,据此对电池的使用进行改善,有效减少了电池过充放电,保障电池的稳定使用,并延长电池寿命,满足实际生活需求。

1 系统总体设计

电池管理系统设计采用软硬件相结合的方式,以微型计算机树莓派为核心,支持WiFi 及NAT-DDNS 网络访问技术,实现系统远距离监测与控制功能,同时集成了信号采集单元,实现对储能电池的数据采集与处理。该系统包括网络通信模块、信号采集模块及系统控制模块,系统总体框图如图1所示。

Fig.1 Overall block diagram of battery management system图1 电池管理系统总体框图

(1)网络通信模块实现用户端与系统之间的数据传输及远程控制,使用户有效地远程化监测与处理信号。用户基于WiFi 将电脑端与树莓派通过SSH 连接,并使用VNC登录至树莓派[10],将树莓派的视频界面传输至PC 端,实现电池数据远程观测,在电池出现异常时系统发出警告以提醒用户,具有一定的故障报警功能。同时,利用树莓派搭建服务器,并设计人机交互界面,通过HTTP 协议,用户可使用网络访问服务器实现远程控制系统。当用户与电池系统存在物理隔离时,通过外部移动设备进行网页登录访问,从而对电池系统进行远程化管理。

(2)信号采集模块实现电池信号采集,并估算电池SOC 状态。系统通过各类传感器分别采集电池信号,并采用ADS1115 进行A/D 转换[11],转换器节点连接至树莓派GPIO(General-purpose input/output)引脚,并将数据传输至树莓派上。

(3)系统控制模块实现电池充放电管理。该模块由树莓派GPIO 与继电器组成[12]。系统通过分析电池数据状态参数,对电池充放电进行调节与控制,同时接受用户远程通讯指令以实现电池管理控制。

2 系统硬件结构设计

2.1 树莓派

树莓派(Raspberry Pi)是一款只有信用卡大小[13],基于Linux 系统的微型电脑,由英国的树莓派基金会开发。该系统使用树莓派4B 作为核心处理器和关键硬件平台,其芯片采用全新64 位BCM2711 四核处理器,支持双频IEEE802.11ac 无线网络和千兆以太网,更好地满足用户通过PC 端远程监测电池数据,同时具备无线通信功能,使其能够作为服务器与客户端实现远程通讯传输,图2 为树莓派4B 的外形图。此外,树莓派通过GPIO 引脚实现传感器与树莓派之间的数据传输,完成电池信号采集,图3 为树莓派的GPIO 引脚图。

Fig.2 Raspberry Pi 4B图2 树莓派4B

Fig.3 Raspberry Pi GPIO pin diagram图3 树莓派GPIO引脚图

2.2 电池信号采集模块

该系统的电池信号采集模块由ACS712 电流采集模块、电压变送器、PT100 温度传感器、DS18B20 测温模块及ADS1115 组成,实现电池系统各信号采集,包括电池的电压、温度信号、环境温度信号以及电池充放电时的电流信号。首先将各信号采集模块与电池系统相连,采集电池各模拟量信号,然后通过高精度A/D 转换器将各模拟量信号转换成数字信号,最后将A/D 转换器的管脚与树莓派GPIO引脚相连,将数字量输出至树莓派界面,实现电池系统各数据的采集与监测,其硬件结构设计如图4 所示。由于树莓派自身内部没有集成ADC(Analog to Digital Converter),因此通过外接ADS1115进行模数转换。

Fig.4 Hardware structure design of battery data acquisition图4 电池数据采集硬件结构设计

3 系统软件架构设计

该系统支持HTTP 超文本传输协议和无线传输协议,系统以手机和PC 等移动端为客户端,树莓派为服务器,通过设计用户与服务器之间进行交互的界面,并结合NATDDNS 架构,实现客户端与系统的远程连接,在此基础上通过交互界面对系统进行远程控制。

系统软件设计主要完成以下功能:①WiFi 模块远程连接;②服务器功能;③用户与系统远距离通讯;④视频界面远距离传输。系统软件设计包括NAT-DDNS 内网穿透模块搭建、服务器搭建、人机交互界面搭建、VNC 界面搭建。

3.1 NAT-DDNS内网穿透模块搭建

NAT 的实质是一种将私有网络地址转化为公网IP 地址的转换技术[14],包括静态网络地址转换、动态网络地址转换、端口映射、网络地址及端口转换等,它被广泛应用于各种Internet 接入方式,NAT 可以实现重用地址,并且可以有效地避免来自外部网络的攻击,实现对外隐蔽。该系统结合NAT-DDNS 技术,在树莓派搭建的服务器内使用动态域名解析,通过云服务器与内网服务器建立连接,同时将内网端口映射到云端,用户使用基于域名的互联网访问云服务器时,在HTTP 协议下,云服务器根据域名和端口会自动映射到对应的内网服务器静态IP,实现用户通过外网地址访问到内网服务器搭建的服务应用,完成远距离通讯。NAT-DDNS 内网穿透基本模型如图5 所示,当用户手机或PC 等移动端处于4G/5G 及其他局域网时,通过互联网输入私有网络地址,云服务器接受到用户发来的外网地址信号,并将其转化成树莓派的静态IP 地址,通过WiFi 访问至树莓派组建的服务器,从而实现用户与电池系统的远程连接。

Fig.5 Basic model of NAT-DDNS intranet penetration图5 NAT-DDNS内网穿透基本模型

NAT-DDNS 内网穿透模块搭建步骤如下:

(1)利用树莓派下载内网穿透软件,并在终端上通过cd指令进入对应下载目录,输入如下指令进行安装。

输入指令:sudo dpkg-i phtunnel_5_0_rapi_armhf.deb

通过终端界面显示此树莓派的SN 码、默认密码(admin)和远程管理地址,表示软件安装成功,如图6所示。

Fig.6 Install peanut shell software图6 安装花生壳软件

(2)启动花生壳客户端,配置软件工作参数。用户首次登陆管理网页时需要补全资料、重新设置密码,并开通内网穿透服务。映射类型选择HTTP 协议,它是一种运行在TCP 协议之上的响应协议,具有操作便捷等特点,且效率比TCP 协议更高。根据用户输入的内网IP 地址及端口号等参数,花生壳会提供系统远程访问控制的地址,NATDDNS 转换成功如图7所示。

Fig.7 NAT-DDNS module builds a successful interface图7 NAT-DDNS模块搭建成功界面

当手机或PC 等客户端打开后,随着树莓派开启服务器功能,客户端便可通过输入外网地址进行HTTP 连接,同时服务器接受连接并在界面上通知用户已完成连接,用户利用人机交互界面实现对系统的远程控制,其连接流程如图8所示。

Fig.8 Connection flow of the client and the system图8 客户端与系统连接流程

3.2 服务器搭建

为了搭建人机交互界面,需要先将树莓派转变为一个Web服务器,提供用户远程访问功能。

(1)在树莓派终端安装bottle 库,将树莓派作为一个小型网站。

输入指令:sudo apt-get install python-bottle

(2)在树莓派中建立文件夹,命名web.py。编写以下程序:

3.3 人机交互界面搭建

该系统基于网页搭建人机交互界面,人机交互界面是用户与服务器之间传递、交换信息的对话接口,是整个系统的重要组成部分之一。通过交互界面与NAT-DDNS 架构相结合,实现用户对系统的远距离管理,增强了系统的功能性。

(1)在web.py 所属文件夹中编写控制界面,将文件命名为home.tpl,并编写HTML 代码。部分程序如下所示:

3.4 VNC界面搭建

VNC 是用户使用PC 端远程监测电池数据的重要技术,首先采用putty 的方式使电脑端与树莓派无线连接,通过SSH 输入路由器静态IP 地址登录,然后在PC 上通过tightVNC 客户端启动树莓派的界面,如图9 所示。通过VNC 界面的搭建实现树莓派端与电脑端屏幕、键盘、鼠标的共享,使用户能够远程监测系统各数据变化,并分析处理电池信号。

Fig.9 Raspberry Pi VNC interface图9 树莓派VNC界面

4 系统实现效果与功能测试

4.1 系统实现效果

4.1.1 远程控制软件

当系统连通网络后,用户在手机等移动端登录NATDDNS 网址实现内网穿透,结合HTTP 协议将客户端与树莓派搭建的服务器相连接,并通过人机界面将电池开关控制信号传输至系统,实现远程控制与管理,界面设计如图10 所示。用户通过点击开关按钮控制电池的充放电,增强了系统的便捷性与个性化。

Fig.10 Control interface图10 控制界面

4.1.2 系统数据监测

系统基于Thonny Python IDE 软件运行信号采集及处理程序,在树莓派上显示电池状态并自我控制平衡。用户通过VNC 界面远程化监测电池状态,并通过继电器控制电池充放电的开关,实现系统自动化及远程化管理。系统数据采集界面如图11所示。

Fig.11 System data display interface图11 系统数据监测界面

4.2 系统故障提示功能测试

电池温度过高或者过低时会引起电池的功率和能耗变化[15],进而影响电池的寿命和性能,因此系统出现故障时会给予用户提示,表1 列举了系统提示类型。该系统采用的硬件精度较高、抗干扰性强,故当系统出现异常时能及时发出警示,保证系统安全运行。

Table 1 System prompt type表1 系统提示类型

5 结语

本文设计了一种基于树莓派的电池管理系统,通过HTTP 协议及NAT-DDNS 协议实现了用户对电池系统的远距离监测与管理。与传统的电池管理系统相比,该系统具有远程通讯功能,更好地满足了用户对电池系统的个性化管理,且系统信号采集精度高、数据传输范围广,同时具有故障提示功能,使其工作状态保持在合理范围内,提高了电池的安全性能,对电池管理系统发展具有良好促进作用。未来可以将智能寿命诊断及智能故障诊断等功能加入电池管理系统,搭建电池系统智能化管理框架,对未来电池的健康使用具有很好的参考价值。

猜你喜欢

树莓客户端远程
让人胆寒的“远程杀手”:弹道导弹
远程工作狂综合征
基于树莓派的骑行智能头盔设计
远程诈骗
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
基于树莓派的远程家居控制系统的设计
响应面法优化红树莓酒发酵工艺
客户端空间数据缓存策略