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