Automobile-IoT: A perfect marriage of IoT and A.I.

This article provides superficial knowledge about IoT. If you want to dive deep into this field there are two ways you can learn more. First, the traditional approach, sign up for an online course, learn the appropriate coding language and then forget it all when you start implementing it. Second, start with an idea, research about what you need to know for implementation, learn and implement side by side because “practice makes a man perfect”. So let’s start.

All of us know the definition of IoT as “The interconnection via the Internet of computing devices embedded in everyday objects, enabling them to send and receive data”. However, the hot-word in the definition is “data”. IoT is all about data. IoT can produce lots of data like pollution levels, number of flushes per day, body hydration levels etc. In this project, we are concerned with data revealing car’s health, for example, coolant temperature, engine temperature etc.

We need sensors to collect data from the car. Most sensors give you raw data i.e. data that doesn’t make sense. For this, we add an additional processing unit which makes sense out of the raw data and presents it to us in an understandable format. There are various IoT development platforms available but I like to use BoltIoT. They have over-the-air programming and highly interactive cloud platform. If you are still deciding on which development platform to use I recommend BoltIoT since it takes less than 2 minutes to get started with (check out their Kickstarter campaign).

Placement of sensors is very crucial for retrieving “correct” data of the object. In this case, there are various sensors already attached to the car parts. For retrieving data from these sensors all car manufacturers provide an on-board-diagnostics port (OBD port). In most cars, this port is located under the steering wheel or behind the rear-view mirror. Just “Google it” if you have a tough time locating this port. Now, to use this port we need to design a hardware interface that can read the port to obtain sensor values.

OBD port under the steering wheel.
Notice the red led (power indicator)

ELM327 provides a Bluetooth interface so that we can read the sensor data easily. The ELM327 will retrieve data from the port and transmit it via Bluetooth. An HC-05 Bluetooth module attached to the Bolt will act as the receiver. To connect the Hc-05 module to the Bolt we need four jumper wires.

HC-05 | BOLT
 5V —-→5V
 GND→GND
 Rx —-→Tx
 Tx — -→Rx

green circles indicate the HC-05 pinouts

We can now use the cloud platform to procure data from the bolt hardware to the cloud. This can be done in one easy step(I name it “The magical step”). Define a variable for the UART ports on the cloud platform. Just specify this variable name in JavaScript and bolt servers will automatically fetch the data for you, pure magic.

The next step is to make sense of this data. We use three gauges on the bolt interface to display the coolant temperature, engine temperature and RPM(check this GitHub link for a better and neat looking gauge). This is very simple as we just have to parse the string of the serial data and specify the variable names in the gauge method. We can also add a speed vs time linear chart using the linear graph method(to know how to add gauges and linear graphs check this tutorial). We can now visualize sensory data of the car from anywhere in the world.

What’s cool about visualizing car data from anywhere in the world? We have narrowed the outlook to one car. Looking at it from the perspective of a car manufacturer this is a billion dollar idea(just to make things clear I am not the first one to come up with this idea). Car manufacturers can monitor customer’s car health on a regular basis and provide their service right on time. This would save customer’s time and money as well as manufacturer’s resources.

The next question that pops up is car manufacturers produce thousands of cars and it is impossible for a human to continuously monitor car’s health. This is where Artificial Intelligence comes in. An A.I. can continuously monitor thousands of cars continuously and notify the manufacturer when a car needs servicing. This is a perfect marriage of A.I. and IoT.

BTW, you can add machine learning algorithms to this project using the Bolt API. They don’t provide any support for A.I. but you can use the API to fetch data and then feed it to the ML algorithm.