A smart health monitoring device that measures heart rate (BPM) and blood oxygen saturation (SpO2) using the MAX30100 sensor and ESP8266, and visualizes data on the Blynk IoT platform. This repository also includes a starter template for integrating basic Machine Learning modules for anomaly detection and predictive insights on recorded heart rate data.
- Features
- Hardware Requirements
- Software Requirements
- Project Structure
- Installation
- Usage
- Machine Learning Integration
- Contributing
- License
- Real-time heart rate (BPM) and SpO2 monitoring
- Threshold-based alerts via Blynk notifications
- Sample data collection for offline analysis
- Jupyter notebook template for anomaly detection in heart rate data
- MAX30100 Pulse Oximeter Sensor
- ESP8266 (NodeMCU) module
- Heartbeat sensor (optional alternative)
- Power supply (USB or 9V battery)
- Connecting wires, breadboard/PCB
- Optional: LCD display for local readout
-
Arduino IDE (Board: ESP8266)
-
Blynk library for Arduino
-
(optionally) Python 3.8+ with:
numpy,pandasscikit-learnjupyter
├── LICENSE
├── README.md # Project overview and setup instructions
├── .gitignore # Ignored files (build artifacts, secrets)
├── hardware/ # All hardware-related files
│ ├── HEART.ino # Arduino sketch for sensor + Blynk integration
│ └── circuit_diagram.png
├── assets/ # Images, screenshots, demo results
│ ├── result.jpg
│ └── blynk_console1.png
│ └── blynk_console.png
│ └── demo.mov
├── ml/ # Starter ML integration
│ ├── data/
│ │ └── sample_heart_rate.csv
│ └── notebooks/
│ └── anomaly_detection.ipynb
├── library/ # Detailed specs and design notes
│ └── technical_specifications.md
└── .github/ # CI, workflows, issue templates
└── ISSUE_TEMPLATE.md
-
Clone the repository
git clone https://github.com/<your-username>/iot-heart-monitor.git cd iot-heart-monitor
-
Set up Arduino
- Open
hardware/HEART.inoin Arduino IDE - Install required libraries (
Blynk,MAX30100_PulseOximeter) - Enter your WiFi & Blynk credentials
- Upload to ESP8266
- Open
-
Python & ML (optional)
python3 -m venv venv source venv/bin/activate pip install -r ml/requirements.txt
-
Power your ESP8266 and heart rate sensor setup.
-
Launch Blynk app and add the
heart2device (use your template ID and auth token). -
Monitor live data on the Blynk dashboard or collect CSV logs in
ml/data/. -
Run the Jupyter notebook for anomaly detection:
jupyter notebook ml/notebooks/anomaly_detection.ipynb
This section provides a starter template for applying simple anomaly-detection algorithms (e.g., Isolation Forest) to your collected heart rate time series. Feel free to extend or replace with more advanced models (LSTM autoencoders, ARIMA, etc.).
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Commit your changes (
git commit -m "Add new feature") - Push to the branch (
git push origin feature/your-feature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.