通过核心蓝牙与 Nissan Leaf 中的 LeLink OBD-II BLE 设备通信

问题描述 投票:0回答:2

嗨,这个 OBD BLE 设备 (https://www.amazon.com/LELink-Bluetooth-Energy-OBD-II-Diagnostic/dp/B00QJRYMFC) 是我用来通过蓝牙连接我自己的 iPhone 的设备。我已经能够找到正确的服务和要写入的特征并将通知值设置为 true。但是,我很困惑我应该向它发送什么样的命令。网上有一个关于 ELM327 设备如何接收“PID”的混合指令列表,但我也很困惑是否应该使用 AT 命令列表。

第一次发“DP “(AT 命令)写入特征并返回“DP?”,所以我猜测设备无法理解它。 第二次,我遵循了一份 PDF,其中说我应该以模式发送,后跟 PID 号,所以我发送了“01 00 ”,回复为“无数据”。我猜第二个命令可能会更好,因为至少我收到了一些回复,而不是“?”。

有人知道在这种情况下该怎么办吗?谢谢你

bluetooth bluetooth-lowenergy core-bluetooth obd-ii
2个回答
0
投票

我也在寻找有关同一件事的信息。在互联网上冲浪时,我收到了一个包含命令列表的 PDF,要发送到 ELM327 设备,以及另一个网站,其中包含有关如何简单使用这些命令的信息。至于详细信息,请参阅本网站“DP “ 不起作用,相反,您需要发送“ATDP ” 因为每个命令都以“AT”开头。 我认为这也将是一个有用的 PDF

LELink OBD BLE 设备 (

https://www.amazon.com/LELink-Bluetooth-Energy-OBD-II-Diagnostic/dp/B00QJRYMFC

0
投票
https://www.elm electronics.com/ DSheets/ELM327DSF.pdf

解释了它支持的 AT 命令,然后发送 PID(不是 AT 命令)。 作为您要发送的示例,非常简单(在两行之间等待是一个响应): ATZ\r 01 00\r LELink 是一款 BLE 设备,因此您必须将其发送到其供应商特定特征之一,当我搜索设备的服务/特征时,该特征被宣传为:

UUID: 0000ffe1-0000-1000-8000-00805f9b34fb
     Description: Vendor specific
     Handle: 36
     Properties: ['read', 'write', 'notify']
     Descriptors:
          00002902-0000-1000-8000-00805f9b34fb (Handle: 38): Client Characteristic Configuration
          00002901-0000-1000-8000-00805f9b34fb (Handle: 39): Characteristic User Description

这是唯一可作为供应商特定列出的

notify
 可用 UUID。您可以根据此特征发送并获取回复。

您提到了Nissan leaf - 这可能是您遇到困难的地方,因为它

通常支持OBD PID。相反,我相信 2018 年之前的 Nissan leaf 的 CAN 消息可以使用 AT MA 命令进行监控(另一个答案链接了有关此的信息)。然而,未经事先请求,2018+ Nissan Leaf不会共享任何 CAN 数据。您必须专门请求特定数据。我使用 python 脚本完成了此操作,其中 LELink 使用 bleak 库通过蓝牙进行通信。 2018+ Nissan Leaf CAN 地址和详细信息可在此处找到:

https://drive.google.com/file/d/1jH9cgm5v23qnqVnmZN3p4TvdaokWKPjM/view
以车辆速度为例,我通过发送以下内容来准备 LELink(每次 LELink 响应OK\r - 我不相信在此期间有任何内容发送到车辆):

AT Z\r AT ST FF\r AT SP6\r AT H1\r AT D1\r AT SH 797\r AT fc sh 79a\r AT fc sd 30 00 20\r AT fc sm 1\r

797、79a 来自上面链接的 CAN 地址文档。 AT 命令在上面链接的 ELM327 数据表中进行了解释。然后我将以下内容发送到 LELink(来自上面链接的 CAN 地址文档)。此时 LELink 与车辆进行通信 [确保车辆已开启]):

22 12 1A\r

那么回复是:

79A 8 05 62 12 1A 00 00 \r

最后两个十六进制字节 (

00 00
) 表示车辆速度(在本例中为 0 公里/小时)。 
05

是后面的字节数。

62 12 1A
与我们刚刚发送的请求相关。
    

© www.soinside.com 2019 - 2024. All rights reserved.