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.
- 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
Dashboard display of engine RPM over time as well as RPM stats.
Dashboard display of fault codes and stats.
Dashboard display of PTO activations and stats.
Dashboard summary of all key metrics of the simulated data.
Sample GET request tested using Postman collection.
Sample POST request tested using Postman collection.
git clone https://github.com/yourusername/vehicle-telemetry-analyzer.git
cd vehicle-telemetry-analyzer
python3 -m venv venv
source venv/bin/activate # On Windows: .\venv\Scripts\activate
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
./clear.sh # Clear existing data
./live_demo.sh # Run simulation loop data script and dashboard
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 |