Introduction
The project aims to lay the groundwork for a platform-independent enviroCar app since it runs only on Android devices. The aim is to make it available for iOS users as well.
enviroCar is a citizen science community that collects, shares, and analyzes floating car data for traffic management and the environment. It examines the open data and estimates the track count, average speed, relative speed, CO2 emission, fuel consumption, and hotspot analysis.
About enviroCar application
The application lets the user connect to the OBD-II Adapter via Bluetooth. The data received from the adapter provides the details like engine speed (rpm), vehicle speed (km/h), intake air temperature, absolute barometric pressure (kPa). The factors like CO2 emission, fuel consumption are estimated.
The users can record their tracks and upload them as open data. The data collected from “uploaded tracks” as “open data” is helpful for analysis purposes like hotspot analysis, track count, average speed, CO2 emission, traffic flow evaluation.
About the project
We’ll be using the flutter framework for developing the foundation of a platform-independent app. I, alongside D Ajay, will be collaborating on this project.
The significant challenges we could face during the development of the app are:
- Connecting to the OBD-II adapter via Bluetooth
- Reading and writing characteristics between connected devices
- GPS tracking and illustrating it on maps
- UI testing to avoid any RenderFlex issue
For connecting to the OBD-II adapter, we will try out various packages and choose the best one that suits the project’s progress. The entire workflow depends on it. We will also thoroughly test the read and write characteristics functioning between the connected devices (OBD-II adapter or simulator).
During the first month, we will focus on UI and Bluetooth functionality. This entails connecting to the OBD-II adapter and requesting data from the vehicle and testing the core Bluetooth functionality.
The Bluetooth packages
We tried out three packages to facilitate Bluetooth functionality in the app, namely, flutter_blue, flutter_reactive_ble, and Bluetooth.
The flutter_blue package was last updated in March 2021. This package seems to work fine for scan, and connecting to the device.
The flutter_reactive_ble package was last updated in May 2021. This package also works perfectly for scan and connect to the device.
The Bluetooth package is similar to flutter_blue but was last updated in 2019.
We decided to proceed with the flutter_blue and the flutter_reactive_ble package. These provide the following functionalities:
- Scan the nearby Bluetooth devices: The nearby Bluetooth devices are detected and shown as list tiles in the device discovery screen.
- Connect to the Bluetooth device: Setting up a connection between the mobile phone and the Bluetooth device (the OBD-II adapter).
- Discovering the services: Once the connection is accomplished, the next task is to determine the services offered by the connected device.
- Interact with the connected Bluetooth device: Reading, writing, and subscribing to the characteristics of the connected Bluetooth device.
Benjamin Pross, Sebastian Drost, and Arvind Negi are mentoring us to complete the project successfully.
About Me: I am Khyati, a second-year undergraduate at NIT Hamirpur. Please feel free to contact me at
Leave a Reply