【问题标题】:how to request OBD parameters and receive them如何请求 OBD 参数并接收它们
【发布时间】:2013-05-25 08:56:33
【问题描述】:

我是 android 新手,我想开发一个蓝牙应用程序来从 OBDII 设备检索参数。我已经下载了示例蓝牙聊天应用程序并对其进行了配置。问题是我需要发送到 OBDII 设备以接收参数的方式和信息是什么?我应该如何在应用程序端处理它们?

谢谢。

【问题讨论】:

    标签: android bluetooth obd-ii


    【解决方案1】:

    你的问题不是很具体,但我会给你一些指导。

    首先,使用现有的 OBD-II 阅读器应用程序测试您的汽车是否真的可以工作。

    您拥有的 ELM327 蓝牙连接器(我假设它是 ELM327)将 ASCII 命令转换为电压。所以你所要做的就是发送一些 ASCII 命令,然后你会得到 ASCII 值。

    OBD 协议知道几种模式和参数,但我将解释获取实时数据。那是模式1。

    模式 1 发送
    这有点简单。 模式 1 是“01”。 在该部分之后,您必须发送一个参数 ID。 0C 代表 RPM,0D 代表速度。 (查看下面的链接)。 在每个命令之后,您必须发送回车。 (CR = '\r')

    所以基本上,为了速度,你必须发送:

    '010D\r'
    

    接收方式一
    您将从模式 1 查询中得到的答案以“41”开头。 之后返回参数 ID,然后返回值。 该值大部分时间为十六进制。您必须进行一些转换才能读取人类可读的值。有关详细信息,请参阅链接,因为还提供了要转换的公式。

    例子:

    '410D17'
    

    所以 17 是您当前速度的十六进制值。 17 到十进制是 23,所以你以 23 公里/小时的速度行驶。

    这个维基百科页面有一些很好的信息:
    OBD-II Parameters

    【讨论】:

    • 非常感谢!它帮助了我!再次感谢!
    • @user2343980 很高兴知道它对您有所帮助。如果您对它感到满意,请接受它作为答案。
    • 在发送代码之前我需要连接到特定的协议吗?还是我需要使用“0100”来启动该过程?我已经测试了我根据您的方法创建的示例应用程序,并且我已经通过在 perodua viva Elite 和 toyota hilux d4d cab 中使用 ELM327 适配器​​对其进行了测试。但我没有得到任何结果..
    • 好吧,您可以使用另一个 OBD-II 应用程序进行测试。 (谷歌它)如果可行,你的汽车和连接器很好,所以它是你的应用程序。对于 Android,您可以使用免费版本的 Torque。如果您发送“ATSP0\r”,elm 连接器将自动将您的协议设置为自动,这在大多数情况下应该可以工作。如果这不起作用,我认为在新问题中显示您的代码是个好主意。
    • 我是否需要设置协议才能获得标准的obd数据,例如速度和rpm?
    猜你喜欢
    • 2013-05-03
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    相关资源
    最近更新 更多