The VoltStar Telemetry System (VTS) is a real-time vehicle performance monitoring solution designed to collect and transmit data from various sensors, including an Inertial Measurement Unit (IMU), GPS, and temperature sensors. The data is wirelessly transmitted using LoRa modules to a Raspberry Pi, where it is processed and displayed in real-time for analytical purposes.
- IMU Sensor (MPU6050): Monitors vehicle orientation (pitch, roll, yaw).
- GPS Module: Tracks the vehicle's location and calculates speed using the Haversine formula.
- Temperature Sensors (DS18B20): Monitors the temperature in the vehicle's controller and batteries.
- LoRa Modules: Enables wireless transmission of telemetry data to a Raspberry Pi.
- TFT Display: Displays real-time metrics, including speed and warnings (e.g., speed alerts) for the driver.
This project is divided into two main components: the Arduino code (for sensor data collection and transmission) and the Raspberry Pi setup (for data reception and analytics).
- Collects data from the IMU, GPS, and temperature sensors.
- Calculates orientation (pitch, roll, yaw) and speed.
- Transmits the data via LoRa to the Raspberry Pi.
- Receives telemetry data from the Arduino via LoRa.
- Processes and displays data for real-time analytics and monitoring (dashboard development in progress).
- Wire: For communication with the IMU.
- Adafruit_GPS: For processing GPS data.
- LoRa: For LoRa communication.
- OneWire & DallasTemperature: For reading temperature sensor data.
- MCUFRIEND_kbv: For managing TFT display communication.
- Adafruit_GFX: For handling graphic drawing on TFT displays.
The project is organized for easy navigation and access:
-
/Circuits/
: Circuit diagrams for all components. -
/Excel Sheets/
: Component list and cost estimation. -
/Measurements/
: 3D model measurements for parts and components. -
/Code/
: Source code for all components./Sensor Data Collection Code/
: Code for collecting sensor data.- RTC.ino: Basic Arduino program for Real-Time Clock (RTC).
- gps_code_voltstar.ino: Arduino code that calculates vehicle speed using GPS data and the Haversine formula.
- VoltStarAccelerometer.ino: Core code for IMU sensor; tracks distance, vibration, tilt, and velocity using filters (Kalman, LPF).
- VoltStarTFTDisplay.ino: Code to display metrics (e.g., speed, temperature) on a TFT display.
- Temperature.ino: Code to read data from the DS18B20 temperature sensors.
- Connect the MPU6050 (IMU) to the Arduino using I2C communication.
- Connect the GPS Module to the Arduino via serial communication.
- Attach DS18B20 temperature sensors to the Arduino.
- Set up the LoRa Module for wireless data transmission.
- Connect the TFT Display to show speed and alerts.
- Set up a LoRa receiver on the Raspberry Pi to receive data.
- Prepare for dashboard integration (currently under development).
- Clone or download the repository.
- Open the Arduino IDE and load the appropriate code for your Arduino model.
- Upload the code to the Arduino board.
- Ensure that all sensors are correctly connected to the respective pins.
- Install the necessary libraries for LoRa communication and data reception.
- Set up the Raspberry Pi to receive telemetry data from the Arduino via LoRa.
- Display telemetry data on a dashboard (under development).
- For the Driver: The TFT display will provide essential real-time data such as current speed and warnings if the speed exceeds a predefined limit.
- For Monitoring: Telemetry data will be transmitted to the Raspberry Pi for further analysis and can be displayed on a dashboard in future updates.
This project is licensed under the MIT License.
- Srinjay Shrinivas Shankar: Electronics Engineer, Arduino Developer (C++), Python, 3D Modeler
- Ahmed Rizwan: Electronics Engineer, Coder.
- Yahia Ezzat: C++ Developer, Arduino Coder.
- Abdulhayee Yamin: Ex Game Dev, C# Developer. Python Developer (Tensorflow)
- Yousef Saleh: Python Developer, 3D Modeler