- Project Overview
- Project Structure
- Features
- Prerequisites
- Setup Instructions
- API Documentation
- Contributing
- 📄 License and Disclaimer
- Authors
- Support
- Last Updated
The IoT Health Monitoring System is a comprehensive solution for real-time patient vital sign monitoring using multiple biomedical sensors connected to an ESP8266 microcontroller. The system collects ECG, heart rate, SpO2, and temperature data, then transmits it to both cloud database platforms (Supabase) for analysis and storage.
- Multi-sensor Integration: ECG, Pulse Oximetry, Temperature monitoring
- Real-time Web Interface: Live data visualization and patient management
- Cloud Storage: Dual storage to ThingSpeak and MySQL database
- 20-second Scan Sessions: Controlled data collection periods
- Responsive Design: Mobile-friendly web dashboard
- Healthcare professionals
- Remote patient monitoring systems
- Medical research institutions
- Home healthcare applications
├── API/ # Backend API server
│ ├── main.py # Main API implementation
│ ├── requirements.txt # Python dependencies
│ └── procfile # Deployment configuration
└── VitalSense/ # ESP8266 firmware
└── VitalSense.ino # Arduino code for vital signs monitoring
- Real-time vital signs monitoring
- ESP8266-based sensor integration
- RESTful API for data collection and retrieval
- Secure data transmission and storage
- Arduino IDE with ESP8266 board support
- Python 3.x
- Required Python packages (listed in requirements.txt)
- ESP8266 development board
- Vital signs sensors (as per hardware requirements)
-
Navigate to the API directory:
cd API -
Create a virtual environment (recommended):
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
- Copy
.env.exampleto.env - Configure the required environment variables
- Copy
-
Start the API server:
python main.py
- Open Arduino IDE
- Install ESP8266 board support if not already installed
- Open
VitalSense/VitalSense.ino - Configure WiFi credentials and API endpoint
- Upload the code to your ESP8266 board
- Power up the ESP8266 device with sensors connected
- Ensure the API server is running
- The device will automatically start collecting and transmitting vital signs data
- Access the API endpoints to retrieve and analyze the data
Purpose: Serve main web dashboard Response: HTML page with patient form and data display
Purpose: Begin 20-second data collection Parameters:
name(string): Patient nameage(int): Patient agesex(string): Patient gender (M/F/O)diseases(string): Known medical conditions
Response: "Scan started!"
Purpose: Send collected data to cloud services Response: "Data uploaded successfully!" or "Upload failed!"
{
"name": "string",
"age": 0,
"sex": "string",
"blood_group": "string",
"height": 0,
"weight": 0,
"known_conditions": "string",
"temperature": 0,
"heart_rate": 0,
"spo2": 0,
"ecg_data": [
{
"voltage": 0.0,
"timestamp": "string"
},
...
]
}For more detailed API documentation, configuration guides, and troubleshooting information, please refer to our detailed documentation sections above.
- Fork the repository
- Create a new branch for your feature
- Commit your changes
- Push to the branch
- Create a Pull Request
This system is intended for educational and monitoring purposes only. It is not a medical device and should not be used for diagnostic purposes. Always consult healthcare professionals for medical advice and diagnosis.
- Ensure proper electrical isolation when connected to humans
- Do not use with patients connected to mains-powered equipment
- Follow all local safety regulations and guidelines
- Regular maintenance and inspection required
This project is open-source under MIT License. Use responsibly and in accordance with local regulations.
Documentation Maintainer: Anurag Panda
For technical support and contributions, please:
- Check the documentation first
- Review troubleshooting guide
- Open an issue on GitHub
- Contact the documentation maintainer
Version: 1.0
Date: November 2, 2025