社区精选:InfluxDB 如何实现加油站油罐的物联网监控
作者:Caitlin Croft / 产品, 用例, 开发者
2020 年 7 月 30 日
导航至
最近,我与 The Shed App 的运营经理 Alex Skrivseth 进行了交谈,了解了他如何使用 InfluxDB 监控各个加油站的汽油和柴油当前液位。仅通过提取物联网传感器数据,他就能够为油罐车司机提供以前无法访问的宝贵数据。
Caitlin:请介绍一下您自己。
Alex: 我住在爱达荷州邦纳斯费里,一生都在建筑行业工作。大约一年前,我完成了在线 Python 训练营。我学习了 Django,Python Web 框架。从那时起,我开始更多地学习技术。我构建了一些简单的应用程序,发现这个过程非常酷。我之前有一些 SQL 数据库的经验。我构建的一个应用程序可以帮助我的工作。它可以为我跟踪木材干燥窑炉内的温度。这样我就不必亲自检查了!
在使用 InfluxDB 之前,我尝试使用 Chart.js 创建可视化效果。说实话,效果不太好。体验不太好,我很快发现我不想再使用 Chart.js 了,部分原因是我不太熟悉 JavaScript。我花了将近 15 个小时才创建了一个我喜欢的图表。没错,在这 15 个小时里,我对 JavaScript 更加熟悉了。但是使用 InfluxDB,我只花了一个小时左右!
由于我想了解更多关于编码和各种技术的知识,我开始参加更多的聚会。我在爱达荷州 Sandpoint Tech Meetup 认识了 Jacob Marble,他目前是 InfluxData 的 Cloud 2.0 存储技术主管。在遇到 Jacob 之前,我没有听说过 InfluxDB,这个 专门构建的时间序列数据库。在与他本人会面后,我在 LinkedIn 上联系了他,以了解更多信息。他非常友善地与我见面。我们讨论了如何在科技行业建立职业生涯。他还向我展示了他目前正在做的事情,我认为这非常酷。他提到有开源版本和付费版本。他鼓励我试用 InfluxDB,看看我是否可以从中受益。
Caitlin:您是如何与油罐车司机联系上的?
Alex: 我的朋友 Jake 在社区内为当地企业安装监控摄像头、设置网络和其他 IT 工作。Jake 已经与一位油罐车司机建立了联系,并且已经为司机提供了一种使用 PuTTY 并发出Series of Requests 来了解一个加油站的油罐液位的方法。司机问 Jake 是否有可能更好地了解各个加油站大型油罐的当前液位,Jake 将他介绍给了我。Jake 要求我构建一个应用程序,他付钱让我保持更新。通过从油罐中提取物联网传感器数据,我目前正在监控爱达荷州和蒙大拿州的九个加油站,所有加油站都在爱达荷州邦纳斯费里半径 2-3 小时车程内。
Caitlin:请告诉我们卡车司机面临的挑战。
Alex: 让我向您概述一下加油站的基本运营情况。您有拥有和经营加油站的公司,例如 Shell 或 Chevron。另一家公司提供大型油罐,然后是油罐车司机,他们负责加满所有汽油和柴油罐。这些油罐可以容纳 20,000 加仑汽油。有些油罐小到 5,000 加仑。至少有三个不同的参与方,他们彼此之间不沟通。我发现,在大多数情况下,加油站都认为司机会在需要时来加油。我还了解到,如果加油站不及时加油,三天内就会耗尽汽油。
油罐由 Veeder-Root 等公司制造。事实证明,许多油罐都内置了传感器。但是,许多油罐都非常旧,没有简单的 Web 界面供人们理解数据。来自油罐的任何数据都不会与司机共享;事实证明,只有加油站才能访问这些数据,司机无法访问。我假设加油站内部有一个小显示面板,他们可以在上面读取数据,但他们再次没有公开与司机共享这些信息。似乎他们只有在司机或调度员打电话询问更新时才会共享信息。
在我的应用程序出现之前,司机必须依赖调度员提供给他们的数据。首先,调度员与每个加油站联系以了解他们的需求。接下来,调度员每周或每隔几天通知司机他们必须装载多少燃料。
Caitlin:请告诉我们您使用 InfluxDB 构建的物联网监控解决方案。
Alex: 我的朋友 Jake 意识到他能够在本地将一个小设备连接到每个油罐,该设备可以本地读取当前液位。该设备因油罐品牌和型号而异。对于只有串行端口的旧油罐,Jake 正在使用 SysLINK SL-800 IoT 网关 来读取油位。对于某些油罐,他正在使用 Lantronix UDS-1100 来实现机器对机器 (M2M) 通信。一些更现代的油罐内置了 TCP 和 Web 界面。
我能够向他的设备发出 Telnet 请求。我使用 Python 客户端 将数据写入 InfluxDB。我为覆盖九个特定加油站的当地卡车司机构建了一个自定义应用程序。有三家不同的卡车运输公司为这九个加油站提供服务。卡车公司似乎与特定的加油站公司签订了合同。例如,同一家卡车公司为该地区的所有 Chevron 加油站提供服务。
我的自定义应用程序从加油站的每个油罐中获取数据,使司机能够检查每个油罐的当前液位。这样,司机可以查看应用程序以了解他们应该带多少汽油。例如,知道他们只需要携带 3,000 加仑的普通汽油,而不是他们可以携带的最大量,这对司机来说是非常宝贵的。
我们正在监控几个 Conoco 加油站、几个 Chevron 加油站、一些 76 加油站和其他当地拥有的加油站。加油站与司机之间的关系很奇怪。似乎加油站让司机自己负责加油。整个行业都存在一定程度的信任。
在构建我的应用程序之前,我了解到油罐车司机会每两天为每个油罐加注相同数量的汽油或柴油。我发现,保持一个加油站的油罐充足可以使油罐车司机全职工作。我已经在我自己的应用程序中跟踪加油站数据大约六个月了,大约一个月前我开始使用 InfluxDB。
我目前每十分钟从每个油罐收集一次指标。平均而言,我从每个加油站收集 576 个指标。当然,对于某些加油站,我收集的指标更多,因为它们有更多的油罐。许多加油站有三个油罐:普通汽油、优质汽油和柴油。有些加油站还有第四个油罐用于染色柴油,用于非公路车辆、农用拖拉机和其他大型设备。一些大型加油站最多有七个油罐;这些加油站有备用普通汽油罐。
“卡车司机非常喜欢它!他们喜欢可以查看应用程序以了解当前的汽油和柴油液位。它比加油站可以提供的更准确。”
司机不再需要依赖加油站向调度员提供正确的信息。与加油站和调度员的沟通过程可能需要几个小时的来回沟通。现在司机可以立即自己查看网站,只需 5 分钟。
目前,我的 数据保留策略 仅设置为 30 天。我的 InfluxDB 存储桶 当前设置为一个月。我认为我不需要将数据保留更长时间。
我创建了一个仪表板,可以在其中查看所有九个加油站。我还设置了权限,以便特定司机只能查看与其加油站相关的数据。根据 Google Analytics,司机每周大约查看数据三次。
卡车司机可用的仪表板
- 如果油罐低于 1,000 加仑,液位将显示为红色。
- 如果油罐低于一半,液位将显示为黄色。
- 如果油罐高于一半,则将显示为绿色。
<figcaption> 仪表板显示指定加油站的各种燃料类型</figcaption>
<figcaption> 指定加油站的仪表板</figcaption>
Caitlin:数据中有什么有趣的观察结果吗?
Alex: 我震惊地发现,如果司机不来加油,加油站的燃料会耗尽得有多快。我惊讶于实际上使用优质汽油的人有多么少。例如,对于我们正在监控的其中一个加油站,他们平均每周消耗 30,000 加仑的普通汽油。他们每周只使用大约 4,000 加仑的优质汽油。我还惊讶于加油站和油罐车司机之间缺乏沟通。加油站只是认为司机总是会带着足够的燃料出现。
我还注意到了一些关于加油的有趣之处。从图表中,我可以立即判断出司机何时加油,因为图表会立即垂直向上飙升。有趣的是,通常在几个小时后,我可以看到燃料量略有增加。似乎司机将油加到最大量,如果他们的油罐中还有剩余燃料,他们会在几个小时后回来加满。这就像他们宁愿再跑一趟,这样他们就可以清空卡车油罐。
<figcaption> 油罐加油</figcaption>
我喜欢 InfluxDB,因为它很容易判断出什么时候出了问题。我已经能够检测到每个油罐的模式。例如,很容易区分白天和夜晚。使用率在晚上和夜间趋于平缓。然后你可以看到燃料液位在早上人们开始一天的工作时下降得更快。
比较工作日和周末数据也很有趣。似乎汽油的使用率在周末没有变化。然而,很明显,工作日购买的柴油更多。周末购买的柴油要少得多。
Caitlin:您是否有任何未来计划来扩展您对 InfluxDB 的使用?
Alex: 似乎较大的加油站拥有卡车,油罐车司机直接为加油站工作。所以我假设他们也有自己的监控系统。如果能将这个工具推销给加油公司,并与更多加油站分享这项技术,那就太好了。一些加油站可能已经建立了监控油罐液位的基础设施。尽管如此,我认为与他们合作可能会很有趣。
我还想扩展到其他当地加油站。我想与更多的加油站和卡车司机联系,为他们提供帮助。虽然与更大的石油和天然气公司合作会很棒,但我也认为帮助那些没有建立基础设施来监控油罐的小型加油站可能会很有趣。我仍在弄清楚这一切是如何运作的,但我很高兴看到我还可以使用这个应用程序做些什么。
我仍在学习很多东西,一旦我学到更多,我想开始在家中使用 InfluxDB。我想开始更多地了解家庭监控。例如,我想开始跟踪我的植物的湿度水平。您可以在 LinkedIn 和 GitHub 上找到我。
如果您有兴趣分享您的 InfluxDB 故事,请点击此处。