Quick Correction: In the demo video I use the unit "g", however the values are actually represented in m/s^2.


With the recent advancements in transportation and smart vehicles, I was surprised to find that electronic vehicles and smart cars still lack the ability to measure and analyze real-time motion data given the significance of insights possible. Realizing the value of the kinetic data and the diversity of insights, I decided to create a fully connected IoT device that can quantify 3D acceleration data and enable real-time analyses and visualization of that 3D motion data. Furthermore, I coupled this data with noise and temperature information to create additional context and implement safety features.


The 3D acceleration data has many use-cases, however I find applications for driving particularly interesting. The data can be used to:

  • Detect unusual changes in vehicle performance, over time
  • Measure the quality of a ride by quantifying g-force
  • Detect life-threatening car accidents and notify authorities
  • Map road hazards, such as potholes using the z-axis

How does it work

There are two pieces of hardware used in this project, one is the Onion Omega2+, which is an embedded Linux computer and the other is the Adafruit Circuit Playground, which is a micro-controller and is used here for its set of comprehensive on-board sensors and cool-looking lights!

The micro-controller is programmed to measure 3D acceleration, temperature and noise every 1 second! It then sends that data to the Omega2+ using UART protocol. The Omega2+ then sends that data to AWS IoT using MQTT protocol.

Upon arrival of data at AWS IoT, any appropriate action is taken in real-time if necessary, such as sending an emergency notification. The data arrival also triggers a AWS IoT rule, which sends the data through the first firehose. Then comes AWS Kinesis, which receives the data in batches from the first firehose and performs real-time analytics, such as calculating the aggregate g-force in each direction. Then the data flows through the destination firehose and is stored in a S3 bucket. Finally, the data can be visualized and further analyzed using Amazon QuickSight.

Challenges I ran into

While there were many challenges when it came to creating and configuring different components of AWS to work together, the biggest challenge was to implement this idea with actual sensor data collected in real time. This project pushed me to take my hardware/software and interfacing skills to the next level, as I had to not only interface with multiple live sensor data, also do this on an embedded system with limited resources AND be in constant communication with the cloud. This meant composing a portable, powerful and power-efficient hardware solution, which is also cloud-connected.

Accomplishments that I'm proud of

Being able to successfully translate physical force into 0s and 1s stored in the cloud. Live!

What I learned

I learned that using simulated data can be misleading sometimes, as the real challenge in some cases is generating the data from scratch. It was also great exploring the AWS IoT platform and learning about all the great features!

What's next for KinetiConnect

KinetiConnect can be utilized by car manufacturers to track and improve their vehicle's performance and extract invaluable insights. It can be used at a national scale to improve road and transportation infrastructure, or by individuals to improve driving habits and most importantly improve safety through features, such as the automatic emergency notification system.

Built With

  • adafruit-circuit-playground
  • arduino
  • atom
  • aws-iot
  • aws-kinesis
  • node.js
  • onion-omega2
  • quicksight
Share this project: