Ai Camera Setup Guide
AI CAMERA SETUP — Master Guide
Document tech — l’infrastructure de vision pour Jungle Lab OS
Pourquoi ce doc : ton lab AI-monitored = différenciateur brand majeur. Frigate + ESP32-CAM + Mac mini = stack qui transforme cabinet en R&D welfare. Ce guide = blueprint complète Phase 1 (4 caméras) → Phase 3 (29 caméras).
🎯 TL;DR — la stack AI vision Jungle Kabal
HARDWARE
├── 25-30× ESP32-CAM (modules wifi camera 200฿/each)
├── 2-3× USB cameras qualité (Logitech C922 / Brio 4K)
├── 1× Mac mini M2 Pro reconditionné (centre de calcul)
├── 1× SSD externe 2TB (recordings storage)
└── 1× Switch Gigabit + ethernet cables
SOFTWARE
├── Frigate NVR (open source, AI inference)
├── Home Assistant (automation orchestrator)
├── YOLOv8 custom models (training sur tes datasets)
└── Custom scripts (welfare scoring, alerts)
OUTPUT
├── Live monitoring 24/7 toutes espèces
├── Behavioral classification automatique
├── Welfare scores quantifiés
├── Alertes anomalies push iPhone
└── Datasets exportables → publications/produits
Investment Phase 1 : ~30 000 ฿ Investment full Phase 3 : ~50 000 ฿
🔧 Hardware breakdown
ESP32-CAM (les “eyes” du lab)
Spec module standard
- ESP32-CAM AI-Thinker (le plus commun)
- Caméra OV2640 2MP (basique) ou OV5640 5MP (premium)
- WiFi intégré
- 200-300 ฿/module Lazada
Optimisation pour macro
- ❌ Lens stock = grand angle, mauvais pour macro insectes
- ✅ Swap M12 lens pour macro :
- Macro 8mm fixe = pour terras Mini
- Macro 12mm = pour Nano
- Variable focus M12 = flexibilité
- Coût : 100-200 ฿/lens
Power
- USB 5V (utiliser USB hub powered 10-port = ~800 ฿)
- Ou via PoE injector si setup pro
- Auto-restart sur power loss
Custom housing 3D-printed (Bambu A1 ou P2S)
- ABS Black ou PETG pour résistance humidité
- OpenSCAD library to develop (Phase 1-2)
- Mounting : ventouse / clip / vis selon emplacement
USB cameras qualité (Hero species)
Logitech C922 Pro (~3 000 ฿)
- 1080p 60fps
- Excellent low-light
- Use pour Mystrium (mandibles speed) ou Hyllus (eye tracking)
Logitech Brio 4K (~6 000 ฿)
- 4K 30fps
- Premium pour content creation
- 1-2 maximum, pour vraies hero pieces (Honeypot, Mystrium)
Sony IMX-based USB (~4 000-8 000 ฿)
- Quality sensor scientifique
- Pour datasets training serious
Mac mini centre de calcul
Pourquoi Mac mini > PC build
- ✅ Silencieux (important pour appart)
- ✅ Low power consumption
- ✅ Frigate fonctionne nativement macOS / Docker
- ✅ Petit footprint
- ✅ Stable, low maintenance
Specs cibles
- M2 Pro reconditionné : 18 000-22 000 ฿ (deal Lazada)
- M2 base reconditionné : 14 000-18 000 ฿ (suffit pour 10-15 cameras)
- M3/M4 new : 25 000-35 000 ฿ (overkill mais futur-proof)
RAM minimum
- 16 GB pour 15 cameras
- 24-32 GB pour 25-30 cameras
Storage
- Boot drive : interne suffit
- Recordings : SSD externe 2TB minimum = 3 000 ฿
- 25 cameras à low fps = ~50-100 GB/jour
- Rétention 14-30 jours = 1.5-3 TB
Network
Switch Gigabit (~800 ฿)
- 8 ports minimum
- Tous les ESP32-CAM connectés via WiFi mais Mac mini en Ethernet stable
- Cables Cat6 ~500 ฿
Router upgrade
- Si router fournisseur Thai weak → router Ubiquiti / Asus mid-range (~3 000 ฿)
- WiFi 6 préféré pour 25+ devices
🤖 Software stack
Frigate NVR (le cœur)
Open source, gratuit
Installation
# Sur Mac mini via Docker
docker run -d \
--name frigate \
--restart=unless-stopped \
--device /dev/dri/renderD128 \
-v /path/to/frigate/config:/config \
-v /path/to/recordings:/media/frigate \
-p 5000:5000 \
ghcr.io/blakeblackshear/frigate:stable
Configuration cameras (frigate config.yaml)
mqtt:
host: localhost
cameras:
hyllus_diardi_main:
ffmpeg:
inputs:
- path: rtsp://esp32-hyllus.local/stream
roles:
- detect
- record
detect:
width: 640
height: 480
fps: 5
motion:
threshold: 30
contour_area: 10
record:
enabled: True
retain:
days: 14
mode: motion
objects:
track:
- spider
- prey
Capabilities
- 🎯 Object detection (custom YOLO)
- 🎬 Recording (motion-triggered ou continu)
- 🔔 Notifications via MQTT
- 📊 Metrics dashboard
Home Assistant (orchestration)
Pourquoi : Frigate fait detection, Home Assistant fait l’action (alerte, automation, dashboard).
Integration
- Frigate → MQTT → Home Assistant
- Dashboards custom par animal
- Routines : “Si Mystrium pas active 24h, send notification”
Exemples automations
# Alert if cricket invasion in feeder colony
automation:
- alias: "Cricket escape detection"
trigger:
platform: state
entity_id: binary_sensor.frigate_cricket_outside_terra
to: 'on'
action:
service: notify.mobile_app
data:
message: "Cricket escape detected in Tribolonotus terra"
YOLO custom models
Pour quoi :
- Standard YOLO knows: person, car, dog, cat
- Toi tu entraînes : worker_ant, replete, jumping_spider, prey, mue, etc.
Workflow training
- Collect dataset : 100-500 images par class
- Annotate : Label Studio ou CVAT
- Train : Roboflow (cloud) ou YOLOv8 local
- Deploy model dans Frigate
- Iterate : weekly improvement
Roboflow Universe
- Public datasets disponibles (parfois “ant”, “spider” exist)
- Tu uploads tes annotations = contribue communauté
- R&D Jungle Kabal devient public asset
📍 Plan de déploiement camera Phase 1-2-3
Phase 1 (mois 1-2) — 6 caméras minimum
1. ESP32-CAM hero #1 : Hyllus diardi (close-up macro)
2. ESP32-CAM hero #2 : Mystrium nest (visibility chamber)
3. ESP32-CAM hero #3 : Mystrium outworld
4. ESP32-CAM wide : Cabinet général (overview)
5. USB cam premium : Honeypot Mexicanus (flagship)
6. ESP32-CAM hero #4 : Tribolonotus (when Phase 2)
→ 6 cameras = baseline AI lab opérationnel
Phase 2 (mois 3-6) — 14 cameras
Add :
7-8. Mystrium colony detail (replete count if applicable)
9. Diacamma colony
10. Harpegnathos colony
11. Phidippus regius
12. Hyllus giganteus
13. Tribolonotus zone water
14. Wide cabinet 2 (autre angle)
Phase 3 (mois 6-9) — 25-29 cameras
Add :
15-16. Theloderma paludarium (multi-angle)
17. Aplopeltura boa (vertical)
18. Pareas
19. Geosesarma
20. Phyllocrania mantis
21. Hymenopus mantis
22. Idolomantis (when arrives)
23-24. Drosos cultures monitoring
25. Achatina breeding bac
26. Cricket/Dubia colony
27. Quarantine zone (always-on)
28. Wide cabinet 3
29. Lab activity (toi qui travailles, time-lapse)
🛠 Setup étape par étape (Phase 1)
Hardware procurement (~30 000 ฿)
□ Mac mini M2 reconditionné (Lazada) : 18 000 ฿
□ SSD externe 2TB : 3 000 ฿
□ 6× ESP32-CAM AI-Thinker : 1 800 ฿
□ 6× M12 macro lens : 1 200 ฿
□ 1× Logitech C922 Pro (hero camera) : 3 000 ฿
□ Switch Gigabit 8-port : 800 ฿
□ Câbles Ethernet Cat6 + USB hub powered : 1 500 ฿
□ Imprimante 3D filaments PETG/ABS pour housings : 800 ฿
TOTAL : ~30 100 ฿
Software setup
J+1 : Setup Mac mini, install macOS clean
J+2 : Install Docker, Frigate, Home Assistant
J+3 : Test ESP32-CAM unique : firmware + RTSP stream
J+4 : 3D print housing standard (Bambu)
J+5 : Deploy 1 camera complete (Hyllus)
J+6 : Train initial YOLO sur jumping spider dataset
J+7 : Validate full pipeline end-to-end
J+8+ : Scale to 6 cameras
3D printed housing standard (à designer Phase 1)
Specs recommandées :
- Material : PETG noir (résistant humidité)
- Mount : magnetic ou clip terra
- Cable management : passage USB/power propre
- IP54+ : étanche éclaboussures (paludariums)
- Aération : pas de surchauffe ESP32
OpenSCAD library à construire et publier sur GitHub Phase 2.
🎯 Use cases AI lab par animal
Hyllus diardi
- Eye tracking (yeux télescopiques)
- Jump detection (high-speed cam)
- Pre-molt prediction (refus alimentaire + cocoon)
Mystrium camillae
- Mandible strike detection (slow-mo)
- Trophallaxis events (queen + larvae)
- Worker activity cycle day/night
Honeypot Mexicanus (flagship)
- Replete count temporal
- Worker traffic in/out chambers
- Color change repletes (diet tracking)
Tribolonotus
- Welfare scoring vertébré (1er du roster)
- Vocalization detection stress
- Pair social dynamics
- Activity cycles
Drosos cultures
- Population estimation
- Production cycle tracking
- Renewal alerts (“culture #3 needs renewal”)
🚨 Problèmes courants
ESP32 disconnect aléatoire
- Cause : WiFi weak ou puissance USB
- Solution : USB hub powered + ESP32 plus proche router
Frigate utilization 100%
- Cause : trop de cameras pour Mac mini RAM
- Solution : reduce fps detect cam by cam, use motion-only recording
YOLO faux positifs
- Solution : fine-tune model avec dataset spécifique
- Patience 1-2 mois training/iteration
Storage full
- Solution : retention policy 14 jours max + motion-only recording
🎯 Decision helper
J'ajoute une camera AI ?
│
├── Animal hero (top 5 brand) ?
│ ├── OUI → USB cam premium (3-6k)
│ └── NON → ESP32-CAM standard (200฿)
│
├── Espèce nécessite welfare scoring ?
│ ├── OUI → AI training data prioritaire
│ └── NON → simple motion record OK
│
├── Mac mini bandwidth disponible ?
│ ├── NON → upgrade Mac OU postpone
│ └── OUI → continue
│
└── Setup terra final (pas en mouvement) ?
├── NON → wait setup stable
└── OUI → 🟢 install
🌐 Vision long-terme — Jungle Lab OS
Phase 1-3 : Lab privé fonctionnel Phase 4+ (sanctuary trajectory) : Open source la stack
Jungle Lab OS = open source software based on:
├── Frigate (already OSS)
├── Home Assistant (already OSS)
├── Custom YOLO models (your trained datasets)
├── Custom welfare scoring algorithms
└── Documentation + recipes
Distributed via:
├── GitHub (chris-blvck/jungle-lab-os)
├── Docker images
├── Documentation hub
└── Community Discord
→ Tu deviens le maintener du standard de facto pour AI-monitored animal welfare en sanctuaires.
🎬 Brand angle
Le AI lab = différenciateur radical :
“Pendant que les autres regardent leurs animaux, nous les comprennons. 29 caméras, 1 Mac mini, des modèles ML entraînés sur 12 mois de comportements. Ce n’est pas du surveillance — c’est de la science amateur sérieuse.”
Contenus :
- 🎥 Time-lapse setup process
- 📊 Dashboard public live (anonymisé) sur biolab-smoky.vercel.app
- 📝 Articles : “Comment AI rend le welfare scoring objectif”
- 🤖 Open source releases progressives
🔗 Ressources
- Frigate docs : docs.frigate.video
- Home Assistant : home-assistant.io
- YOLO Ultralytics : docs.ultralytics.com
- Roboflow : roboflow.com (annotation + cloud training)
- ESP32-CAM tutos : RandomNerdTutorials.com
- Bangkok 3D printing community : Facebook “3D Print Thailand”
Document v1.0 — 5 mai 2026 Document vivant — update au fil deploiement réel.
docs/tech/ai-camera-setup-guide.md · sync: npm run docs:sync