Aplicação Python com tk customizado que integra câmera em tempo real, detecção de pessoas com YOLO v8 e sensor de distância VL53L0X via ESP32.
- 📹 Câmera ao vivo - Captura em tempo real (800x600 @ 30fps)
- 🤖 IA Detectora - YOLO v8 nano para detecção de pessoas com bounding box
- 📍 Sensor ToF - Medição de distância via VL53L0X (serial)
- 🎨 Interface Moderna - CustomTkinter com tema escuro
⚠️ Alertas Visuais - Código de cores para proximidade (verde/amarelo/vermelho)- 📊 Histórico - Últimas 20 medições
- Python 3.10+
- ESP32 com sensor VL53L0X conectado (código em src/main.cpp)
- Câmera USB ou integrada
- ~2GB de espaço (para modelos YOLO + dependências)
git clone <repo>
cd vlchmod +x run.sh
./run.shpython3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
python camera_interface.pyEditar em camera_interface.py se necessário:
self.camera_index = 0 # Índice da câmera (alterar se houver múltiplas)
self.serial_port = "/dev/ttyUSB0" # Porta do ESP32 (verificar com: ls /dev/tty*)
self.confidence_threshold = 0.5 # Confiança mínima para detecçãoEncontrar a porta serial corretamente:
ls /dev/tty* | grep -E 'USB|ACM' # Linux.
├── camera_interface.py # Aplicação principal
├── requirements.txt # Dependências Python
├── src/
│ └── main.cpp # Código do ESP32 + VL53L0X
├── platformio.ini # Configuração PlatformIO
├── run.sh # Script de execução
└── README.md
| Pacote | Função |
|---|---|
customtkinter |
Interface gráfica moderna |
opencv-python |
Captura e processamento de vídeo |
ultralytics |
YOLO v8 para detecção |
torch / torchvision |
Backend de IA |
pyserial |
Comunicação com ESP32 |
Pillow |
Processamento de imagens |
- ESP32 (DevKit)
- VL53L0X ToF Sensor
- SDA → GPIO 21
- SCL → GPIO 22
- GND/VCC → Alimentação
- Conectar ESP32 com cabo USB
- Executar:
source venv/bin/activate python camera_interface.py - Observar:
- Câmera com detecções em bounding boxes
- Distância em tempo real (mm)
- Status de conexão dos componentes
- Histórico de medições
| Distância | Status | Cor |
|---|---|---|
| < 300mm | 🔴 Vermelho | |
| 300-600mm | 🟠 Laranja | |
| > 600mm | ✓ Seguro | 🟢 Verde |
| Problema | Solução |
|---|---|
ModuleNotFoundError |
Ativar venv: source venv/bin/activate |
| Câmera não inicia | Verificar permissões: sudo usermod -a -G video $USER |
| Sensor não conecta | Verificar porta: ls /dev/tty* e atualizar serial_port |
| YOLO lento | Trocar yolov8n.pt por versão menor ou usar GPU |
- Modelos YOLO são baixados automaticamente na primeira execução (~6-50MB)
- Interface requer display (X11 em Linux remoto)
- O sensor envia dados a cada 100ms
MIT
Made with ❤️ para IoT + Visão Computacional