How I turned my Mazda3 into a smart car using IoT technology

by Yunhao Shen User Experience Designer | Full-Stack Developer

Bridging the gap between design and development

As a user experience designer who does full-stack coding, I’ve recently discovered a passion for being a design technologist. A design technologist helps bridge the gap between design and development. Each day, I create designs that speak to users in unique ways while delivering a world-class experience. At night, I spend my time exploring new and interesting technologies, particularly the Internet of Things.

From what I can see, the Internet of Things (IoT) is the future. We are moving to a reality where anything and everything will be connected, and our cars are no exception. As I learned more about IoT I began thinking about my own car. Even though my Mazda3 doesn’t have the “fancy” features you’d expect to find in a luxury Mercedes or BMW, it is capable of being upgraded to become “smarter”. It does so by tapping into the vast Internet of Things. So, that’s exactly what I did. I decided to turn my Mazda3 into a smart car to track where I go and all my driving data.

How I turned my Mazda3 into a smart car

Regardless of whether a car is brand new or decades old, it contains data and information spanning the car’s lifetime hidden within it’s on-board diagnostics (OBD). This data includes information like mileage, gas usage, performance and engine health. In order to access this data within my own car, I first needed to put a vehicle telematics logging device into my car’s OBD-II port. This allows me to unlock the car’s data and bundle it with GPS information. As a result, every few seconds my car sends data to my private cloud through cellular networks. For the vehicle telematics logging device, Arduino based Freematics One + is a lower cost option but it requires more legwork up front. In order to ease my workload, I decided to go with T-Mobile SyncUP Drive, a more mature hardware solution.

Choosing and installing the hardware was the easiest part of the process. After setting up hardware, I needed to build a private cloud to collect and store data sent from the car. After that, I designed and built a web application to fetch and display the data in an interactive dashboard. This included more than full-stack development, which was challenging but fun. For nearly three months I worked on everything from setting up the cloud database (MongoDB) and backend server (NodeJS), to designing and developing the entire web application (Angular2). Once I completed the design and development of the web application I was able to visually track, analyze and report all the metrics of my car and each of my trips.

Driving smarter

Since March, my data shows I have gone on over 400 trips with over 170,000 geo-coordinates recorded in my database, a number that is continues to grow. My fully responsive web application shows every detail of my driving. Check it out here: https://mycar.yunhaoshen.com/.

Custom smart car dashboardSmart car metrics in custom dashboard

Overall, I feel like my efforts really paid off with this side project. Through this experience, I strengthened my passion for being a design technologist. This is something that has translated into my work life as well, as I continue to progress as a designer and developer in the age of IoT.