Skip to content

danreid44/Vehicle-Telemetry-Data-Analyzer

Repository files navigation

Vehicle Telemetry Data Analyzer

This project is a Python-based tool for simulating and analyzing vehicle telemetry data, including engine RPM, PTO activity, and fault codes. It generates CAN Bus messages in hexadecimal format according to the SAE J1939 standard and stores them in a SQLite database. The raw hex data is then decoded into human-readable values and displayed on an interactive Streamlit dashboard. The project replicates key functions of commercial fleet diagnostics platforms, using realistic data patterns and message structures. A Postman collection is also provided to perform full CRUD operations on the database, enabling further customization and future extensions of the project.

Key Features

  • Simulated CAN/J1939 messages
  • SQLite data storage
  • Data trend analysis with Pandas
  • Data displayed using Streamlit and Matplotlib
  • Backend API routes to perform CRUD operations

Project Preview

Dashboard display of engine RPM over time as well as RPM stats.

Vehicle Telemetry Dashboard RPM Screenshot




Dashboard display of fault codes and stats.

Vehicle Telemetry Dashboard Faults Screenshot




Dashboard display of PTO activations and stats.

Vehicle Telemetry Dashboard PTO Screenshot




Dashboard summary of all key metrics of the simulated data.

Vehicle Telemetry Dashboard Summary Screenshot




Sample GET request tested using Postman collection.

Postman API Testing Screenshot




Sample POST request tested using Postman collection.

Postman API Testing Screenshot



How to Run the Project:

1. Clone the Repo

git clone https://github.com/yourusername/vehicle-telemetry-analyzer.git
cd vehicle-telemetry-analyzer

2. Create & Activate Virtual Environment

python3 -m venv venv
source venv/bin/activate # On Windows: .\venv\Scripts\activate

3. Simulate, Store, and Display Data

pip install -r requirements.txt # Install required packages

python simulate.py # Generate simulated telemetry data

python main.py # Load data into SQLite database

python display.py # Display engine RPM and PTO activations over time

streamlit run dashboard.py # Run the dashboard

python api.py # Launch API routes and Flask app on http://127.0.0.1:5000

4. Live Simulated Data Demo

./clear.sh  # Clear existing data
./live_demo.sh  # Run simulation loop data script and dashboard

API Endpoints

Method Route Description
GET '/api/rpm' Get RPM telemetry data
GET '/api/pto' Get PTO telemetry data
GET '/api/faults' Get Fault telemetry data
POST '/api/telemetry' Add new telemetry data
PATCH '/api/telemetry/:id' Patch telemetry data
DELETE '/api/telemetry/:id' Delete telemetry data

Releases

No releases published

Packages

No packages published