AutoAccess — Sistema de control de acceso vehicular
InicioProyectosAutoAccess

AutoAccess

Sistema de control de acceso vehicular con reconocimiento de placas por OCR, dashboard web y control físico de barreras con Arduino.

Detalles
Tipo
Sistema integrado
Rol
Full-stack Developer
Creación
Q1 2024
Actualización
Q1 2024
Visitar
Demo
Código
Github
Stack tecnológico
PythonOpenCVTesseract OCRPHPMySQLTailwind CSSChart.jsArduinoFPDF
01

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.

AutoAccess — Sistema de control de acceso vehicular
02

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.

03

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.