Skip to content

aarontrujillofz-ee/Project_3_Virtual_Embedded_Sensor_Data_Logger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project 3: Virtual Embedded Sensor Data Logger and Test Automation System

Overview

This project is a Python-based virtual embedded sensor data logger and automated test system. It simulates how a microcontroller would read data from an analog temperature sensor, convert the signal into voltage and ADC values, evaluate the result using engineering limits, save the data to a CSV file, generate plots, and create a professional PDF engineering report.

This project was created as part of my electrical engineering portfolio to demonstrate skills in embedded systems, test automation, data acquisition, sensor simulation, technical documentation, and engineering report generation.

Project Purpose

The purpose of this project is to model a real embedded hardware test workflow without requiring physical hardware. The system acts like a virtual microcontroller reading a temperature sensor over time. It then performs automated validation by checking the data against warning and failure limits.

This project connects directly to my previous portfolio work:

  • Project 1: NTC thermistor temperature-sensing circuit
  • Project 2: Virtual automated electronics test station
  • Project 3: Virtual embedded sensor data logger and test automation system

Together, these projects show a complete engineering development path:

Circuit Design → Test Automation → Embedded Sensor Validation

Features

This project can:

  • Simulate temperature sensor readings
  • Convert simulated temperature into sensor voltage
  • Convert voltage into a 12-bit ADC value
  • Add realistic random measurement noise
  • Classify readings as NORMAL, WARN, or FAIL
  • Save test results to a CSV file
  • Generate temperature and voltage plots
  • Create a professional PDF engineering report
  • Provide an engineering summary with minimum, maximum, and average temperature values

Test Logic

The simulated system uses the following test limits:

Status Condition
NORMAL Temperature is below 40°C
WARN Temperature is 40°C to below 50°C
FAIL Temperature is 50°C or higher

The final test result is based on the highest severity condition detected during the test.

Technologies Used

  • Python
  • Pandas
  • Matplotlib
  • ReportLab
  • CSV data logging
  • PDF report generation
  • Virtual embedded sensor simulation
  • Automated pass/warn/fail test logic

Folder Structure

Project_3_Virtual_Embedded_Sensor_Data_Logger
│   README.md
│   requirements.txt
│   .gitignore
│
├───data
│       Generated CSV test logs
│
├───docs
│       Project documentation
│
├───examples
│       Example output files
│
├───plots
│       Generated temperature and voltage plots
│
├───reports
│       Generated PDF engineering reports
│
├───src
│       main.py
│       report_generator.py
│       sensor_simulator.py
│       adc_converter.py
│       data_logger.py
│       plot_generator.py
│       test_logic.py
│
└───tests
        Test files

How to Run the Project

1. Open PowerShell

Go to the project folder:

cd "C:\Users\fall3\Desktop\Project_3_Virtual_Embedded_Sensor_Data_Logger"

2. Activate the virtual environment

.\.venv\Scripts\Activate.ps1

3. Install required packages

pip install -r requirements.txt

4. Run the program

python src\main.py

Program Output

When the program runs successfully, it creates:

  • A CSV data log in the data folder
  • A temperature plot in the plots folder
  • A voltage plot in the plots folder
  • A PDF engineering report in the reports folder

Example terminal output:

Project 3: Virtual Embedded Sensor Data Logger
Running simulated embedded sensor test...

Test Complete
------------
CSV saved to: data/project3_sensor_log.csv
Temperature plot saved to: plots/temperature_plot.png
Voltage plot saved to: plots/voltage_plot.png
PDF report saved to: reports/project3_engineering_report.pdf

Engineering Summary
-------------------
Minimum Temperature: 24.76 C
Maximum Temperature: 46.84 C
Average Temperature: 35.7 C
Final Result: WARN

Engineering Explanation

The project simulates a temperature sensor whose voltage output increases as temperature increases. The virtual sensor output is converted into a simulated ADC value using a 12-bit ADC model.

The ADC model uses:

ADC range: 0 to 4095
Reference voltage: 3.3 V

The system then evaluates the temperature data using predefined engineering limits. If the temperature rises above 40°C, the system enters a warning condition. If the temperature reaches 50°C or higher, the system enters a failure condition.

This is similar to how real embedded monitoring systems are used in electronics testing, battery monitoring, environmental sensing, thermal protection, and hardware validation.

Engineering Skills Demonstrated

This project demonstrates:

  • Embedded systems thinking
  • Sensor data simulation
  • ADC conversion
  • Data acquisition
  • Test automation
  • Python programming
  • Engineering data analysis
  • CSV logging
  • Plot generation
  • PDF report generation
  • Pass/warn/fail validation logic
  • Technical documentation

Example Use Cases

This type of system could be adapted for:

  • Temperature monitoring
  • Battery thermal testing
  • Electronics validation
  • Environmental sensor testing
  • Hardware-in-the-loop simulation
  • Microcontroller data logging
  • Automated engineering reports
  • Test engineering workflows

Project Results

The first working version successfully generated sensor data, created plots, saved CSV output, and produced a PDF engineering report.

A sample run produced the following result:

Measurement Value
Minimum Temperature 24.76°C
Maximum Temperature 46.84°C
Average Temperature 35.7°C
Final Result WARN

The result was classified as WARN because the simulated temperature exceeded the 40°C warning limit but did not reach the 50°C failure limit.

Future Improvements

Future versions of this project could include:

  • A graphical user interface
  • Multiple simulated sensors
  • User-adjustable warning and failure limits
  • Real-time live plotting
  • Simulated serial communication
  • Arduino, ESP32, Raspberry Pi Pico, or Tiva-C hardware support
  • Unit tests for each module
  • Improved modular code organization
  • GitHub Actions automated testing
  • More advanced sensor models such as an NTC thermistor equation

Resume Description

Virtual Embedded Sensor Data Logger and Test Automation System

Developed a Python-based virtual embedded data acquisition system to simulate microcontroller ADC readings from an analog temperature sensor. The system logs sensor data to CSV, generates voltage and temperature plots, evaluates pass/warn/fail limits, and produces automated PDF engineering reports. This project demonstrates embedded systems, test automation, hardware validation, data analysis, and technical documentation skills.

Author

Aaron Trujillo Electrical Engineering Student California State University, Fullerton

About

Python-based virtual embedded sensor data logger that simulates ADC readings, logs sensor data, generates plots, and creates automated PDF engineering reports.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages