Professional IoT solution for collecting, analyzing, and visualizing real-time temperature and voltage data
- Real-Time Data Collection: Instant data reading from Arduino via serial port
- Smart Data Storage: Automatic CSV format data logging with timestamps
- Advanced Visualization: Interactive and professional graphs with Plotly
- Multi-Sensor Analysis: Correlation analysis between two temperature sensors
- Data Quality Control: Automatic data validation and error detection
- Time Series Analysis: Detailed analysis of temperature and voltage changes
Features and Analysis:
- 🌡️ Dual Sensor Comparison: Simultaneous readings from two different temperature sensors
- 📈 Raw and Processed Data: Dotted lines show raw data, solid lines show 30-second averages
- ⚡ Voltage Monitoring: Voltage changes are continuously monitored in the lower panel
- 🔍 Interactive Features:
- Zoom in/out capability
- Time range selection
- Detailed information on hover over data points
Statistical Details:
- 📊 Histogram Analysis: Frequency distribution of temperature differences
- 🎻 Violin Plot: Density and shape analysis of the distribution
- 📏 Standard Deviation: Gray area shows ±1σ range
- 🎯 Mean Value: Dashed line marks the average difference
- 🔍 Outlier Detection: Shows deviations from normal distribution
Analysis Details:
- 📊 Linear Relationship: Ideal match line (dashed black)
- 🌈 Time Encoding: Point colors indicate measurement time
- 📈 R² Value: Numerical indicator of sensor agreement
- 🎯 Precision Analysis: Visual analysis of deviations through scatter plot
Note: When graphs open in web browser, they are interactive:
- Can zoom in/out
- Show detailed information on hover
- Toggle graph components
- Export in PNG/SVG/HTML formats
Technology | Purpose |
---|---|
Python | Main programming language |
pyserial | Serial communication with Arduino |
pandas | Data processing and analysis |
plotly | Interactive graphs |
numpy | Numerical calculations |
scikit-learn | Statistical analysis |
# Install required packages
pip install pyserial pandas numpy plotly scikit-learn
# Connect Arduino and set port number
# Edit PORT variable in main.py
# Run the program
python main.py
The CSV file contains the following columns:
PC_Timestamp
: Computer timestampPC_Date
: Human-readable dateArduino_Timestamp
: Arduino millisecond counterArduino_Elapsed_Time
: Elapsed time (HH:MM:SS)Temperature1
: Temperature from sensor 1 (°C)Temperature2
: Temperature from sensor 2 (°C)Voltage
: Voltage value (V)
This project is licensed under the MIT License.
✅ Free for academic and research use
✅ Modifications and redistribution allowed
❌ Commercial use requires written permission