ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 150
Numărul 149 Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 107
Abonament PDF

Cum să îți inspectezi autoturismul  folosind un dispozitiv Bluetooth și  telefonul mobil

Dan Ilieș
Head of Mobile Development @ Wolfpack Digital



PROGRAMARE


Lumea din jur devine din ce în ce mai interconectată, iar un element important din viața de zi cu zi îl reprezintă autoturismele. Atât de important, încât numărul total de automobile din România ajunsese la 6 milioane în anul 2018, adică aproximativ 1 mașină la 3 locuitori (conform statista.com)

În aceste condiții, ar fi de ajutor să ne putem conecta la autoturismele noastre și să monitorizăm periodic mai mulți parametri decât ne arată tradiționalul computer de bord. Ei bine, aceasta se poate realiza destul de ușor cu ajutorul instrumentelor prezentate mai jos.

 Vom descoperi ce este interfața OBD și cum funcționează, care sunt modurile de comunicare cu un device mobil (smartphone sau tabletă) și cum se realizează interpretarea semnalelor primite.

Ce este OBD?

În primul rând, OBD vine de la On-Board Diagnostics și reprezintă un sistem computerizat care este încorporat în majoritatea autoturismelor moderne (în special cele după 1996). Acesta permite atât monitorizarea parametrilor motorului, emisiilor și ai sistemului electronic al mașinii, cât și detectarea de erori sau defecțiuni.

Scopul inițial al introducerii OBD în anii '80 a fost încurajarea producătorilor să proiecteze automobile cu sisteme de control al emisiilor, pentru reducerea poluării. Astfel, acestea aveau nevoie de o interfață prin care să se poată verifica emisiile de gaze, iar în funcție de asta să se aprobe sau respingă cererile de înmatriculare. Inițiativa a avut succes, iar interfața a continuat să evolueze de-a lungul timpului, astfel încât cantitatea de informații care se poate citi sau scrie prin OBD a tot crescut. 

În timp ce primele versiuni ofereau doar informații generale, precum "există o defecțiune", fără alte detalii, versiunile mai recente folosesc un port standardizat de comunicare prin care oferă date în timp real și în concordanță cu o serie bine definită de coduri de eroare.

 Interfața OBD II prezentă pe majoritatea autoturismelor din prezent oferă acces la o mulțime de parametri și senzori din ECU (Engine Control Unit) - unitatea principală de control electronic al mașinii. În plus, vine și cu un standard pentru tipul de conector, așezarea pinilor, formatul mesajelor și o listă mult mai mare de coduri de eroare.

Cum funcționează comunicarea dintre automobil și OBD?

Pentru a cere date de la un automobil, sunt folosite o serie de coduri care au următorul format:

Sursa: http://dthoughts.com/blog/2014/11/06/obd-scanner-using-elm327/

Exemple de "mode":

0x01 : afișare date în timp real;

0x02 : afișarea datelor la un *timestamp* unic;

0x03 : afișarea codurilor de eroare stocate;

0x04: ștergerea codurilor de eroare stocate;

0x09: informații despre vehicul

Exemple de "pid" (Parameter ID):

0x05 : temperatura agentului de răcire;

0x0C : rotații pe minut ale motorului;

0x0D : viteza automobilului;

0x11: poziția accelerației;

0x5C: temperatura uleiului motor

Astfel, dacă dorim de exemplu să citim viteza în timp real, ar trebui să trimitem următoarea comandă:

Mode: 0x01

PID: 0x0D

Comanda finală: 01 0D

Răspunsul va avea următorul format:

Sursa: http://dthoughts.com/blog/2014/11/06/obd-scanner-using-elm327/

Statusul de succes este "41", pid are aceeași valoare cu cea pe care am cerut-o, iar data reprezintă valoarea pentru acel pid.

 Pentru exemplul de mai sus cu viteza am putea primi următoarea valoare : 41 0D 3F, 3F fiind viteza în format hexazecimal, iar echivalentul din format zecimal ar fi 63, adică 63 km/h în sistem metric.

ELM327

Acum că am văzut partea teoretică și formatele de comunicare, să trecem la conexiunea propriu-zisă. Autoturismul are această interfață OBD II, la care va trebui să ne conectăm pentru a citi și scrie informații, iar unul dintre cele mai simple moduri de a face aceasta este utilizând un adaptor ELM327.

 Acesta este de fapt un microcontroller produs de către ELM Electronics (din 2005) cu scopul de a interpreta semnalele primite pe o interfață OBD II și de a le transmite mai departe către un calculator sau un device mobil, în format UART. Transmisia aceasta se poate face atât prin USB, cât și prin Wi-Fi sau Bluetooth.

Așadar, putem crea requesturi în format ASCII, iar ELM327 se va ocupa de conversia lor în mesajele corespunzătoare pentru interfața OBD II și vice-versa. Pentru exemplul de mai sus, comanda 01 0D se trimite prin emiterea valorilor ASCII pentru 0, 1, 0 și D.

Sursa: http://dthoughts.com/blog/2014/11/06/obd-scanner-using-elm327/

Varianta 327 este cea mai populară deoarece este compatibilă cu toate familiile de protocoale OBD II, indiferent de producătorul autoturismelor. Protocoalele suportate de ELM327 sunt:

Așa cum menționam mai sus, adaptorul ne poate transmite aceste date de la și către un device mobil, iar o variantă de comunicare este cea prin Bluetooth. Există mai multe astfel de adaptoare pe piață, dar în general arată așa:

Este important de menționat faptul că pentru a funcționa cu dispozitive iOS, adaptoarele trebuie să utilizeze Bluetooth 4.0 (Low Energy), așadar acest aspect trebuie verificat înainte de a le cumpăra. În cazul conectării la dispozitive Android nu avem această limitare.

Interpretarea datelor

După procurarea unui adaptor ELM327, următorul pas este utilizarea unei aplicații care să citească datele primite. Din moment ce Android oferă o flexibilitate mai mare, am ales un exemplu de aplicație Android pentru scopul acestui articol, și anume: Torque. Este una dintre cele mai populare aplicații din zona asta, având o versiunea Lite care este gratuită și una Pro care este contra cost. Interfața arată astfel:

Putem observa și o bună parte din parametri măsurabili menționați în secțiunea anterioară despre ELM327. 

Aplicația folosește o bază de date cu mode-urile și pidurile standard, ceea ce îi permite să convertească informația primită de la adaptor într-un format mult mai prietenos pentru utilizatori: grafice, valori numerice etc.

În plus, dacă e vorba de citirea codurilor de eroare, există din nou o serie de reguli și formate după care le putem interpreta. Un cod de eroare este alcătuit din 1 literă și 4 cifre, clasificate astfel:

B - Body: aer condiționat, airbags etc. 1164 coduri.

C - Chassis: frânare, direcție etc. 486 coduri.

P - Powertrain: motor, transmisie etc. 1688 coduri.

U - Network: funcții ale computerului de bord. 299 coduri.

Prima cifră:

0 - cod standard;

1 - cod specific producătorului.

 

A doua cifră: între 0 și 7, fiecare reprezentând o categorie (de exemplu 7 - transmisie).

 A 3-a și a 4-a cifră definesc mai exact problema.

 Astfel, un exemplu de cod ar fi: P0782, care înseamnă: Powertrain (P), standard (0), transmisie (7), defecțiune la schimbarea vitezelor 2-3 (82).

 Din fericire, aplicația se ocupă de toată această conversie și pe lângă codul de eroare propriu-zis, mai afișează și informații într-un format mai prietenos pentru utilizator. În plus, dacă sunt identificate erori, ne oferă și posibilitatea de a le căuta pe web direct cu un click

 Dacă dorim să dezvoltăm noi înșine ceva similar, există API-uri pe care le-am putea folosi pentru interpretare, precum: Car Diagnostic API oferit de către IBM.

Concluzii

Într-o lume în care toate dispozitivele încep să comunice unele cu altele, există potențial destul de mare în zona aceasta de automotive și IOT pentru a face viața oamenilor din ce în ce mai ușoară.

Inspectarea propriului autoturism este doar un pas mic, însă am putea vedea și soluții prin care automobilele să aibă integrate propriile sisteme de diagnosticare și să se ocupe automat de căutarea și rezolvarea problemelor care apar. Tesla a făcut deja un pas în direcția aceasta, rămâne de văzut dacă și ceilalți producători vor face la fel.

Până atunci, avem această soluție destul de simplă dar utilă, prin care putem vedea noi înșine mai multe detalii despre propriile noastre autoturisme.

NUMĂRUL 149 - Development with AI

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects