2015-06-01 4 views
1

В настоящее время я работаю над проектом малины pi для школы, где я читаю данные с OBD2 на цензуре usb в своей машине.Невозможно прочитать данные из подключения последовательного порта OBD2 на Raspberry Pi

Когда я использую экран для подключения к последовательному порту, все работает нормально, но когда я пытаюсь сделать это на 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 

ответ

0

Возможно, вы не получите достоверные данные, чтобы получить ответ. Я считаю, что интерфейс ODB2 использует набор команд AT. Отправка AT \ n может быть хорошей отправной точкой.

Я использую интерфейс Bluetooth ODB2 и обнаружил, что последовательная скорость была исправлена. Использование любой другой скорости передачи данных не позволило правильно получить данные.

Я рекомендую тестировать штырь или другой терминал, поддерживающий последовательные порты, до тех пор, пока устройство не ответит правильно. Затем используйте правильные настройки для устранения неполадок с кодом.

0

Вы не отправляете команду с вашей командой, для ELM327 требуется новый символ строки в конце команды.

 Смежные вопросы

  • Нет связанных вопросов^_^