This project is a comprehensive system designed to monitor and analyze vital signs and environmental data in real-time. It integrates hardware sensors, a backend server, and a frontend visualization tool to provide insights into user health and safety. The system is particularly focused on detecting anomalies such as falls or abnormal vital signs.
- Frontend Visualization: A Java-based graphical interface using Processing to display real-time data and trends.
- Backend Server: A Python Flask server that processes data, performs analysis, and stores observations in a MariaDB database.
- Hardware Integration: A Raspberry Pi client captures vital signs using sensors like MAX30105 (pulse oximeter) and MLX90614 (temperature sensor).
- Database Management: Observations and room data are stored in a MariaDB database, managed via Docker.
- Real-Time Alerts: The system detects falls and abnormal health conditions, categorizing them into green, orange, or red alert levels.
Frontend/
java/
src/
DbDao.java # Database access object for retrieving and storing data
Main.java # Entry point for the frontend application
Observation.java # Data model for observations
Room.java # Data model for room information
VisualSetup.java # Visualization logic using Processing
Server/
Server.py # Flask server for processing and storing data
DbDao.py # Database access object for the server
ServerTests.py # Unit tests for server functionality
docker-compose.yml # Docker configuration for MariaDB
PiClient/
VitalCaptureClient.py # Raspberry Pi client for capturing and sending data
user_data.txt # Stores user-specific data
- Hardware: Raspberry Pi with MAX30105 and MLX90614 sensors
- Software:
- Java Development Kit (JDK)
- Python 3.8+
- Docker and Docker Compose
- MariaDB
-
Database:
- Use the
docker-compose.ymlfile to set up the MariaDB database:docker-compose up -d
- The database credentials are pre-configured in the
docker-compose.ymlfile.
- Use the
-
Server:
- Install the required Python packages:
pip install flask numpy opencv-python mysql-connector-python
- Run the server:
python Server/Server.py
- Install the required Python packages:
-
Frontend:
- Compile and run the Java application in
Frontend/java/src/Main.java.
- Compile and run the Java application in
-
Raspberry Pi Client:
- Install the required Python packages:
pip install max30105 smbus2 mlx90614
- Run the client:
python PiClient/VitalCaptureClient.py
- Install the required Python packages:
- Start the database and server.
- Launch the frontend application to visualize data.
- Run the Raspberry Pi client to capture and send data to the server.
- Monitor the frontend for real-time updates and alerts.
- Unit tests for the server are located in
ServerTests.py. Run them using:python -m unittest Server/ServerTests.py
- Luke Moss Hughes