A. System StructureThe system has two operating modes: the first one as vehicle performance local monitor and the second one as a failure scanner whose results can be viewed remotely.In the local monitoring mode, the reading and information processing provided by the vehicle’s computer is included by the Bluetooth device and submitting data to the driver through the smartphone screen. On the other hand, on the scanner mo de, the remote information access is composed of a web development that interacts with the phone and the user, obtaining and presenting data from the vehicle’s computer.A Client – Server model is applied for the system development, under this model several devices are able to send data to a single server, which manages and organizes the information for its final presentation [5].

The system consists of the following components:•Mobile application for Android devices, version 2.3 and later.•Web application developed using PHP.•MySQL Database

B. Mobile Application DevelopmentThe mobile application is the heart of the project, it is responsible for establishing the Bluetooth communication with the vehicle, processing the received frames and sending data to the server via Internet. Given its importance in the system, the application was developed to be compatible with Android devices 2.3 and later [6].

The cases of use UML diagram is shown in Figure 6, in which the main actors are the car driver, the mobile application and the server that will present the information remotely. The driver is responsible of pairing the Bluetooth device with the BAFX device while the mobile application should look for the device, once connected, the system mode of operation is decided. If the diagnosis mode is selected, the mobile application scans the vehicle computer for failures, the information is sent to the server and stored in the database. The web application selects the vehicle that needs to be checked, establishes the connection with the database, extracts the fault code, interprets them and finally presents them to any user that is accessing the web application. Moreover, if the local monitoring mode is choosen, the information is presented to the driver on the phone screen and then sent to the server with an one-minute interval.

C. Data Reading and ProcessingThe OBDII protocol interaction is performed through the BAFX OBDII device, the terminal sends an application using proprietary protocol codes based on hexadecimal values presented in ASCII format.Once the request has been received, the device answers the request with a confirmation of the type of information to be transmitted, followed by a frame containing the required data.Within the set of parameters that can be obtained by OBDII, five of them were selected given its importance and usefulness when driving a vehicle. The values of these parameters are presented to the driver using the phone screen and sent recursively to the web server.

Given that the vehicle only sends data when it receives a request from the phone, the request commands should be sent regularly to maintain constant the parameter monitoring. Therefore in the local monitoring mode, the application enters into a constant loop unless the user changes the operation of the system diagnostic mode. Inside the mentioned loop, the application will continue making constant queries and the answers given by the vehicle should be properly interpreted. To achieve this, frame formats sent by the device, were identified through testing when it is subjected to permanent parameter query.

D. Server ImplementationThe mobile application is responsible of the communication and data collection from the vehicle; however, the project involved the creation of a Web server that allows hosting fault codes belonging to several vehicles and observing parameter records collected on the local monitoring mo de.To store the fault codes recorded in a vehicle; it is designed and implemented a database, which stores information about vehicles, found fault codes, meaning of each code and monitored parameters. [8]The database is called OBDII and consists of four tables: Vehicle, FaultCode, Error and Parameters, related by the parameters “License Plate” and “Code”.