Add single-ESP32S3 demo setup for presence detection
Simplified setup for running RuView with just ONE ESP32-S3 board: - Basic presence detection (room occupancy) - Motion detection - Distance estimation For full pose estimation (17 keypoints), breathing, and heart rate, 2+ nodes are recommended. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
bf30844835
commit
66db4ed9ba
|
|
@ -0,0 +1,122 @@
|
|||
# RuView Single ESP32-S3 Demo
|
||||
|
||||
A simplified setup for running RuView with just ONE ESP32-S3 board for basic presence detection.
|
||||
|
||||
> **Note:** Single-node detection has limited spatial resolution. For full pose estimation (17 keypoints), use 2+ nodes. This demo focuses on **presence detection** - detecting if someone is in the room.
|
||||
|
||||
## What You Need
|
||||
|
||||
| Item | Cost | Notes |
|
||||
|------|------|-------|
|
||||
| ESP32-S3 DevKit (8MB flash) | ~$9 | Any ESP32-S3 with 8MB flash works |
|
||||
| Micro USB cable | ~$5 | For power + programming |
|
||||
| WiFi network | - | 2.4GHz WiFi required |
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Step 1: Get Pre-built Firmware
|
||||
|
||||
Download the latest firmware from releases:
|
||||
- Go to: https://github.com/Rudraa-25/RuView/releases
|
||||
- Download `esp32-csi-node.bin` (or build from source - see below)
|
||||
|
||||
### Step 2: Flash the Firmware
|
||||
|
||||
Connect your ESP32-S3 to your PC via USB. Note the COM port (e.g., COM7 on Windows).
|
||||
|
||||
```bash
|
||||
# Install esptool if you don't have it
|
||||
pip install esptool
|
||||
|
||||
# Flash the firmware (replace COM7 with your port)
|
||||
python -m esptool --chip esp32s3 --port COM7 --baud 460800 \
|
||||
write_flash --flash_mode dio --flash_size 8MB \
|
||||
0x0 release/bootloader.bin \
|
||||
0x8000 release/partition-table.bin \
|
||||
0x10000 release/esp32-csi-node.bin
|
||||
```
|
||||
|
||||
### Step 3: Provision WiFi
|
||||
|
||||
After flashing, provision your WiFi credentials (no reflashing needed):
|
||||
|
||||
```bash
|
||||
python firmware/esp32-csi-node/provision.py --port COM7 \
|
||||
--ssid "YourWiFiName" --password "YourWiFiPassword" --target-ip 192.168.1.100
|
||||
```
|
||||
|
||||
### Step 4: Run the Sensing Server
|
||||
|
||||
```bash
|
||||
# Install dependencies
|
||||
pip install -r requirements.txt
|
||||
|
||||
# Start the server (single-node mode)
|
||||
cargo run -p wifi-densepose-sensing-server -- --http-port 3000 --source single
|
||||
```
|
||||
|
||||
### Step 5: Open the Dashboard
|
||||
|
||||
Navigate to http://localhost:3000 in your browser.
|
||||
|
||||
You should see presence detection data flowing in when people are in range of your WiFi router and the ESP32-S3.
|
||||
|
||||
## Building from Source (Optional)
|
||||
|
||||
If you want to build the firmware yourself:
|
||||
|
||||
```bash
|
||||
# Using Docker (recommended for Windows)
|
||||
MSYS_NO_PATHCONV=1 docker run --rm \
|
||||
-v "$(pwd)/firmware/esp32-csi-node:/project" -w /project \
|
||||
espressif/idf:v5.2 bash -c \
|
||||
"rm -rf build sdkconfig && idf.py set-target esp32s3 && idf.py build"
|
||||
|
||||
# Flash the built firmware
|
||||
python -m esptool --chip esp32s3 --port COM7 --baud 460800 \
|
||||
write_flash --flash_mode dio --flash_size 8MB \
|
||||
0x0 firmware/esp32-csi-node/build/bootloader/bootloader.bin \
|
||||
0x8000 firmware/esp32-csi-node/build/partition_table/partition-table.bin \
|
||||
0x10000 firmware/esp32-csi-node/build/esp32-csi-node.bin
|
||||
```
|
||||
|
||||
## What's Detected
|
||||
|
||||
With a single ESP32-S3, you can detect:
|
||||
|
||||
| Feature | Description |
|
||||
|---------|-------------|
|
||||
| **Presence** | Is someone in the room? (Yes/No) |
|
||||
| **Motion** | Is someone moving? |
|
||||
| **Distance** | Approximate distance from the ESP32 |
|
||||
|
||||
## What's NOT Available (Needs 2+ Nodes)
|
||||
|
||||
- Full body pose (17 keypoints)
|
||||
- Breathing rate
|
||||
- Heart rate
|
||||
- 3D position tracking
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
**No data appearing?**
|
||||
- Check ESP32 is connected to WiFi: `python -m serial.tools.miniterm COM7 115200`
|
||||
- Verify the IP address is reachable from your PC
|
||||
- Make sure your WiFi router is on the same network
|
||||
|
||||
**Getting errors?**
|
||||
- Check the logs in `logs/` folder
|
||||
- Verify COM port is correct (check Device Manager on Windows)
|
||||
|
||||
## Files in This Demo
|
||||
|
||||
```
|
||||
demo-single-esp32s3/
|
||||
├── README.md # This file
|
||||
├── setup.sh # Quick setup script
|
||||
└── config.env.example # Example configuration
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
MIT - Same as main RuView project
|
||||
Loading…
Reference in New Issue