An IoT system for monitoring elderly individuals by detecting unusual movement and sound. The system consists of multiple components working together:
- IoT Device (ESP32)
- Located in IoT-Project/
- Uses Arduino framework with ESP32 microcontroller
- Captures and sends images via BLE
- Configure and build using PlatformIO:
cd IoT-Project/
pio run
- Web Application (Angular)
- Located in WaveSafe/
- Frontend interface for monitoring
- Installation:
npm install -g @angular/cli
cd WaveSafe/
npm install
ng serve -o
- Backend API (Deno)
- Located in WaveSafe-api/
- Handles data processing and business logic
- Installation & running:
cd WaveSafe-api/
# Create .env file with required environment variables
deno task dev
- Database (SurrealDB)
- Stores monitoring data and user information
- Start the database:
surreal start -A --log debug surrealkv://./database/surrealdb.db
- Node.js & npm
- Angular CLI
- Deno 2.0+
- SurrealDB
- PlatformIO (for ESP32 development)
- Python dependencies:
pip install -r requirements.txt
- Clone the repository
- Setup database by running SurrealDB
- Start the backend API server
- Launch the Angular frontend
- Flash the ESP32 device with the IoT code
- IoT Device Development
- Use PlatformIO in Visual Studio Code
- Code is in IoT-Project/src/
- Main device code: main.cpp
- Frontend Development
- Angular project in WaveSafe/
- Development server at http://localhost:4200
- Backend Development
- Deno server in WaveSafe-api/
- Development mode with auto-reload:
deno task dev
- ESP32: Update BLE settings in IoT-Project/src/main.cpp
- Backend: Create
.env
file in WaveSafe-api/ - Database: Configure connection settings
- The system processes images and sound data from the IoT device
- Uses BLE for communication between ESP32 and backend
- Implements fall detection and sound monitoring
- Stores monitoring data in SurrealDB
.
├── AudioProcessor/ # Audio processing components
├── Edge/ # Edge computing models
├── IoT-Project/ # ESP32 device code
├── WaveSafe/ # Angular frontend
├── WaveSafe-api/ # Deno backend
└── database/ # Database files