carIOTA II是carIOTA项目的改进版本,正如
第一版的介绍文章
中所解释的那样,carIOTA是IOTA和Tangle分布式帐本技术的一个现实用例,是一款可以连接汽车数据并使用IOTA/Tangle技术进行可视化的应用。实际上,该项目通过汽车的
OBD-II
端口基于CAN总线协议来检索车辆数据,然后利用IOTA的Masked Authenticated Messaging(MAM)发送和访问加密数据流,MAM可为物联网领域提供安全的通信和可信的数据访问管理。
第一版:
下面是第一版carIOTA的工作流程介绍。
获取OBD CAN数据
使用Arduino Yun通过OBD PID(车载诊断参数IDs)从OBD-II端口获取汽车传感器数据。
用户请求一个特殊的PID来获取车辆的特定数据,并且有标准的PID可以通过车辆的
CAN总线检索。
详细信息请访问:
https://en.wikipedia.org/wiki/OBD-II_PIDs
Arduino代码将定期请求传感器数据,并从
CAN-Bus Shield
获得快速响应。
同一代码可用于不同的车辆,以获得发动机/车辆速度和空气/冷却液温度,当然,可以对代码进行扩展来获得更多的传感器数据。
几乎所有汽车的OBD-II端口都可以轻松的访问。
通过MQTT发送传感器数据
由于Arduino Yun暂时还无法向Tangle发送MAM,因此车辆传感器数据可以格式化为JSON消息,然后首先使用MQTT协议发布。
与其它Arduino开发板不同,
Arduino Yun
板载linux芯片,有Wifi接口和ATmega32U4微控制器芯片。Arduino Yun的Linux芯片对于MAM来说并不是那么强大。
获取MQTT数据并通过MAM发送
之后,使用树莓派来订阅MQTT JSON消息并通过MAM发送到Tangle。可以使用
thetangle提供的公共MAM解码器
查看数据。
在thetangle提供的MAM解码器中查看数据
使用SensorHub进行可视化
SensorHub
可用于获取多个基于MaM的数据流,监控车辆数据并显示在地图上。
通过SensorHub获取数据
第二版:
与第一个版本不同的是,在carIOTA II中没有使用Arduino Yun,也没有将MQTT作为流数据和附加到Tangle的中间系统,而是使用集成了
PiCAN GPS Board
的树莓派作为硬件。它允许使用Microchip MCP2515 CAN控制器的CAN总线功能和基于MTK3339芯片组模块的GPS功能。作为一个演示版本,只对少量的信号进行了测试,比如发动机/车辆速度和空气/冷却液温度。另外,在这个版本中使用了真实的GPS数据,这可以带来许多采用分布式帐本技术的地理位置用例。
装有PiCAN GPS Board的树莓派
作为一个软件接口,部分的采用了
SocketCAN
的开源CAN驱动和网络堆栈,大众汽车的研究部门也为这个Linux内核做出了贡献。
目前,在奥地利格拉茨的一个美丽的城市,我们使用奥迪A3和欧宝Astra这两款车型对carIOTA进行了数次道路测试。
carIOTA在途中
通常,carIOTA只是一个连接平台,联网汽车解决方案的一小步。很快,我们将更频繁地谈论x2x系统,如机器到机器(M2M),点对点(P2P),汽车到汽车(C2C),车辆到一切(V2X),企业对企业(B2B),甚至任何东西到Tangle(X2T)...
现在是时候将您的标准汽车变成智能互联汽车了。当前版本的carIOTA提供的功能还很有限,但是未来我们将在以下方面对carIOTA进行改进:
感谢所有为该项目做出贡献的IOTA社区成员
参考链接:
Antonio Nardella:
https://gitlab.com/antonionardella
rckey SensorHub:
https://github.com/rckey/SensorHub/
Christopher Aldave:
https://github.com/chrislaive
CAN Bus Shield库:
https://github.com/Seeed-Studio/CAN_BUS_Shield
Adafruit MQTT库:
https://github.com/adafruit/Adafruit_MQTT_Library
参考资料:
第一版原文: