
Descripción
Contexto general
Sistema integral de control de acceso vehicular basado en reconocimiento automático de placas (OCR) mediante cámara, con dashboard web para gestión, reportes y estadísticas, y control físico de barreras mediante Arduino + servomotores. El módulo Python detecta placas en tiempo real usando OpenCV + Tesseract OCR, consulta la base de datos MySQL para verificar autorización, registra ingresos/salidas y envía comandos seriales al Arduino para abrir o cerrar las barreras. El dashboard PHP permite administrar placas, registrar accesos manuales, visualizar estadísticas con Chart.js y exportar reportes en PDF con FPDF.

Motivación
Por qué lo construí
Automatizar el ingreso y egreso de vehículos al estacionamiento sin intervención manual de guardias.
Verificar en tiempo real cada placa contra una base de datos de placas autorizadas y denegar accesos no registrados.
Tener trazabilidad completa de ingresos/salidas con reportes exportables y estadísticas visuales.
Controlar físicamente las barreras de entrada y salida mediante servomotores comandados por Arduino.
Características
Lo que destaca
Detección de placas en tiempo real con OpenCV: preprocesamiento (escala de grises, filtro bilateral, Canny), extracción de contornos por área y OCR con Tesseract (--psm 7).
Lógica de acceso: placa registrada sin ingreso activo → permite entrada; con ingreso activo → registra salida; no registrada → denegación automática tras 20 s.
Dashboard PHP con roles diferenciados (user/admin): login con bcrypt, registro de placas, accesos manuales, listado con filtros y estadísticas gráficas con Chart.js.
Generación de reportes en PDF con FPDF aplicando filtros por placa, propietario, fecha, mes, semanal y día.
Firmware Arduino con 2 servomotores (entrada/salida) controlados por comandos seriales (E, S, D) a 9600 baudios.
Base de datos MySQL con 6 tablas (usuarios, registro, placas, ingresos, salidas, placas_no_registradas) y trigger automático para sincronización de usuarios.