Publicația industriei TECH regionale

Creează-ți propria aplicație iOS pentru a vedea performanța live a automobilului

Unul dintre cele mai importante bunuri ale unei persoane este mașina. În contextul dezvoltării IoT ar fi interesant să descoperim cum putem să ne conectăm la mașina noastră și ce fel de informații putem extrage din ea.
Cu ajutorul sistemului OBD-II putem afla mai multe informații
OBD-II (on-board diagnostics) reprezintă un sistem și un standard în industria auto prin care proprietarul unei mașini poate să își diagnosticheze mașina. Standardele OBDII includ informații specifice despre tipul de conector pentru diagnosticare, protocoalele de semnalizare și formatul de mesagerie. De asemenea, OBD-II include o listă de parametrii auto de monitorizat, și un ghid de criptare de date pentru fiecare parametru. Pe lângă toate acestea OBD-II mai include și o listă de DTC-uri (data trouble codes) standardizate. Toate acestea lucrează împreună pentru a o oferi o imagine digital de ansamblu completă asupra mașinii.
Informațiile oferite sunt standardizate prin coduri DTC
Fiecare DTC conține 5 caractere: o literă, urmată de patru cifre. Litera face referire la sistemul interogat: P pentru motor și transmisie (sistemul de propulsie), B pentru caroserie etc. Următorul caracter este 0 care indică compatibilitatea cu standardele OBD. Următoarea cifră reprezintă subsistem-ul: P01xx – Măsurători refereritoare la carburant și aerisire, P04xx – parametrii de emisii auxiliare. Ultimele două caractere fac referire la defecțiuni specifice. Pentru mai multe detalii consultă pagină de wiki DTC.
Cum comunicăm cu mașina?
Dispozitive necesare: Pentru a te conecta la mașină ai nevoie de dispozitivul ELM327 cu interfață WiFi și un telefon iOS cu sistem de operare minim 8.1.
Comenzile OBD pe care trebuie să le știi pentru a solicita informații din calculatorul de bord
Comenzile OBD sunt formate din coduri hexazecimale scrise în caractere ASCII. Acestea conțin două sau mai multe perechi de numere hexazecimale. Prima pereche hex din comanda OBD reprezintă modul OBD care va fi folosit. Orice altă pereche hex reprezintă PID (parameter id) care va fi citit din modul specificat. Sunt 10 moduri OBD dar nu toate mașinile le vor folosi pe toate. Prima dată va trebui să verifici protocolul mașinii pentru a vedea ce moduri OBD suportă. (vezi tabelul)
tabel-obd
Mai multe detalii în legătură cu OBD PID’s poți găsi pe wikipedia. O parte din producătorii de mașini folosesc parametri custom prin urmare ai grijă să faci research înainte. Pentru a afla ce PID’s suportă mașina, poate fi folosită comanda PID 00. Aceasta funcționează pe orice mașină care suportă OBD și va returna lista de PID’s pe care îi recunoaște.
Informații necesare pentru a conecta aplicația mobilă la rețeaua creată de dispozitivul ELM327
Primul pas este să găsești port-ul OBD-II unde trebuie conectat dispozitivul ELM327. Acesta va genera o rețea Wi-Fi. Folosește telefonul și descoperă ip-ul rețelei.
Ce trebuie avut în vedere când dezvoltăm aplicația de mobile pentru a ne conecta la OBD-II
Limbajul folosit în exemplele de mai jos sunt în objective-c. Protocolul de comunicare între mobil și OBD este de tip input/output unde trimiți comanda tip text și primești înapoi răspunsul. Pentru a crea conexiunea cu Wi-Fi am folosit librăria CFNetwork pusă la dispoziție de framework. În procesul de achiziționare informații despre host am folosit CFHostCreateWithName pentru a crea o instanță de tip CFHost. (Figura 1)
Cu informațiile obținute anterior referitoare la IP stablim o conexiune persistentă cu device-ul ELM327, folosind metoda connect care va primi ca parametri IP-ul și Port-ul adaptorului. (Figura 2)
Aceasta va merge în loop atât timp cât aplicația este activă. După ce am stabilit conexiunea, apelăm metoda sendInitialCommands care va trimite mai departe pe output stream comenzile de inițializare tip AT. (Figura 3)
Acum vom afla PID-urile suportate de computerul de bord al mașinii apelând metoda read_pids. Aceasta va oferi un string format din caractere hexazecimale separate prin spațiu care reprezintă PID-urile accesibile. (Figura 4)
Pe baza PID-urilor descoperite realizăm un array care va fi parcurs în mod repetat. Pentru fiecare element din array vom forma o comandă AT care va trimisă către OBD-II în loop. Informația primită din OBD-II este interpretată folosind metoda read_stream. Atât timp cât primește informație pe inputStream metoda parcurge linie cu linie informațiile primite și le convertește într-un format standardizat pentru fiecare PID. De exemplu, turația mașinii pe inputStream va veni de forma „41 0C 0E 96”. Facem abstracție de prima pereche pentru că sunt mod-ul și PID-ul pe care l-am cerut. Ce ne interesează sunt „0E 96” care vor fi convertite în format zecimal rezultând valoarea 3734. Această valoare trebuie împărțită la 4 și rezultă turația reală a mașinii care este 933. (Figura 5)
Un alt exemplu ar fi aflarea vitezei mașinii. Mai jos este o porțiune de cod care poate fi folosită pentru a interpreta informația primită de la OBD-II cu privire la viteza de deplasare a mașinii. (Figura 6)
Colectarea datelor live este doar primul pas. Acestea pot fi stocate și procesate pentru a realiza o analiză mai complexă a întregii performanțe a mașinii. Un exemplu interesant ar fi o aplicație care ar analiza modul tău de condus și ți-ar oferi recomandări pentru a economisi combustibil și a polua mai puțin.
 
 

Distribuie și tu:

START Nominalizări PIN AWARDS 2024!

Industria regională de TECH se pregătește să celebreze o nouă serie de recunoașteri prin Gala PIN AWARDS 2024, care va avea loc joi, 23 mai

RECOMANDATE

Articole similare

George_SmartEU

BCR extinde serviciile pentru antreprenori din George și lansează George SmartEU, o funcționalitate care facilitează accesul la informații despre programele de finanțare din fonduri europene sau naționale

București, 18 aprilie 2024. Banca Comercială Română anunță o nouă extindere a ecosistemului digital George prin lansarea George SmartEU, funcționalitate care facilitează accesul antreprenorilor la informații complete despre programele de finanțare din fonduri europene sau naționale.

FORVIA - Hella - TUIASI

FORVIA HELLA România modernizează un laborator de studiu pentru studenți în Iași 

Furnizorul automotive internațional FORVIA HELLA continuă să sprijine educația în universitățile partenere din România, în orașele în care își desfășoară activitatea. La mai bine de un an de la inaugurarea centrului tehnic de la Iași, compania a finalizat un laborator, spațiu de studiu pentru studenții Facultății de Electronică, Telecomunicații și Tehnologia Informației din cadrul Universității Tehnice ”Gheorghe Asachi” Iași.

PIN magazine - IT și Pisica lui Schrodinger

Industria IT și pisica lui Schrödinger

În 2024, dacă întrebi 100 de manageri IT cum va arăta piața și tendințele din industrie, vei primi tot atâtea răspunsuri paradoxale precum „pisica lui Schrödinger” – unii vor spune că piața dă semne de revenire, alții vor spune că se fac încă disponibilizări și că există presiuni din partea clienților privitoare la proiectele în derulare. Cu alte cuvinte, din perspectiva unora, în 2024 industria IT își va reveni, ne vom întoarce la birou (mai mult sau mai puțin forțați) încurajați de faptul că se reiau angajările și se deschid proiecte noi.