【米尔-瑞米派Remi Pi 创意秀】基于RemiPi+华为云储能监测管理系统

目录

简介:

板卡介绍:

作品介绍:

​编辑技术架构:

• 整体架构:

•应用架构:

•DLV大屏架构:

​编辑​编辑业务流程:

​编辑功能介绍:

​编辑

软件部分:

视频:

总结:


正文

简介:

该项目是通过CAN/485协议接入到BMS、电表等模块,实时获取电池单体、电池充放电电流电压、温度传感器等数据,边缘计算soc、故障预警等结果通过mqtt协议上报华为iot云服务器。通过手机app实时监测和控制运行状态。另外数据会以csv文件存储OBS中,再通过脚本将数据提取为DLV大屏控件数据格式,显示为数字化大屏效果

该该项目可适用于多类储能项目:家庭能源管理中,可以通过边缘计算实时监测家庭用电情况,云端进行数据分析,优化储能和用电策略,实时监控充放电情况,降低家庭电费;工业应用中,边缘计算实时监测生产设备的电力需求,采用峰放谷冲策略,云端进行数据分析和优化,降低能源成本,提高生产效率;应急电源上,边缘计算可确保快速响应,云端进行资源调配和管理,确保应急供电的可靠性;电动汽车充电站上,通过边缘计算实时监测充电需求,云端优化充电策略,降低电力成本并提高充电效率。

板卡介绍:

RZ/G2L 是瑞萨在智能工控领域的一款高性能、超高效处理器。RZ/G2L 处理器配备 Cortex-A55@1.2GHz CPU、Cortex-M33@200MHz MCU、Arm Mali-G31 的 3D 图形加速引擎以及支持视频编解码器。此外,这款微处理器还支持摄像头接口(MIPI-CSI/Parallel-IF)、显示器接口(MIPI-DSI/Parallel-IF)、USB2.0、UART、CAN 接口、千兆以太网接口等,特别适用于入门级工业人机界面(HMI)和具有视频功能的嵌入式设备等应用。

Cortex-A55 内核为核心的嵌入式板卡,主频为 1.2GHz。配备了 1GB 高速 DDR4 和 8GB eMMC,集成了双路千兆以太网、双频 2.4GHz/5GHz WIFI+BT4.2 模块、USB 2.0 HOST、USB 2.0 OTG、HDMI 显示接口、LVDS 显示接口、MIPI CSI 摄像头接口、音频输入输出接口以及兼容树莓派的 40PIN 接口。

本项目中我们使用到:wifi连接网络、调试串口、  485接入BMS控制板、IO输入控制继电器等外设接口

作品介绍:

        * 该项目是通过CAN/485协议接入到BMS模块,实时获取电池单体、电池充放电电流电压、温度传感器数据等,计算soc、故障预警等情况通过mqtt协议上报华为iot云服务器。之后将字段转发存储以csv文件在对象存储服务OBS中,DLV大屏便可以访问到字段,编写显示脚本展示成图像化大屏效果
        * 该作品主要适用于家庭储能设备以及工业上储能集装箱,针对这类储能产品不便移动,配置以及遇到故障报警都需要专业人士去到现场处理解决,十分不便。基于此类问题,于是设计了该储能监测控制系统,用户可通过数字化大屏实时查看报警、故障、单体、SOC等一系列数据。可以通过iot云端操作下发配置字段,比如强制控制继电器开合,配置修改充放电量和报警阈值等,后期也可以使用小程序或app对接iot云来实现手机端的监测控制,极大提高了储能设备稳定性,对电能的利用实时监测,控制充放电以及调节充放阈值的方便也对电能充分利用得以提升,极大的节约了电能经济成本

        * 板卡连接测试BMS板以及继电器等外设效果

        * 华为Iot云端物模型显示效果

        * 数字化大屏显示效果呈现:


技术架构:

• 整体架构:

 该系统由数据采集模块、数据传输、华为 IoT 云平台、 DLV 显示模块部分组成。其中主要软件主要是 RemiPi 主控板应用,系统启动后数据采集上报和检测逻辑如图所示。
•  数据采集由 BMS 板完成采集单个电池电压数据,充放电电流温度等;传输采用 MQTT 轻量级物联网通信协议,确保数据的高效传输;
•  华为云平台接收来自储能检测控制系统的数据,进行身份验证和数据校验,此外将接收到的数据存储在云数据库中,支持历史数据的查询和分析
•  DLV 主要负责实时监测储能设备的运行状态,包括电池电量、充放电状态、温度,用户可以通过网页或移动端应用查看储能设备的运行状态、故障报警和性能分析等信息
•  边缘主要架构:主控板主要部署在边缘,软件设计架构如右图,主要处理数据信息搜集、通过 mqtt 对接 Iot 云端以及必要的计算控制等

应用架构:

应用端页面首页如右图所示,采用 http 协议对接 Iot 云端,以实现客户手机端实时监测控制的目的。页面主要使用一个 Tab ,设计 4 个页面切换效果。应用启动时在 onPageShow 中初始化页面数据,建立三个定时周期性调用的任务,分别为图标闪现任务,比如右上角监测到设备上线则闪现电池图标。时间更新任务, 1s 周期更新时间信息。 http 请求服务器任务,通过先判断 token 为空,首先通过请求获取 token ,随后存储到类中,之后周期性获取服务器上影子数据的值,使用 @state 修饰更新绑定的 ui 组件。
此外,设置开关和配置信息下发则通过获取到 ui 上修改了的值,组成 json 消息通过 http 接口发给 Iot 服务器, Iot 服务器收到消息后通过 mqtt 下发给边缘设备实现控制

DLV大屏架构:

主要数据来源为提取对象存储器OBS桶中数据。数据信息量较大,且中间跳变也较大,通过js脚本编程,将数据过滤,转化为需要的内容显示到大屏。以报警信息为例,拿到的数据中从中迭代,判断告警的字段和需要关注的字段告警历史结果赋值,最终迭代完则显示出来的即为近期最新的结果,显示到大屏即可


业务流程:

1、设备端采用RemiPi 主控板通过CAN/485接口获取电池数据,并通过4Gwifi联网后使用mqtt协议上报云端;同时订阅云端消息,若是switch字段则控制更新输出继电器状态;同时具有监测判断压差、温差、soc过低故障等工作状态预警的能力

2Iot云服务器搜集设备端上报的电池信息数据,用户可以直接查看云端字段;也可以通过下发字段值控制设备端运行状态;Iot云会将部分重要数据存储OBS,转发到DLV大屏显示;此外也可以通过手机app或者小程序订阅到Iot服务器来实现手机上实时监测系统

3、数据存储服务用于存储重要字段数据,同时将json格式数据转发为csv格式给到DLV大屏

4、数据可视化DLV显示服务主要将储能系统的重要信息包括单体电压、温度、告警、故障、SOC、版本、最高最低单体等信息,通过js脚本将数值转化为对应UIjson数组,最后以图形化方式展现给用户

5、监管与运维主要是云日志的存储和方便专业人员查看,方便系统遇到故障时查阅。

价值:

* 该产品价值在于以大屏方式展示出储能系统运行状态以及重要信息;可以通过云端查看系统外设信息以及下发控制;此外还可以定制app或小程序对接IoT云服务器在手机端实时监测控制该系统


功能介绍:

主控板通过CAN/RS485工业接口,与BMS或其他设备连接后建立局域通讯。主控系统具有统计、计算、做出响应的能力。主要输出外设为继电器,在正常运行过程如果遇到一级故障或者问题则紧急性报出故障并通过控制继电器急停设备,以确保安全;同时搜集到的设备数据信息通过mqtt上报到华为Iot云端,Iot建立物模型可后台查看到具体字段数据。

基于储能检测控制系统实现了对储能系统的实时监测、数据分析和可视化展示。主要功能是通过将储能检测控制系统采集的数据上传至华为IoT云,利用云平台的强大计算和存储能力,实时展示储能设备的运行状态、性能指标和历史数据,帮助用户快速了解设备情况,做出及时决策。
在系统启动查看平台功能
华为Iot云平台
在登录云平台后在设备列表中可以看到在线设备,此项目中设备为bmsDevice

点击进入设备信息中可以看到上报信息,物模型数据显示更新,效果如下

云端下发
下发数据采用json格式,比如我们下发设置switch开关全部为1,则RemiPi订阅到消息后会控制继电器的开合

{
    "services": [{
            "service_id": "solo_service",
            "properties": {
                "Switch1": "1",
                "Switch2": "1",
                "Switch3": "1",
                "Switch4": "1",
                "Switch5": "1",
                "Switch6": "1"
        }
      }
   ]
}

测试中在继电器端接入了12V电源 使用led接入到继电器开关端,看到继电器闭合 LED状态

数据转发,在转发规则中创建规则,测试连通性,这里只添加几个字段,不影响结果

{
  "resource": "device.property",
  "event": "report",
  "event_time": "string",
  "notify_data": {
    "header": {
      "app_id": "d4922d8a-6c8e-4396-852c-164aefa6638f",
      "device_id": "d4922d8a-6c8e-4396-852c-164aefa6638f",
      "node_id": "ABC123456789",
      "product_id": "ABC123456789"
    },
    "body": {
      "services": [
        {
          "service_id": "string",
          "properties": {
                "sw_version": "2024072601",
                "hw_version": "2024072602",
                "soc": "0.98",
                "tempe": "24.3",
                "CellVolt1_1": "3781",
                "CellVolt1_2": "3782",
                "CellVolt1_3": "3783",
                "volt": "3785"
          },
          "event_time": "string"
        }
      ]
    }
  }
}

测试提示OK

在数据可视化面板添加我们转发的数据存储路径,以及必要的key信息

应用端则通过http协议采用AK/SK鉴权对接Iot云,使得应用通讯更稳定、安全、可靠。主要功能为首页展示soc 当前电压电流绝缘内阻,温度等一些列数据,运行信息页面则主要为电量信息和预警故障类信息,单体页面则展示出单体电压以及各个温度采样的温度值信息。最后是设置参数中主要为告警信息的临界阈值设置下发

 

当前数据字段还不能直接显示的DLV大屏,还需要创建数据转换器,该脚本采用JavaScript脚本,于是将我们需要显示的信息创建脚本以指定方式显示到大屏

最终DLV大屏显示数据介绍

DLV数字大屏连接地址 :  DLV

软件部分:

软件部分主要有使用了 RemiPi的 aarch64-poky-linux-gcc和aarch64-poky-linux-g++ 编译器,将所需的包编译成对应so库添加工程,第三方库使用到cjson 以及必要的华为云鉴权相关的包。

其他主要为应用部分逻辑,应用启动后会初始化配置,最终创建子线程,分别处理数据采集、数据组json包后周期上报云端、订阅主题,主要为:

topic:$oc/devices/66a8603af2f30a051f376966_101780/sys/messages/down

topic:$oc/devices/66a8603af2f30a051f376966_101780/sys/messages/set

系统启动流程,开机后初始化外设以及wifi,随后尝试连接wifi,wifi连接状态ok的回调中连接华为iot云,连接ok的状态回调创建子线程,周期性上报数据。查看启动log如下

软件主要逻辑
电池的信息都封装到 _SystemDataStru 结构体中

使用m_ListKey列出物模型对应关系以及数据类型

在main主线程启动后调用创建连接华为Iot云服务器,连接部分逻辑代码如下

属性上报逻辑主要在子线程中,周期为1s时间上报一次,组包上报部分逻辑如下:

在数据组json包时主要是放在IOTA_ReportBmsInfoPayload函数中处理,会根据St_ListIotKey结构中逐条添加,最后加上时间信息词条:

订阅消息则在TopicDataProcess中将数据逐条解析,更新到_SystemDataStru 结构体中字段,并发出通知,若switch状态有变化则控制继电器,解析部分逻辑如下

必要的计算任务也放在子线程中,对电芯的单体电压、温度的最大值最小值以及各个最值电芯的位置查找,Soc计算等


视频:

测试视频效果 :

项目视频演示


总结:

该项目中服务器端操作较多,主要因为近期学习华为云的一些平台于是才做了此项目,运用了华为云Iot、桶OBS、DLV等,后面可加入ModelArts,做AI的预测,使得该项目有一定的提升空间。
另外RemiPi开发板外设资源较为丰富,必要的传感器以及工业接口485/can应有尽有,芯片性能也较强,可以根据不同项目以及数据量适当运用。
也很感激技术的指导,配上性价比如此高的开发板,期待后期可在工作或业余项目中使用到
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值