资源 车队监控设计
车队监控 通过Hologram的蜂窝网络来监控车辆,使用了OBDII、Raspberry Pi、GPS和GSM。 工程使用到的器件 硬件部分 名称 数量 Raspberry Pi 3 Model B × 1 Hologram Nova × 1 OBDII ELM327 Reader × 1 GPS Module (Generic)(OPTIONAL) × 1 Jumper wires (generic) × 1 软件应用程序和在线服务 Adafruit.io 内容 什么是车队监控? 监视车队有许多理由。有些只想跟踪位置(本质上就是资产跟踪),而另一些想要监视车辆的运行状况。当需要确保您的车辆得到所需的维护时,这很有帮助。监控车队提高了安全性,并为改进操作提供了思路。它还有助于将车辆部署到最适合它的地方。 怎么能造出如此复杂的东西呢? 很简单!在接下来的几周里,我将记录我的过程,因为我开始使用现成的、对制造商友好的硬件来建立一个DIY解决方案。我已经列出了所需的最低成本部件。 硬件 我将使用一个USB OBDII适配器(见上面的链接)连接到树莓派,标准GPS模块连接到GPIO管脚。有了Hologram Nova,一个USB GSM调制解调器,我就能在车辆追踪器上增加远程连接。Hologram.io在很大范围内提供了一个非常友好的价格。最棒的是,可以把它变成一个准备部署的产品。 软件 第一个是运行的代码片段,从OBDII阅读器定期收集相关信息,并将其与GPS数据耦合,然后通过Hologram.io网络发送数据消息。 出于透明性的考虑,我正在nodejs中构建它,但是OBD-II库似乎非常过时,所以第一个障碍是使用node-serialport库编写一个可用的实现。如果node不能工作,这部分可能会用python构建!如果有人读到这碰巧有这方面的经验,请联系! 第二部分是web应用程序,它将用于查看带有车辆数据的实时地图。随着这个项目的进展,我希望建立一个方法,以便很容易为新的车辆提供服务。这个web应用程序将使用React编写,这是一个用于构建渐进式web应用程序的javascript框架。 我能做什么? 如果你想一直阅读本文,甚至可能帮助贡献,你可以订购准确的零件,并贡献到GitHub项目! https://github.com/HologramEducation/hologram-vehicle-monitor 在我们开始之前,先说几句外话。 Node.JS没有成功。我花了很多时间试图让节点库工作,并发现很多节点库已经被忽视了很长一段时间,而由于node的版本更改如此之多,有一些东西不能有效地工作。所以我转向了Python,我认为它更适合初学者,因为它有较少的依赖性。 我一开始没有意识到一个山寨的USB ScanTool OBDII阅读器。这导致了一些兼容性问题,因为它没有固件支持。 我推荐使用这个https://www.amazon.com/gp/product/B005ZWM0R4/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1 那里有一些OBD-II模拟器,在开发中会非常有用。我有一辆94年的Land Cruiser,但是它没有OBD-II接口。 我没有创建我们自己的MQTT代理并从头创建仪表板,而是使用了Adafruit.IO——它提供了一个物联网消息传递代理以及一个仪表板平台。 我们不用GPS模块,而是用全息图新星模块定位最近的手机信号塔的位置。 好的,清楚了以上这些之后,让我们开始! 指南中最重要的部分 准备好你的硬件 • Raspberry Pi 3 • Hologram Nova USB Modem • ScanTool USB OBD-II Reader • FTDI Cable (Optional if you just want to use a Monitor and Keyboard) • USB Powersupply (with a car adapter if you intend to use it in your car) 开启一个树莓派 烧写树莓派的最新树莓镜像。我推荐Etcher.io -这是一个轻量级的工具,它可以把镜像烧到SD卡上。你可以在这里找到最新的镜像,选择你最适合的版本。 https://www.raspberrypi.org/downloads/raspbian/ 在你的树莓派上插入ScanTool和Nova 这需要精通USB接口,不适合胆小的人。 打开Adafruit.io账户和控制面板 转到Adafruit.io官网并创建一个帐户。 转到Feeds -> Actions -> Create A New Feed,并将其命名为fleet。 转到Dashboards,并创建一个新的控制面板。 首先添加一个地图视图。为GPS位置的完整历史视图设置历史时间为9999。 对刻度盘模块重复此步骤。使用相同的feed,我们在相同的消息中发送传感器值和GPS位置,它获取发送的第一个值并显示它,在我们的示例中是速度。 获取您的AIO密钥并将其保存起来,以便我们运行代码时使用。主页上有一个链接。 如果您对API或指示板更感兴趣,请访问这些链接 https://learn.adafruit.com/adafruit-io/mqtt-api https://cdnlearn.adafruit.com/downloads/pdf/adafruit-io-basics-gps.pdf 为你的树莓派安装shell 有几种途径 • 显示器和键盘 • SSH • 串口TTY 我更喜欢串口,因为当你在车里工作,没有无线网络时,它更容易操作。Adafruit对此有很好的指导https://learn.adafruit.com/adafruits-raspberry-pi-lesson-5-using-a-console-cable/ ProTip:在Pi 3上,当蓝牙被启用时,它会干扰串行引脚。在计算机上挂载SD卡,编辑config.txt文件并添加这一行。 dtoverlay=pi3-disable-bt 让代码跑起来! 终于到了这一步! 所有的代码和指令都可以在这个github存储库中找到https://github.com/HologramEducation/hologram-vehicle-monitor 安装 在终端中运行以下程序,它将安装Hologram, Adafruit-IO和OBD Python SDKs以及Hologram CLI curl -L hologram.io/python-install | bash curl -L hologram.io/python-update | bash sudo pip install adafruit-io sudo pip install obd 运行实例 克隆这个存储库 git clone https://github.com/HologramEducation/hologram-vehicle-monitor 用下面的代码创建一个adafruitConfig.py文件 ADAFRUIT_IO_KEY = 'YOUR ADAFRUIT IO KEY' ADAFRUIT_IO_USERNAME = 'YOUR ADAFRUIT IO USERNAME' 通过NOVA启动网络连接 sudo hologram network connect OBD ScanTool的另一端连接活动的车辆。 启动脚本 sudo python 哇! 现状你会注意到每两分钟就有数据被发送到Adafruit云。您可以通过编辑main.py脚本底部的休眠时间来更改这个间隔。 现在去你的adafruit控制面板,你应该会看到地图上你的位置和表盘应该显示你的汽车的速度! 我希望你喜欢这个项目,我希望你将帮助贡献和分享你做什么!这是我第一次创建Python项目,所以我确信它可以得到改进。 OBD-II命令-你还能做什么?! 主要示例发送SPEED命令返回的值。下面是如何使用OBD python库的一个基本示例。 下面是所有支持的命令的链接https://github.com/brendan-w/python-OBD/blob/master/docs/Command%20Tables.md 试试不同的方法,看看你是否能从你的车里找到更有用的数据。 代码 https://github.com/HologramEducation/hologram-vehicle-monitor 本文转载自https://www.hackster.io/virgilvox/vehicle-fleet-monitoring-810940