Capítulo 2
Diseño del control de ingreso
La primera etapa del proyecto consiste en el desarrollo del sistema de control de
ingreso con la tecnología RFID al Tecnoparque nodo Ocaña. Se le da una mayor prioridad a
la instalación de este sistema debido a la urgencia de agilizar el proceso ingreso del personal
administrativo y de garantizar la seguridad interior, restringiendo el ingreso a las personas
sin autorización.
Actualmente no existe ningún sistema de apertura en la puerta principal (véase Figura
21), por lo cual las personas que quieran ingresar deben esperar a que haya alguien en el
interior que se dé cuenta que hay personas fuera del lugar esperando que les concedan el
acceso. Proceso que se vuelve muy tedioso para los administrativos que se encuentran
ocupados y más alejados de la puerta, en algunas horas del día hay una persona en constante
supervisión del acceso principal, pero es una carga extra para esa persona, la cual tiene otros
deberes que realizar.
Figura 1. Acceso principal. Fuente: autor.
Identificación y selección de los componentes electrónicos del sistema. Cabe
aclarar que debido a que el Tecnoparque es un lugar de innovación tecnológica y cuenta con
laboratorios relacionados al tema, y además con una gran cantidad de componentes tanto
electrónicos, como mecánicos y computacionales. La lista de los posibles componentes
necesarios para utilizar en la implementación del sistema se veía limitada por los
componentes con los que ya contaba el Tecnoparque, los cuales eran los únicos que tenía
como opción de utilizar para realizar el prototipo.
El controlador seleccionado fue un Arduino uno, el cual se encargará de la
comunicación con el lector RFID y realizar el respectivo análisis del código para dar las
ordenes necesarias que permitan o no el acceso. Es seleccionado debido a su sencillez a la
hora de trabajar, su tamaño adecuado para no ocupar mucho espacio y el soporte que tiene
con una amplia comunidad de programadores en todas partes.
En la tabla 4 se pueden ver las características del controlador Arduino uno.
Tabla 1
Características de hardware de la tarjeta Arduino uno
Microcontrolador ATmega328P
Voltaje de operación 5V
Voltaje de alimentación (recomendado) 7-12V
Voltaje de alimentación (límite) 6-20V
Pines digitales I/O 14 (6 PWM)
Pines de entrada análoga 6
Corriente directa en pines I/O 20 mA
Corriente directa en el pin de 3,3 V 50 mA
Memoria flash 32 KB (0.5 KB para el arranque)
SRAM 2 KB
EEPROM 1 KB
Velocidad de reloj 16 MHz
LED_BUILTIN 13
Largo 68.6 mm
Ancho 53.4 mm
Peso 25 g
Fuente: Arduino.
Para realizar las lecturas de los códigos de las etiquetas RFID que se darán a cada
administrativo del Tecnoparque se recurrió al módulo RFID de lectura y escritura parallax
28440. Este cuenta con una buena compatibilidad con Arduino y contiene una gran cantidad
de posibilidades y aplicaciones, ya que no solo permite realizar lectura de los tags, también
proporciona la posibilidad de escritura en ellos. Esto para el caso en que en el futuro se quiera
extender más el proyecto. Además, cuenta con un buen rango de distancia de lectura de casi
8 centímetros lo necesario para poder ser ubicarlo detrás de la puerta de ingreso, lo que
proporciona una mayor seguridad, ya que evita que otras personas puedan entrar en contacto
con el sistema. Es considerado un módulo de bajo costo lo que proporciona un mayor interés
y accesibilidad.
Posee 4 pines de los cuales dos de ellos son alimentación y tierra, los otros dos pines
permiten la comunicación con el controlador utilizado. El tipo de comunicación con el
controlador se hace con el protocolo UART, el cual realiza la transmisión bits a bits o también
llamada serie.
Para conectarlo con el Arduino los pines de comunicación del módulo deben ser
conectados a los pines RX y TX del Arduino (véase Figura 22).
En la tabla 5 se pueden observar las características del módulo RFID parallax.
Tabla 2
Características del módulo lectura/escritura RFID parallax 28440
Voltaje de alimentación 5V
Consumo de corriente (inactivo) <10 mA
Consumo de corriente (activo) 100 mA – 200mA
Comunicación Serie asíncrona
Velocidad comunicación 9600 bps
Nivel TTL 5V
Cantidad de bits 8 datos
Largo 8.26 cm
Ancho 6.2 cm
Fuente: Parallax.
Figura 2. Conexión módulo RFID y Arduino uno. Fuente: Autor
En el Tecnoparque están ingresando constantemente personas diferentes a los
administrativos. Esas personas son llamadas “aprendices” por parte de los administradores,
denominadas como aprendices pueden ser estudiantes universitarios, estudiantes de colegios
o simplemente cualquier persona con la necesidad de realizar un proyecto tecnológico.
Debido a que pueden ser muchas las personas con la necesidad de ingresar y sin ninguna
relación directa con el Tecnoparque, no se les puede proporcionar tarjetas de ingreso RFID.
Por lo cual se introdujo un módulo bluetooth al sistema para poder permitir el ingreso desde
cualquier lugar al interior del Tecnoparque. Así se evita que el sistema no sea ineficiente
cuando los que deseen ingresar no sean los administrativos, sino lo aprendices, ya que, evita
que haya una persona en contacto directo con la puerta encargada de permitir el acceso a
ellos.
El módulo bluetooth seleccionado fue el hc-06 ya que contienen las características
necesarias en la programación, es económico, funcionan solo como esclavo y presenta solo
4 pines lo que facilita su conexión. Dos pines de alimentación y dos para realizar la
comunicación serial con el controlador (véase Figura 23).
En la tabla 6 se pueden observar las características del módulo Bluetooth HC-06.
Tabla 3
Características del módulo Bluetooth HC-06
Voltaje de alimentación 3.3V – 6V
Corriente modo sleep <1 mA
Corriente de operación <40 mA
Velocidad comunicación Ajustable (1200bps–115200bps)
Largo 8.26 cm
Ancho 6.2 cm
Fuente: [Link]
Figura 3. Conexión HC-06 y Arduino uno. Fuente: [Link]
Con el fin de ir observado los administrativos que ingresan en el Tecnoparque se
implementó el módulo wifi ESP8266 el cual tienen una gran cantidad de funciones que
permiten ser muy útiles a la hora de programar, una de esas funciones utilizadas, fue
programarlo en forma de servidor, el cual permite la opción de crear un servidor de área local
dentro del módulo, y dentro de ese servidor incluir todo tipo de información necesaria, en
este caso la de poder visualizar los códigos de los administrativos que van ingresando. Cabe
aclarar que solo fue utilizado para mostrar el código y que eso también era posible
implementado una pantalla LCD, pero esta tiene el inconveniente de que debe ser instalada
en la puerta o el lugar donde iba hacer implementado el sistema o si se desea instalar en otro
lugar tiene el problema de demandar una gran cantidad de cables, por lo cual se decidió
implementar otro dispositivo para verlo de forma remota, además, el modulo tiene la facilidad
de dejar el proyecto abierto en caso de querer anexar más configuraciones.
En la tabla 7 se pueden observar las características del módulo ESP8266 y en la Figura
24 la conexión necesaria del módulo con el programador.
Tabla 4
Características del módulo ESP8266
CPU Tensilica L106 32-bit
Voltaje de operación 3.3V – 3.6V
Pines digitales I/O 2 (2 PWM)
Corriente de operación 80 mA
Temperatura de operación -40ºC y 125ºC
Fuente: [Link]
Figura [Link]ón ESP8266 con programador. Fuente: [Link]
Como ya se mencionó, los componentes electrónicos que se van a utilizar en el
sistema, solo son componentes con los que ya cuenta el Tecnoparque, por tal razón, para el
sistema de apertura de la puerta se implementó un motor DC (véase Figura 25) de carro
(motor de bloqueo central ultra), el cual va a ir conectado directamente a la chapa para halar
el pestillo y abrir la puerta. Fue seleccionado debido al mecanismo con el que cuenta, el cual
convierte el movimiento circular a horizontal, el necesario para conectarlo directamente el
pestillo de la puerta. El motor es alimentado a 9 voltios por lo que es necesario utilizar una
etapa de potencia.
Figura 5. Motor DC. Fuente: [Link].
En la etapa de potencia necesaria para controlar el motor se seleccionó un módulo de
dos relés, debido a su facilidad de manejo para realizar las conexiones y su pequeño tamaño,
el cual evita que sea tediosa su implementación. Gracias a que es controlado por una entrada
TTL, hace que sea adecuado y fácil de controlar con el Arduino ya seleccionado.
En la tabla 8 se pueden observar las características del módulo de relés.
Tabla 5
Características del módulo de relés.
Protección Optocopladores
Voltaje de alimentación 5V
Voltaje de control 3.3V – 9V
Voltaje de salida 250 Vca o 30 Vdc
Corriente de salida 10 A
Dimensiones 50mm x 39mm x 17mm
Fuente: [Link]
Después de analizar las características y conexiones de todos los componentes
seleccionados, se procede hacer el esquema general del circuito (véase Figura 26), con el fin
de analizar los pines que serán usados en el controlador.
Figura 6. Esquema general de la electrónica, los módulos del RFID, wifi, bluetooth y de relé conectados
al Arduino. Fuente: Autor.
Desarrollo de la programación. La programación para el lector RFID es divida en
dos partes, primero se realiza un programa simple que se encarga solo de realizar las lecturas
de los códigos que contienen las tarjetas entregadas al personal administrativo.
La programación hecha en Arduino (véase Figura 27) se usó librería
“NeoSWSerial.h” para aumentar la cantidad de puertos serial, ya que el Arduino uno solo
cuenta un puerto de comunicación serial y dentro de los componentes que contiene el circuito
electrónico son tres los cuales envían información por medio de ese puerto. Se usó esa librería
debido a que, a diferencias de las otras que también crean puertos serial virtuales, esta
respondía más rápido con la lectura de los códigos RFID.
Figura 7. Programa Arduino para las lecturas de los códigos de las tarjetas RFI. Fuente. Autor.
Luego de tener los códigos de las tarjetas RFID, son agregados en la programación
general (véase Figura 28) que contiene todas las comparaciones y funciones para realizar la
identificación y permitir el ingreso del personal. (Véase el Apéndice A, para observar
detalladamente el código completo y diagrama de flujo).
Figura [Link] la imagen de la izquierda se observan los códigos de las tarjetas RFID y en la derecha las
comparaciones de los códigos con el código leído en el momento de pasar por el lector una tarjeta.
Fuente. Autor.
El módulo bluetooth fue otro componente importante que debía ser ingresado en la
programación para permitir el ingreso desde una zona alejada a la puerta principal. Antes de
ingresar el módulo bluetooth a la programación principal fue necesario realizar algunos
cambios dentro de su configuración. Como sabe la mayoría de personas que han manejado
ese módulo, cuenta con una contraseña de vinculación muy sencilla que viene
predeterminada de fábrica. Una persona con ese conocimiento se le iba facilitar vincularse al
él, para luego poder realizar el respectivo control de ingreso sin autorización, por lo cual fue
necesario realizar un cambio de contraseña de vinculación del módulo (véase Figura 29),
además, se cambió el nombre para que los funcionarios pudieran ubicarlo rápidamente.
Figura 9. En la figura de la izquierda se observa la programación utilizada para cambiar la configuración
del módulo bluetooth y en la de la derecha una capture del celular vinculando dicho módulo. Fuente:
Autor.
Para evitar problemas de lectura de los puertos seriales virtuales, debido a que ambos
se encuentran leyendo constantemente, ya sea, el puerto conectado al lector RFID o el puerto
conectado al módulo bluetooth fue necesario utilizar la función “listen” la cual se encarga de
separar las lecturas de ambos puertos y permitir recibir la información de un puerto serial a
la vez (véase Figura 30).
Figura 10. Parte del código general encargado de realizar el control de ingreso por medio del módulo
bluetooth. Fuente: Autor.
La aplicación necesaria para comunicar los celulares con el módulo bluetooth y
permitir el ingreso de las personas fue realizada en app inventor (véase Figura 31). Ya se
tenía un previo conocimiento de ese entorno de desarrollo por cual facilito la creación de la
APK necesaria para instalar en los celulares de los administrativos.
Figura 11. Aplicación instalada en los celulares para permitir el ingreso del personal.
El módulo wifi el componente electrónico utilizado para observar el código del
personal administrativo que va ingresando al Tecnoparque es programado
independientemente, debido a que este contiene un microcontrolador que le permite ser
programado sin necesidad de tarjetas externas. El módulo contiene diferentes métodos de
programación, desde comandos AT por medio de Arduino hasta programación con leguaje
Lua.
En este caso fue programado por medio de Arduino IDE, ya que, es el entorno con el
que más me encuentro familiarizado. Previamente se debe tener instalado el plugin del
ESP8266 en el Arduino IDE en la cual se encuentran todas las tarjetas del módulo wifi
ESP8266 (véase Figura 32).
Figura 12. Plugin del ESP8266, donde se pueden observar todas las tarjetas soportadas por la librería.
Fuente: Autor.
Para el desarrollo de la programación del módulo wifi las características más
importantes a tener en cuenta fueron las del modo de operación del módulo, el usuario y
contraseña de la red a la que se iba a conectar, el contenido de la página web y la lectura de
los puertos seriales, el cuál iba hacer el medio de comunicación del Arduino uno usado en el
control de ingreso con el modulo wifi ESP8266.
Se incluyen dos librerías, de las cuales, una permite usar el módulo wifi ESP8266 y
conectarlo a una señal wifi de área local. La otra librería define el modo de operación, en este
caso el módulo wifi va hacer usado como servidor al cual se le van a conectar los clientes
que van a poder observar el código del personal que ingresan en la página web.
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
Para realizar la conexión del módulo wifi a la red de área local con la que cuenta el
Tecnoparque se realizó de la siguiente manera.
char ssid [] = “TECNO_2”
char password [] = “1091658551”
Se declararon algunas constantes que son usadas en las funciones del código, Además,
se inicial el puerto 80 por el cual va hacer la comunicación del servidor con los clientes.
const int buttonPin = 2;
int state=0;
int val = 0;
char code[11]; //eliminar para ver que recibe
int bytesread = 0;
ESP8266WebServer server (80);
Luego se definen las funciones con el código en HTML que se encargaran de mostrar
los códigos de las tarjetas RFID en la página web. Se ven dos funciones, en la cual, una
permite observar el código cuando se ingresa la IP del módulo wifi. La otra función es para
indicar que la pagina cargada con esa IP ha sido errónea.
void handleRequest() { //Función cuando se ingresa la IP asignada por el modem
String s = "<html><HEAD> <meta http-equiv=”refresh” content=”1″ /> </HEAD>"; //Para
cargar las pagina cada segundo
s += "\r\nIngreso el usuario: ";
s += (code);
s += "</html>\n";
[Link](200, "text/html", s);
}
void handleNotFound() { //Función que dice que se ingresó mal la IP del módulo wifi
String body = "<h1>Not found :(</h1>";
[Link](404, "text/html", body);
}
La función definida a continuación es la que permite la identificación del código de
la tarjeta RFID la cual es enviada por el puerto serial del Arduino y recibida igualmente por
el puerto serial del módulo wifi.
void lectura () {
if([Link]() > 0) { // cantidad de datos disponibles
if((val = [Link]()) == 10) { // lees los datos entrantes por el rx
bytesread = 0; // variable para contar y asignar al vector
while(bytesread<10) { // código tiene 10 dígitos
if( [Link]() > 0) { // verifica nuevamente los datos disponibles
val = [Link]();
if((val == 10)||(val == 13)) { //
break; //
}
code[bytesread] = val; // crear el vector de la variable código
bytesread++; //
}
}
if(bytesread == 10) { //
[Link]("Usuario: "); //
[Link](code); // Asigna el código a la variable code que luego va hacer mostrada
//en la pagina web
[Link]();
}
}
}
} Luego se define la velocidad en baudios, la cual va hacer de 115200 con la que viene
por defecto el módulo wifi, se establece la funciones para realizar la conexión del módulo a
la red wifi y se imprime la dirección IP asignada por el modem al módulo.
void setup() {
[Link](115200); // Velocidad
pinMode(buttonPin, INPUT); // pin para realizar el cabio
[Link](ssid, password); //Comando para realizar la conexión a la red wifi
while ([Link]() != WL_CONNECTED) {
[Link](".");
delay(500);
}
[Link]("");
[Link]("WiFi connected"); // en caso de conexión exitosa
[Link](("/"), handleRequest);
[Link](handleNotFound);
[Link]();
[Link]("Server started");
[Link]([Link]()); //Imprime IP asignada al módulo
}
Por último, para evitar el conflicto de la lectura de los clientes que se conecten al
servidor creado en el módulo wifi con la lectura del puerto serial de los códigos de las tarjetas
RFID, se habilita uno de los pines gpio del ESP8266 para permitir realizar el cambio de los
clientes al puerto serial.
void loop() {
[Link](); //Espera a que se conecte un cliente
state = digitalRead(buttonPin); // boton para realizar el cambio de lectura del
// servidor al puerto serial.
if (state==HIGH){
lectura();
}
}
Así el funcionamiento queda de la siguiente manera, el módulo ESP8266 está
constantemente a la espera de que se conecte un cliente a su servidor, al enviar un pulso en
alto por el gpio2 del EPS8266, este entrará al condicional, el cual, permitirá correr la función
lectura, que es donde se encuentra el código para realizar la lectura de la comunicación serial
y ordenar los datos enviados del Arduino por el mismo medio.
Después de haber cargado el código anterior en el ESP8266 y guardar la dirección IP
asignada por la red. Se conecta el ESP8266 al Arduino uno, por medio de los puertos Rx y
Tx ya definidos en el circuito general.
Figura 13. Servidor web del módulo wifi ESP8266 mostrando un código de una tarjeta RFID. Fuente:
Autor.
Construcción del control de ingreso. Luego de haber definido la electrónica y la
programación, se procede a ordenar todo el circuito y diseñar la estructura que va a contener
y proteger ese circuito.
En el circuito electrónico todos los componentes fueron conectados por medio de
jumper, por lo cual, no se utilizó ningún software de diseño de circuitos, ni baquelitas de
circuitos impresos.
La caja principal para cubrir y proteger todo el circuito, fue una caja reciclada de pasta
donde de un modem de internet que ya no se encontraba en funcionamiento (véase Figura
34).
Figura 14. Circuito electrónico con sus respectivas conexiones y caja protectora. Fuente: Autor.
Ya teniendo todo el circuito acomodado dentro de la caja protectora, se
procede a realizar el montaje en la puerta principal donde va hacer instalado para obtener una
primera imagen de cómo va a quedar todo el sistema de control de ingreso (véase Figura 35).
Se provecha para realizar también el montaje del motor, que tendrá el sistema
encargado que realizará la respectiva apertura de la puerta.
Figura 15. Instalación en la puerta principal del sistema de control de ingreso. Fuente: Autor.
Luego de realizar la instalación, se propuso agregar una estructura que permitiera una
mejor sujeción de la caja de circuito con el marco de la puerta, además, que mejorara el
aspecto visual de todo el sistema (véase Figura 36).
Figura 16. Diseño del CAD en 3D de la carcasa protectora del circuito. Fuente: Autor
Para el motor que controla el sistema de apertura y cierre de la puerta también se
propuso un diseño en CAD (véase Figura 37) que mejorara la parte visual y ayudara a
proteger el motor y a sujetarlo al marco de la puerta. (Véase el Apéndice B, para las medidas
de todas las piezas diseñadas en CAD).
Figura 17. Diseño del CAD en 3D de la estructura del motor. Fuente: Autor.
Para llevar a cabo las estructuras se utilizó una impresora 3D que pertenece al área de
diseño e ingeniería del Tecnoparque (véase Figura 38).
Figura 18. Impresión de la pieza 3D; durante la impresión y ya terminada. Fuente: Autor.
Debido a que las piezas son impresas con material de apoyo es necesario realizar unos
retoques de limpieza y lijado luego de que son impresas (véase las Figuras 39 y 40).
Figura 19. Estructura para el circuito de control. Fuente: Autor.
Figura 20. Estructura para proteger el motor encargado de la apertura de la puerta principal. Autor:
Fuente.
Por último, se agregaron las estructuras a la instalación que se había hecho
previamente del circuito y del motor en la puerta de acceso principal (véase Figura 41).
Figura 21. Instalación completa del sistema de ingreso al Tecnoparque. Fuente: Autor.
Como resultado se obtiene la instalación del circuito de control y de potencia, junto
con el motor en la puerta de acceso principal. La capacidad con respecto a la distancia de
lectura de los códigos del lector RFID es la suficiente para ser ubicada detrás del vidrio de la
puerta principal, favoreciendo la seguridad del sistema de control de ingreso.
Instalación polución