You are on page 1of 120

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉNICA

“ANTONIO JOSÉ DE SUCRE”


VICE-RECTORADO DE PUERTO ORDAZ
DEPARTAMENTO DE INGENIERIA ELECTRÓNICA
PRACTICA PROFESIONAL

SISTEMA DE CONTROL DE ACCESO BASADO EN TECNOLOGIA


RFID PARA EL CENTRO DE INVESTIGACIONES CIRNAR

Autor:

Br. Zacarías Ricardo

C.I.:22.587.348

Ciudad Guayana, enero de 2021.


SISTEMA DE CONTROL DE ACCESO BASADO EN TECNOLOGIA
RFID PARA EL CENTRO DE INVESTIGACIONES CIRNAR
REPÚBLICA BOLIVARIANA DE VENEZUELA
UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉNICA
“ANTONIO JOSÉ DE SUCRE”
VICE-RECTORADO DE PUERTO ORDAZ
DEPARTAMENTO DE INGENIERIA ELECTRÓNICA
PRACTICA PROFESIONAL

SISTEMA DE CONTROL DE ACCESO BASADO EN TECNOLOGIA


RFID PARA EL CENTRO DE INVESTIGACIONES CIRNAR

Informe que se presenta como requisito parcial para

Optar al título de Ingeniera Electrónica.

Br. Zacarías Boada Ricardo José

C.I.:22.587.348

Tutor Académico: Dr. Sergio Velásquez.

Tutor Industrial: Ing. Salomón Manosalva

Ciudad Guayana, octubre de 2020.


Autor: Zacarías Boada Ricardo José
SISTEMA DE CONTROL DE ACCESO BASADO EN TECNOLOGIA
RFID PARA EL CENTRO DE INVESTIGACIONES CIRNAR

Páginas:
Año: 2020
Puerto Ordaz, Bolívar. VENEZUELA.
Informe de PRACTICA PROFESIONAL
Universidad Nacional Experimental Politécnica Antonio José de Sucre.
Vicerrectorado Puerto Ordaz.
Departamento de Ingeniera Electrónica

Centro de Investigación de Redes Neurales Artificiales y la Robótica


Tutor Académico: Dr. Sergio Velásquez.

Tutor Industrial: Ing. Salomón Manosalva


SISTEMA DE CONTROL DE ACCESO BASADO EN TECNOLOGIA
RFID PARA EL CENTRO DE INVESTIGACIONES CIRNAR (2019)

Autor: Br. Ricardo José Zacarías Boada.


Tutor Académico: Dr. Sergio Velásquez.
Tutor Industrial: Ing. Salomón Manosalva.

PRACTICA PROFESIONAL
Universidad Nacional Experimental Politécnica Antonio José de Sucre
Vicerrectorado Puerto Ordaz.

Departamento de Ingeniería Electrónica / Centro de Investigación de


Redes Neurales Artificiales y la Robótica (CIRNAR)

RESUMEN

El siguiente trabajo surge ante la necesidad de desarrollar un sistema


de control de acceso para empleados que proporcione cálculo de
asistencia, horas de trabajo, seguridad y control de las instalaciones
de una empresa o residencia, y que, a su vez, resulte confiable,
seguro y de bajo costo. Para lograr este cometido, se recurrió al uso
de la tecnología RFID (Radio Frequency IDentification, por sus siglas
en inglés), que ofrece la novedosa ventaja de reconocer las tarjetas
de proximidad de cada usuario sin necesidad de que exista contacto
físico. Esta investigación es de tipo proyectiva no experimental. Para
el desarrollo de este proyecto se utilizó como dispositivo procesador
de información el Arduino UNO R2 en conjunto con el lector RFID RC-
522, que se encarga de leer la información contenida en cada ficha,
para posteriormente almacenar el evento en una base de datos,
además proporcionar un sistema de información vía WEB, que permite
respaldar la información local la cual no será actualizada en tiempo
real.

Palabras claves: RFID, Arduino UNO R2, Control de acceso, Identificación

v
DEDICATORIA

“A mis padres, por brindarme siempre su apoyo incondicional,

A mi hermana, por contribuir siempre en mi formación personal,

A mis familiares que a pesar de la distancia he contado con su apoyo,

A mis seres queridos que ya no se encuentran en este plano, que Dios los
tenga en su gloria,

A mis amistades y amigos,

A ustedes dedico este logro”.

vi
AGRADECIMIENTOS

A Dios ante todo por brindarme salud y siempre apoyarme en los


pasos que decido tomar.

A mis padres Ramón Zacarías y Milagro Boada por ser mi


motivación y siempre guiarme por los mejores caminos y por nunca dejar
de creer en mí.

A mi hermana Rosanna Zacarías, quien también ha participado en


este logro, brindándome su cariño y sus buenos deseos.

vii
Contenido
DEDICATORIA .......................................................................................... vi

AGRADECIMIENTOS ............................................................................... vii

INTRODUCCIÓN ....................................................................................... 1

CAPÍTULO I ............................................................................................... 3

EL PROBLEMA ..................................................................................... 3

Planteamiento del Problema ............................................................... 3

Objetivo General................................................................................... 4

Objetivos Específicos .......................................................................... 4

Justificación ......................................................................................... 4

Alcance ................................................................................................. 5

CAPÍTULO II .............................................................................................. 7

MARCO TEORICO .................................................................................... 7

Antecedentes ........................................................................................ 7

Bases teóricas ...................................................................................... 9

Sistema RFID ...................................................................................... 10

Tags (etiquetas) .................................................................................. 11

Etiquetas RFID pasivas ...................................................................... 12

Etiquetas RFID semi-pasivas ............................................................ 13

Etiquetas RFID activas ....................................................................... 13

Frecuencia de trabajo en sistemas RFID ......................................... 14

Módulo RFID RC522 ........................................................................... 14

Arduino................................................................................................ 16

Software Arduino ............................................................................... 16

Hardware Arduino .............................................................................. 18

Protocolo SPI ..................................................................................... 19

viii
Processing .......................................................................................... 20

Aplicación Web................................................................................... 22

Servidor Web Local ............................................................................ 23

Lenguajes de programación.............................................................. 24

HTML ................................................................................................... 25

PHP ...................................................................................................... 29

Lenguaje SQL ..................................................................................... 30

Base de Datos..................................................................................... 31

Página Web ......................................................................................... 32

Laravel ................................................................................................. 34

Bootstrap ............................................................................................ 35

WEB-Hosting ...................................................................................... 36

CAPÍTULO III ........................................................................................... 42

MARCO METODOLÓGICO ..................................................................... 42

Tipo de Investigación ......................................................................... 42

Diseño de la investigación ................................................................ 42

Unidad de análisis .............................................................................. 43

Técnicas e instrumentos de recolección de datos .......................... 43

Procedimiento de recolección de datos ........................................... 45

Procesamiento de la información ..................................................... 46

CAPÍTULO IV........................................................................................... 47

DISEÑO ................................................................................................... 47

Descripción general del sistema....................................................... 47

Servicio ............................................................................................... 48

Protocolo de comunicación Arduino-Processing ...................................... 51

Base de datos Mysql .......................................................................... 52

ix
Funcionamiento del servicio diseñado ............................................ 58

Diseño de la aplicación Web ............................................................. 59

Servidor 000WebHost ........................................................................ 61

Software .............................................................................................. 64

Puesta en marcha de la aplicación Web de manera Local ............. 68

Creación de usuario en el Web hosting 000webhost.com.............. 70

Carga de la aplicación web diseñada al hosting gratuito ............... 73

Carga de la base de datos al hosting gratuito ................................. 76

CAPÍTULO V............................................................................................ 80

RESULTADOS......................................................................................... 80

Prueba: Ingreso y logout de administrador en la aplicación Web . 80

Prueba: Registrar trabajador en la base de datos ........................... 82

Prueba Registro de ID duplicado ...................................................... 85

Prueba Registro de Cedula duplicado .............................................. 86

Prueba: Editar-Eliminar-Buscar Empleado ...................................... 86

Prueba: Uso del sistema RFID, Usuario invalido. ............................ 89

Prueba: Uso del sistema RFID, Acceso autorizado. ........................ 90

Prueba: Accediendo a la base de datos. .......................................... 91

Prueba: Listado de ingresos en la base de datos. .......................... 92

Prueba: reporte mensual de ingresos y tiempo trabajado en la base


de datos............................................................................................... 93

CONCLUSIONES .................................................................................... 96

RECOMENDACIONES ............................................................................ 97

REFERENCIAS ....................................................................................... 98

ANEXOS .................................................................................................. 99

Programación Arduino UNO R2 ...................................................... 100

x
Programación Processing ............................................................... 103

Tabla de figuras

Esq uema general de una casa con tecnología inmótica. ...... 9

Sistema RFID ....................................................................... 11

Tag RFID .............................................................................. 12

Tarjeta y llavero RFID .......................................................... 13

Modulo Lector RFID-RC522 ................................................. 15

Descripción de pines del módulo RFID-RC522 .................... 16

Software IDE ........................................................................ 17

Hardware Arduino Uno ......................................................... 19

Conexiones Bus SPI ............................................................ 20

Pantalla de bienvenida de Processing ................................. 21

Código HTML ....................................................................... 29

Sintaxis de programación en PHP........................................ 30

Páginas Estáticas ................................................................. 33

Paginas dinámicas ............................................................... 34

Icono del framework Laravel ................................................ 35

Icono de la biblioteca Bootstrap ........................................... 35

Sistema Propuesto ............................................................... 48

Servicio Propuesto ............................................................... 49

Trama de envío de datos entre processing y arduino .......... 52

Panel de control del software Xampp ................................... 53

Panel PHPmyAdmin para la creación de base de datos ...... 54

Tabla Users .......................................................................... 54

xi
Tabla usuarios ...................................................................... 55

Tabla activación ................................................................... 56

Diagrama Entidad Relación de la base de datos diseñada .. 58

Modelo, Vista ,Controlador implementado ........................... 60

Hardware implementado ...................................................... 62

Diagrama de flujos del código arduino UNO ........................ 66

Diagrama de flujo del código de processing ......................... 67

Vista inicial de la aplicación web .......................................... 68

Vista de listado de trabajadores ........................................... 69

Vista del listado de ingreso de los trabajadores ................... 69

Vista para agregar empleado a la nomina ............................ 70

Vista principal del webhost gratuito usado ........................... 71

Panel de administración de los sitios webs .......................... 72

Métodos para crear un sitio web dentro del web hosting ..... 73

Opción File manager ............................................................ 74

Carga de archivos al servidor web ....................................... 74

Edición de credenciales ....................................................... 75

Accediendo al database manager ........................................ 76

Creando una base de datos en el servidor ........................... 77

Phpmyadmin perteneciente al host gratuito ........................ 78

Importar base de datos al servidor web ............................... 79

Usuario invalido .................................................................... 81

Ingreso al CRUD de la aplicación web ................................. 81

Cierre de sesión ................................................................... 82

Agregado de empleado ........................................................ 83

Listado de empleados pertenecientes a la nomina .............. 83

xii
Campos vacíos en el agregado de empleado ...................... 84

Paginación del listado de empleados ................................... 85

ID duplicado ......................................................................... 85

Cedula duplicada.................................................................. 86

Eliminar Usuario ................................................................... 87

Empleado eliminado ............................................................. 87

Modificar Empleado.............................................................. 88

Filtro de búsqueda................................................................ 88

Acceso denegado................................................................. 89

Mensaje de acceso denegado en Processing ...................... 90

Acceso autorizado ................................................................ 90

Mensaje acceso autorizado en processing .......................... 91

Consultando en la base de datos ......................................... 92

Listado de ingresos en la base de datos. ............................. 93

Reporte y tiempo trabajado. ................................................. 94

Reporte y tiempo trabajado 2. .............................................. 94

Reporte y tiempo trabajado 3. .............................................. 95

xiii
INTRODUCCIÓN

La definición más generalizada de un sistema de control de acceso


hace referencia al mecanismo que en función de la identificación ya
autentificada permite acceder a datos o recursos. Básicamente
encontramos sistemas de controles de acceso en múltiples formas y para
diversas aplicaciones. Por ejemplo, encontramos sistemas de controles
de acceso por software cuando digitamos nuestra contraseña para abrir el
email, otro ejemplo es cuando debemos colocar nuestra huella en un
lector para desbloquear el teléfono. Estos casos, son ejemplos que
permiten el acceso a datos. Sin embargo, nuestro enfoque en la
seguridad electrónica está relacionado al acceso de recursos, en nuestro
caso, apertura de una puerta

El avance de la tecnología a lo largo de los años ha beneficiado al


ser humano en todos los ámbitos que labora, desde el bienestar en el
hogar hasta en reducir horas de trabajo. Mejorar las condiciones
empresariales y proporcionar protección en las áreas de una industria o
condominios, se ha convertido en una necesidad latente puesto que, la
seguridad representa un factor importante dentro de las instalaciones de
edificios.

Para llevar a cabo este cometido se desarrollan nuevas ciencias y


técnicas, y se incorporan las ya existentes, lo que ha hecho que las
empresas suelan depender, de algún modo u otro, de la tecnología. La
posibilidad de la presencia de personas no deseadas en una edificación
hace necesaria la instalación de sistemas que pronostiquen esta
eventualidad y aporten soluciones eficaces. Los sistemas de control de
acceso son la tecnología con más demanda en el mercado actual de
sistemas de seguridad.

El sistema de control de acceso planteado en esta investigación


surge a partir de la necesidad de realizar un sistema de bajo coste,
seguro y confiable. Esto con la ayuda de la tecnología RFID, gracias a la

1
adaptabilidad que posee para los distintos requerimientos que se pueda
tener ante cada necesidad, además que representa una innovación
tecnológica en lo que respecta a soluciones para el sector industrial.
Suministrando una única identificación a cada tarjeta, lo que permite
validar en el sistema dos posibles escenarios al poseedor de la ficha:
aceptado, para usuarios autorizados y, denegado, para usuarios que no
están autorizados para ingresar y además proporcionar cálculo de
asistencias y horas de trabajo empleadas obtenido a través de un sistema
de información vía WEB, que permite respaldar la información local la cual
no será actualizada en tiempo real.

En el capítulo I, se plantea el problema que condujo a la


realización del proyecto, los objetivos fundamentales que se deben
realizar para cumplir con el desarrollo, así como también delimitación y
justificación del mismo.
En el capítulo II, aspectos teóricos fundamentales para el
desarrollo de la implementación a realizar.
En el capítulo III, se describen los aspectos procedimentales que
incluyen las actividades ejecutadas, las técnicas e instrumentos para la
recolección de información, procedimiento de las mismas y el tipo de
análisis a realizar para solucionar el problema planteado en el capítulo I.
En el capítulo IV, Se expone la descripción general del diseño o
propuesta.
En el capítulo V, se analizan los resultados del trabajo,
posteriormente se plantean las conclusiones y recomendaciones. Se
presentan las referencias y se anexa en el material de interés.

2
CAPÍTULO I

EL PROBLEMA

Planteamiento del Problema

El avance de la tecnología en los sistemas de auto identificación y


acceso ha crecido de manera exponencial e incrementando cada vez su
eficacia, de tal forma que se sustituyen las viejas tendencias por las
nuevas que surgen. El auto identificación puede llevarse a cabo mediante
sensores biométricos y tarjetas de bandas magnéticas.

Uno de los problemas que presentan los dispositivos de acceso


convencionales antes mencionados, es la facilidad con la que el receptor
queda expuesto a recibir daños.

Las tecnologías brindadas por las tarjetas RFID, cuyo propósito


fundamental es transmitir la identidad de un objeto mediante ondas de
radio, brinda una de sus mayores ventajas la cual es que, no es necesario
que haya contacto físico entre emisor y receptor, ni siquiera visual, y
ofrece un método de programación del tag para hacer personalizado el ID
que transmite al receptor.

Mediante estos sistemas de auto identificación se pueden llevar a


cabo aplicaciones en el control de asistencias y horas de trabajo
empleadas cuyo almacenamiento de información se puede ligar a una
base de datos y esta a su vez puede ser observada vía web mediante una
aplicación. En la situación actual del país, se presenta costoso adquirir un
alojamiento (hosting), es por ello que desde el Centro de Investigación de
Redes Neurales Artificiales y la Robótica (CIRNAR), se desarrollará un
sistema que permita manejar el control de asistencia, horas de trabajo
empleadas y ubicación mediante integración RFID-Arduino-Web.

3
Objetivo General

Desarrollar un reporte de asistencia y horas de trabajo de un


sistema de control de acceso por radiofrecuencia mediante una aplicación
web.

Objetivos Específicos

Estudiar los conceptos básicos de Arduino, RFID y base de datos


necesarios para este trabajo.

Proponer un sistema de gestión de bases de datos mysql.

Estudiar los lenguajes de programación necesarios para realizar la


Aplicación web.

Proponer un diseño óptimo para la integración RFID-Arduino-Base


de datos.

Implementar el sistema propuesto en el gestor de base de datos


para tal aplicación.

Implementar los módulos necesarios para poder calcular las


asistencias, horas de trabajo empleadas y ubicación de los usuarios.

Verificar mediante pruebas el sistema desarrollado.

Justificación

El hecho que una empresa o instituto cuente con un sistema de


control de asistencia, cálculo de horas de trabajo empleadas y ubicación
con almacenamiento vía internet, aumenta la comodidad en llevar un
control del personal trabajador o de cualquier sitio en el que se requiera.

4
La mayoría de las empresas operativas en el país requieren un
sistema de control de acceso funcional y eficiente, mediante el uso de la
tecnología RFID esto es posible, ya que gracias a sus avances permite
ofrecer una gran gama de soluciones, adaptables a los requerimientos
que cada sector pueda tener.

Tener acceso al control de asistencias vía internet sobre el espacio


de trabajo de un personal específico, ofrece una gran cantidad de
garantías administrativas, así como comodidad a la hora de evaluar al
conglomerado trabajador.

Desde el Centro de Investigación de Redes Neurales Artificiales y


la Robótica (CIRNAR) se proyecta que el sistema a diseñar constituye
una alternativa tecnológica en lo que respecta al control y asistencia, bien
sea a nivel industrial o comercial, esto gracias a la identificación de
personas, así como el control de su acceso a diferentes zonas de un
espacio determinado, y pueda ser monitoreado vía internet desde un sitio
web gratuito.

Así mismo, se aspira que este proyecto sea una base para el
perfeccionamiento en cuanto a la seguridad y la accesibilidad a los
diferentes espacios donde sea aplicada, y colabore con información a
investigaciones futuras que requieran el uso de estos dispositivos.

Alcance

. Como propósito general del proyecto se tiene el desarrollo de un


reporte de asistencia y horas de trabajo empleadas de un sistema de
control de acceso por radiofrecuencia mediante una aplicación web, el
cual persigue lograr un modelo funcional y eficiente que permita el manejo
y uso de dicha tecnología para la identificación de personas y su control
de acceso a determinadas instalaciones y cuya información de horas-
trabajo pueda ser supervisada vía web.

5
Respecto al espacio físico, la investigación y el desarrollo del
trabajo de diseño e implementación se realizará en las instalaciones de la
Universidad Nacional Experimental “Antonio José de Sucre”,
especialmente desde Centro de Investigación de Redes Neurales
Artificiales y la Robótica (CIRNAR), cuyo diseño servirá como propuesta a
un nuevo sistema de control y acceso.

6
CAPÍTULO II

MARCO TEORICO

En el siguiente capítulo, se presentan, los antecedentes de esta


investigación, así como también el fundamento teórico de los elementos
que dan vida a este proyecto.

Antecedentes

La identificación por RFID es una tecnología reciente y muy efectiva


para la captura de datos en forma automática por lo que se ha posicionado
como la tecnología más nueva y de más rápido crecimiento en el
segmento de identificación en la industria. A continuación, se muestra una
serie de antecedentes que tienen un papel importante en el desarrollo de
las nuevas tecnologías, estos fueron recopilados de distintas fuentes.

Justo Saavedra (2006) Universidad “Simón Bolívar”. Realizó un


proyecto titulado “Diseño e implementación de un sistema de control de
acceso”. Basado en un controlador embebido cuya función es controlar de
forma autónoma el acceso de personas a distintas zonas, mediante la
apertura de cerraduras electrónicas, en los diferentes puntos de acceso
en una empresa, banco u oficina. Abarcando el estudio de las distintas
memorias utilizadas en el controlador embebido y la elaboración de las
interfaces de configuración y monitoreo del sistema.

Darío Llanga y David Cano (2014) Escuela Superior Politécnica De


Chimborazo, Riobamba-Ecuador. Realizaron un proyecto titulado
“Implementación del prototipo para el control de acceso docente mediante
la interoperabilidad de WSN y RFID”. Se diseñó e implementó un prototipo
empleando un sistema híbrido compuesto por las tecnologías WSN y
RFID, para el control de asistencia docente, integradas por módulos de

7
comunicación XBee encargados de la transmisión y recepción de la
información, por placas Arduino que sirven para la interoperabilidad de las
tecnologías WSN y RFID, por una aplicación diseñada en JAVA para
mostrar los registros en tiempo real de la asistencia a los docentes en los
laboratorios de la academia CISCO-ESPOCH.

Gerardo Abregú (2016) Universidad Nacional Experimental


Politécnica “Antonio José De Sucre”. Realizó un proyecto titulado
“Sistema para el control de acceso peatonal y vehicular mediante
comunicación TCP/IP en las entradas de C.V.G ALCASA”. El mismo
consistió en desarrollar una propuesta para un sistema de control de acceso
utilizando el protocolo TCP/IP y las tarjetas electrónicas RFID, para ser
implementado en las instalaciones de la planta extrusora de la empresa
C.V.G ALCASA. En este sistema se abordaron dos aspectos principales: el
diseño de los dispositivos electrónicos de control de acceso que forman parte
del sistema y el sistema de administración de la base de datos.

Leonardo Madrid (2016) Universidad Nacional Experimental


Politécnica “Antonio José De Sucre”. Realizó un proyecto titulado
“Desarrollo de aplicación para el control de asistencia y materias
dictadas”. El diseño consistió en la elaboración de una aplicación web para
uso personal por parte del profesor adscrito al Departamento de Ingeniería
Electrónica, de la UNEXPO Puerto Ordaz, con el propósito de mantener un
control preciso de las asistencias y materias dictadas. La aplicación está
diseñada en base a la combinación de lenguajes HTML5, CSS y PHP,
sustentando los datos en una base de datos MariaDB.

Roberith Pérez (2017) Universidad Nacional Experimental


Politécnica “Antonio José De Sucre”. Realizó un proyecto titulado
“Desarrollo de sistema de control de acceso basado en tecnología RFID”.
Desarrolló un sistema de control de acceso de personal que proporciona
seguridad tanto a propios como a visitantes de edificaciones no
residenciales, y que, a su vez, resulta confiable, seguro y de bajo coste.
Para lograr este cometido, se recurrió al uso de la tecnología RFID.

8
Bases teóricas

La inmótica es un nuevo concepto, que apunta al mejoramiento de


la calidad de vida, es el diseño inteligente de construcciones, empleando
avanzada tecnología para ello.

Esta forma parte de la domótica interna entre una configuración en


red, pero aplicada a edificios. La inmótica y la domótica son muy
semejantes, lo diferente es que la aplicación de la inmótica está orientada
hacia lo que son los hoteles, oficinas, edificios corporativos y similares.
Logrando que, dependiendo de la actividad que se desarrolle dentro del
edificio, las redes de automatización sean totalmente distintas y
acopladas a las exigencias puntuales del mismo.

Se entiende por inmótica, la incorporación de sistemas de


tecnología automatizada de las instalaciones, para reducir el consumo de
energía, y aumentar la seguridad y el confort, en edificios de uso industrial
o terciario. Ver figura 1.

Esq uema general de una casa con tecnología inmótica.


Fuente: http://telecomunicacionessinlimite.blogspot.com/2012_03_01_archive.html

La funcionalidad de la inmótica depende directamente de su


aplicación. De manera que para entender funciones inmóticas como

9
control de la iluminación, control de la climatización, control de accesos,
control ventilación, supervisión de alarmas técnicas, supervisión de
cuadros eléctricos, control y supervisión ascensores, supervisión del
sistema de incendios, sistemas de seguridad y gestión de consumos; sólo
se entienden en un contexto de aplicación concreto.

Esta disciplina permite centralizar, modificar, supervisar, desde una


PC, el funcionamiento de los sistemas componentes de la instalación de
un inmueble, integrando también, en una estructura de red, la domótica
existente.

Sistema RFID

La Identificación por Radio Frecuencia es una tecnología que


permite identificar objetos mediante ondas de radio de manera única y
pudiendo captar cientos de objetos a la vez. Cabe destacar que este
sistema es un método de almacenamiento y recuperación de datos que
usa dispositivos como tarjetas o tags RFID (Radio Frequency
Identification).

El lector emite ondas de radio de unas frecuencias concretas a


través de las antenas RFID. Las ondas dan energía a los tags para que
estos puedan comunicarse emitiendo un único ID. No necesitan baterías y
pueden usarse durante muchos años. El lector procesa los datos para
que podamos integrarlos en nuestra aplicación y darles un sentido.

La habilidad de identificar y rastrear objetos individuales o cajas de


artículos sin necesidad de tener una visión directa aporta mucho valor a
las empresas para controlar sus productos. Por ejemplo, si una empresa
utiliza cajas plásticas para gestionar la logística con sus clientes puede
utilizar esta tecnología para hacerlas únicas y tenerlas identificadas en
todo momento, de manera que saben cuándo salen o entran en diferentes

10
instalaciones. Esta tecnología aporta una garantía y seguridad a los
procesos tanto logísticos como productivos:

• RFID no necesita línea de visión


• Los datos de los tags RFID pueden encriptarse y bloquearse.
• RFID puede contener más información que otro tipo de etiquetas.
• Los lectores RFID pueden leer cientos de tags a la vez.
• Las etiquetas RFID son imprimibles.
• Los sistemas RFID pueden integrarse con el ERP u otros sistemas
internos.
• Los tags RFID pueden leerse y regrabar tantas veces como
queramos.
• Las etiquetas RFID pueden ser desechables o muy resistentes
para reutilizarlas.

La figura 2 muestra los 3 principales componentes que forman un


sistema RFID.

Sistema RFID
Fuente: http://www.afixgraf.com.br/rfid/

Tags (etiquetas)

Los tags RFID constan de dos elementos básicos: un chip y una


antena. El chip y la antena, montados, forman un integrado. Después, el

11
inserto queda encapsulado en otro material y forma el tag o etiqueta final,
como se muestra en la figura 3.

Tag RFID
Fuente: El autor.

Etiquetas RFID pasivas

Las etiquetas RFID pasivas no llevan fuente de alimentación propia


y utilizan para responder la energía inducida en la antena por la señal de
escaneo de radiofrecuencia. Debido a esto la señal respuesta tiene un
tiempo de vida bastante corto y su radio de transmisión puede llegar a
como mucho 6 metros, pero tiene la ventaja de poder ser mucho más
pequeñas que las etiquetas activas. Generalmente operan en una
frecuencia de 124, 125 o 135 Khz., aunque hay sistemas que pueden
llegar a operar en 2.45 Ghz. La forma de la etiqueta dependerá del uso
que se vaya a hacer de las mismas, aunque lo normal es que vaya
montada sobre una pegatina o una tarjeta. Ver figura 4.

12
Tarjeta y llavero RFID
Fuente: http://www.altasec.cl/producto/anviz-rfid-av-tarjeta-de-proximidad-rfid/

Etiquetas RFID semi-pasivas

Este tipo de etiquetas es muy similar al anterior, pero con la


diferencia de que incluyen una pequeña batería que permite que el
circuito integrado de la etiqueta esté siempre alimentado. Esto da lugar a
que las antenas no requieran capturar la potencia de la señal entrante
para devolver la señal saliente, sino que las antenas son mejoradas para
la emisión de la respuesta.

Etiquetas RFID activas

Este tipo de etiquetas lleva su propia fuente de alimentación y tiene


rangos mayores de uso, tanto a nivel de frecuencias, siendo las normales
de uso 455 Mhz, 2.45GHz. o 5.8 Ghz., como las distancias a las que
pueden ser detectadas y leídas, 100 metros. Su tamaño es lógicamente
mayor que los otros dos tipos de etiquetas, aunque no supera el tamaño
de una moneda. Además, portan una pequeña memoria, debido a lo cual
pueden almacenar un mayor número de datos.

Tanto los tags activos como los pasivos pueden adicionalmente ser
clasificados de la siguiente forma:

Solo Lectura (RO): En estos dispositivos, los datos son grabados en el tag
durante su fabricación, para esto, los fusibles en el microchip del tag son
quemados permanentemente utilizando un haz láser muy fino. Después
de esto, los datos no podrán ser reescritos.

Una Escritura, Muchas Lecturas (WORM): Un tag WORM, puede ser


programado sólo una vez, pero esta escritura generalmente no es
realizada por el fabricante sino por el usuario justo en el momento que el
tag es creado.

13
Lectura y Escritura (RW): Estas etiquetas, pueden ser reprogramadas
muchas veces, típicamente este número varía entre 10,000 y 100,000
veces, incluso mayores. Esta opción de reescritura ofrece muchas
ventajas, ya que el tag puede ser escrito por el lector, e inclusive por sí
mismo en el caso de los tags activos. Estas etiquetas regularmente
contienen una memoria Flash o FRAM para almacenar los datos.

Frecuencia de trabajo en sistemas RFID

Los rangos de frecuencia utilizados por los sistemas RFID son:

Baja Frecuencia (LF): Las etiquetas de baja frecuencia (LF, del inglés low
frequency) trabajan en rangos de frecuencia inferiores a 135 KHz.

Existen etiquetas LF compactas (como las encapsuladas en vidrio,


utilizadas para identificación humana y animal).

Alta Frecuencia (HF): Su frecuencia de funcionamiento es de13,56 MHz.,


su forma es parecida a la de una tarjeta de crédito. Estas antenas son
más baratas que las LF.

Ultra Alta Frecuencia (UHF) y Frecuencia de Microondas: Poseen


frecuencias de funcionamiento que están en las bandas de 433 MHz, 860
MHz, 928 MHz; y de 2,45 GHz y 5,8 GHz, respectivamente.

Módulo RFID RC522

Este módulo utiliza un sistema de modulación y demodulación de


13.56MHz, frecuencia que en la actualidad utiliza la tecnología
RFID. Incorpora sobre su circuito impreso una antena que es capaz de
emitir la señal de radio frecuencia y un circuito integrado microcontrolador
específico cuyo modelo es el MFRC522. EL módulo se comunica por la
interfaz SPI, por lo que se puede implementar con cualquier
microcontrolador con dicha interfaz, los más usados son Arduino y
Raspberry PI. la alimentación se realiza con una alimentación de 3.3v lo
cual no tiene inconveniente para conectarlo a la alimentación de una

14
placa arduino o Raspberry PI. La figura 5 muestra la descripción de pines
del módulo RC-522 y su conexión a los modelos arduino UNO y arduino
MEGA. La distancia máxima por lo general es menor a 10cm.

Modulo Lector RFID-RC522


Fuente: https://naylampmechatronics.com/blog/22_Tutorial-Lector-RFID-RC522.html

La figura 6 muestra los pines del módulo RFID RC522.

15
Descripción de pines del módulo RFID-RC522
Fuente: https://naylampmechatronics.com/blog/22_Tutorial-Lector-RFID-RC522.html

Arduino

Arduino es una compañía de fuente abierta y hardware abierto, así


como un proyecto y comunidad internacional que diseña y
manufactura placas de desarrollo de hardware para construir dispositivos
digitales y dispositivos interactivos que puedan detectar y controlar
objetos del mundo real. Arduino se enfoca en acercar y facilitar el uso de
la electrónica y programación de sistemas embebidos en proyectos
multidisciplinarios. Los productos que vende la compañía son distribuidos
como Hardware y Software Libre, bajo la Licencia Pública General
Reducida de GNU (LGPL) o la Licencia Pública General de GNU (GPL),
permitiendo la manufactura de las placas Arduino y distribución del
software por cualquier individuo. Las placas Arduino están disponibles
comercialmente en forma de placas ensambladas

Cabe destacar que es una plataforma de hardware libre, basada en


una placa con un microcontrolador y un entorno de desarrollo, diseñada
para facilitar el uso de la electrónica en proyectos multidisciplinares. El
ambiente de arduino ha sido diseñado para ser de fácil uso para iniciantes
quienes no poseen experiencia en con la electrónica o el software. Con
arduino se pueden construir objetos tales como control de luces y puede
responder a sonido, tacto y movimiento.

Software Arduino

Los programas del software arduino, llamados “sketches” son


creados en computadora usando el programa llamado “Arduino integrated
development enviroment” (IDE). IDE permite escribir y editar códigos y
convertir estos códigos en instrucciones que el hardware de arduino
entienda. IDE también transfiere estas instrucciones a la tarjeta del

16
arduino mediante un proceso de carga el cual se realiza mediante la
comunicación USB/ETHERNET con la computadora.

La estructura básica del lenguaje de programación de Arduino es


bastante simple y se compone de al menos dos partes. Estas dos partes
necesarias, o funciones, encierran bloques que contienen declaraciones,
estamentos o instrucciones. La figura 7 corresponde a la estructura
general, antes mencionada, de la programación del Arduino.

Software IDE
Fuente: El autor

Donde los códigos que corresponden a la configuración y que solo


serán ejecutados una vez, son colocados en la función llamada “Setup ()”,
y el código que será ejecutado continuamente después que el setup inicial
termine, debe ir ubicado en la función llamada “loop ()”.

17
Hardware Arduino

Arduino es un hardware libre. Los diseños de referencia de


hardware se distribuyen bajo licencia Creative Commons Attribution
Share-Alike 2.5 y están disponibles en el sitio web de Arduino. Los
esquemáticos y archivos de montaje de componentes (PCBs) para
algunas versiones de placas también están disponibles.

La mayoría de las placas Arduino constan de un microcontrolador


AVR Atmel-8 bits (ATmega8, ATmega168, ATmega328, ATmega1280,
ATmega2560), cada microncontrolador consta de diversas cantidades de
memoria flash, pines y funciones. Las placas utilizan pines/cabezales
hembra de una o dos hileras que facilitan las conexiones e incorporación
en otros circuitos.

Las placas Arduino pueden conectarse con módulos adicionales


denominados shields (escudos, por su traducción al español),
dichos shields aumentan las características técnicas de la placa Arduino
en uso, debido a que poseen circuitos específicos que añaden una o más
funcionalidades extras a la placa Arduino nativa en la cual se utilice,
también se les conoce como placas de expansión.

La mayoría de estos shields se conectan a través de un bus serie


I²C, aunque existen también aquellas que emplean conexión mediante el
bus UART (Universal Asynchronous Receiver-Transmitter, por su
traducción al español Transmisor-Receptor Asíncrono Universal), así
como con el bus SPI.

El hardware de la placa arduino R2, consiste en una placa de


circuito impreso con un microcontrolador, usualmente Atmel AVR, puertos
digitales y analógicos de entrada/salida, los cuales pueden conectarse a
placas de expansión (shields), que amplían las características de
funcionamiento de la placa Arduino. Asimismo, posee un puerto de
conexión USB desde donde se puede alimentar la placa y establecer

18
comunicación con el computador. La figura 8 muestra el hardware de la
placa Arduino Uno.

Hardware Arduino Uno


Fuente: https://www.theengineeringprojects.com/2018/06/introduction-to-arduino-uno.html

Protocolo SPI

Es un protocolo de datos seriales síncrono de 4 hilos utilizado por


microcontroladores para comunicarse rápidamente con uno o más
dispositivos a distancias cortas, también puede ser utilizado para la
comunicación entre dos microcontroladores. Cabe destacar que,
implementa una solución síncrona, es decir, se utilizan dos líneas
diferentes para los datos y otra para el reloj razón por la cual el problema
de sincronismo se elimina, de menara tal que sea posible obtener una
comunicación full-dúplex. También posee una línea extra de activación
para el periférico receptor de datos.

19
Con una conexión SPI, siempre hay un maestro que es usualmente
un microcontrolador que se encuentra conectado a dispositivos periféricos
llamados esclavos, los cuales son controlados por el maestro. Existen
tres líneas comunes para todos los dispositivos periféricos:

MISO (Master In Slave Out): la línea de esclavo para enviar los


datos al maestro.

MOSI (Master Out Slave In): La línea del maestro para enviar los
datos al esclavo.

SCLKL (Serial clock): los pulsos de reloj los cuales sincronizan la


transmisión de los datos generados por el maestro.

Y una línea específica para cada dispositivo:

SS (Slaves Select): Es el pin a cada uno de los dispositivos


esclavos que el maestro puede usar para habilitar y deshabilitar los
dispositivos específicos. Ver figura 9.

Conexiones Bus SPI


Fuente: https://hetpro-store.com/puerto-serial/

Processing

Processing es un lenguaje de programación y entorno de desarrollo


integrado de código abierto basado en Java, de fácil utilización, y que

20
sirve como medio para la enseñanza y producción de proyectos
multimedia e interactivos de diseño digital. Al estar basado en Java,
puede heredar todas sus funcionalidades, convirtiéndose en una
herramienta poderosa a la hora de encarar proyectos complejos. Se
muestra en la figura 10 la pantalla de bienvenida que ofrece Processing.

Pantalla de bienvenida de Processing


Fuente: El Autor

En informática, uno de los objetivos declarados de Processing es el


de actuar como herramienta para que artistas, diseñadores visuales y
miembros de otras comunidades ajenos al lenguaje de la programación,
aprendieran las bases de la misma a través de una muestra gráfica
instantánea y visual de la información.

Cabe destacar que este software también es usado en aplicaciones


en la que se requiere enviar datos, desde un dispositivo conectado a un
puerto de una PC a una base de datos de manera local. En este caso
processing actúa como interfaz de comunicación entre la base de datos y
el dispositivo conectado. Para el presente trabajo se hizo uso de dicho
software para establecer una comunicación entre la base de datos y la
placa arduino.

21
Aplicación Web

Una aplicación web es una herramienta informática accesible


desde cualquier navegador, bien sea a través de internet (lo habitual) o
bien a través de una red local. A través del navegador se puede acceder a
toda la funcionalidad y tener cualquiera de las soluciones a continuación:

• Aplicaciones para la gestión interna y completa de la entidad


(facturación, stock, clientes, usuarios, socios, contabilidad, fichar,
gestión de personal…),
• Herramientas de trabajo diversas para entidades (intranets, gestión
documental, trabajo en red, herramientas compartidas accesibles
por múltiples usuarios, accesos diferenciados…)
• Servicios a usuarios (gestión de incidencias, accesos a contenidos
diferenciados por permisos, gestión de espacios…)
• Herramientas de comunicación digital (mailings, boletines digitales,
comunicaciones personalizadas a clientes o usuarios…)
• Herramientas de Control de Calidad de la empresa.
• Herramientas web (tiendas virtuales personalizadas, web compleja
con multitud de elementos y accesos, repositorios y buscadores,
gestión de ventas online…)

Otros tipos de servicios (cualquier tipo de aplicación que se


idee como gestión de inmuebles, comunidades de propietarios, turismo,
mapas, formación, colegios, tiendas… y otra muchas que están por crear)

Tiene grandes ventajas tales como:

No necesita ningún tipo de instalación, ya que se accede a través


de un navegador.

Además, una aplicación web es multiplataforma y multidispositivo.


Esto significa que nos podemos olvidar de que software tiene cada
dispositivo que accede, y que puede acceder igualmente un ordenador,
una Tablet, un Smartphone

22
Otra gran ventaja es que la potencia no está en el dispositivo que
accede, por lo que, aunque no tengamos un superordenador la aplicación
puede ser muy potente, ya que el peso no lo soporta el equipo desde el
que se accede sino el servidor donde está alojada.

La aplicación puede estar en la nube, con lo que sería accesible


para cualquier ordenador con acceso a internet (aunque también podría
ser una aplicación local en una intranet)

Y para finalizar, es muy adaptable, visualmente intuitiva y muy fácil de


actualizar si fuera necesario.

Hace unos años muchas de estas necesidades se cubrían con


aplicaciones de escritorio. Pero en este mundo conectado, las
aplicaciones web tienen muchas ventajas.

En general, el término también se utiliza para designar aquellos


programas informáticos que son ejecutados en el entorno del navegador o
codificado con algún lenguaje soportado por el navegador (como
JavaScript, combinado con HTML); confiándose en el navegador web
para que reproduzca la aplicación.

Aunque existen muchas variaciones posibles, una aplicación web


está normalmente estructurada como una aplicación de tres capas. En su
forma más común, el navegador web ofrece la primera capa,
interpretando el código. El servidor que ofrece este código y toda la
información es la segunda capa. Por último, una base de datos constituye
la tercera y última capa. El navegador web manda peticiones a la capa
intermedia, la cual ofrece servicios valiéndose de consultas y
actualizaciones a la base de datos, y, a su vez, proporciona una interfaz
de usuario.

Servidor Web Local

Un servidor web local es aquel servidor web que reside en una red
local al equipo de referencia. El servidor web local puede estar instalado

23
en cualquiera de los equipos que forman parte de una red local. Es por
tanto obvio, que todos los servidores web, son locales a la red local en la
que se encuentran, o como mínimo, locales al sistema en el que están
instalados.

En un servidor web se almacena principalmente documentos HTML


(son documentos a modo de archivos con un formato especial para la
visualización de páginas web en los navegadores de los clientes),
imágenes, videos, texto, presentaciones, y en general todo tipo de
información. Además, se encarga de enviar estas informaciones a los
clientes.

Existen numerosas aplicaciones que facilitan la instalación automática de


servidores web Apache y aplicaciones adicionales como MySQL y PHP
(entre otros), de forma conjunta, como XAMPP.

Las páginas se acceden siempre mediante una dirección o URL, el acceso


para navegar en nuestro equipo se conoce como LocalHost. Éste es un
nombre reservado que tienen todas las computadoras, router o dispositivo
que disponga de una tarjeta de red ethernet para referirse a sí mismo. El
nombre LocalHost es traducido como la dirección IP 127.0.0.1.

Lenguajes de programación

Un lenguaje de programación es un lenguaje diseñado para


describir el conjunto de acciones consecutivas que un equipo debe
ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico
para que los seres humanos puedan dar instrucciones a un equipo.
Pueden usarse para crear programas que controlen el comportamiento
físico y lógico de una máquina, para expresar algoritmos con precisión, o
como modo de comunicación humana.

Los lenguajes de programación refieren a distintos tipos de


expresiones y reglas de estructuración lógica que sirven para generar
taras recurrentes y sistemáticas. Los mismos son de gran importancia

24
porque permiten generar distintos sistemas que sirven para tareas que
satisfacen las necesidades de los usuarios.

Existen varios cientos de lenguajes y dialectos de programación


diferentes y en cualquier caso los mismos se orientan a distintos tipos de
requerimientos. Algunos se crean para una aplicación especial, mientras
que otros son herramientas de uso general más flexibles que son
apropiadas para muchos tipos de aplicaciones. Aunque todos los
lenguajes de programación tienen un conjunto de instrucciones que
permiten realizar dichas operaciones, existe una marcada diferencia en
los símbolos, caracteres y sintaxis que cada uno emplea.

Una característica relevante de los lenguajes de programación es


precisamente que más de un programador pueda usar un conjunto común
de instrucciones que sean comprendidas entre ellos para realizar la
construcción de un programa de forma colaborativa.

HTML

Es un lenguaje de marcado que se utiliza para el desarrollo de


páginas de internet. Este lenguaje de marcado permite ordenar y etiquetar
diversos documentos dentro de lista. El HTML se encarga de desarrollar
una descripción sobre los contenidos que aparecen como textos y sobre
su estructura, complementando dicho texto con diversos objetos.

Para la escritura de este lenguaje, se crea etiquetas que aparecen


especificadas a través de corchetes o paréntesis angulares; < y >. Entre
sus componentes, los elementos dan forma a la estructura esencial del
lenguaje, ya que tienen dos prioridades (el contenido en sí mismo y sus
atributos). Cabe destacar que el HTML permite ciertos códigos que se
conocen como scripts, los cuales brindan instrucciones específicas a los
navegadores que se encargan de procesar el lenguaje.

Etiquetas HTML Básicas:

25
<html> : define el inicio del documento HTML, le indica al navegador que

lo que viene a continuación debe ser interpretado como código HTML.


Esto es así de facto, ya que en teoría lo que define el tipo de documento
es el DOCTYPE, que significa la palabra justo tras DOCTYPE el tag de
raíz.

<script> : incrusta un script en una web, o llama a uno mediante src="url

del script" . Se recomienda incluir el tipo MIME en el atributo type , en el

caso de JavaScript text/javascript .

<head> : define la cabecera del documento HTML; esta cabecera suele

contener información sobre el documento que no se muestra directamente


al usuario como, por ejemplo, el título de la ventana del navegador.
Dentro de la cabecera <head> es posible encontrar:

<title> : define el título de la página. Por lo general, el título aparece en la

barra de título encima de la ventana.

<link> : para vincular el sitio a hojas de estilo o iconos. Por ejemplo: <link

rel="stylesheet" href="/style.css" type="text/css"> .

<style> : para colocar el estilo interno de la página; ya sea usando CSS u

otros lenguajes similares. No es necesario colocarlo si se va a vincular a


un archivo externo usando la etiqueta <link> .

<meta> : para metadatos como la autoría o la licencia, incluso para indicar

parámetros http (mediante http-equiv="" ) cuando no se pueden modificar

por no estar disponible la configuración o por dificultades con server-side


scripting.

<body> : define el contenido principal o cuerpo del documento. Esta es la

parte del documento html que se muestra en el navegador; dentro de esta


etiqueta pueden definirse propiedades comunes a toda la página,

26
como color de fondo y márgenes. Dentro del cuerpo <body> es posible

encontrar numerosas etiquetas. A continuación, se indican algunas a


modo de ejemplo:

<article> : Representa una composición auto-contenida en un documento,

página, una aplicación o en el sitio, que se destina a distribuir de forma


independiente o re-utilizable.

<h1> a <h6> : encabezados o títulos del documento con diferente

relevancia.

<table> : define una tabla.

<tr> : fila de una tabla.

<td> : celda de una tabla (debe estar dentro de una fila).

<footer>: representa el pie de un documento o sección. La información


que se suele añadir en este bloque es el autor del documento, enlaces a
contenido relacionado, información de copyright, avisos legales, etc.

<a> : hipervínculo o enlace, dentro o fuera del sitio web. Debe definirse el

parámetro de pasada por medio del atributo href. Por


ejemplo: <a href="http://www.example.com" title="Ejemplo"

target="_blank" tabindex="1">Ejemplo</a> se representa como

ejemplo.14

<div> : división de la página. Se recomienda, junto con css, en vez

de <table> cuando se desea alinear contenido.

<img> : imagen. Requiere del atributo src, que indica la ruta en la que se

encuentra la imagen. Por ejemplo: <img src="./imágenes/mifoto.jpg" /> .

Es conveniente, por accesibilidad, poner un atributo alt="texto

alternativo" .

27
<li><ol><ul> : etiquetas para listas.

<b> : texto en negrita (etiqueta desaprobada. Se recomienda usar la

etiqueta <strong> ).

<i> : texto en cursiva (etiqueta desaprobada. Se recomienda usar la

etiqueta <em> ).

<s> : texto tachado (etiqueta desaprobada. Se recomienda usar la

etiqueta <del> ).

<u> : Antes texto subrayado. A partir de HTML 5 define porciones de texto

diferenciadas o destacadas del resto, para indicar correcciones por


ejemplo (etiqueta desaprobada en HTML 4.01 y redefinida en HTML 5).

<main> : división estructural de la página que engloba el contenido

principal de la misma. Dentro de esta etiqueta, por ejemplo, encontramos


los <article> .

<span> : Sirve para diferenciar un texto de otro.

<br>: Sirve para provocar un salto de linea.Esta etiqueta no se cierra.

La mayoría de etiquetas deben cerrarse como se abren, pero con una


barra («/») tal como se muestra en los siguientes ejemplos:

<table><tr><td>Contenido de una celda</td></tr></table> .

<script>Código de un script integrado en la página</script> .

<header> División estructural en la parte del contenido.

Ver figura 11.

28
Código HTML
Fuente: elaboración propia

PHP

Es un lenguaje de programación de propósito general de código del


lado del servidor originalmente diseñado para el desarrollo
web de contenido dinámico. Fue uno de los primeros lenguajes de
programación del lado del servidor que se podían incorporar directamente
en un documento HTML en lugar de llamar a un archivo externo que
procese los datos. El código es interpretado por un servidor web con un
módulo de procesador de PHP que genera el HTML resultante.

El intérprete de PHP sólo ejecuta el código que se encuentra entre


sus delimitadores. ¿Los delimitadores más comunes son <? php para

abrir una sección PHP y? > para cerrarla. El propósito de estos

delimitadores es separar el código PHP del resto de código, como por


ejemplo el HTML.

Las variables se prefijan con el símbolo del dólar ( $ ) y no es

necesario indicar su tipo. Las variables, a diferencia de las funciones,

29
distinguen entre mayúsculas y minúsculas. Las cadenas de caracteres
pueden ser encapsuladas tanto en dobles comillas como en comillas
simples, aunque en el caso de las primeras, se pueden insertar variables
en la cadena directamente, sin necesidad de concatenación.

Los comentarios se pueden escribir bien con dos barras al principio


de la línea, o con una almohadilla. También permite comentarios multi-
línea encapsulados en /* */ .

En cuanto a las palabras clave, PHP comparte con la mayoría de


otros lenguajes con sintaxis C las condiciones con if , los bucles

con for y while y los retornos de funciones. Como es habitual en este tipo

de lenguajes, las sentencias deben acabar con punto y coma ( ; ). Ver

figura 12.

Sintaxis de programación en PHP


Fuente: https://es.wikipedia.org/wiki/PHP

Lenguaje SQL

Es un lenguaje específico del dominio utilizado en programación,


diseñado para administrar, y recuperar información de sistemas de
gestión de bases de datos relacionales. Una de sus principales
características es el manejo del álgebra y el cálculo relacional para

30
efectuar consultas con el fin de recuperar, de forma
sencilla, información de bases de datos, así como realizar cambios en
ellas.

Base de Datos

Una base de datos es una colección de información organizada de


forma que un programa de ordenador pueda seleccionar rápidamente los
fragmentos de datos que necesite. Una base de datos es un sistema de
archivos electrónico. Las bases de datos tradicionales se organizan por
campos, registros y archivos.

Las bases de datos se clasifican como estáticas en casos en que


sólo sirven para su lectura y almacenamiento, o dinámicas donde la
información se modifica y puede ser actualizada.

Una base de datos, a fin de ordenar la información de manera


lógica, posee un orden que debe ser cumplido para acceder a la
información de manera coherente. Cada base de datos se compone de
una o más tablas que guarda un conjunto de datos. Cada tabla tiene una
o más columnas y filas. Las columnas guardan una parte de la
información sobre cada elemento que queramos guardar en la tabla, cada
fila de la tabla conforma un registro.

Los programas para realizar una base de datos, son los siguientes:

• Access Access es un sistema de base de datos personal


de Microsoft. Se trata de un producto de software orientado hacia
lo visual, lo que hace que quienes no sean programadores puedan
crear bases de datos útiles con facilidad.
• Visual FoxPro: FoxPro es un sistema de base de datos relacional,
también producido por Microsoft, que está estrechamente unido a
su lenguaje de programación.
• MySQL: MySQL es una base de datos basada en servidor que
permite a varios usuarios acceder a múltiples bases de datos. El

31
software funciona en múltiples plataformas, incluyendo la mayoría
de las variedades de UNIX y Windows.
• SQL Server: SQL Server es un servidor de base de datos a nivel
empresarial escalable. Este producto se diferencia de la base de
datos personal al no proporcionar las herramientas para el usuario
que proporciona un producto de base de datos individual
• Oracle: La Oracle es otra base de datos escalable a nivel
empresarial. La base de datos de SQL soporta bases de datos
corporativos distribuidos, que permiten al usuario acceder a los
datos de forma local o desde bases de datos remotas en una
transacción transparente.

Página Web

Las páginas web están desarrolladas con lenguajes de marcado


como el HTML que pueden ser interpretados por los navegadores. De
esta forma, las páginas pueden presentar información (texto, imágenes,
sonido, videos, animaciones), estar asociadas a datos de estilo o contar
con aplicaciones interactivas.

Entre las múltiples características que tiene una página web y que
sirven para identificarla se encuentran las siguientes: cuenta con
información textual y también con material de tipo audiovisual, está
dotada de un diseño atractivo, esta optimizada y ejerce como la tarjeta de
presentación de una empresa, una persona o un profesional concreto.

Con base en su funcionamiento as páginas web se pueden


clasificar en páginas estáticas y dinámicas.

Páginas web estáticas

Informar al usuario es el objetivo de las paginas estáticas, la


información es permanente y se actualiza de manera ocasional. Para su

32
desarrollo se usan lenguajes de maquetación y diseño, la actualización de
la información la realiza el administrador del servidor. Ver figura 13.

Páginas Estáticas
Fuente: elaboración propia

Las paginas estáticas no soportan otras aplicaciones como base de


datos, consultas en línea o procesos de compra. Su aplicación principal
está orientada a sitios empresariales que solo desean ofrecer una
descripción de sus actividades, misión y visión, el equipo de trabajo y los
servicios que ofrecen.

Paginas Dinámicas

Se basan en la generación de contenido a través de la información


introducida por el usuario, a partir del lenguaje de programación, procesan
y almacenan los datos que el usuario ingresa. Ver figura 14.

33
Paginas dinámicas
Fuente: elaboración Propia

La actualización del contenido se realiza desde la página y no


necesariamente desde el servidor. Las paginas dinámicas están
orientadas a aplicaciones que requieran registro de usuario, Actualización
de la información y la interacción usuario página.

Laravel

Es un framework de código abierto para desarrollar aplicaciones y


servicios web con PHP 5 y PHP 7. Su filosofía es desarrollar código PHP
de forma elegante y simple, evitando el "código espagueti”. También
permite tener un código ordenado en carpetas identificadas y trabaja en
base al sistema modelo, vista, controlador.

Cabe destacar que, incluye su eloquent-relational-mapping(ORM),


en el cual se puede acceder a los registros de la base de datos como si
fueran objetos de php y no tener que ejecutar código SQL. También
incluye un motor de plantillas llamado blade, que, gracias a ello se puede

34
generar un layout que contiene todos los elementos comunes de todo el
sitio web y así escribir menos código HTML. Dicho framework posee una
excelente documentación y su despliegue es muy sencillo, en el cual se
puede correr la aplicación en un servidor compartido, o en un hosting sin
ningún problema Ver figura 15.

Icono del framework Laravel


Fuente: https://laravel.com/

Bootstrap

Es un framework para crear interfaces de usuario limpias y


totalmente adaptables a todo tipo de dispositivos y pantallas. Ofrece las
herramientas necesarias para crear cualquier tipo de sitio web utilizando
los estilos y elementos de sus librerías. Ver figura 16.

Icono de la biblioteca Bootstrap


Fuente: https://getbootstrap.com/

35
WEB-Hosting

El alojamiento web (en inglés: web hosting) es el servicio que


provee a los usuarios de Internet un sistema para poder almacenar
información, imágenes, vídeo, o cualquier contenido accesible vía web. Es
una analogía de "hospedaje o alojamiento en hoteles o habitaciones"
donde uno ocupa un lugar específico, en este caso la analogía
alojamiento web o alojamiento de páginas web, se refiere al lugar que
ocupa una página web, sitio web, sistema, correo electrónico, archivos,
etc., en internet o más específicamente en un servidor que por lo general
hospeda varias aplicaciones o páginas web.

Las compañías que proporcionan espacio de un servidor a sus


clientes se suelen denominar con el término en inglés web host.

El hospedaje web, aunque no es necesariamente un servicio, se ha


convertido en un lucrativo negocio para las compañías de Internet en todo
el mundo.

Se puede definir como "un lugar para tu página web o correos


electrónicos", aunque esta definición simplifica de manera conceptual el
hecho de que el alojamiento web es en realidad espacio en Internet para
prácticamente cualquier tipo de información, sea archivos, sistemas,
correos electrónicos, videos, etcétera.

Según las necesidades específicas de un usuario, existen


diferentes tipos de alojamiento web entre los cuales el usuario ha de
elegir la opción acorde a sus necesidades. Entre los principales tipos de
alojamiento web se encuentran:

Alojamiento gratuito

El alojamiento gratuito es extremadamente limitado comparado con


el alojamiento de pago. Estos servicios generalmente agregan publicidad
en los sitios además de contar con recursos muy limitados (espacio en
disco, tráfico de datos, uso de CPU, etc.).

36
Alojamiento por donación

Este tipo de alojamiento por donación tiene unas características a


nombrar importantes, ya que es un método nuevo de implementación
puesto que es mejor que el alojamiento gratuito (free hosting), esto quiere
decir que tiene las prestaciones de un alojamiento de pago, pero creado
para ser mantenido por los usuarios de la comunidad, los cuales utilizan el
servicio, reciben soporte de manera adecuada y no tienen publicidad en
sus sitios o proyectos de desarrollo.

Alojamiento compartido

En este tipo de servicio se alojan clientes de varios sitios en un


mismo servidor, gracias a la configuración del programa servidor web.
Resulta una alternativa muy buena para pequeños y medianos clientes,
es un servicio económico debido a la reducción de costos ya que al
compartir un servidor con cientos miles o millones de personas o usuarios
el costo se reduce drásticamente para cada uno, y tiene buen
rendimiento.

Entre las desventajas de este tipo de hospedaje web hay que


mencionar sobre todo el hecho de que compartir los recursos
de hardware de un servidor entre cientos o miles de usuarios disminuye
notablemente el rendimiento del mismo. Es muy usual también que las
fallas ocasionadas por un usuario repercutan en los demás por lo que el
administrador del servidor debe tener suma cautela al asignar permisos
de ejecución y escritura a los usuarios. En resumen, las desventajas son:
disminución de los recursos del servidor, de velocidad, de rendimiento, de
seguridad y de estabilidad.

37
Alojamiento de imágenes

Este tipo de hospedaje se ofrece para guardar imágenes en


internet, la mayoría de estos servicios son gratuitos y las páginas se valen
de la publicidad colocadas en su página al subir la imagen.

Alojamiento de vídeo

Si bien el alojamiento de imágenes forma parte de lo habitual en un


servicio de alojamiento web, en general, no es recomendable
alojar vídeo en un servicio de alojamiento web convencional debido al
gran consumo de ancho de banda y espacio de este tipo de medios.

Por este motivo existen diversos servicios especializados de


alojamiento de vídeo, muchos de ellos con opciones de servicio gratuitas.
Los ejemplos más conocidos son los servicios de YouTube y Vimeo, pero
también existen específicamente orientados a profesionales
como Wistia que proveen valor añadido a través de funcionalidades
avanzadas como funciones avanzadas de analítica web, seguimiento del
comportamiento de los usuario o mapas de calor.

Por otra parte, los CMS modernos como, por


ejemplo, WordPress o Joomla, permiten integrar estos vídeos fácilmente
de modo que hospedar vídeos en un alojamiento especializado y un
sistema WordPress en un alojamiento convencional suele ser la fórmula
óptima en la mayoría de los casos.

Alojamiento de correo corporativo

El servicio de envío y recepción de correos es una actividad que


consume muchos recursos del servidor web o alojamiento web. Por eso
muchas veces las empresas se ven obligadas a contratar un servicio de
alojamiento exclusivo para correos corporativos. Este servicio de
alojamiento de correos corporativos se enfoca en satisfacer todas las
demandas de los usuarios de correos, tales como seguridad, filtros

38
antispam, velocidad, sincronización en varios aparatos, manejo de
contactos y eventos, manejo de documentos en la nube, etc.

Alojamiento revendedor (resell)

Este servicio de alojamiento está diseñado para grandes usuarios o


personas que venden el servicio de hospedaje a otras personas. Estos
paquetes cuentan con gran cantidad de espacio y de dominios disponibles
para cada cuenta. Así mismo estos espacios tienen un límite de
capacidad de clientes y dominios alojados y por ende exige buscar un
servidor dedicado.

Servidores virtuales (Virtual Private Server, VPS)

La empresa ofrece el control de una computadora aparentemente


no compartida, que se realiza mediante una máquina virtual. Así se
pueden administrar varios dominios de forma fácil y económica, además
de elegir los programas que se ejecutan en el servidor. Por ello, es el tipo
de producto recomendado para empresas de diseño y programación web.

Servidores dedicados

Un servidor dedicado es una computadora comprada o arrendada


que se utiliza para prestar servicios dedicados, generalmente
relacionados con el alojamiento web y otros servicios en red. A diferencia
de lo que ocurre con el alojamiento compartido, en donde los recursos de
la máquina son compartidos entre un número indeterminado de clientes,
en el caso de los servidores dedicados, generalmente es un solo cliente el
que dispone de todos los recursos de la máquina para los fines por los
cuales haya contratado el servicio.

Los servidores dedicados pueden ser utilizados tanto para prestar


servicios de alojamiento compartido como para prestar servicios de
alojamiento dedicado, y pueden ser administrados por el cliente o por la
empresa que los provee. El cuidado físico de la máquina y de la
conectividad a Internet está generalmente a cargo de la empresa que

39
provee el servidor. Un servidor dedicado generalmente se encuentra
localizado en un centro de datos.

Un servidor dedicado puede ser entendido como la contraparte del


alojamiento web compartido, pero eso no significa que un servidor
dedicado no pueda ser destinado a entregar este tipo de servicio. Este es
el caso cuando, por ejemplo, una empresa dedicada al negocio del
alojamiento web compra o arrienda un servidor dedicado con el objetivo
de ofrecer servicios de alojamiento web a sus clientes.

Por otro lado, un servidor dedicado puede ser utilizado como una
forma avanzada de alojamiento web cuando un cliente o empresa tiene
requerimientos especiales de rendimiento, configuración o seguridad. En
estos casos es común que una empresa arriende un servidor dedicado
para autoabastecerse de los servicios que necesita disponiendo de todos
los recursos de la máquina.

La principal desventaja de un servidor dedicado es el costo del


servicio, el cual es muy superior al del alojamiento compartido. Esto
debido principalmente al costo mensual de la máquina y la necesidad de
contratar los servicios para la administración y configuración del servidor.

Servidores dedicados administrados

Son las máquinas que se usan como servidores dedicados, pero


que además incluyen un servicio de soporte de mantenimiento de las
máquinas y del software de las máquinas.

Alojamiento Administrado y No Administrado

Algunas compañías ofrecen a sus clientes mejores precios si


contratan un plan de alojamiento "No Administrado" esto quiere decir que
ellos se limitarán a ofrecer la conectividad, recursos, panel de control y
todas las herramientas necesarias para administrar el plan contratado
pero no le brindarán asistencia para los fallos, desconfiguraciones, o
errores causados por la aplicación web que se esté ejecutando (CMS,

40
archivos de PHP, HTML) los cuales deben ser administrados enteramente
por el webmaster del sitio web.

Colocación (housing)

Este servicio consiste básicamente en vender o alquilar un espacio


físico de un centro de datos para que el cliente coloque ahí su propia
computadora. La empresa le da la corriente y la conexión a Internet, pero
el servidor lo elige completamente el usuario (hasta el hardware).

Alojamiento web en la nube (cloud hosting)

El alojamiento web en la "nube" (cloud hosting) está basado en las


tecnologías más innovadoras que permiten a un gran número de
máquinas actuar como un sistema conectadas a un grupo de medios de
almacenamiento, tiene ventajas considerables sobre las soluciones
de web hosting tradicionales tal como el uso de recursos. La seguridad de
un sitio web alojado en la "nube" (cloud) está garantizada por numerosos
servidores en lugar de solamente uno. La tecnología de computación en
la nube también elimina cualquier limitación física para el crecimiento en
tiempo real y hace que la solución sea extremadamente flexible.

41
CAPÍTULO III

MARCO METODOLÓGICO

En este capítulo se expone la metodología empleada para alcanzar


los objetivos de la investigación, los cuales son: tipos de investigación,
diseño de la investigación, unidad de análisis, técnicas e Instrumentos de
recolección de datos, procesamiento de recolección de datos,
procesamiento de la información y análisis de la información.

Tipo de Investigación

De acuerdo a lo planteado en este trabajo, se establece la


investigación de tipo proyectiva. En virtud de esto (Hurtado, 2008) señala:

“La investigación proyectiva, consiste en la elaboración de una


propuesta, un plan, un programa o un modelo, como solución a un
problema o necesidad de tipo proyectivo ya sea de un grupo social,
o de una institución, o de una región geográfica, en un área en
particular del conocimiento” (p. 50).

Este tipo de investigación se ocupa de determinar los pasos para


desarrollo un proyecto, alcanzar la propuesta deseada, y que la misma
funcione correctamente. Esto involucra, creación, diseño, elaboración de
proyecto en donde la propuesta debe estar fundamentada en un proceso
sistemático de indagación que requiere análisis y comparación y que tiene
como objetivo el desarrollo de una propuesta que está dirigida a resolver
una necesidad para el bienestar y confort dentro de un área de la
sociedad.

Diseño de la investigación

Según el autor (Hurtado, 2008):

42
“el diseño alude a las decisiones que se toman en cuenta al
proceso de recolección de datos que permite al investigador lograr
la validez interna de la investigación, es decir, tener un alto grado
de confianza de que sus conclusiones no son erradas”. Con lo cual
se establece que la investigación es de tipo no experimental debido
a que no requiere la manipulación deliberada de las variables, al
contrario, se estudian en su entorno natural, ejerciendo acciones
dadas ciertas condiciones. Asimismo (Mendez, 2001) señala que
“la investigación no experimental evalúa el fenómeno o hecho
objeto de estudio pero no pretende explicar las causas por lo que el
efecto se ha originado, es decir hace permisible medir lo que se
pretende sin condicionar los resultados” (p. 75).

El diseño de investigación es el plan o estrategia adoptada para dar


respuesta o solución al problema planteado, de manera que señale que
hacer para cumplir satisfactoriamente con los objetivos.

Unidad de análisis

El conjunto de seres que poseen la característica o evento a


estudiar y que se enmarcan dentro de los criterios de inclusión conforman
la población. En algunos casos la población es tan grande o inaccesible
que no se puede estudiar toda, entonces el investigador tendrá la
posibilidad de seleccionar una muestra. El muestreo no es un requisito
indispensable de toda investigación, eso depende de los propósitos del
investigador, el contexto y las características de sus unidades de estudio.
(Hurtado, 2008).

Partiendo de esto, la población de esta investigación estará conformada


por el prototipo diseñado y las tarjetas RFID utilizadas para realizar las
pruebas pertinentes. Como muestra se tomará la placa Arduino UNO R2 y
el lector RFID RC522.

Técnicas e instrumentos de recolección de datos

Para cumplir los objetivos planteados es necesaria una serie de


recolección de datos e información, para ello se utilizan técnicas que
ayuden al investigador a desarrollar el trabajo en un ambiente eficaz y

43
ordenado, y que ayuden a observar si se está cumpliendo el objetivo
debidamente.

Las técnicas tienen que ver con los procedimientos utilizados para
la recolección de los datos, es decir, el cómo. Estas pueden ser de
revisión documental, observaciones, encuesta y técnicas sociométricas,
entre otras. (Hurtado, 2015).

En vista de lo anterior se definen las dos técnicas utilizadas para la


recolección de datos de esta investigación, revisión documental y
entrevista con el tutor:

Revisión documental: Esta no es más que una técnica de registro


de documentación que busca fundamentar el propósito de esta
investigación y además permite el desarrollo del marco teórico o
conceptual de la misma. Debido a que ya se han realizado proyectos
previos con información, datos y elementos de utilidad para este trabajo,
se recurrió a la consulta de distintos trabajos de grado, tutoriales, páginas
informativas de internet, blogs informativos con la finalidad de recolectar
la información requerida.

Entrevistas con el tutor: Estas son entrevistas informales con el


tutor académico, con el fin de resolver dudas e interrogantes y nutrir la
investigación de los conocimientos de obtenidos para el buen desarrollo
de la misma.

Durante la investigación, estudio y desarrollo de este proyecto se


planea hacer el uso de un conjunto de herramientas que permita llevar a
cabo los objetivos planteados y de esta manera garantizar unos
resultados óptimos. Los instrumentos representan la herramienta con la
cual se va a recoger, filtrar y codificar la información, es decir, el con qué.
Los instrumentos, pueden estar ya elaborados e incluso normalizados
(Hurtado, 2015). Estos se mencionan a continuación:

44
Computador personal: Equipo electrónico con capacidades de
cómputo y procesamiento, el cual es usado para la programación de la
placa Arduino UNO R2, investigación documental y redacción del informe.

Projectboard: Tabla de conexiones para el desarrollo de circuitos


electrónicos. Para el montaje y posteriores pruebas de todos los circuitos
que conforman el diseño.

Arduino UNO R2: Dispositivo que se encarga de procesar la


información enviada por el lector RFID.

Lector RFID RC522: Dispositivo que se encarga de analizar la información


contenida en cada una de las tarjetas RFID que se van a utilizar.

Tarjetas RFID: Objeto donde está contenida la información


perteneciente a cada usuario.

Software Arduino IDE: Herramienta necesaria para programar las


acciones a realizar en la placa Arduino UNO.

Software Processing: Entorno de programación que sirve de enlace


entre el Arduino UNO y la base de datos.

Software MySQL: Sistema de gestión de base de datos donde


llevaremos el control de información de todos los usuarios involucrados.

Framework Laravel: Usado para el diseño de la aplicación web,


mediante PHP y HTML 5.

Framework Bootstrap: Usado para la maquetación de la aplicación


web diseñada, este framework permitirá aplicar los estilos a las vistas.

Procedimiento de recolección de datos

Para el procesamiento de información de este trabajo se inició con


exploraciones previas, revisión y análisis de la teoría que comprende esta
investigación y así desarrollar el marco teórico, acudiendo a la revisión de
escritos tales como, libros, páginas web, tutoriales, ejemplos de

45
programación que aportan información sobre el uso y manejo de la placa
Arduino UNO R2 y el lector RFID RC522. Seguidamente, se hicieron
entrevistas con el tutor académico, Ing. Sergio Velázquez, de donde se
obtuvo información relevante, oportuna e importante para el desarrollo del
proyecto.

Procesamiento de la información

Para el procesamiento de la información se utilizaron varias


herramientas computacionales: Arduino IDE, Processing, phpMyAdmin.
Estas nos permiten obtener el código único coligado a las tarjetas que es
enviado al puerto serial, leer los datos previamente transmitidos para
cargarlos a la base de datos asociada y verificar que se hayan ejecutado
de manera correcta los procesos anteriores, respectivamente. Los pasos
para el desarrollo de la investigación fueron los siguientes:

Definición del problema, considerando los objetivos generales y


específicos de la investigación.

Investigación y recopilación de las bases teóricas necesarias para


la realización del proyecto.

Seleccionar los componentes de hardware y software para el


diseño del circuito electrónico del proyecto.

Diseñar el software para la placa Arduino UNO R2, el entorno


Processing y para la construcción de la base de datos con las
herramientas de programación adecuadas.

Diseñar el entorno web en el cual se almacenará la base de datos

Construir el prototipo del circuito electrónico en una maqueta tipo


projectboard de forma tal que se pueda verificar su funcionamiento.

Montaje y realización de las pruebas del prototipo final.

46
CAPÍTULO IV

DISEÑO

En este capítulo se presenta la descripción detallada del diseño


realizado, el funcionamiento y la estructura del mismo, tanto a nivel de
hardware como a nivel de software. Cesar te amo)

Descripción general del sistema

El proyecto propuesto consiste en la implementación de un sistema


de control de acceso y asistencia personal mediante una integración de
tecnología rfid, hardware arduino y sistema de información web. El
registro y control de los trabajadores se lleva a cabo mediante una
aplicación web previamente diseñada la cual estará funcionando de
manera local. Al finalizar la jornada laboral, la base de datos que posee
toda la información de acceso, es cargada al hosting gratuito
000webhost.com de manera manual por el usuario encargado.

La figura 17 muestra el diagrama del sistema propuesto, el cual se


dividió en 3 bloques fundamentales de tal manera de entender mejor el
funcionamiento, dichos bloques son, Servicio Base de datos y aplicación
web.

47
Servicio Aplicación Web

Base de Datos

Sistema Propuesto
Fuente: Elaboración Propia

Servicio

El Servicio está formado por el hardware del sistema de acceso y el


software “Processing” usado para él envió y consulta de información de la
base de datos. Es importante destacar que el servicio mantiene una
retroalimentación en conjunto con la base de datos, es decir, existe una
comunicación permanente entre la base de datos y el sistema rfid. La
figura 18 muestra el diagrama de bloques detallado del servicio.

48
Servicio Propuesto
Fuente: Elaboración Propia

A continuación, se describe el funcionamiento de los bloques del


servicio propuesto de la figura 18:

Tarjetas RFID

Está formado por las tarjetas y llaveros que son asignados al


personal trabajador, la teoría de las tarjetas RFID se encuentra detallada
en el capítulo II.

Las tarjetas usadas para la prueba del sistema, son del tipo pasiva,
es decir, no necesitan de alimentación eléctrica para funcionar, dichas
tarjetas cuentan con 26 bits de código cuya frecuencia de la portadora es
de 13.56MHz, lo cual la hace ideal para funcionar con el lector RFID-
RC522 seleccionado.

El funcionamiento de estos tags es el siguiente:

El lector le envía una señal que induce una pequeña corriente


eléctrica suficiente como para activar el circuito integrado de la tarjeta,
que contiene el código único que las identifica. Cuando la tarjeta recibe la

49
señal del lector, esta utiliza la energía recibida para responderle al lector
con la información solicitada. Estas etiquetas son más económicas, por lo
general más pequeñas y tienen una duración que dependerá del cuidado
físico que reciba.

Lector RFID

El modulo lector usado para el presente trabajo fue el RC-522


mostrado en la figura 13 y explicado en el capítulo II. Dicho modulo
fue seleccionado debido a que es perfectamente adaptable a la
placa arduino uno, además la frecuencia a la que opera dicho
modulo es la misma que las tarjetas pasivas que fueron elegidas
para dicho trabajo, y cuya alimentación de 3.3V, puede ser
aprovechada por el pin de alimentación de la placa Arduino UNO.

A continuación, se indica la descripción de cada pin:

SDA (Slave Select): este pin permite habilitar el módulo RC-522 en


caso tal de que requiera su uso.

SCK (Serial Clock): Señal de reloj del bus. Esta señal rige la
velocidad a la que se transmite cada bit.

MOSI (Master Out Slave IN): Transmisión de datos hacia el otro


integrado.

MISO:(Master In Slave OUT): Es la señal de entrada a nuestro


dispositivo, por aquí se reciben los datos desde el otro integrado.

IRQ (Interrupt Request): Son las líneas de interrupción que utilizan


los dispositivos para avisar al microprocesador que necesitan su atención.

RST(Reset): Pin de reseteo del módulo.

Este módulo se comunica de manera serial cuya teoría se


encuentra detallada en el capítulo II.

50
Arduino UNO R2

De acuerdo a la teoría investigado en el capítulo II, arduino Uno es


una placa electrónica basada en el microcontrolador ATmega328. Cuenta
con 14 entradas/salidas digitales, de las cuales 6 se pueden utilizar como
salidas PWM (Modulación por ancho de pulsos) y otras 6 son entradas
analógicas. Además, incluye un resonador cerámico de 16 MHz, un
conector USB, un conector de alimentación, una cabecera ICSP y un
botón de reseteado. La placa incluye todo lo necesario para que el
microcontrolador integrado realice su trabajo, basta conectarla a un
ordenador con un cable USB o a la corriente eléctrica a través de un
transformador.

A su vez, el Arduino UNO R2 goza de un pin de GND y una salida


de 3.3 voltios que permite la alimentación del lector RFID, y los leds
incorporados.

Processing

Dicho programa fue usado para manejar el código enviado por la


placa Arduino al puerto USB del pc, para luego realizar las respectivas
consultas a la base de datos.

Protocolo de comunicación Arduino-Processing

El envió de información de datos entre processing y arduino, fue


realizado mediante el protocolo de comunicación serial a través del puerto
USB del PC, usando la librería processing. serial. *, de processing y la
librería Serial.Begin() de arduino.

Se envía una trama de 10 bits, 8 bits pertenecientes al dato


enviado, 1 bit de paridad de tipo carácter el cual es la letra “N” y un bit de
parada de tipo real el cual es el número “1”. Ver figura 19.

51
Trama de envío de datos entre processing y arduino
Fuente: https://www.processing.org/reference/libraries/serial/Serial.html

Base de datos Mysql

Es el Sistema de gestión de base de datos, habitualmente utilizada


en entorno Linux y con programación PHP. Permite, por ejemplo, desde la
creación de cualquier sistema de registro de usuarios, hasta las
funcionalidades más avanzadas de un proyecto Web. El entorno para la
realización de la base de datos fue Xampp.

XAMPP es un paquete de software libre, que consiste


principalmente en el sistema de gestión de bases de datos MySQL, el
servidor web Apache y los intérpretes para lenguajes de script PHP y Perl.

La figura 16 muestra el panel de control del servicio Xampp, cuyo


funcionamiento es extremadamente sencillo, solo basta con darle click al
botón start del módulo apache para iniciar el servidor local, y el botón start
del módulo Mysql para el diseño de la base de datos. Ver figura 20.

52
Panel de control del software Xampp
Fuente: El autor

Una vez iniciado los módulos Apache, MySQL, abriendo el


navegador y escribiendo en la barra de dirección, la URL
http://localhost/phpmyadmin/, se accede al panel que permite la creación
de base de datos. Ver figura 21.

53
Panel PHPmyAdmin para la creación de base de datos
Fuente: Elaboración propia

Una vez en dentro del servicio, se procedió a crear la base de


datos encargada de las gestiones de acceso. El nombre de la base de
datos para este trabajo fue “sarfid” (sistema de acceso rfid), en la cual se
crearon 3 tablas, la primera llamada “users” encargada de gestionar los
usuarios que pueden ingresar a la aplicación web. Ver figura 22.

Tabla Users
Fuente: Elaboración propia

54
Dicha tabla posee 6 campos mostrados en la tabla 1:

Tabla 1 Campos de la tabla "users"

Id Campo del tipo entero que se encarga de la numeración


automática del usuario (declarada como PK)

Name Campo de tipo carácter el cual almacena el nombre del


usuario

Email Correo usado como requisito de ingreso a la página web

password Contraseña para ingresar al sistema de monitoreo vía web

Update_at Campo que almacena la fecha y hora en el que el usuario


ha sido modificado

Created_at Campo que almacena la fecha y hora en el que el usuario


ha sido creado

Fuente: Elaboración Propia

La segunda tabla de nombre “Usuarios” se encarga de almacenar


los datos personales del usuario, así como el código único de el
identificador RFID. Ver figura 23.

Tabla usuarios
Fuente: Elaboración propia

55
Dicha tabla posee 6 campos mostrados en la tabla 2:

Tabla 2 Campos de la tabla "usuarios

Num Campo del tipo entero que se encarga de la


numeración automática del usuario (declarada como
PK)

ID Campo de tipo carácter el cual almacena el ID de la


tarjeta RFID del trabajador

Nombre Nombre del trabajador

Apellido Apellido del trabajador

Cedula Campo que almacena la cedula del usuario

Departamento Campo que almacena el departamento al cual


pertenece el trabajador

Fuente: elaboración propia

La tercera tabla de nombre “Activación” se encarga de registrar el ingreso


y salida del área en la que se encuentra el trabajador, así como la fecha y
la hora en la que este género el pase Ver figura 24.

Tabla activación
Fuente: Elaboración propia

56
Dicha tabla posee 8 mostrados en la tabla 3:

Tabla 3 Campos de la tabla Activación

Num Campo del tipo entero que se encarga de la numeración


automática del usuario (declarada como PK)

ID Campo de tipo carácter el cual almacena el ID de la tarjeta


RFID del trabajador

Nombre Nombre del trabajador

Apellido Apellido del trabajador

Fecha Campo que almacena Fecha en la que se generó el


ingreso o salida al área de trabajo

Hora Hora de ingreso o salida del trabajador

Minutos Minutos de ingreso o salida del trabajador

Segundo Segundos de ingreso o salida del trabajador

Reporte Reporte de las cantidades de veces que paso la tarjeta el


trabajador

Tiempo Tiempo global trabajado mensual


trabajado

Fuente: Elaboración Propia

Diagrama entidad-relación de la Base datos Diseñada

La figura 25 muestra el diagrama entidad relación en la cual indica


la relación que posee la tabla “Usuarios” con la tabla “Activación”, cuya
relación es 1 a muchos, ya que un usuario puede tener muchas acciones,
y las acciones pertenecen solo a un usuario. Cabe destacar que el campo

57
cedula se declaró como “Primary Key” de tal manera que este campo es
único para cada trabajador. La tabla “users” es independiente del sistema
de acceso ya que esta solo se encarga de almacenar los Administradores
que pueden acceder a la aplicación web diseñada.

Diagrama Entidad Relación de la base de datos diseñada


Fuente: Elaboración Propia

Funcionamiento del servicio diseñado

La sucesión de eventos del servicio diseñado se describe de


manera general, en las etapas siguientes:

 Decodificación: es la lectura de la tarjeta del usuario para la


obtención del user code que posteriormente se deposita en una
variable. La decodificación la lleva acabo el módulo RC522, cuya
información es recibida por el arduino vía serial y almacenada en
una variable.
 Transmisión I: envía desde arduino conectado al puerto USB del
pc, los datos del user code, al software processing, esto

58
mediante el sketch Arduino IDE, que fue programado en la
placa.
 Recepción I: consta de la lectura del puerto USB mediante el
software Processing el cual obtiene la información del user code
para posteriormente compararlo con el de la base de datos.
 Conexión: establece, mediante Processing, el enlace con la base
de datos.
 Consulta: el software processing consulta a la base de datos si
la variable del user code es igual a los registrados. De ser igual
se captura la fecha y la hora de lo contrario, ejecutará la etapa
de Transmisión II.
 Actualización: asigna en la base de datos la información, así
como la hora y fecha correspondientes a la lectura de la tarjeta.
 Transmisión II: Processing envía mediante el puerto USB al que
se encuentra conectado la placa arduino una variable que
representa el resultado de la consulta en la base de datos, es
decir, si el usuario se encuentra registrado o no.
 Recepción II: Arduino recibe la variable enviada por el software
processing a través del puerto USB con el estatus de la consulta
a la base de datos.
 Notificación: se envían las instrucciones a la interfaz la cual
enciende un led verde o rojo para el caso en que este se
encuentre registrado o no respectivamente, y un led amarillo si
se logró conectar a la base de datos.

El led verde representa el acceso del personal el cual puede ser un


relé que activa una cerradura eléctrica.

Diseño de la aplicación Web

El papel fundamental que desempeña la aplicación es el control y


monitoreo de los trabajadores que hacen uso del sistema de acceso,
desde la creación de la nómina y ubicación, hasta la hora y fecha de

59
ingreso como de salida del sitio de trabajo. Para el diseño de la aplicación
se hizo uso de la estructura modelo vista controlador empleada con el
framework laravel y mostrada en la figura 26.

Modelo, Vista ,Controlador implementado


Fuente: Elaboración Propia

El funcionamiento de esta estructura es la siguiente:

• Petición: El usuario que desea entrar a la aplicación es quien


maneja el registro de los trabajadores (administrador de nómina),
hace las peticiones mediante una vista previamente diseñada de la
aplicación.
• Rutas: Las peticiones del usuario son enviadas y notificadas hacia
el controlador. La ruta es la caja de texto ubicada en la barra de
navegación del explorador web y sirve para ubicar de manera
precisa un servidor, o cualquier recurso, una imagen, un video o
una página web.
• Controlador: Procesa la petición enviada por la ruta y decide si
direccionar a una nueva vista al usuario o si esas peticiones van al
modelo.
• Modelo: Es quien hace la consulta a la base de datos y retorna la
información que fue requerida al controlador, luego el controlador
procesa la información para enviarla a la vista.
• Vista: recibe la información del controlador y muestra al usuario la
información solicitada.

60
De esta manera se obtiene una aplicación eficiente y estructurada

Los softwares usados para la creación de la aplicación web, fueron


LARAVEL y Bootstrap los cuales se explicaron a detalle en el capítulo II.

Servidor 000WebHost

Es un host que ofrece servicios de internet en varias categorías.


Cabe destacar que, para este trabajo si hizo uso de la categoría gratuita
que ofrece dicho servidor, el cual se amolda a las necesidades que exige
dicho proyecto:

• No posee Script Auto Installer.


• Limitado a 1 GB de espacio.
• Limitado a 10 GB de banda ancha.
• No posee servicio de email.
• No soporta streaming en vivo.
• No posee backups.

El envío de los datos al hosting se hace de manera manual, es decir,


terminada la jornada laboral, la base de datos es emigrada al hosting
gratuito en internet de tal manera que la información de acceso pueda ser
observada vía internet.

A continuación, se muestra la ejecución del diseño presentado, que


comprende la circuitería de los componentes que integran el mismo, y la
programación de la unidad de procesamiento del Arduino UNO R2, el
entorno Processing, la codificación HTML y PHP; esto, con el fin de lograr
la construcción del sistema de control de acceso propuesto.

Hardware

Debido a que el arduino no posee un software de simulación se


procedió a implementar el hardware directamente en un projectboard.

61
La figura 25 muestra el hardware usado para el sistema de acceso,
formado por la placa arduino UNO R2, el lector RFID-RC522 y 3 leds
encargados de indicar el acceso o no acceso del trabajador.

El lector RFID se comunica con el módulo de procesamiento del


Arduino UNO mediante conexiones físicas entre ellos y se conecta con la
PC a través de un cable USB. Ver figura 27.

Hardware implementado
Fuente: Elaboración propia

La conexión de los pines de la placa arduino con el módulo RFID-


RC522 se muestra en la tabla número 3.

62
Tabla 4. Conexión del arduino y el módulo RC522

Módulo RC522 Arduino UNO

SDA(SS) PIN 10

SCK PIN 13

MOSI PIN 11

MISO PIN 12

IRQ No conectado

GND GND

RST PIN 9

3.3v 3.3V

Fuente: Elaboración propia

Led verde: PIN 8

Led rojo: PIN 6

Led Amarillo: PIN 7

Aplicando la ley de Ohm, donde el voltaje es igual al valor de la


corriente por la resistencia, como se muestra en la ecuación 1:

𝑉 =𝐼 ∗𝑅 (1)

Se calculó el valor de las resistencias, puesto que los otros dos


valores son conocidos, quedando la expresión como se muestra a
continuación en la ecuación 2:

63
𝑉
𝑅= (2)
𝐼

Sustituyendo 3.3 voltios y 20 mA para los valores del voltaje y la


corriente, correspondientemente, y se obtiene el valor de las resistencias
en términos de ohmios, como se muestra en la ecuación 3:

3.3 𝑉
𝑅= = 165 Ω (3)
20𝑚𝐴

El resultado obtenido para las resistencias fue de 165 ohm cada


una. Dichas resistencias van conectadas a los pines positivos de los Leds
respectivamente, mientras que el otro extremo va al GND del
projectboard. la tabla 5 muestra el costo del hardware empleado.

Tabla 5: Costo del hardware

Material Costo

Arduino Uno R2 30$

Módulo Rc-522 5$

Led(amarilo,verde.rojo) 1$

Resistencias (165R) 1$

Total 37$

Fuente: mercadolibre.com.ve

Software

A continuación, se presentan los algoritmos que permitieron el


funcionamiento del sistema de acceso RFID, dichos algoritmos fueron
presentados en diagramas de flujo para su mejor comprensión.

Programación en la unidad de procesamiento del Arduino UNO R2

El algoritmo programado en la unidad Arduino UNO R2 fue


realizado en lenguaje de programación C y ejecuta las siguientes
instrucciones de manera sistemática:

64
• Recibe la lectura de del módulo RFID-RC522 mediante el
protocolo SPI
• Si el código recibido es 26 bits se procede a enviar los datos vía
serial por el puerto USB, mediante el protocolo SPI,en caso
contrario vuelve a esperar la lectura en el módulo RFID.
• Una vez enviado los datos vía serial, resetea las variables usadas y
encuesta si el puerto serial se encuentra disponible.
• Si el puerto serial se encuentra disponible, captura los datos
provenientes del mismo, en caso contrario vuelve a encuestar si se
encuentra disponible.
• Si el dato recibido es la letra “A” el trabajador se encuentra en la
base de datos y puede acceder al área, por lo tanto, enciende el
led verde.
• Si el dato recibido es la letra “B” el software processing se
encuentra conectado a la base de datos consultando si el código
existe, encendiendo el led amarillo.
• Si el dato recibido es la letra “C” el trabajador no se encuentra en la
base de datos por lo tanto enciende el led rojo.

La figura 28 muestra el diagrama de flujos del código.

65
Diagrama de flujos del código arduino UNO
Fuente: Elaboración propia

Código ejecutado en el software processing.

El algoritmo programado en el software Processing fue realizado en


lenguaje de programación Java, se ejecuta constantemente en la PC y
mantiene una comunicación con la placa arduino UNO mediante el
protocolo SPI del puerto USB asociado. Las siguientes instrucciones se
ejecutan de manera sistemática:

• Inicialmente el software se encuentra encuestando el puerto usb de


la unidad arduino UNO.
• El software processing captura la lectura del puerto serial
conectado a la placa arduino y se conecta a la base de datos
• Si la conexión es exitosa, envía el carácter “B” vía puerto serial a la
unidad Arduino UNO y compara los códigos de las tarjetas que se
encuentran en la tabla “Usuarios”, de ser fallida la conexión vuelve
a esperar por un dato en el puerto serial.

66
• Si el ID del trabajador se encuentra en la tabla usuarios, captura la
fecha y la hora en la que dicho trabajador paso la tarjeta y lo
almacena en la tabla “Activación”, en conjunto al departamento y
su cedula, por ultimo envía la letra “A” vía Serial para indicar que el
usuario se encuentra en la base de datos.

La figura 29 muestra el diagrama de flujo del código generado en


processing.

Diagrama de flujo del código de processing


Fuente: Elaboración Propia

67
Puesta en marcha de la aplicación Web de manera Local

Como se mencionó anteriormente, el diseño de la página se basó


en la estructura modelo vista controlador. Con lenguaje de maquetado de
bootstrap se diseñaron las distintas vistas de la aplicación web que serán
presentadas a continuación. La figura 30 muestra la vista inicial, basado
en un login del administrador, que de acuerdo a la tabla “users” de la base
de datos diseñada permite el acceso a la administración de los
trabajadores.

Vista inicial de la aplicación web


Fuente: elaboración propia

Dicha vista corresponde al login de usuario cuyo requerimiento


para acceder al sistema, es el correo del administrador y su contraseña.

La figura 31 muestra la segunda vista la cual muestra el listado de


los trabajadores registrados en la tabla usuarios, además de un buscador
que permite ubicar el trabajador deseado, además de la posibilidad de
agregar a la base de datos un trabajador nuevo.

68
Vista de listado de trabajadores
Fuente: elaboración Propia

La figura 32 muestra el listado de ingreso que ha realizado cada


trabajador en el área de trabajo, es decir, dicha vista muestra la tabla
“Activación” de la base de datos, cuyo registro puede ser localizado
mediante el buscador añadido en la interfaz.

Vista del listado de ingreso de los trabajadores


Fuente: elaboración propia

La figura 33 muestra la planilla para agregar un nuevo trabajador a


la tabla “usuarios”, para que posteriormente cuente con acceso en el área
de trabajo.

69
Vista para agregar empleado a la nomina
Fuente: elaboración propia

Creación de usuario en el Web hosting 000webhost.com

La figura 34 muestra la vista principal de la página 000webhost de


la cual se puede registrar de 3 maneras posibles, mediante la red social
Facebook, mediante una cuenta google, o por los propios métodos de la
página solicitada.

70
Vista principal del webhost gratuito usado
Fuente: https://www.000webhost.com/cpanel-login?from=panel

Para este trabajo se hizo uso el registro vía cuenta google, una vez
registrado el administrador puede dirigir y crear la aplicación web
mediante el panel de control que ofrece el web hosting. La figura 35
muestra el panel de control, en el cual se ofrece al usuario, desde la
creación de una aplicación web, hasta cargar una aplicación realizada
previamente al servidor.

71
Panel de administración de los sitios webs
Fuente: https://www.000webhost.com/members/website/list

La barra superior permite acceder a 5 opciones las cuales son:

Build Website: permite al usuario construir un sitio web mediante


cuatro opciones: Build a website Easily (crea un sitio web de manera fácil
y sin lenguaje técnico)

Build Wordpress Webssite: permite al usuario crear un sitio web


usando el software wordpress (para ello se deben instalar una serie de
complementos).

Upload Own Website: Permite cargar al servidor, un sitio web


realizado previamente, y desde allí direccionarlo

Wix website: Ofrece un entorno web sencillo de diseñar con solo


usar el mouse.

Ver figura 36.

72
Métodos para crear un sitio web dentro del web hosting
Fuente: https://www.000webhost.com/members/website/unexpo/build

Para esta práctica profesional se hizo uso de la opción Upload


Own Website, de tal manera de cargar al hosting gratuito la aplicación
diseñada previamente

Carga de la aplicación web diseñada al hosting gratuito

La aplicación web diseñada anteriormente fue alojada en el web


hosting 000webhost.com, mediante el uso del método Upload Own
Website. Los pasos para cargar la aplicación web al hosting se muestran
a continuación:

Se dirige a la barra superior del web hosting donde se observa la


opción Website manager, una vez seleccionado esta opción se
desplegará una barra vertical en la cual se selecciona la opción file
manager, que permite subir una aplicación previamente elaborada. Ver
figura 37.

73
Opción File manager
Fuente: https://www.000webhost.com/members/website/unexpo/files

Una vez seleccionada la opción Upload Files now, la página


redirecciona a una vista en la cual, se permite cargar las carpetas en las
que se encuentra la aplicación web realizada de manera local. Ver
figura38.

Carga de archivos al servidor web


Fuente: https://files.000webhost.com/

74
Una vez cargado los archivos el usuario debe dirigirse a la carpeta
que contiene las credenciales de la base de datos mysql actualizando los
campos y contraseñas de la base de datos, de tal manera que el servidor
adquiera permisos para la solicitud a las tablas que la conforman. Ver
figura 39.

Edición de credenciales
Fuente: https://www.000webhost.com/forum/t/deploy-laravel-project-into-000webhost-
site/127323

75
Carga de la base de datos al hosting gratuito

Una vez dentro del servidor 000webhost, se procedió a seleccionar


a la opción website manager y posteriormente database manager. Ver
figura 40.

Accediendo al database manager


Fuente: https://www.000webhost.com/members/website/unexpo/database

Una vez dentro se procede a crear una base de datos en el host gratuito,
ingresando el nombre de la base de datos, el usuario y la contraseña. Ver
figura 41.

76
Creando una base de datos en el servidor
Fuente: https://www.000webhost.com/members/website/unexpo/database

Una vez creada la base de datos, el servidor redirige al recurso


PhPmyAdmin que posee, en la cual aparece la base de datos creada. Ver
figura 42.

77
Phpmyadmin perteneciente al host gratuito
Fuente: https://databases-auth.000webhost.com/index.php

El siguiente paso realizado fue exportar la base de datos que se


tiene de manera local, se realizó la base de datos en un archivo SQL,
para luego cargarlo mediante la opción importar archivo ubicado en
servidor phpmyadmin remoto. Ver figura 43.

78
Importar base de datos al servidor web
Fuente: https://databases-
auth.000webhost.com/db_structure.php?server=1&db=id9585858_sarfid

Una vez importada de la base de datos, se actualiza


automáticamente la información que la aplicación web muestra en el
webhost gratuito.

79
CAPÍTULO V

RESULTADOS

En este capítulo se presentan los resultados obtenidos en el


desarrollo del sistema de control de acceso mediante radio frecuencia.
Con el fin de lograr los objetivos planteados fueron necesarias diversas
pruebas, se muestran a continuación los resultados de algunas de ellas.

Para la puesta en funcionamiento el sistema de acceso de manera


local fue necesario seguir una serie de pasos sencillos descritos a
continuación:

• Se conectó el cable USB del dispositivo Arduino al PC de escritorio


o Laptop.
• Se procedió abrir el Software processing, abriendo el archivo el
cual ejecuta constantemente el código que permite el envío y
recepción de datos hacia la base de datos, y posteriormente
ejecutarlo.
• Por último, se ejecutó el Panel de control Xampp, encendiendo el
servidor apache y la base de datos MysQL.

Una vez realizado los pasos anteriormente mencionados, el sistema


de acceso estuvo listo para su funcionamiento.

Prueba: Ingreso y logout de administrador en la aplicación Web

Para el ingreso al CRUD de la aplicación web el usuario debe


introducir el correo y la contraseña que se encuentra en la tabla “users” la
cual se encarga de almacenar el correo y la contraseña de quienes
pueden acceder a dicha aplicación. Si el correo o la contraseña no

80
existen, se mostrará un mensaje de error, pidiendo que se rectifique el
usuario o la contraseña Ver figura 44.

Usuario invalido
Fuente: Elaboración propia

En caso de que el usuario introduzca los datos correctos, el


controlador encargado de la administración de usuarios, seleccionara la
siguiente vista donde se observa el listado del personal trabajador, cuyo
nombre de usuario se puede observar en la barra superior. Ver figura 45.

Ingreso al CRUD de la aplicación web


Fuente: Elaboración propia

81
Si el administrador desea terminar con la sesión el usuario puede
hacerlo accionando su nombre ubicado en la pantalla superior derecha el
cual se despliega un sub menú, en el cual puede cerrar la sesión. Ver
figura 46.

Cierre de sesión
Fuente: Elaboración propia

Prueba: Registrar trabajador en la base de datos

Una vez que el administrador ingresa al “CRUD” de la aplicación


puede agregar un trabajador nuevo, seleccionando el botón “Agregar”, en
el listado de los empleados. Una vez realizada esta acción, el controlador
encargado de administrar la tabla “Usuarios” toma acción y redirige a una
nueva vista, en la cual se puede ingresar los campos para registrar al
trabajador. Ver figura 47.

82
Agregado de empleado
Fuente: Elaboración Propia

En caso de que todos los campos sean llenados correctamente y el


administrador seleccione agregar, el modelo de la página web agregara la
información a la base de datos, luego el controlador redirige a la vista que
muestra la información del trabajador agregado, y un mensaje de
aprobación. Ver figura 48.

Listado de empleados pertenecientes a la nomina


Fuente: Elaboración propia

83
En caso de que el administrador, no introduzca un campo o en su
defecto, el tipo de dato no corresponda con el campo, aparecerá un
mensaje de error subrayando el campo y un mensaje solicitando
corregirlo. Ver figura 49.

Campos vacíos en el agregado de empleado


Fuente: Elaboración Propia

Si el listado de los empleados supera los 3 trabajadores, la


información se página, de tal forma que se puede seleccionar el número
de la lista de este modo obtener una vista más accesible para observar la
información. Ver Figura 50.

84
Paginación del listado de empleados
Fuente: Elaboración Propia

Prueba Registro de ID duplicado

Es importante que la aplicación identifique el intento de registrar


una tarjeta RFID cuyo ID se encuentra asociado a otro trabajador. La
figura 51 muestra el rechazo de la aplicación en el intento de registrar un
empleado con el mismo identificador RFID.

ID duplicado
Fuente: Elaboración propia

85
Prueba Registro de Cedula duplicado

Es importante que la aplicación identifique el intento de registrar


una cedula que se encuentra en la base de datos. La figura 52 muestra el
rechazo de la aplicación en el intento de registrar un empleado con la
cedula de otro, ya que este campo es único.

Cedula duplicada
Fuente: Elaboración propia

Prueba: Editar-Eliminar-Buscar Empleado

Para eliminar el registro de un trabajador, se ubica el cursor el


botón eliminar, apareciendo un mensaje de confirmación, y en caso de
presionar en aceptar se eliminar el trabajador seleccionado. Ver figura 53.

86
Eliminar Usuario
Fuente: Elaboración propia

Presionado el botón de confirmación Aparecerá un mensaje de


eliminación de empleado, y el listado actualizado de la tabla de
empleados. Ver figura 54.

Empleado eliminado
Fuente: Elaboración propia

87
En caso de presionar Editar en un empleado, debido a un error al
momento de ingresar un campo cuando se está agregando un trabajador,
el administrador accede a los campos de dicho empleado en el cual se
muestra la información anterior, la cual puede modificar. Ver figura 55.

Modificar Empleado
Fuente: Elaboración propia

Para buscar un empleado en la base de datos, solo basta con


colocar el nombre del trabajador en la barra de búsqueda, y presionar el
botón buscar, mostrando solo el usuario solicitado en la lista de
empleados. Ver figura 56.

Filtro de búsqueda

88
Fuente: Elaboración propia

Prueba: Uso del sistema RFID, Usuario invalido.

La siguiente prueba se realizó colocando una tarjeta en el módulo


RFID cuyo código no se encuentra registrado en la base de datos. Al
momento de pasar la tarjeta, por dicho lector se observó de manera
satisfactoria como el sistema RFID rechaza la solicitud y niega el acceso,
además la placa arduino enciende el led rojo para indicar dicha negación.
Ver figura 57.

Acceso denegado
Fuente: Elaboración Propia

Además, con el software Processing se puede observar un


mensaje en alusión al acceso y el código de la tarjeta con la cual se está
intentando acceder. Ver figura 58.

89
Mensaje de acceso denegado en Processing
Fuente: Elaboración propia

Prueba: Uso del sistema RFID, Acceso autorizado.

Esta prueba se realizó colocando una tarjeta en el módulo RFID


cuyo código se encuentra registrado en la base de datos. Al momento de
pasar la tarjeta, por dicho lector se observó de manera satisfactoria como
el sistema RFID otorga la solicitud y permite el acceso, además la placa
arduino enciende el led verde para indicar el acceso autorizado. Ver figura
59.

Acceso autorizado
Fuente: Elaboración propia

90
Además, con el software Processing se puede observar un
mensaje en alusión al acceso y el código de la tarjeta con la cual se está
intentando acceder. Ver figura 60.

Mensaje acceso autorizado en processing


Fuente: elaboración propia

Prueba: Accediendo a la base de datos.

Al pasar una tarjeta RFID cuyo código se encuentra en la base de


datos, el led amarillo enciende, en señal de espera, indicando que se está
realizando la búsqueda en la base de datos, de tal manera que se cuenta
con un mensaje neutral antes de dar acceso o no al área de trabajo, y de
esta manera observar cuando el sistema no se encuentra funcionando de
manera adecuada. Esto Ocurre cada vez que está accediendo a la base
de datos en busca del código de la tarjeta. Ver figura 61.

91
Consultando en la base de datos
Fuente: Elaboración Propia

Prueba: Listado de ingresos en la base de datos.

Esta prueba se realizó colocando el tag RFID al alcance del módulo


lector, una vez identificado el ID del tag en la base de datos, el sistema
automáticamente creó un campo en la tabla “activación” con el ID, el
nombre del trabajador al cual pertenece dicho tag, la fecha y la hora en la
que se concedió el acceso. Ver Figura 62.

Además, los privilegios permiten al administrador, en este caso el


CEO de la empresa, borrar los registros, cuando se requiera actualizar un
trabajador o eliminarlo de la base de datos.

92
Listado de ingresos en la base de datos.
Fuente: Elaboración propia.

Prueba: reporte mensual de ingresos y tiempo trabajado en la base


de datos.

Esta prueba se realizó tomando el número de ID que se registró en la


base de datos, en cuanto al tiempo trabajado. Se utilizó el mismo principio
del contador de ID en conjunto con una bandera que tomara el valor de la
hora de entrada. También se creó otra bandera que tuviera la información
de la hora de salida; luego se hace la sustracción de la bandera de salida
con la bandera de entrada, para así obtener el tiempo trabajado por ese
día, cabe resaltar que, si el trabajador está dentro del horario nocturno se
le adicionara a la bandera de salida 24 horas de trabajo, para así generar
un buen resultado en sus horas trabajadas, el cual se ira guardando en un
acumulativo para cuando se genere el cambio de mes detectado por el
programa, en conjunto con el sistema horario del equipo, pueda generar
dicho reporte, como se observa en la imágenes. Cabe destacar que cada
reporte y tiempo de trabajo se realiza de manera individual para cada
persona que se encuentre registrado en la base de datos. Ver Figuras 63,
64,65.

93
Además, los privilegios permiten al administrador, en este caso el
CEO de la empresa, borrar los registros, cuando se requiera actualizar un
trabajador o eliminarlo de la base de datos.

Reporte y tiempo trabajado.


Fuente: Elaboración propia.

Reporte y tiempo trabajado 2.

94
Fuente: Elaboración propia.

Reporte y tiempo trabajado 3.


Fuente: Elaboración propia.

95
CONCLUSIONES

Tomando en consideración los objetivos del presente trabajo y los


resultados obtenidos del mismo, se concluye que:

Se estudiaron los conceptos básicos de un sistema RFID, Arduino


y base de datos necesarios determinando que la mejor opción para la
administración de la base de datos fue PhPmyAdmin.

Se Implementó el sistema propuesto en el gestor de base de datos


para tal aplicación.

Se Implementaron los módulos necesarios para poder calcular las


asistencias y las horas trabajadas de los usuarios, y cuya aplicación fue
desarrollada satisfactoriamente y de manera ordena con el entorno
laravel.

Se verificó la eficiencia del trabajo mediante pruebas del sistema


de acceso desarrollado, en la cual se determinó que la distancia máxima
para el reconocimiento de los tags es menor a 5 cm y el reporte de las
horas trabajadas y asistencia es mensual.

Cumplidos los objetivos satisfactoriamente se finaliza agregando


que se logró desarrollar un reporte de asistencia y horas de trabajo de un
sistema de control de acceso por radiofrecuencia.

96
RECOMENDACIONES

De las conclusiones obtenidas en este trabajo, se recomienda para


las futuras investigaciones en el área:

Una manera de reducir software para la configuración de la


aplicación web es cambiando el hardware Arduino R2, por un Arduino
Shield ethernet, si bien es más costoso, otorga muchas ventajas ya que el
modulo completo puede ser operado a distancias mayores.

Configurar el módulo RC-522, de tal manera que le permita trabajar


con tags de bajas frecuencias tal como 125kHz, puesto que el modulo
trabaja para frecuencias de 13.56Mhz.

Para una mejor seguridad en la red se recomienda actualizar al


modo hostinger que ofrece el servidor 000webhost.com.

Se recomienda la añadir de una pantalla lcd a la HMI, además de


los leds, de tal manera que el empleado observe de manera más clara el
mensaje de acceso.

Además, es recomendable crear un sistema que permita actualizar


la información en internet en tiempo real y no manualmente. O bien este
método se puede realizar con una placa Arduino Ethernet.

97
REFERENCIAS

Cosentino, L. (s. f.). Control de Accesos. Elementos de Identificación.


Obtenido en http://www.rnds.com.ar/articulos/046/RNDS_156W.pdf

Domótica, I. a. (2009). Iniciación a la Domótica. Obtenido de


www.editex.es/RecuperarFichero.aspx?Id=19543.

Gracián, M. (2009). Interfaz Wiegand 26/Ethernet. Obtenido de


sistemamid.com/download.php?a=81500

Roberith P. (2017). Desarrollo de sistema de control de acceso basado en


tecnología RFID.

Gerardo Abregú (2016). Sistema para el control de acceso peatonal y


vehicular mediante comunicación TCP/IP en las entradas de C.V.G
ALCASA”.

HID Global Corporation. (2016). ThinLine II 5395. Obtenido en


https://www.hidglobal.mx/products/readers/hid-proximity/5395

Hurtado de Barreras, J. (2008). Metodologia de la Investigación. Caracas:


Ediciones Quirón-Sypal.

J, H. d. (2008). Metodologia de la Investigación. Caracas: Ediciones


Quirón-Sypal.

Llanga, D., y Cano D. (2014). Implementación del prototipo para el control


de acceso docente mediante la interoperabilidad de WSN y RFID.
Riobamba, Ecuador: Escuela Superior Politécnica De Chimborazo.

Saavedra, J. (2006). Diseño e implementación de un sistema de control


de acceso. Caracas: Universidad “Simón Bolívar”.

Uno, A. (s.f.). Arduino Uno. Obtenido en


https://www.arduino.cc/en/Main/ArduinoBoardUno.

98
ANEXOS

99
Programación Arduino UNO R2

#include <deprecated.h>

#include <MFRC522.h>

#include <MFRC522Extended.h>

#include <require_cpp11.h>

#include <SPI.h>

//#include <MFRC522.h>

#define RST_PIN 9 //Pin 9 para el reset del RC522

#define SS_PIN 10 //Pin 10 para el SS (SDA) del RC522

MFRC522 mfrc522(SS_PIN, RST_PIN); //Creamos el objeto para el RC522

byte temp [8];

char str[8] = "";

int verde=8; // Led verde para indicar que el trabajador se encuentra en la base de datos y puede accesar

int amarillo=7;// Led amarillo que indica que el arduino se encuentra a conectado a la base de datos

int rojo=6;//led rojo que indica que el trabajador no se encuentra en la base de datos y no puede accesar

Void setup ()

Serial. Begin (9600); //Iniciamos la comunicación serial

SPI.begin(); //Iniciamos el Bus SPI

mfrc522.PCD_Init (); // Iniciamos el MFRC522

mfrc522.PCD_SetAntennaGain (mfrc522.RxGain_max);

PinMode (verde,OUTPUT);

PinMode (amarillo,OUTPUT);

PinMode (rojo,OUTPUT);

100
void loop() {

if (mfrc522.PICC_IsNewCardPresent ()) // Revisamos si hay nuevas tarjetas presentes

if (mfrc522.PICC_ReadCardSerial ()) //Seleccionamos una tarjeta

For (byte i = 0; i < mfrc522.uid.size; i++)// permite obtener el tamaño del uid

Temp[i] =mfrc522.uid.uidByte[i];

array_to_string (temp, 4, str) ;//Función que permite transformar un arreglo de byts a una cadena

Serial.print(str);// envía la cadena por puerto serial

mfrc522.PICC_HaltA () ;// indica a la tarjeta o llavero que no necesita más información

if (Serial.available()>0) //Si el Arduino recibe datos a través del puerto serie

byte dato = Serial.read();

if(dato==65) //Si recibe una "A" (en ASCII "65") usuario valido

Digital_Write (8, HIGH);

if(dato==66) //Si recibe una "B" (en ASCII "66") conectado a la base de datos

digitalWrite(7,HIGH); //Cambia el estatus del led amarillo

if(dato==67) //Si recibe una "C" (en ASCII "67") usuario invalido

digitalWrite (6, HIGH); //Cambia el estatus del led

101
}

delay(1000);

void array_to_string(byte array[], unsigned int len, char buffer[])


//Procedimiento que permite convertir un array de byts a un string

for (unsigned int i = 0; i < len; i++)

byte nib1 = (array[i] >> 4) & 0x0F;

byte nib2 = (array[i] >> 0) & 0x0F;

buffer[i*2+0] = nib1 < 0xA ? '0' + nib1 : 'A' + nib1 - 0xA;

buffer[i*2+1] = nib2 < 0xA ? '0' + nib2 : 'A' + nib2 - 0xA;

buffer[len*2] = '\0';

102
Programación Processing

import de.bezier.data.sql.*;

import de.bezier.data.sql.mapper.*;//libreria MySQL

import processing.serial.*;

Serial puerto;

int validacion;// variable que devuelve un true o false si el usuario se encuentra


registrado

int tamano;// Verifica que el tamaño del string enviado por puerto serial sea de 8
caracteres

int columna;

int i=0;

String ids[];

String user = "root";

String pass = "";

String database = "sarfid";

MySQL msql;

void setup (){

size(800,400);

printArray(Serial.list());

puerto=new Serial(this, Serial.list()[1],9600);

puerto.clear();

puerto.bufferUntil('\n');

background(0);

103
void draw()

leer_puerto();

void leer_puerto()// funcion que lee el puerto rsr232

while (puerto.available() > 0) {// si el puerto esta disponible

String inBuffer = puerto.readString(); //almacena lo que hay en el puerto

if (inBuffer != null)

{// si lo que almaceno no es nulo

tamano=inBuffer.length();

println(inBuffer);

if(tamano==8)

msql = new MySQL( this, "localhost", database, user, pass );

if ( msql.connect() )

puerto.write("B");

msql.query( "SELECT COUNT(*) FROM %s", "usuarios" );//Cuenta las


columnas de la bate de datos

msql.next();//ejecuta la accion

columna=msql.getInt(1);//almacena el numero de columnas

msql.query("SELECT * FROM usuarios LIMIT"+ columna);//busqueda del


usuario

while( msql.next() )

104
// splendid, here's what we've found ..

String s=msql.getString("ID");

if(s.equals(inBuffer)==true) //si el usuario se encuentra en la base de


datos

int y = year(); // Valores de 2015, 2014, etc

int mo = month(); // Valores de 1 a 12

int d = day(); // Valores de 1 a 31

int se = second(); // Valores de 0 a 59

int m = minute(); // Valores de 0 a 59

int h = hour(); // Valores de 0 a 23

String Nom=msql.getString("Nombre");

String Ape=msql.getString("Apellido");

//inserccion en la base de datos

msql.query( "INSERT INTO activación


(ID,FECHA,Hora,Minutos,Segundos,Nombre,Apellido) VALUES ('"+inBuffer+"','"+y+"-
"+mo+"-"+d+"',"+h+","+m+","+se+",'"+Nom+"','"+Ape+"')");

puerto.write("A");

i=1;

println("Acceso Autorizado");

if (i==0)

105
{

println("Acceso denegado");

puerto.write("C");

}else{// no conecto con el servidor

puerto.write("C");

println("Acceso denegado");

}else// No capto los 8 bits

println("Codigo menor a 8 bits intente nuevamente");

puerto.write("C");

i=0;

106
107

You might also like