How thewriterben/wildcam_esp32 works
WildCAM_ESP32 is an ESP32-based wildlife monitoring platform: motion initiates image capture, on-device AI can classify wildlife, and images plus metadata are stored for later review or upload. The repository also contains gateway, cloud/API, web/mobile, networking, and distributed-learning capabilities. The README supports the core workflow and feature branches; sampled firmware references confirm several initialization dependencies, while many advanced implementations were not sampled, so those connections are omitted or marked unverified.
Main entry points: main.cpp Firmware Runtime · app.py Backend API · wildlife_detector.h Wildlife Classifier · storage_manager.cpp Image Storage
Components 20
Field Capture
- Firmware Runtime
firmware/main.cpp - Camera Capture
firmware/src/camera/camera_manager.h - Image Storage
firmware/core/storage_manager.cpp - Power Control
firmware/power/power_manager.h
AI and Sensing
- Wildlife Classifier
firmware/ml_models/wildlife_detector.h - Environmental Sensors
firmware/src/sensors - Acoustic Detection
Networking and Sync
- LoRa Mesh
- Satellite Link
- Raspberry Pi Gateway
edge/raspberry_pi/gateway/main.py - Edge Gateway
edge_gateway/main.py - Cloud Sync
edge_gateway/sync/cloud_sync.py
Cloud and Services
- Backend API
backend/app.py - Cloud Services
ESP32WildlifeCAM-main/firmware/src/production/enterprise/cloud/cloud_service_orchestrator.cpp - Population Analytics
backend/routes/population_routes.py - Model Deployment
backend/ml/deployment_pipeline.py
User Interfaces
- Web Dashboard
frontend/src/App.js - Mobile App
frontend/mobile/App.js - Push Notifications
frontend/mobile/src/services/NotificationService.js
Other components
- Wildlife
Connections 19
- Wildlife → Firmware Runtime: triggers motion
- Firmware Runtime → Camera Capture: initializes
firmware/main.cpp - Firmware Runtime → Wildlife Classifier: initializes
firmware/main.cpp - Firmware Runtime → Image Storage: initializes
firmware/main.cpp - Firmware Runtime → Power Control: initializes
firmware/main.cpp - Firmware Runtime → Environmental Sensors: initializes
firmware/main.cpp - Camera Capture → Image Storage: stores images
- Wildlife Classifier → Image Storage: adds classification metadata
- Firmware Runtime → LoRa Mesh: communicates over
- Firmware Runtime → Satellite Link: uses fallback link
- LoRa Mesh → Raspberry Pi Gateway: sends detections
- Raspberry Pi Gateway → Backend API: bridges data
- Edge Gateway → Cloud Sync: dispatches sync
edge_gateway/main.py - Cloud Services → Backend API: exposes cloud data
- Backend API → Population Analytics: serves analytics
- Model Deployment → Wildlife Classifier: deploys models
backend/ml/deployment_pipeline.py - Backend API → Web Dashboard: serves monitoring data
- Backend API → Mobile App: serves camera data
- Backend API → Push Notifications: triggers alerts