{"id":10101,"date":"2026-05-07T16:19:56","date_gmt":"2026-05-07T14:19:56","guid":{"rendered":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?p=10101"},"modified":"2026-05-08T15:08:11","modified_gmt":"2026-05-08T13:08:11","slug":"sistema-inteligente-de-control-de-acceso-multipuerta","status":"publish","type":"post","link":"https:\/\/blogs.etsii.urjc.es\/dseytr\/sistema-inteligente-de-control-de-acceso-multipuerta\/","title":{"rendered":"Sistema Inteligente de Control de Acceso Multipuerta"},"content":{"rendered":"\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h1 class=\"wp-block-heading\"><strong>1. Objetivo del proyecto<\/strong><\/h1>\n<\/blockquote>\n<\/div>\n<\/div>\n\n\n\n<p>El objetivo principal del proyecto es dise\u00f1ar, desarrollar e implementar un sistema inteligente de control de acceso f\u00edsico que permita gestionar la entrada a m\u00faltiples instalaciones o salas utilizando un \u00fanico terminal de hardware centralizado.<\/p>\n\n\n\n<p>Para alcanzar este prop\u00f3sito general, el proyecto se ha estructurado en torno a los siguientes <strong>objetivos espec\u00edficos<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Centralizaci\u00f3n y Escalabilidad:<\/strong> Eliminar la necesidad de instalar un lector de tarjetas independiente en cada puerta f\u00edsica, permitiendo al usuario seleccionar su destino desde un \u00fanico punto de control interactivo (mediante un pulsador y un display de 7 segmentos).<\/li>\n\n\n\n<li><strong>Integraci\u00f3n IoT:<\/strong> Superar las limitaciones de memoria y procesamiento local del microcontrolador Arduino estableciendo una comunicaci\u00f3n bidireccional en tiempo real con una interfaz web y un servidor mediante la <em>Web Serial API<\/em>.<\/li>\n\n\n\n<li><strong>Trazabilidad y Gesti\u00f3n Din\u00e1mica:<\/strong> Desarrollar un panel de administraci\u00f3n web que permita dar de alta, editar o eliminar usuarios, asignar permisos espec\u00edficos por puerta y registrar un historial de accesos (logs) autom\u00e1tico con fecha y hora.<\/li>\n\n\n\n<li><strong>Experiencia de Usuario Multimodal:<\/strong> Proporcionar una respuesta inmediata y clara al usuario f\u00edsico mediante m\u00faltiples canales sensoriales (pantalla LCD con mensajes personalizados, LEDs indicadores de estado y respuestas ac\u00fasticas mediante zumbador).<\/li>\n\n\n\n<li><strong>Eficiencia Econ\u00f3mica:<\/strong> Demostrar la viabilidad de crear sistemas de seguridad complejos y de nivel empresarial utilizando componentes de bajo coste y aprovechando al m\u00e1ximo los recursos disponibles en el laboratorio.<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>2. Descripci\u00f3n del proyecto<\/strong><\/h1>\n\n\n\n<p>El sistema consiste en una soluci\u00f3n que funciona como un control de acceso centralizado. En lugar de tener una cerradura inteligente en cada puerta de un edificio, el sistema utiliza un \u00fanico terminal principal desde el cual el usuario puede intentar acceder a 5 puertas o salas diferentes.<\/p>\n\n\n\n<p>Para lograr esto, el sistema se compone de dos grandes bloques que se comunican entre s\u00ed en tiempo real:<\/p>\n\n\n\n<p><strong>1. El M\u00f3dulo F\u00edsico:<\/strong> Es la parte f\u00edsica que interact\u00faa con las personas, construida sobre una placa <strong>Arduino Uno<\/strong>. Consiste en:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Selector de Puerta:<\/strong> Un pulsador f\u00edsico que, al presionarlo, cambia la puerta a la que se desea acceder.<\/li>\n\n\n\n<li><strong>Indicador de Puerta:<\/strong> Un display de 7 segmentos que muestra visualmente el n\u00famero de la puerta seleccionada (del 1 al 5).<\/li>\n\n\n\n<li><strong>Lector de Identificaci\u00f3n:<\/strong> Un m\u00f3dulo RFID PN532 que escanea el UID de las tarjetas o llaveros de los usuarios.<\/li>\n\n\n\n<li><strong>Sistema de Feedback (Avisos):<\/strong> Una pantalla LCD 16&#215;2 que muestra mensajes de texto (\u00abPase tarjeta\u00bb, \u00abAcceso Concedido\u00bb, etc.), apoyada por un LED verde (\u00e9xito), un LED rojo (denegado) y un zumbador que emite distintos tonos sonoros.<\/li>\n<\/ul>\n\n\n\n<p><strong>2. El M\u00f3dulo de Gesti\u00f3n (Servidor Web)<\/strong> Es el \u00abcerebro\u00bb l\u00f3gico del sistema, alojado en un ordenador y desarrollado con <strong>PHP<\/strong> y <strong>JavaScript<\/strong>. Consiste en:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Panel de Administraci\u00f3n:<\/strong> Una p\u00e1gina web interactiva conectada al Arduino mediante un cable USB (usando la tecnolog\u00eda <em>Web Serial API<\/em>).<\/li>\n\n\n\n<li><strong>Base de Datos (JSON):<\/strong> Archivos locales que almacenan qu\u00e9 usuarios existen, qu\u00e9 n\u00famero de tarjeta tienen y una \u00abmatriz de permisos\u00bb que indica a qu\u00e9 puertas exactas puede entrar cada uno.<\/li>\n\n\n\n<li><strong>Historial Autom\u00e1tico:<\/strong> Un registro sobre tarjeta se ha pasado, en qu\u00e9 puerta, a qu\u00e9 hora exacta y si se le dej\u00f3 entrar o no, tambi\u00e9n en ficheros .json.<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>3. Componentes\u00a0del sistema<\/strong><\/h1>\n\n\n\n<p>Para el desarrollo del prototipo, se ha integrado una combinaci\u00f3n de hardware electr\u00f3nico y tecnolog\u00edas de software. La selecci\u00f3n de materiales se realiz\u00f3 bajo un criterio de eficiencia, aprovechando los recursos proporcionados por el equipo docente y adquiriendo \u00fanicamente los m\u00f3dulos necesarios para escalar las capacidades del sistema.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.1. Hardware aportado por la universidad:<\/h3>\n\n\n\n<p>Estos componentes forman la base electr\u00f3nica del proyecto y la interfaz f\u00edsica b\u00e1sica:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Placa Arduino Uno:<\/strong> Act\u00faa como el microcontrolador central (el \u00abcerebro\u00bb local). Se encarga de leer los sensores, accionar los dispositivos de salida y mantener la comunicaci\u00f3n serie por USB con el ordenador.<\/li>\n\n\n\n<li><strong>Display de 7 segmentos:<\/strong> Utilizado como indicador visual num\u00e9rico. Su funci\u00f3n exclusiva es mostrar al usuario qu\u00e9 puerta (del 1 al 5) est\u00e1 seleccionada en ese momento.<\/li>\n\n\n\n<li><strong>Pulsador:<\/strong> Bot\u00f3n f\u00edsico que permite al usuario navegar c\u00edclicamente por las distintas puertas disponibles. Cuenta con un sistema de software anti-rebote para garantizar transiciones limpias.<\/li>\n\n\n\n<li><strong>LEDs indicadores (Rojo y Verde):<\/strong> Actuadores lum\u00ednicos b\u00e1sicos. El LED verde se enciende cuando el servidor autoriza el acceso, y el LED rojo se activa cuando se deniega.<\/li>\n\n\n\n<li><strong>Zumbador:<\/strong> Actuador ac\u00fastico que emite diferentes frecuencias (tonos agudos para bienvenida, graves para error), proporcionando feedback sonoro al instante.<\/li>\n\n\n\n<li><strong>Protoboard y Cableado Jumper:<\/strong> Placa de pruebas y cables (macho-macho, macho-hembra) utilizados para realizar todas las conexiones el\u00e9ctricas sin necesidad de soldadura.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3.2. Hardware adquirido por el equipo:<\/h3>\n\n\n\n<p>Para dotar al sistema de sus caracter\u00edsticas de lectura e informaci\u00f3n detallada, hemos invertido en los siguientes componentes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>M\u00f3dulo Lector RFID (PN532) y Tarjetas:<\/strong> Es el sensor principal del proyecto. Utiliza comunicaci\u00f3n por radiofrecuencia para escanear el Identificador \u00danico (UID) de las tarjetas o llaveros de los usuarios que intentan acceder.<\/li>\n\n\n\n<li><strong>Pantalla LCD 16&#215;2 con adaptador I2C:<\/strong> Una pantalla de cristal l\u00edquido capaz de mostrar dos l\u00edneas de texto de 16 caracteres. Gracias al adaptador I2C, se conecta al Arduino usando solo dos pines de datos (SDA y SCL), liberando espacio para el resto de componentes. Su funci\u00f3n es saludar al usuario por su nombre o mostrar el estado del sistema (\u00abSISTEMA LISTO\u00bb, \u00abNO AUTORIZADO\u00bb).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3.3. Software y Tecnolog\u00edas utilizadas<\/h3>\n\n\n\n<p>El proyecto no funcionar\u00eda sin la capa l\u00f3gica que conecta el hardware f\u00edsico con el entorno web:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>C++ (Arduino IDE):<\/strong> Lenguaje utilizado para programar el firmware del Arduino, controlando las interrupciones de hardware, los buses de datos (I2C) y la captura de se\u00f1ales del lector.<\/li>\n\n\n\n<li><strong>JavaScript (Web Serial API):<\/strong> Tecnolog\u00eda de navegador de \u00faltima generaci\u00f3n utilizada en el frontend de la p\u00e1gina web. Act\u00faa como un \u00abpuente\u00bb, permitiendo que la web lea directamente lo que el Arduino manda por el cable USB y viceversa.<\/li>\n\n\n\n<li><strong>PHP:<\/strong> Lenguaje de backend que se ejecuta en el servidor. Es el encargado de recibir los datos, procesar la l\u00f3gica de seguridad y devolver una respuesta de autorizaci\u00f3n o bloqueo.<\/li>\n\n\n\n<li><strong>JSON (JavaScript Object Notation):<\/strong> Formato de archivo de texto estructurado utilizado como Base de Datos ligera. El proyecto usa dos archivos JSON: uno para almacenar los usuarios y sus matrices de permisos (<code>users.json<\/code>), y otro para guardar el historial inmutable de accesos (<code>logs.json<\/code>).<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>4. Funcionamiento general del sistema<\/strong><\/h1>\n\n\n\n<p>El funcionamiento del sistema es el siguiente:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>PASO 1: Encendido<\/strong><\/h2>\n\n\n\n<p>La pantalla LCD muestra \u00abSISTEMA ACTIVO\u00bb, el sistema se ha encendido.<\/p>\n\n\n\n<p>En este momento, el sistema est\u00e1 esperando la conexi\u00f3n con el equipo a trav\u00e9s del panel web.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-55-768x1024.png\" alt=\"\" class=\"wp-image-10329\" style=\"aspect-ratio:0.7500040298531522;width:341px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-55-768x1024.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-55-225x300.png 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-55-1152x1536.png 1152w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-55.png 1200w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>PASO 2: Reposo<\/strong><\/h2>\n\n\n\n<p>La pantalla LCD muestra \u00abLISTO\u00bb, el n\u00famero de puerta en el que se encuentra y \u00abPase tarjeta&#8230;\u00bb. El sistema espera instrucciones.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-50-768x1024.png\" alt=\"\" class=\"wp-image-10321\" style=\"aspect-ratio:0.7500040298531522;width:342px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-50-768x1024.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-50-225x300.png 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-50-1152x1536.png 1152w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-50.png 1200w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>PASO 3: Selecci\u00f3n de Puerta<\/strong><\/h2>\n\n\n\n<p>El usuario pulsa el bot\u00f3n f\u00edsico \u201cCambio de puerta\u201d. El display de 7 segmentos avanza indicando la puerta&nbsp;seleccionada (del 1 al 5).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-51-768x1024.png\" alt=\"\" class=\"wp-image-10322\" style=\"aspect-ratio:0.7500040298531522;width:347px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-51-768x1024.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-51-225x300.png 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-51-1152x1536.png 1152w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-51.png 1200w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>PASO 4: Identificaci\u00f3n. El usuario acerca su tarjeta RFID al lector RC522<\/strong><\/h2>\n\n\n\n<p>El usuario acerca la tarjeta. El m\u00f3dulo PN532 lee el UID y emite un pitido de validaci\u00f3n.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-52-768x1024.png\" alt=\"\" class=\"wp-image-10323\" style=\"aspect-ratio:0.7500040298531522;width:345px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-52-768x1024.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-52-225x300.png 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-52-1152x1536.png 1152w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-52.png 1200w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>PASO 5: Feedback Inmediato<\/strong><\/h2>\n\n\n\n<p><strong>Si tiene permiso:<\/strong> Se enciende el LED Verde y el LCD muestra \u201cHola\u00bb Seguido del nombre del usuario.<\/p>\n\n\n\n<p><strong>Si NO tiene permiso:<\/strong> Se enciende el LED Rojo con un pitido y el LCD muestra \u00abAcceso Denegado\u00bb<\/p>\n\n\n\n<p><strong>Si no se reconoce la tarjeta:<\/strong> Se entiende como que el usuario es desconocido, luego tambi\u00e9n se deniega el acceso y se muestra \u00abAcceso Denegado\u00bb en el LCD, adem\u00e1s del pitido.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"598\" height=\"1024\" data-id=\"10326\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-54-598x1024.png\" alt=\"\" class=\"wp-image-10326\" style=\"width:285px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-54-598x1024.png 598w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-54-175x300.png 175w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-54-768x1314.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-54-898x1536.png 898w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-54.png 935w\" sizes=\"auto, (max-width: 598px) 100vw, 598px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"685\" height=\"1024\" data-id=\"10325\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-53-685x1024.png\" alt=\"\" class=\"wp-image-10325\" style=\"width:261px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-53-685x1024.png 685w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-53-201x300.png 201w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-53-768x1148.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-53-1027x1536.png 1027w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-53.png 1070w\" sizes=\"auto, (max-width: 685px) 100vw, 685px\" \/><\/figure>\n<\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>5. Implementaci\u00f3n<\/strong><\/h1>\n\n\n\n<p>Hardware utilizado:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>M\u00f3dulo lector RFID (PN532)<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pantalla LCD 16&#215;2 (I2C) para mensajes de estado del sistema.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Display de 7 segmentos para indicar la puerta seleccionada.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pulsador para la navegaci\u00f3n\/selecci\u00f3n de puertas.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>LEDs (Verde y Rojo) como indicadores de acceso concedido o denegado.<\/li>\n<\/ul>\n\n\n\n<p>Software:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Local (Arduino\/C++): Lectura del UID de la tarjeta y actualizaci\u00f3n de los displays f\u00edsicos.\u200b<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Comunicaci\u00f3n: Enlace directo bidireccional v\u00eda puerto Serie (Web Serial API). \u200b<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Servidor (PHP + JSON): El panel web procesa los permisos, valida la base de datos de usuarios y registra un historial de accesos.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-48-768x1024.png\" alt=\"\" class=\"wp-image-10317\" style=\"aspect-ratio:0.7500040298531522;width:645px;height:auto\" srcset=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-48-768x1024.png 768w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-48-225x300.png 225w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-48-1152x1536.png 1152w, https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-48.png 1200w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>6. C\u00f3digo<\/strong><\/h1>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p>#include &lt;Wire.h&gt;<\/p>\n\n\n\n<p>#include &lt;LiquidCrystal_I2C.h&gt;<\/p>\n\n\n\n<p>#include &lt;Adafruit_PN532.h&gt;<\/p>\n\n\n\n<p>\/\/ Configuraci\u00f3n de Pines (Alineado con tu montaje f\u00edsico)<\/p>\n\n\n\n<p>#define SDA_PIN A4<\/p>\n\n\n\n<p>#define SCL_PIN A5<\/p>\n\n\n\n<p>#define LED_VERDE 3 &nbsp;\/\/ Cable verde en pin 3 (Acceso concedido)<\/p>\n\n\n\n<p>#define LED_ROJO 4 &nbsp; \/\/ Cable rojo en pin 4 (Acceso denegado)<\/p>\n\n\n\n<p>#define BUZZER_PIN 5 \/\/ Cable azul en pin 5 (Zumbador)<\/p>\n\n\n\n<p>\/\/ Configuraci\u00f3n Bot\u00f3n y Display<\/p>\n\n\n\n<p>#define BOTON_PIN 2<\/p>\n\n\n\n<p>const int pinesSegmentos[7] = {6, 7, 8, 9, 10, 11, 12}; \/\/ Segmentos: A, B, C, D, E, F, G<\/p>\n\n\n\n<p>\/\/ Mapa de segmentos para los n\u00fameros del 1 al 9 (Display C\u00e1todo Com\u00fan)<\/p>\n\n\n\n<p>const byte numeros[10][7] = {<\/p>\n\n\n\n<p>&nbsp; {1,1,1,1,1,1,0}, \/\/ 0<\/p>\n\n\n\n<p>&nbsp; {0,1,1,0,0,0,0}, \/\/ 1<\/p>\n\n\n\n<p>&nbsp; {1,1,0,1,1,0,1}, \/\/ 2<\/p>\n\n\n\n<p>&nbsp; {1,1,1,1,0,0,1}, \/\/ 3<\/p>\n\n\n\n<p>&nbsp; {0,1,1,0,0,1,1}, \/\/ 4<\/p>\n\n\n\n<p>&nbsp; {1,0,1,1,0,1,1}, \/\/ 5<\/p>\n\n\n\n<p>&nbsp; {1,0,1,1,1,1,1}, \/\/ 6<\/p>\n\n\n\n<p>&nbsp; {1,1,1,0,0,0,0}, \/\/ 7<\/p>\n\n\n\n<p>&nbsp; {1,1,1,1,1,1,1}, \/\/ 8<\/p>\n\n\n\n<p>&nbsp; {1,1,1,1,0,1,1} &nbsp;\/\/ 9<\/p>\n\n\n\n<p>};<\/p>\n\n\n\n<p>\/\/ Instancias<\/p>\n\n\n\n<p>LiquidCrystal_I2C lcd(0x27, 16, 2);&nbsp;<\/p>\n\n\n\n<p>Adafruit_PN532 nfc(SDA_PIN, SCL_PIN);<\/p>\n\n\n\n<p>\/\/ Variables de estado<\/p>\n\n\n\n<p>bool webConectada = false;<\/p>\n\n\n\n<p>volatile int puertaActual = 1;<\/p>\n\n\n\n<p>volatile bool puertaCambiada = false;<\/p>\n\n\n\n<p>\/\/ Variables para evitar lectura m\u00faltiple r\u00e1pida<\/p>\n\n\n\n<p>uint8_t lastUid[] = {0, 0, 0, 0, 0, 0, 0};<\/p>\n\n\n\n<p>uint8_t lastUidLength = 0;<\/p>\n\n\n\n<p>unsigned long lastReadTime = 0;<\/p>\n\n\n\n<p>void mostrarNumero(int num) {<\/p>\n\n\n\n<p>&nbsp; for(int i = 0; i &lt; 7; i++) {<\/p>\n\n\n\n<p>&nbsp; &nbsp; digitalWrite(pinesSegmentos[i], numeros[num][i]);<\/p>\n\n\n\n<p>&nbsp; }<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>void isrBoton() {<\/p>\n\n\n\n<p>&nbsp; static unsigned long tiempoUltimoReboteISR = 0;<\/p>\n\n\n\n<p>&nbsp; if (millis() &#8211; tiempoUltimoReboteISR &gt; 250) {<\/p>\n\n\n\n<p>&nbsp; &nbsp; puertaActual++;<\/p>\n\n\n\n<p>&nbsp; &nbsp; if (puertaActual &gt; 5) puertaActual = 1;<\/p>\n\n\n\n<p>&nbsp; &nbsp; puertaCambiada = true;<\/p>\n\n\n\n<p>&nbsp; &nbsp; tiempoUltimoReboteISR = millis();<\/p>\n\n\n\n<p>&nbsp; }<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>void setup() {<\/p>\n\n\n\n<p>&nbsp; Serial.begin(9600);<\/p>\n\n\n\n<p>&nbsp; pinMode(LED_ROJO, OUTPUT);<\/p>\n\n\n\n<p>&nbsp; pinMode(LED_VERDE, OUTPUT);<\/p>\n\n\n\n<p>&nbsp; pinMode(BUZZER_PIN, OUTPUT);<\/p>\n\n\n\n<p>&nbsp; pinMode(BOTON_PIN, INPUT_PULLUP);<\/p>\n\n\n\n<p>&nbsp; attachInterrupt(digitalPinToInterrupt(BOTON_PIN), isrBoton, FALLING);<\/p>\n\n\n\n<p>&nbsp; for(int i = 0; i &lt; 7; i++) {<\/p>\n\n\n\n<p>&nbsp; &nbsp; pinMode(pinesSegmentos[i], OUTPUT);<\/p>\n\n\n\n<p>&nbsp; }<\/p>\n\n\n\n<p>&nbsp; mostrarNumero(puertaActual);<\/p>\n\n\n\n<p>&nbsp; lcd.init();<\/p>\n\n\n\n<p>&nbsp; lcd.backlight();<\/p>\n\n\n\n<p>&nbsp; nfc.begin();<\/p>\n\n\n\n<p>&nbsp; uint32_t versiondata = nfc.getFirmwareVersion();<\/p>\n\n\n\n<p>&nbsp; if (!versiondata) {<\/p>\n\n\n\n<p>&nbsp; &nbsp; lcd.print(\u00abError PN532\u00bb);<\/p>\n\n\n\n<p>&nbsp; &nbsp; while (1);<\/p>\n\n\n\n<p>&nbsp; }<\/p>\n\n\n\n<p>&nbsp; nfc.SAMConfig();<\/p>\n\n\n\n<p>&nbsp; \/\/ Sonido breve de arranque<\/p>\n\n\n\n<p>&nbsp; tone(BUZZER_PIN, 1500, 100);<\/p>\n\n\n\n<p>&nbsp; delay(150);<\/p>\n\n\n\n<p>&nbsp; tone(BUZZER_PIN, 2000, 150);<\/p>\n\n\n\n<p>&nbsp; lcd.print(\u00abSISTEMA ACTIVO\u00bb);<\/p>\n\n\n\n<p>&nbsp; delay(1000);<\/p>\n\n\n\n<p>&nbsp; actualizarPantallaNormal();<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>void loop() {<\/p>\n\n\n\n<p>&nbsp; \/\/ 0. Revisar si la interrupci\u00f3n cambi\u00f3 la puerta<\/p>\n\n\n\n<p>&nbsp; if (puertaCambiada) {<\/p>\n\n\n\n<p>&nbsp; &nbsp; mostrarNumero(puertaActual);<\/p>\n\n\n\n<p>&nbsp; &nbsp; actualizarPantallaNormal();<\/p>\n\n\n\n<p>&nbsp; &nbsp; puertaCambiada = false;<\/p>\n\n\n\n<p>&nbsp; }<\/p>\n\n\n\n<p>&nbsp; \/\/ 1. Escuchar \u00f3rdenes de la WEB (Autorizaci\u00f3n Remota)<\/p>\n\n\n\n<p>&nbsp; if (Serial.available() &gt; 0) {<\/p>\n\n\n\n<p>&nbsp; &nbsp; String comando = Serial.readStringUntil(&#8216;\\n&#8217;);<\/p>\n\n\n\n<p>&nbsp; &nbsp; comando.trim();<\/p>\n\n\n\n<p>&nbsp; &nbsp; if (comando == \u00abWEB_OK\u00bb) {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; if (!webConectada) {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; \/\/ Pitido de conexi\u00f3n web exitosa (agudo y r\u00e1pido)<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; tone(BUZZER_PIN, 2500, 100);<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; delay(150);<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp; tone(BUZZER_PIN, 3000, 150);<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; }<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; webConectada = true;<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; actualizarPantallaNormal();<\/p>\n\n\n\n<p>&nbsp; &nbsp; }<\/p>\n\n\n\n<p>&nbsp; &nbsp; else if (comando.startsWith(\u00abACCESS_OK:\u00bb)) {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; String nombre = comando.substring(10);<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; ejecutarAccesoConcedido(nombre);<\/p>\n\n\n\n<p>&nbsp; &nbsp; }<\/p>\n\n\n\n<p>&nbsp; &nbsp; else if (comando == \u00abACCESS_DENIED\u00bb) {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; ejecutarAccesoDenegado();<\/p>\n\n\n\n<p>&nbsp; &nbsp; }<\/p>\n\n\n\n<p>&nbsp; }<\/p>\n\n\n\n<p>&nbsp; \/\/ 2. Lectura de tarjeta y env\u00edo a la WEB<\/p>\n\n\n\n<p>&nbsp; uint8_t success;<\/p>\n\n\n\n<p>&nbsp; uint8_t uid[] = {0, 0, 0, 0, 0, 0, 0};<\/p>\n\n\n\n<p>&nbsp; uint8_t uidLength;<\/p>\n\n\n\n<p>&nbsp; success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &amp;uidLength, 50);<\/p>\n\n\n\n<p>&nbsp; if (success) {<\/p>\n\n\n\n<p>&nbsp; &nbsp; if (millis() &#8211; lastReadTime &lt; 3000 &amp;&amp; compararUID(uid, uidLength, lastUid, lastUidLength)) {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; &nbsp;return;&nbsp;<\/p>\n\n\n\n<p>&nbsp; &nbsp; }<\/p>\n\n\n\n<p>&nbsp; &nbsp; for (uint8_t i = 0; i &lt; uidLength; i++) { lastUid[i] = uid[i]; }<\/p>\n\n\n\n<p>&nbsp; &nbsp; lastUidLength = uidLength;<\/p>\n\n\n\n<p>&nbsp; &nbsp; lastReadTime = millis();<\/p>\n\n\n\n<p>&nbsp; &nbsp; \/\/ Notificar a la web<\/p>\n\n\n\n<p>&nbsp; &nbsp; Serial.print(\u00abCARD_READ:\u00bb);<\/p>\n\n\n\n<p>&nbsp; &nbsp; for (uint8_t i = 0; i &lt; uidLength; i++) {<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; if (uid[i] &lt; 0x10) Serial.print(\u00ab0\u00bb);<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; Serial.print(uid[i], HEX);&nbsp;<\/p>\n\n\n\n<p>&nbsp; &nbsp; &nbsp; if (i &lt; uidLength &#8211; 1) Serial.print(\u00ab-\u00ab);<\/p>\n\n\n\n<p>&nbsp; &nbsp; }<\/p>\n\n\n\n<p>&nbsp; &nbsp; Serial.print(\u00ab|DOOR:\u00bb);<\/p>\n\n\n\n<p>&nbsp; &nbsp; Serial.println(puertaActual);<\/p>\n\n\n\n<p>&nbsp; &nbsp; lcd.clear();<\/p>\n\n\n\n<p>&nbsp; &nbsp; lcd.print(\u00abVALIDANDO&#8230;\u00bb);<\/p>\n\n\n\n<p>&nbsp; }<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>void ejecutarAccesoConcedido(String nombre) {<\/p>\n\n\n\n<p>&nbsp; lcd.clear();<\/p>\n\n\n\n<p>&nbsp; lcd.print(\u00abHOLA,\u00bb);<\/p>\n\n\n\n<p>&nbsp; lcd.setCursor(0, 1);<\/p>\n\n\n\n<p>&nbsp; lcd.print(nombre);<\/p>\n\n\n\n<p>&nbsp; digitalWrite(LED_VERDE, HIGH);<\/p>\n\n\n\n<p>&nbsp; tone(BUZZER_PIN, 1800, 200); delay(250); tone(BUZZER_PIN, 2300, 400);<\/p>\n\n\n\n<p>&nbsp; delay(2000);<\/p>\n\n\n\n<p>&nbsp; digitalWrite(LED_VERDE, LOW);<\/p>\n\n\n\n<p>&nbsp; actualizarPantallaNormal();<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>void ejecutarAccesoDenegado() {<\/p>\n\n\n\n<p>&nbsp; lcd.clear();<\/p>\n\n\n\n<p>&nbsp; lcd.print(\u00abACCESO DENEGADO\u00bb);<\/p>\n\n\n\n<p>&nbsp; lcd.setCursor(0, 1);<\/p>\n\n\n\n<p>&nbsp; lcd.print(\u00abNO AUTORIZADO\u00bb);<\/p>\n\n\n\n<p>&nbsp; digitalWrite(LED_ROJO, HIGH);<\/p>\n\n\n\n<p>&nbsp; tone(BUZZER_PIN, 300, 600);<\/p>\n\n\n\n<p>&nbsp; delay(2000);<\/p>\n\n\n\n<p>&nbsp; digitalWrite(LED_ROJO, LOW);<\/p>\n\n\n\n<p>&nbsp; actualizarPantallaNormal();<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>bool compararUID(uint8_t *u1, uint8_t l1, uint8_t *u2, uint8_t l2) {<\/p>\n\n\n\n<p>&nbsp; if (l1 != l2) return false;<\/p>\n\n\n\n<p>&nbsp; for (uint8_t i = 0; i &lt; l1; i++) {<\/p>\n\n\n\n<p>&nbsp; &nbsp; if (u1[i] != u2[i]) return false;<\/p>\n\n\n\n<p>&nbsp; }<\/p>\n\n\n\n<p>&nbsp; return true;<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>void actualizarPantallaNormal() {<\/p>\n\n\n\n<p>&nbsp; lcd.clear();<\/p>\n\n\n\n<p>&nbsp; if (webConectada) {<\/p>\n\n\n\n<p>&nbsp; &nbsp; lcd.print(\u00abONLINE &nbsp;P:\u00bb);<\/p>\n\n\n\n<p>&nbsp; } else {<\/p>\n\n\n\n<p>&nbsp; &nbsp; lcd.print(\u00abLISTO &nbsp; P:\u00bb);<\/p>\n\n\n\n<p>&nbsp; }<\/p>\n\n\n\n<p>&nbsp; lcd.print(puertaActual);<\/p>\n\n\n\n<p>&nbsp; lcd.setCursor(0, 1);<\/p>\n\n\n\n<p>&nbsp; lcd.print(\u00abPase tarjeta&#8230;\u00bb);<\/p>\n\n\n\n<p>}<\/p>\n<\/div><\/div>\n\n\n\n<h1 class=\"wp-block-heading\">7. Funcionamiento<\/h1>\n\n\n\n<p>En el siguiente v\u00eddeo, se refleja el funcionamiento del sistema completo.<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-rich is-provider-gestor-del-servicio wp-block-embed-gestor-del-servicio\"><div class=\"wp-block-embed__wrapper\">\n<div style=\"width: 640px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-10101-1\" width=\"640\" height=\"360\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/WhatsApp-Video-2026-05-08-at-14.50.43-1.mp4?_=1\" \/><a href=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/WhatsApp-Video-2026-05-08-at-14.50.43-1.mp4\">https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/WhatsApp-Video-2026-05-08-at-14.50.43-1.mp4<\/a><\/video><\/div>\n<\/div><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>8. Reparto de tareas<\/strong><\/h1>\n\n\n\n<p>Para maximizar la eficiencia y cumplir con los plazos de entrega, el proyecto se dividi\u00f3 en m\u00f3dulos. Todos los miembros participaron en el dise\u00f1o conceptual, pero la carga t\u00e9cnica se distribuy\u00f3 equitativamente seg\u00fan las fortalezas del grupo:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Miembro del Equipo<\/strong><\/td><td><strong>Tareas Asignadas<\/strong><\/td><\/tr><\/thead><tbody><tr><td><strong>V\u00edctor<\/strong><\/td><td>Desarrollo del c\u00f3digo en C++ (Arduino). Integraci\u00f3n de las librer\u00edas y control del display de 7 segmentos. Configuraci\u00f3n de la comunicaci\u00f3n Serial.<\/td><\/tr><tr><td><strong style=\"white-space: normal\">Diego<\/strong><\/td><td>Dise\u00f1o de la interfaz gr\u00e1fica del panel de administraci\u00f3n (Access). Implementaci\u00f3n de la <em>Web Serial API<\/em> en JavaScript.<\/td><\/tr><tr><td><strong>Marcos<\/strong><\/td><td>Programaci\u00f3n de los scripts en PHP (crear, editar, borrar usuarios y permisos). Estructuraci\u00f3n de la base de datos en formato JSON.<\/td><\/tr><tr><td><strong>Javier<\/strong><\/td><td>Montaje del circuito f\u00edsico en protoboard. Dise\u00f1o del esquema de conexiones, cableado de actuadores (LCD, LEDs, Buzzer) y gesti\u00f3n de energ\u00eda.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>9. Presupuesto y coste de materiales<\/strong><\/h1>\n\n\n\n<p>El proyecto se ha desarrollado bajo una estricta optimizaci\u00f3n de recursos, aprovechando el material did\u00e1ctico existente para reducir la inversi\u00f3n econ\u00f3mica, demostrando viabilidad para prototipado r\u00e1pido de bajo coste:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Componente<\/strong><\/td><td><strong>Proveedor \/ Origen<\/strong><\/td><td><strong>Coste (\u20ac)<\/strong><\/td><\/tr><\/thead><tbody><tr><td>Placa Arduino Uno + Cable USB<\/td><td>Laboratorio (Centro)<\/td><td>5,59 \u20ac<\/td><\/tr><tr><td>Electr\u00f3nica base (LEDs, Zumbador, Pulsador)<\/td><td>Laboratorio (Centro)<\/td><td>6,51 \u20ac<\/td><\/tr><tr><td>Display 7 Segmentos + Resistencias<\/td><td>Laboratorio (Centro)<\/td><td>1,17 \u20ac<\/td><\/tr><tr><td>Protoboard y Cables Jumper (M-M, M-H)<\/td><td>Laboratorio (Centro)<\/td><td>3,87 \u20ac<\/td><\/tr><tr><td>M\u00f3dulo Lector RFID PN532 + Tarjetas<\/td><td>Adquisici\u00f3n del Grupo<\/td><td>3,19 \u20ac<\/td><\/tr><tr><td>Pantalla LCD 16&#215;2 con adaptador I2C<\/td><td>Adquisici\u00f3n del Grupo<\/td><td>2,46 \u20ac<\/td><\/tr><tr><td><strong>TOTAL INVERSI\u00d3N<\/strong><\/td><td><\/td><td><strong> 22,79 \u20ac<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>10. Problemas encontrados y soluciones<\/strong><\/h1>\n\n\n\n<p>Durante la fase de desarrollo e integraci\u00f3n, el equipo se enfrent\u00f3 a varios retos t\u00e9cnicos que requirieron redise\u00f1os en el c\u00f3digo:<\/p>\n\n\n\n<p>\u2022<strong>Saturaci\u00f3n&nbsp;del puerto&nbsp;Serie: <\/strong>Solo se puede interactuar con el dispositivo Arduino a trav\u00e9s de un puerto a la vez.<\/p>\n\n\n\n<p>\u2022<strong>Varios de los lectores no funcionaron: <\/strong>Los componentes RDM6300 y MFRC-522 que intentamos utilizar en el proyecto resultaron incompatibles o su configuraci\u00f3n no result\u00f3 apropiada para el desarrollo de este prototipo, por lo que procedimos a usar el PN532 como lector RFID.<\/p>\n\n\n\n<p>\u2022<strong>La pantalla original no era I2C:<\/strong> Se trat\u00f3 de conectar aun as\u00ed, pero al no incorporar el m\u00f3dulo I2C, no dispon\u00edamos de pines suficientes junto con el resto de componentes para la maqueta.<\/p>\n\n\n\n<p>\u2022<strong>El sistema es inestable debido a enlaces entre cables (Bot\u00f3n RESET):<\/strong> Ya que hemos tratado de reutilizar la mayor parte de nuestro material de trabajo, no hemos realizado soldaduras ni utilizado cables diferentes a los jumpers incluidos o aportados por el equipo, lo que deriva en algunos casos en errores m\u00ednimos que se evitar\u00edan en caso de realizar estas soldaduras. Es por ello que se incluye el bot\u00f3n de reset, encargado de restablecer el sistema en este tipo de eventos.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>11. Casos de uso<\/strong><\/h1>\n\n\n\n<p>La arquitectura escalable de este proyecto permite su implantaci\u00f3n directa en diversos sectores comerciales, entre ellos los siguientes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Sector Hotelero:<\/strong> Gesti\u00f3n centralizada desde recepci\u00f3n de las tarjetas de los hu\u00e9spedes, habilitando el acceso a sus habitaciones o zonas comunes (piscina, gimnasio) y anul\u00e1ndolas autom\u00e1ticamente al hacer el check-out sin necesidad de manipular las cerraduras.<\/li>\n\n\n\n<li><strong>Centros Deportivos:<\/strong> Torno \u00fanico que permite al sistema derivar al usuario a diferentes instalaciones seg\u00fan la cuota que est\u00e9 pagando (acceso general, spa, pistas de p\u00e1del).<\/li>\n\n\n\n<li><strong>Entornos Corporativos y Laboratorios:<\/strong> Sistema de acceso \u00abFail-Secure\u00bb que restringe el paso a zonas de servidores o material peligroso, manteniendo un registro horario detallado de las entradas y salidas de cada empleado para auditor\u00edas.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>1. Objetivo del proyecto El objetivo principal del proyecto es dise\u00f1ar, desarrollar e implementar un sistema inteligente de control de acceso f\u00edsico que permita gestionar la entrada a m\u00faltiples instalaciones o salas utilizando un&#46;&#46;&#46;<\/p>\n","protected":false},"author":330,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-10101","post","type-post","status-publish","format-standard","hentry","category-proyectos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Sistema Inteligente de Control de Acceso Multipuerta - Proyectos con Arduino.<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/sistema-inteligente-de-control-de-acceso-multipuerta\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sistema Inteligente de Control de Acceso Multipuerta - Proyectos con Arduino.\" \/>\n<meta property=\"og:description\" content=\"1. Objetivo del proyecto El objetivo principal del proyecto es dise\u00f1ar, desarrollar e implementar un sistema inteligente de control de acceso f\u00edsico que permita gestionar la entrada a m\u00faltiples instalaciones o salas utilizando un&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/sistema-inteligente-de-control-de-acceso-multipuerta\/\" \/>\n<meta property=\"og:site_name\" content=\"Proyectos con Arduino.\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-07T14:19:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-08T13:08:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-55.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"1600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"seytrma2526g15\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"seytrma2526g15\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/sistema-inteligente-de-control-de-acceso-multipuerta\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/sistema-inteligente-de-control-de-acceso-multipuerta\\\/\"},\"author\":{\"name\":\"seytrma2526g15\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/ef63dea051c687fc3ce5374fde39253e\"},\"headline\":\"Sistema Inteligente de Control de Acceso Multipuerta\",\"datePublished\":\"2026-05-07T14:19:56+00:00\",\"dateModified\":\"2026-05-08T13:08:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/sistema-inteligente-de-control-de-acceso-multipuerta\\\/\"},\"wordCount\":2769,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/sistema-inteligente-de-control-de-acceso-multipuerta\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2026\\\/05\\\/image-55-768x1024.png\",\"articleSection\":[\"Proyectos\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/sistema-inteligente-de-control-de-acceso-multipuerta\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/sistema-inteligente-de-control-de-acceso-multipuerta\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/sistema-inteligente-de-control-de-acceso-multipuerta\\\/\",\"name\":\"Sistema Inteligente de Control de Acceso Multipuerta - Proyectos con Arduino.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/sistema-inteligente-de-control-de-acceso-multipuerta\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/sistema-inteligente-de-control-de-acceso-multipuerta\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2026\\\/05\\\/image-55-768x1024.png\",\"datePublished\":\"2026-05-07T14:19:56+00:00\",\"dateModified\":\"2026-05-08T13:08:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/sistema-inteligente-de-control-de-acceso-multipuerta\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/sistema-inteligente-de-control-de-acceso-multipuerta\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/sistema-inteligente-de-control-de-acceso-multipuerta\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2026\\\/05\\\/image-55.png\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2026\\\/05\\\/image-55.png\",\"width\":1200,\"height\":1600},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/sistema-inteligente-de-control-de-acceso-multipuerta\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sistema Inteligente de Control de Acceso Multipuerta\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#website\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\",\"name\":\"Proyectos con Arduino.\",\"description\":\"Blog de proyectos de Arduino de alumnos de la URJC\",\"publisher\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#organization\",\"name\":\"Universidad Rey Juan Carlos\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/05\\\/logourjc-1.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2022\\\/05\\\/logourjc-1.jpg\",\"width\":745,\"height\":288,\"caption\":\"Universidad Rey Juan Carlos\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/#\\\/schema\\\/person\\\/ef63dea051c687fc3ce5374fde39253e\",\"name\":\"seytrma2526g15\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/81b7c881070ea3045c6bfcff5d53dbb9b40e0cfb37f1c39e5801fac32078bcb8?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/81b7c881070ea3045c6bfcff5d53dbb9b40e0cfb37f1c39e5801fac32078bcb8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/81b7c881070ea3045c6bfcff5d53dbb9b40e0cfb37f1c39e5801fac32078bcb8?s=96&d=mm&r=g\",\"caption\":\"seytrma2526g15\"},\"url\":\"https:\\\/\\\/blogs.etsii.urjc.es\\\/dseytr\\\/author\\\/seytrma2526g15\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Sistema Inteligente de Control de Acceso Multipuerta - Proyectos con Arduino.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.etsii.urjc.es\/dseytr\/sistema-inteligente-de-control-de-acceso-multipuerta\/","og_locale":"es_ES","og_type":"article","og_title":"Sistema Inteligente de Control de Acceso Multipuerta - Proyectos con Arduino.","og_description":"1. Objetivo del proyecto El objetivo principal del proyecto es dise\u00f1ar, desarrollar e implementar un sistema inteligente de control de acceso f\u00edsico que permita gestionar la entrada a m\u00faltiples instalaciones o salas utilizando un&#46;&#46;&#46;","og_url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/sistema-inteligente-de-control-de-acceso-multipuerta\/","og_site_name":"Proyectos con Arduino.","article_published_time":"2026-05-07T14:19:56+00:00","article_modified_time":"2026-05-08T13:08:11+00:00","og_image":[{"width":1200,"height":1600,"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-55.png","type":"image\/png"}],"author":"seytrma2526g15","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"seytrma2526g15","Tiempo de lectura":"14 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/sistema-inteligente-de-control-de-acceso-multipuerta\/#article","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/sistema-inteligente-de-control-de-acceso-multipuerta\/"},"author":{"name":"seytrma2526g15","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/ef63dea051c687fc3ce5374fde39253e"},"headline":"Sistema Inteligente de Control de Acceso Multipuerta","datePublished":"2026-05-07T14:19:56+00:00","dateModified":"2026-05-08T13:08:11+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/sistema-inteligente-de-control-de-acceso-multipuerta\/"},"wordCount":2769,"commentCount":0,"publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/sistema-inteligente-de-control-de-acceso-multipuerta\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-55-768x1024.png","articleSection":["Proyectos"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/sistema-inteligente-de-control-de-acceso-multipuerta\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/sistema-inteligente-de-control-de-acceso-multipuerta\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/sistema-inteligente-de-control-de-acceso-multipuerta\/","name":"Sistema Inteligente de Control de Acceso Multipuerta - Proyectos con Arduino.","isPartOf":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/sistema-inteligente-de-control-de-acceso-multipuerta\/#primaryimage"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/sistema-inteligente-de-control-de-acceso-multipuerta\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-55-768x1024.png","datePublished":"2026-05-07T14:19:56+00:00","dateModified":"2026-05-08T13:08:11+00:00","breadcrumb":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/sistema-inteligente-de-control-de-acceso-multipuerta\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.etsii.urjc.es\/dseytr\/sistema-inteligente-de-control-de-acceso-multipuerta\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/sistema-inteligente-de-control-de-acceso-multipuerta\/#primaryimage","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-55.png","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2026\/05\/image-55.png","width":1200,"height":1600},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/sistema-inteligente-de-control-de-acceso-multipuerta\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/blogs.etsii.urjc.es\/dseytr\/"},{"@type":"ListItem","position":2,"name":"Sistema Inteligente de Control de Acceso Multipuerta"}]},{"@type":"WebSite","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#website","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/","name":"Proyectos con Arduino.","description":"Blog de proyectos de Arduino de alumnos de la URJC","publisher":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.etsii.urjc.es\/dseytr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#organization","name":"Universidad Rey Juan Carlos","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/logo\/image\/","url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/05\/logourjc-1.jpg","contentUrl":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-content\/uploads\/sites\/8\/2022\/05\/logourjc-1.jpg","width":745,"height":288,"caption":"Universidad Rey Juan Carlos"},"image":{"@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/blogs.etsii.urjc.es\/dseytr\/#\/schema\/person\/ef63dea051c687fc3ce5374fde39253e","name":"seytrma2526g15","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/81b7c881070ea3045c6bfcff5d53dbb9b40e0cfb37f1c39e5801fac32078bcb8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/81b7c881070ea3045c6bfcff5d53dbb9b40e0cfb37f1c39e5801fac32078bcb8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/81b7c881070ea3045c6bfcff5d53dbb9b40e0cfb37f1c39e5801fac32078bcb8?s=96&d=mm&r=g","caption":"seytrma2526g15"},"url":"https:\/\/blogs.etsii.urjc.es\/dseytr\/author\/seytrma2526g15\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/10101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/users\/330"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/comments?post=10101"}],"version-history":[{"count":26,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/10101\/revisions"}],"predecessor-version":[{"id":10525,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/posts\/10101\/revisions\/10525"}],"wp:attachment":[{"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/media?parent=10101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/categories?post=10101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.etsii.urjc.es\/dseytr\/wp-json\/wp\/v2\/tags?post=10101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}