博客/社区

通过Grafana和InfluxDB, CSS Electronics可视化CAN物联网数据,以监控车辆和机械

2021年9月21日6分钟

Martin Falch是CSS电子公司的合伙人兼销售和营销主管,他是“CAN总线”数据方面的专家。Martin与不同行业(汽车、重型、海事、工业)的终端用户(通常是OEM工程师)密切合作。他对开源软件充满热情,并一直带头将CANedge与InfluxDB数据库和Grafana远程信息处理仪表板进行集成。

在CSS Electronics,我们开发工业级,易于使用的CAN总线数据记录器。简而言之,CAN总线协议是否负责在几乎所有车辆内进行基于消息的遥测通信重型车辆汽车采矿卡车等等。它也被广泛地用于监测多种类型的机械船只飞机、无人机和机器人。

最终用户通常包括汽车设备制造商的工程师,他们可能需要监视现场的资产,以便执行分析、诊断问题,甚至执行预见性维护

对于这些用户中的许多人来说,可视化CAN数据非常重要,为了支持这一点,我们决定促进硬件和Grafana之间的即插即用集成。

下面,我们将概述我们面临的主要挑战,我们如何解决它们,我们的解决方案的最大好处,以及实际用例的例子。要查看更多公共Grafana仪表盘游乐场,请查看我们的完整的介绍文章与链接到我们的现场演示或视图我们的研讨会

集成中要解决的主要挑战

作为整合的一部分,我们面临五个主要挑战:

1.处理“原始”CAN总线数据

我们的CANedge数据记录器记录原始CAN总线数据。该数据由带有时间戳的“CAN id”和“数据字节”组成。为了让我们的用户能够理解这些数据,我们需要通过适当的软件/API工具和数据库文件(DBC),其中包含了如何解释来自特定应用程序(例如,卡车或汽车)的数据的信息。

2.存储二进制日志文件

CANedge以一种标准的二进制日志文件格式记录数据MF4.虽然这使得它很容易与许多流行的CAN总线软件工具集成,但是没有即插即用的工具来将数据存储在数据库中。

3.处理来自本地磁盘或S3的数据

此外,我们的用户在某些情况下可能需要处理来自本地磁盘的数据(例如,从我们的CANedge1),而在其他情况下,他们可能需要直接从S3服务器处理数据(例如,从我们的CANedge2).在这两种情况下,解决方案还需要容易地实现自动化。

4.定制需求

每个用户都可能对其数据的更“高级”处理有独特的需求,其中一些是无法通过数据库查询完成的。

5.没有中央托管

最后,我们的业务模式有点特殊,因为我们不托管服务器,也不将解决方案作为服务提供。bob彩票中奖计划相反,我们允许最终用户自己设置一切。这对用户来说有很多好处,比如成本和数据控制。然而,要实现这一点,解决方案的设置需要非常简单。

我们的解决方案:通过Python处理数据并将其推送到InfluxDB

为了解决这些关键挑战,我们设计了一个简单的即插即用仪表板集成脚本它利用了我们的免费Python API模块。

脚本中的第一步是获取相关的日志文件。我们通过使用fsspec和我们的API模块canedge_browser.这使我们可以根据指定的时间段以不可知的方式列出来自本地磁盘和S3的日志文件。

使用这个日志文件列表,脚本使用我们的MF4迭代器模块将每个二进制文件加载到pandas数据框架中,mdf_iter

原始CAN数据的数据框架被提供给我们can_decoder模块以及相关的DBC文件,告诉模块如何解释数据。输出是一个新的数据帧,包含时间序列数据,如速度、转速、GPS位置温度等。

最后,脚本将解码后的数据帧通过Python API.一旦数据被推入,就可以通过Grafana进行查询了。

虽然可以使用其他数据库来代替InfluxDB,但我们发现它非常适合,特别是因为- likeGrafana云- InfluxDB提供了一个免费的云启动程序,使初始设置非常简单。InfluxDB还支持高频数据,这可能与can总线诊断等相关。

一旦完成了初始测试,就可以通过任务调度或AWS Lambda函数轻松地实现脚本集成的自动化。

值得注意的是,在实践中有许多方法来设置这一点。例如,有些用户可能更喜欢使用云版本的InfluxDB、Grafana或两者都使用。其他人可能决定在本地机器或AWS EC2虚拟机上自托管所有内容。类似地,Python脚本可以通过任务调度器或触发器函数(如AWS Lambda、Azure触发器等)实现自动化。

是什么让Grafana在远程信息处理仪表盘上表现出色?

在我们看来,Grafana + InfluxDB是设置远程信息处理仪表板的一个很好的解决方案,因为:

  1. Grafana提供了一些视觉上最吸引人的定制仪表盘。
  2. 无需编程经验,Grafana的整个解决方案可以在几分钟内设置好。
  3. Grafana和InfluxDB都提供这种服务免费的云启动器,减少“时间太棒了”。
  4. 这两个工具都是开源的,但也提供了付费云的替代方案。
  5. Grafana前端可以完全定制,不需要编码。
  6. 100多个Grafana插件提供了很多灵活性,比如地貌可视化。
  7. Grafana变量使前端用户能够轻松地在设备之间切换。
  8. 本地Grafana警报允许用户设置阈值,以便快速通知设备问题。

来自客户的用例

今天,我们的许多用户依赖Grafana作为他们处理CAN总线数据的核心工具之一。其中一些在我们的用户案例研究

国际农业设备制造商Kverneland通过CANedge2和3G/4G路由器从收割机上传CAN数据。数据被上传到他们自己的Azure blob存储(使用MinIO S3网关)。通过Azure触发器函数,仪表板集成脚本实现了自动化,从而促进了Grafana中新数据的可视化。这支持各种用例,包括设备问题的远程调试。Kverneland团队写道:“CANedge2让我们有机会直接从现场获取大量数据,而不需要亲自下地——因此节省了大量的时间/成本。”“随着自动化脚本在我们的Linux服务器上运行,我们能够毫不费力地直接可视化和分析数据。”

另一个例子是HAVELSAN该公司在国防、仿真、IT、国土安全和网络安全领域提供端到端技术解决方案。bob彩票中奖计划该团队使用CANedge2从无人地面车辆定期上传数据。当SD卡到达指定WiFi路由器的范围内时,该设备会自动将数据从SD卡推送到团队的S3服务器。数据被处理并推送到fluxdb,以便在Grafana中可视化。当观察到异常的数据模式时,团队会下载相关的日志文件,通过其他软件工具进行深入分析。

结论

总的来说,我们与Grafana和InfluxDB的整合已经被证明是我们许多终端用户的游戏规则改变者。展望未来,我们看到了与各种Grafana仪表板功能进一步集成的巨大机会,比如引入的实时流解决方案bob彩票中奖计划Grafana生活在8.0版本中,它将使设备诊断、云度量存储和基于故障的日志收集更加健壮和精简。