【问题标题】:Can't read data from OBD2 serial port connection on Raspberry Pi无法从 Raspberry Pi 上的 OBD2 串行端口连接读取数据
【发布时间】:2015-06-01 14:01:45
【问题描述】:

我目前正在为学校做一个树莓派项目,我将数据从 OBD2 读取到我车上的 USB 审查器。

当我使用 Screen 连接到串行端口时,一切正常,但是当我尝试在 python 中执行此操作时,serial.readline() 返回一个空字符串。

有人知道我如何在 python 中从串口检索数据吗?

我已经尝试了所有可用的选项。

import serial

ser = 0

#Function to Initialize the Serial Port
def init_serial():

    global ser         
    ser = serial.Serial()
    ser.baudrate = 38400   
    ser.port = '/dev/ttyUSB0' 
    ser.timeout = 1
    ser.open()          #Opens SerialPort

    # print port open or closed
    if ser.isOpen():
    print 'Open: ' + ser.portstr
    #Function Ends Here

init_serial()

temp = raw_input('Type what you want to send, hit enter:\r\n')
ser.write(temp)         #Writes to the SerialPort

while 1:    
      bytes = ser.readline()  #Read from Serial Port
      print bytes      #Print What is Read from Port

【问题讨论】:

    标签: raspberry-pi obd-ii


    【解决方案1】:

    您可能没有发送有效数据来获得响应。我相信ODB2接口使用AT命令集。发送 AT\n 可能是一个很好的起点。

    我正在使用蓝牙 ODB2 接口,发现串行波特率是固定的。使用任何其他波特率都无法正确获取数据。

    我建议从 putty 或其他支持串行端口的终端进行测试,直到您让设备正确响应。然后使用有效设置对代码进行故障排除。

    【讨论】:

      【解决方案2】:

      您没有在命令中发送 \r\n,ELM327 需要在命令末尾有一个换行符。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多