
This session introduces the connected car, which wirelessly connects vehicles to various entities. The goal is to transform vehicles into intelligent devices, enhancing driving safety, efficiency, and convenience. With it comes new business opportunities, revolutionizing the automotive industry.
The global vehicle connectivity market is on a rapid growth trajectory, projected to reach $286.89 billion by 2032. This expansion is driven by the industry's shift toward autonomous vehicles, where connectivity takes center stage, transferring responsibility from drivers to vehicle providers. While this transition may take time, it's important to note that connectivity offers already now significant advantages.
This session introduces the role of telematics in connected cars, which integrates telecommunications and information processing, enabling vehicle communication with the cloud and stakeholders.
This session outlines building a system that connects your car to the cloud, enabling scenarios like remote control of lights, honking, status updates, and emergency calls. We show our setup using a Raspberry Pi and AWS serverless cloud.
You'll learn how to sign up to the AWS cloud and create a dedicated AWS 'Identity and Access Management' (IAM) user with specific permissions. For ease of use we will also add our favorite services to the quick access toolbar.
You will set up your hardware and software environment for a Raspberry Pi project. You install the Raspberry Pi OS, configure VNC for remote desktop access, install Python libraries like 'rich' and 'pynput', set up AWS IoT SDK for cloud connectivity, and installed the Google protocol buffer environment. Additionally, you assembled the hardware components, including an LED, a buzzer, and a mini breadboard.
You will create a Python data object representing a vehicle's state, with parameters like VIN, timestamp, vehicle speed, fuel status, battery status, mileage, and various status indicators. This forms the foundation for our example when sending vehicle data to the cloud.
You will learn about JavaScript Object Notation (JSON), a human-readable data exchange format, and how to use Python to convert our data object to JSON.
We will create an Python IOManager class to manage local onboard activities, like turning an LED on and off. We import the GPIO module and use the sleep method from the time module to make the LED blink every few seconds.
We will expand the Python IOManager by adding a creative ''buzzer_sound' method. This method uses pulse-width modulation to create noise with a piezo buzzer connected to GPIO23. It will be used to simulate an 'honk'.
We will expand the Python IOManager to duplicate and modify the buzzer sound method to create a slightly different sound for the e-call alert.
In this session, we implement a Python keyboard manager that responds to key presses, simulating in-car button actions for functions like light toggling, honking, and emergency calls.
In this session, we create a Python 'Connected Car' object to unify subsystems. This object ensures clean code and coordination.
In this session, we refined the Python 'ConnectedCar' class by adding methods for accessing vehicle data, triggering an e-call, and toggling lights. These delegates enhance the coordination of subsystems.
We will create a Python 'DisplayManager' class using the 'rich' Python library to present vehicle status on the console in an appealing format.
We'll link keyboard actions to the Python 'IO manager' class enabling actions like honking, e-call triggering, and light toggling.
We will enhance our vehicle object to introduce randomization of vehicle state data when the "R" key is pressed on the keyboard. This adds variety to our 'driving' simulation, with the display manager reflecting the changes in real time.
We will expand our terminal window to display on-board and off-board events with timestamps. We will introduce a new panel at the bottom, showing keystrokes, on-board vehicle status, and off-board communication. Each event is displayed with a timestamp for easy monitoring and tracking.
We will establish a connection to the AWS MQTT cloud by creating a Python 'MQTT manager' class. We'll send messages through the AWS IoT library.
A step-by-step guide on how to receive MQTT messages from the AWS cloud.
In this session, we will learn how to set up AWS IoT rules to filter and save the data in an S3 bucket.
In this session, we will learn how to create an HTML front-end using Bootstrap as a framework for web page structure and design. We will add buttons and a data table to the HTML template and serve it locally through a Python HTTP server.
We will be adding JavaScript interactivity to our client-side HTML code. We'll create functions for button interactions and connect them to click events, ensuring that our front-end elements become interactive and responsive to user actions. This JavaScript integration will enhance our website's functionality and user experience.
We'll populate the HTML table with data from an external JSON file, convert it into a JavaScript object, and populate the HTML table with this data. Additionally, we'll include a line chart using the Chart.js library to visualize random mileage data on the dashboard, enhancing the website's data presentation.
We will host our website on Amazon AWS S3, a scalable cloud storage service. The session covers configuring S3 buckets, setting permissions, and connecting the hosted static website to dynamic data provided through MQTT and JavaScript.
We will explain the role of AWS Lambda functions and AWS API Gateway in enabling RESTful communication, allowing the dashboard to trigger actions within the car via JavaScript.
We will implement a status update request flow. It involves using Amazon S3 to host a website, Amazon API Gateway for API calls, and AWS Lambda functions to facilitate communication between a user dashboard and a connected car. The session covers implementing automatic data refresh and enhancing the vehicle monitor for onboard and offboard activities.
In this session, we will set up an E-call and B-call service using Amazon Simple Notification Service (SNS). The vehicle will send MQTT messages to IoT Core, and IoT Core will trigger SNS, which will notify subscribers via email, enabling the reception of E-call and B-call messages from the vehicle.
In this session, I will demonstrate how to optimize data transfer using Google protocol buffers. This optimization is vital for original equipment manufacturers (OEMs) dealing with telematics data from thousands of vehicles, ensuring efficient data transfer by using compact binary formats for machine-to-machine communication.
Finally we will discuss NGTP, a telematics industry standard that emerged around 2000. NGTP aimed to provide a technology-neutral and scalable infrastructure for handling requests from numerous vehicles, enabling an ecosystem for content providers.
This is the "Connected Car Telematics" course, part of the Automotive Network Design series.
In this comprehensive program, you'll delve into the fundamental concepts surrounding Connected Cars and Telematics, gaining valuable insights into this rapidly evolving field.
The course delves into various aspects, including market positioning and the associated commercial opportunities and challenges, all within the context of managing a growing number of vehicles.
With the recent surge in serverless cloud-native computing, the course also explores how this paradigm shift has opened up even more lucrative prospects in the industry.
Upon completing this course, you will have the knowledge and capability to:
Gain a deep understanding of the Connected Car
Navigate the intricacies of the Connected Car market
Grasp the opportunities and challenges inherent in Connected Car technology
Comprehend the pivotal role played by Telematics in this context
Explore the world of Serverless Cloud Native Computing.
Develop proficiency in Cloud IoT using Raspberry Pi and Python
Explore serverless MQTT, a popular messaging protocol
Harness the power of Serverless AWS IoT Core, AWS S3, AWS API Gateway, AWS Lambda, and AWS SNS
Learn hosting websites on S3, employing static HTML and JavaScript
Know the Next Generation Telematics Protocol (NGTP)
Establish a solid foundation for exploring other automotive network communication protocols
Join us on this journey into the Connected Car and Telematics realm, and equip yourself with the knowledge and skills to excel in this dynamic and ever-expanding field.
Note:
The course tries to be as easy to digest as possible on the topics presented. While it is considered a 'beginners' course to work in the industry, it is not to be confused with an 'absolute' beginners course on electronics or computer science. Understanding source code, basic boolean algebra and familiarity working with specifications will help. Comparable courses are part of a Masters's Degree curriculum. A Bachelor's level understanding of Computer Science, Mathematics or Electrical Engineering is recommended.