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.
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
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
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.
- Python
- Pandas
- Matplotlib
- ReportLab
- CSV data logging
- PDF report generation
- Virtual embedded sensor simulation
- Automated pass/warn/fail test logic
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
Go to the project folder:
cd "C:\Users\fall3\Desktop\Project_3_Virtual_Embedded_Sensor_Data_Logger".\.venv\Scripts\Activate.ps1pip install -r requirements.txtpython src\main.pyWhen the program runs successfully, it creates:
- A CSV data log in the
datafolder - A temperature plot in the
plotsfolder - A voltage plot in the
plotsfolder - A PDF engineering report in the
reportsfolder
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
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.
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
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
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 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
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.
Aaron Trujillo Electrical Engineering Student California State University, Fullerton