rancang bangun pembaca display data on board diagnostic (obd) mesin mobil berbasis arduino
TRANSCRIPT
![Page 1: RANCANG BANGUN PEMBACA DISPLAY DATA ON BOARD DIAGNOSTIC (OBD) MESIN MOBIL BERBASIS ARDUINO](https://reader031.vdocuments.site/reader031/viewer/2022012309/58a6654d1a28ab1c5b8b6d57/html5/thumbnails/1.jpg)
Seminar Nasional Telekomunikasi dan Informatika (SELISIK 2016) Bandung, 28 Mei 2016
213
Yani Prabowo, I Wayan Degeng
Seminar Nasional Telekomunikasi dan Informatika 2016
ISSN : 2503-2844
RANCANG BANGUN PEMBACA DISPLAY DATA ON
BOARD DIAGNOSTIC (OBD) MESIN MOBIL BERBASIS
ARDUINO
Yani Prabowo, I Wayan Degeng
Universitas Budi Luhur
Jalan Ciledug Raya, Petukangan Jakarta Selatan
[email protected], [email protected]
Abstrak
Saat ini teknologi otomotif dan sistem
komputer sudah menyatu saling mendukung.
Terlihat dari teknologi otomotif yang dahulu
menggunakan karburator dan platina untuk
menghasilkan daya. Saat ini sudah digantikan
dengan sistem injeksi bahan bakar yang
dikontrol oleh komputer. Komputer ini tidak
hanya untuk mengatur supplay bahan bakar
dan pengapian tetapi hampir seluruh
komponen pada sebuah mobil dikendalikan
oleh komputer. Data komputer pada kendaraan
ini dapat diakses dengan On Board Diagnostik
(OBD) II yang mulai diaplikasikan sejak tahun
1996. Keuntungan penggunaan komputer ini
adalah untuk memudahkan pemilik dan
mekanik mencari kerusakan dan memperbaiki
kendaraan karena semua aktifitas terekam
dalam OBD II. Seperti peringatan waktunya
servis atau jika ada kegagalan fungsi akan ada
kode kesalahan yang dikeluarkan oleh Engine
Control Unit (ECU). Pada Penelitian ini adalah
membuat alat untuk membaca ECU melalui
OBD II berbasiskan mikrokontroler arduino
yang ditampilkan pada layar LCD untuk
informasi kepada pengemudi mengenai
kondisi kendaraan. Komunikasi antara
Arduino dengan OBD II dilakukan
menggunakan teknology Bluetooth.
Kata Kunci : OBD II, Arduino, ECU,
Bluetooth
Abstract
Currently the automotive technology
and computer systems has been integrated to
support each other. In the past, automotive
technology used carburetor and platinum
contactor to generate power, but it is replaced
with fuel injection system that is controlled by
a computer. The computer is not only control
the fuel supply and ignition timing but control
almosty all components of the car. Computer
data on vehicles can be accessed by On Board
Diagnostics (OBD) II which began to be
applied since 1996. The advantage of using
computer is to make the owners and
mechanics work easier in diagnostic and
repair the vehicle because all activities are
recorded in OBD II. For example: the ECU
will activate service schedule warning and any
engine malfunction will also be reported by
the ECU. This research is to create a tool to
read the Engine Control Unit (ECU) via OBD
II based on Arduino microcontroller that is
displayed on the LCD display to inform the
driver of the vehicle condition. The
communication between Arduino the OBD II is
done using Bluetooth technology.
Keyword : OBD II,Arduino, ECU, Bluetooth
I. PENDAHULUAN On-board diagnostics, atau OBD,
merupakan istilah otomotif yang mengacu
pada kemampuan diagnostik pada kendaraan.
Sistem OBD memberikan fasiltas kepada
pengguna kendaraan atau teknisi untuk dapat
mengakses status kendaraan dalam berbagai
sub-sistem. OBD membantu untuk memantau
kondisi kendaraan dengan mengambil data
dari engine control unit (ECU). Untuk
membaca ECU perlu peralatan tambahan yaitu
scanner yang umumnya hanya untuk satu
merek kendaraan dan harganya relative mahal.
Tujuan penelitian ini merancang rangkaian alat
untuk menampilkan data-data diagnostik
mesin dari ECU yang ditampilkan pada LCD
dan memanfaatkan teknologi Bluetooth untuk
transfer data antara OBD dengan ardiuno.
II. Kajian Literatur II. 1. Arduino
![Page 2: RANCANG BANGUN PEMBACA DISPLAY DATA ON BOARD DIAGNOSTIC (OBD) MESIN MOBIL BERBASIS ARDUINO](https://reader031.vdocuments.site/reader031/viewer/2022012309/58a6654d1a28ab1c5b8b6d57/html5/thumbnails/2.jpg)
Seminar Nasional Telekomunikasi dan Informatika (SELISIK 2016) Bandung, 28 Mei 2016
214
Yani Prabowo, I Wayan Degeng
Seminar Nasional Telekomunikasi dan Informatika 2016
ISSN : 2503-2844
Arduino adalah suatu platform open
source untuk melakukan prototyping
menggunakan hardware dan software yang
mudah dipakai. Arduino dapat membaca
berbagai input seperti posisi saklar, cahaya,
scan finger, bluetooth, WiFi, message Twitter,
lalu mengendalikan output berdasarkan input-
input itu, seperti motor, LED, LCD, bahkan
melakukan suatu publikasi online. (Kaur et al.
2013).
II. 2. Engine Control Unit
Engine Control Unit (ECU) adalah
sebuah electronic control unit yang
mengendalikan serangkaian actuator, dari
internal combustion angine untuk memperoleh
performa mesin yang optimal. ECU bekerja
dengan car membaca berbagai sensor pada
mesin, lalu menginterpretasikan data itu
memakai multidimensional performance map
(atau look up table), lalu mengatur aktuator.
(Ajudia et al. 2014), seperti terlihat pada
gambar 1.
Gambar 1. Diagram Blok ECU sebuah mobil
II. 3. Onboard Diagnostic System (OBD)
Sistem OBD memiliki sistem berbasis
mikrokontroler dan memonitor sensor yang
dipasang pada kendaraan untuk mengamati
berbagai parameter terkait dan sistem kontrol
emisi / perangkat, unit pengolahan akan
mengambil input dari sensor untuk diolah oleh
pengkondisi sinyal dan akan dihitung nilai
real-time parameter kendaraan kemudian
memberikan output. Sistem akan dapat
mendiagnosa kesalahan dalam parameter,
seperti perubahan mendadak yang abnormal,
memberitahu pengguna dari kondisi normal,
dan menunjukkan penyebab kesalahan. Sistem
OBD dipasang di kendaraan untuk
meningkatkan di efisiensi bahan bakar dan
mengendalikan emisi dari gas buang, selain itu
sistem obd juga memberikan peringatan
kepada pengemudi mengenai kerusakan yang
timbul pada kendaraan. (Anil & Kiran 2013).
Saat ini sistem OBD II menggunakan
mikrokontroler yang mulai diimplementasikan
1994. Kemampuan OBD-II ini ditambahkan
dengan kemampuan untuk memonitor catalyst
efficiency monitoring, engine misfire
detections, kanister purge system monitoring,
secondary air system monitoring, EGR system
flow rate monitoring. Output dari sistem OBD
adalah lampu peringatan dengan simbol mesin,
disajikan untuk driver di instrument cluster.
Hal ini dikenal sebagai lampu indikator
kerusakan (MIL). Ketika suatu kesalahan telah
terdeteksi maka lampu MIL ini akan menyala.
Setiap kesalahan akan menyalakan kode lampu
MIL.Hal ini disebut dengan kode diagnostik
masalah (DTC) diatur dan disimpan dalam
ECU (Electronic Control Unit) memori. Setiap
DTC menunjukkan kesalahan komponen atau
sirkuit tersebut. Informasi yang tersimpan
dalam sistem OBD dapat diperoleh melalui 16
pin konektor data link (DLC) terletak di kabin
kendaraan, seperti terlihat pada gambar 2.
Gambar 2. Foto dan nomor-nomor pin OBD
Untuk membaca data dari system OBD-II
ini diperlukan rangkaian tambahan yang
disebut serial diagnostic interface.Diagnostik
tool ini dapat berkomunikasi dengan sistem
OBD pada kendaraan dengan protocol
komunikasi yang telah disepakati diantara
produsen kendaraan.(Dzhelekarski & Alexiev
2005), seperti terlihat pada gambar 3.
![Page 3: RANCANG BANGUN PEMBACA DISPLAY DATA ON BOARD DIAGNOSTIC (OBD) MESIN MOBIL BERBASIS ARDUINO](https://reader031.vdocuments.site/reader031/viewer/2022012309/58a6654d1a28ab1c5b8b6d57/html5/thumbnails/3.jpg)
Seminar Nasional Telekomunikasi dan Informatika (SELISIK 2016) Bandung, 28 Mei 2016
215
Yani Prabowo, I Wayan Degeng
Seminar Nasional Telekomunikasi dan Informatika 2016
ISSN : 2503-2844
Gambar 3. Rangkaian interface adaptor OBD
Sistem dengan RS232 .
II. 4. ELM 327 Interface
ELM327 adalah perangkat berbasis
mikrokontroler PIC khusus diprogram
dirancang untuk menangani komunikasi dalam
standar OBD-II. Ini beroperasi pada daya 5V
dan memberikan umpan balik debugging
melalui 4 LED yang menunjukkan pertukaran
data. Data diterima melalui salah satu dari tiga
standar sinyal dan kemudian oleh ELM327
yang menafsirkan data dan mengirimkan pada
baris RS232 standar yang dapat dibaca oleh
ATMega644. Demikian pula, ketika perintah
dikirim ke ELM327 oleh MCU, itu ditafsirkan
dan diubah menjadi protokol signaling yang
benar yang kemudian ditransmisikan ke mobil.
ELM327 tidak membaca perintah atau data
yang sedang dikirim tetapi hanya
mengkonversi data ASCII pada baris RS232
ke tegangan yang tepat di port OBD-II.
(Čabala & Gamec 2012).
II. 5. Bluetooth
Bluetooth adalah standard teknologi
wireless untuk pertukaran data pada jarak
dekat.Bluetooth memakai
frekwensigelombang radio UHF, ISM band
pada frekwensi 2,4 – 2,485 GHz. HC-05 serial
Bluetooth module operates on 3.3V while
other devices are operates on generally 5V to
12V. (Jayantilal 2014).
II. 6. Penelitian yang terkait
Penelitian yang dilakukan oleh Ajudia et
all adalah membuat prototype ECU dengan
berbasiskan mikrokontroler 16 bit, ecu ini
dirancang untuk dapat menerima inputan dan
menghasilkan output yang sesuai dengan
program yang diberikan. (Ajudia et al. 2014).
Penelitian yang dilakukan oleh min-jin el all,
adalah mendekteksi bagian kendaraan apabila
mengalami kerusakan, data tersebut akan
ditransmisikan dengan Bluetooth dan
ditampilkan pada layar dashboard sebagai
peringatan kepada pengemudi tetapi hanya
symbol. (Mi-JinKim, Jong-Wook Jang 2010).
III. ANALISA DAN PERANCANGAN
IV. 1. Tahapan Penelitian
Tahapan penelitian yang dilakukan
adalah dengan perancangan perangkat keras
dan pembuatan program untuk Arduino
dengan sistem OBD II. Seperti disajikan pada
Gambar 4.
Gambar 4. Tahapan penelitian
IV. 2. Perancangan Perangkat keras
Pada penelitian ini akan dirancang baik
perangkat keras maupun perangkat lunak agar
sebuah sistem kompak dapat mengambil dan
menampilkan data mesin langsung dihadapan
pengemudi. Hal ini akan membantu
pengemudi untuk mendeteksi kerusakan secara
dini. Perancangan ini berbasiskan
mikrokontroler arduino sebagai pusat
pengendali data masukkan dari OBD-II yang
ditransmisikan melalui bluetooh, seperti pada
Gambar 5.
Gambar 5. Blok Diagram Sistem
VDIP
1
MOD
ULE /
USB
STIC
LCD
MODU
LE
AR
DU
I
NO
UN
O
ELM
327
ADA
PTE
R / OBD
II
E
C
U
M
ob
i
l MENU
BUTTO
N
BLUE
TOOT
H
![Page 4: RANCANG BANGUN PEMBACA DISPLAY DATA ON BOARD DIAGNOSTIC (OBD) MESIN MOBIL BERBASIS ARDUINO](https://reader031.vdocuments.site/reader031/viewer/2022012309/58a6654d1a28ab1c5b8b6d57/html5/thumbnails/4.jpg)
Seminar Nasional Telekomunikasi dan Informatika (SELISIK 2016) Bandung, 28 Mei 2016
216
Yani Prabowo, I Wayan Degeng
Seminar Nasional Telekomunikasi dan Informatika 2016
ISSN : 2503-2844
Data dari ECU mesin mobil akan dibaca
oleh arduino dengan melalui ELM327 adapter
OBD-II. ELM327 OBD-II ini digunakan
sebagai penyesuaian komunikasi data antara
ECU dengan serial RS232. Data yang diterima
oleh arduino harus diterjemahkan oleh
perangkat lunak yang ditanamkan pada
perangkat keras tersebut. Data tersebut seperti
mengenai RPM mesin, Suhu mesin, tekanan
oksigen untuk pembakaran, MAP sensor.
ELM 327 Adapter
ELM327 adalah perangkat berbasis
mikrokontroler PIC khusus diprogram
dirancang untuk menangani komunikasi dalam
standar OBD-II. Ini beroperasi pada daya 5V
dan memberikan umpan balik debugging
melalui 4 LED yang menunjukkan pertukaran
data. Data diterima melalui salah satu dari tiga
standar sinyal dan kemudian oleh ELM327
yang menafsirkan data dan mengirimkan pada
RS-232.
Bluetooth Shield
Penggunaan Bluetooth pada
penelitian ini untuk menerima dan
mengirimkan data antara OBD dengan
Arduino dan Bluetooth. Bluetooth juga mudah
digunakan dengan mikrokontroler untuk
membuat aplikasi wireless. Interface yang
digunakan adalah serial RXD, TXD, VCC dan
GND. Built in LED sebagai indikator koneksi
bluetooth.Tegangan input antara 3.6 ~ 6V.
Arus saat unpaired sekitar 30mA. Jarak efektif
jangkauan sebesar 10 meter. Bluetooth shield
ini dihubungan dengan arduino sebagai sarana
komunikasi antara OBD II melalui ELM327.
IV. 3. Perancangan Perangkat Lunak
Program dirancang sesuai dengan flow
chart pada gambar 6 berikut ini. START
INITIALIZE
ARDUINO
PB
PRESSED 1X
TAMPILKAN
RPM
WELLCOME
ENGINE MONITOR
SYSTEM
PRESS MENU BUTTON
SELESAI
TAMPILKAN
SUHU
PB
PRESSED 2X
PB
PRESSED 3X
TAMPILKAN
TEKANAN
INTAKE
N
N
Y
Y
Y
N
Gambar 6. Flowchart Program
IV. PENGUJIAN DAN
IMPLEMENTASI
IV. 1. Permintaan Data kepada ECU
Permintaan data dikirim dengan format
standar dari diagnostic tool ke port OBDII. 3
byte pertama yang dikirim adalah header. Lalu
diikuti dengan bite 1-7. Ada juga error check
byte. permintaan data dapat dilihat pada High
Level Message Request gambar 7 berikut ini,
gambar 8 adalah format data message request
dengan protocol SAE J1850 PWM.
Gambar 7. High Level Message Request
Gambar 4.2 di bawah ini menunjukkan byte-
byte header dari message request yang dikirim
ke port OBD-II memakai protokol SAE J1850
PWM.
Gambar 8. Menunjukkan byte-byte header SAE
J1850 PWM.
IV. 2. Tanggapan Permintaan Data Tanggapan permintaan data yang
dikirim dari kendaraan (ECU) dikirim kembali
ke port OBDII memiliki struktur yang sama
seperti pesan permintaan; ada 3 byte header,
hingga 7 byte data dan byte koreksi kesalahan.
Tanggapan permintaan data ditunjukan pada
gambar 9.
Gambar 9. Respon header ECU SAE J1850
PWM
IV. 3. Komunikasi ELM.
Fungsi ini untuk mendefinisikan ELM
supaya dapat dikenali oleh ECU kendaraan
setelah ELM dapat dikenali maka dilakukan
komunikasi secara serial dengan ECU dengan
mengirimkam perintah. Data dari ECU akan
diterima oleh ELM dan akan ditampilkan pada
![Page 5: RANCANG BANGUN PEMBACA DISPLAY DATA ON BOARD DIAGNOSTIC (OBD) MESIN MOBIL BERBASIS ARDUINO](https://reader031.vdocuments.site/reader031/viewer/2022012309/58a6654d1a28ab1c5b8b6d57/html5/thumbnails/5.jpg)
Seminar Nasional Telekomunikasi dan Informatika (SELISIK 2016) Bandung, 28 Mei 2016
217
Yani Prabowo, I Wayan Degeng
Seminar Nasional Telekomunikasi dan Informatika 2016
ISSN : 2503-2844
LCD. Dengan sudah terhubungnya antara
OBD dengan arduino maka informasi
Informasi yang dikeluarkan oleh ecu sangat
banyak seperti informasi, fuel_pressure,
man_pressure, engine_rpm, vehicle_speed,
timing_adv, int_air_temp ,maf_air_flow,
throttle_pos, sec_air_stat, oxy_sensors. Dapat
dengan mudah untuk diambil datanya.
IV. 4. Pengujian Coolant temperatur
Untuk menguji temperatur dikirimkan
kode “0105” ke OBD maka subrutin yang
digunakan adalah
Jika OBD menerima permintaan dengan kode
“0105” maka akan dikirim kembali dengan
respon
Data yang diterima belum bisa dimengerti
maka harus diterjemahkan kedalam angka
decimal dengan rumus:
Coolant Temperature (0C) = XX – 40……[1]
Dari rumus tersebut data suhu
ditampilkan dengan bilangan basis hexsa
dikurang dengan 40 untuk mendapatkan nilai
decimal, gambar 10 pengujian permintaan dan
penerimaan data temperatur.
Gambar 10. Pengujian permintaan dan
penerimaan data temperatur.
IV. 5. Pengujian engine RPM
Engine RPM rasio putaran permenit
adalah parameter untuk membaca putaran
mesin dalam satuan waktu. Data dari OBD
untuk putaran mesin ini dapat diminta dengan
mengirimkan kode string “01 0C”. Jika system
terhubung maka OBD akan segera
mengirimkan respon kembali dengan string
“41 0C XX YY 00 00 00”. Dari respon yang
diterima adalah “41 0C 0F 23”, maka nilai
RPM yang diketahui adalah sebesar 968.75.
Nilai ini dapat dari rumus RPM =
.25*(XX*256+YY)…... [2]
Gambar 11 adalah pengujian permintaan
dan penerimaan data engine RPM.
Gambar 11. pengujian penerimaan dan
penerimaan data engine RPM.
IV. 6. Pengujian Timing Advance
Untuk meminta data pada OBD
dikirimkan string “010E”. Apabila OBD
menerima string tersebut maka OBD akan
merespon dengan mengirimkan string dengan
format “41 0E XX 00 00 00 00”. Data yang
dikirimkan oleh OBD harus dihitung kembali
untuk mendapatkan nilai sudutnya dengan
rumus:
Advance (degress) = (.5*XX) – 64 … [3]
IV. 7. Pengujian Engine Load
Pada pengujian engine load. Dari
pengujian tersebut maka diperoleh 7,451 %.
Nilai ini diperoleh dari respon OBD “ 01 04 41
04 13” yang kemudian dimasukan kedalam
persamaan “
Engine load = XX * (100/255)…..[4]
Tabel 4.3 Pengujian OBD respon
![Page 6: RANCANG BANGUN PEMBACA DISPLAY DATA ON BOARD DIAGNOSTIC (OBD) MESIN MOBIL BERBASIS ARDUINO](https://reader031.vdocuments.site/reader031/viewer/2022012309/58a6654d1a28ab1c5b8b6d57/html5/thumbnails/6.jpg)
Seminar Nasional Telekomunikasi dan Informatika (SELISIK 2016) Bandung, 28 Mei 2016
218
Yani Prabowo, I Wayan Degeng
Seminar Nasional Telekomunikasi dan Informatika 2016
ISSN : 2503-2844
Pada gambar 12 adalah foto alat pada saat
beroperasi, nilai yang terbaca engine RPM
1250 rpm, timing adv 8.9 deg, coolant temp 85 0 C, engine load 8,7 %.
Gambar 12 Foto alat pada saat beroperasi nilai
engine RPM di 1250 RPM
5. KESIMPULAN DAN SARAN
Dari hasil pembahasan tentang
perancangan alat display data On Board
Diagnostic, maka diambil kesimpulan: Dengan
alat bantu display data on board ini sangat
membantu baik pengemudi untuk mengetahui
kondisi terutama pada bagian mesin jika
sedang mengendarai. Karena beberapa
parameter seperti kondisi suhu, kondisi bahan
bakar dapat diketahui melalui display yang
dipasang.
Saran
Untuk pengembangan lebih lanjut penelitian
ini dapat dikembangan dengan penambahan
fungsi GPS dan memory card sehingga
memiliki kemampuan untuk menyimpan data
perjalanan aktivitas kendaraan.
REFERENSI
Ajudia, M.K., Kolte, M.T. & Sarkar,
P.,(2014). Designs of Input and Output
Driver Circuits for 16-bit Electronic
Control Unit (ECU) and Development of
Control Strategy Using These I/O Driver
Circuits, pp.102-106.
Anil, K. & Kiran, O.S., (2013). OBD I & II (
On Board Diagnostic ), 1(5), pp.3–8.
Čabala, M. & Gamec, J., (2012). Wireless
Real-Time Vehicle Monitoring Based on
Android Mobile Device. Acta
Electrotechnica et Informatica, 12(4),
pp.7–11. Available at: http://www.
degruyter.com/view/j/aeei.2012.12.issue
-4/v10198-012-0039-x/v10198-012-
0039-x.xml.
Dzhelekarski, P. & Alexiev, D., (2005).
Initializing communication to vehicle
obdii system. Electronics, (Mil).
Available at: http://ecad.tu-sofia.bg/
et/2005/pdf/Paper097-
P_Dzhelekarski1.pdf.
Jayantilal, S.H., (2014). Interfacing of AT
Command based HC-05 Serial Bluetooth
Module with Minicom in Linux. , 2(03),
pp.329–332.
Kaur, A. et al., (2013). Arduino based smart
cart. , 2(12), pp.3083–3090.
Mi-JinKim, Jong-Wook Jang, Y.-S.Y., (2010).
A Study on In-Vehicle Diagnosis
System using OBD-Ⅱ.pdf. IJCSNS
International Journal of Computer
Science and Network Security, 10(9),
pp.136–140.