Vous êtes sur la page 1sur 52

Diseño y construcción de un sistema de control electrónico de acceso y

video monitoreo

2.5 CONCEPTO DE BASE DE DATOS

Una base de datos es un conjunto, colección o depósito de datos


almacenados en un soporte informático de acceso directo. Los datos
deben estar interrelacionados estructurados.
Dada la importancia que tienen en el mundo real las
interrelaciones entre los datos, es imprescindible que la base de datos
sea capaz de almacenar éstas interrelaciones, al igual que hace con
otros elementos (como las entidades y atributos), siendo ésta una
diferencia esencial respecto a los archivos donde no se almacenan las
interrelaciones.
La redundancia de los datos debe ser controlada, de forma que no
existan duplicidades perjudiciales ni innecesarias, y que las
redundancias físicas, convenientes muchas veces a fin de responder a
objetivos de eficiencia, sean tratadas por el mismo sistema, de modo
que no puedan producirse incoherencias. Por tanto, un dato se
actualizará lógicamente por el usuario de forma única, y el sistema se
preocupará de cambiar físicamente todos aquellos campos en los que el
dato estuviese repetido, en caso de existir redundancia física.
La actualización y recuperación en las bases de datos debe
realizarse mediante procesos bien determinados, incluidos en un
conjunto de programas que se encargan de la gestión de la base de
datos y que se denominan sistemas gestores de bases de datos
(S.G.B.D); procedimientos que han de estar diseñados de modo que se
mantenga la integridad, seguridad y confidencialidad de la base.
El concepto de base de datos ha ido cambiando y
reconfigurándose a lo largo del tiempo, en la actualidad, y de acuerdo
con estas características que acabamos de analizar, podemos definir la
base de datos como:
“Colección o depósito de datos integrados con redundancia
controlada y con una estructura que refleje las interrelaciones y
restricciones existentes en el mundo real; los datos, que han de ser
compartidos por diferentes usuarios y aplicaciones, deben mantenerse
independientes de éstas, y su definición y descripción, únicas para cada
tipo de datos, han de estar almacenadas junto con los mismos.
Los procedimientos de actualización y recuperación comunes y
bien determinados, habrán de ser capaces de conservar la integridad,
seguridad y confidencialidad del conjunto de los datos".

1
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

2.6 MICROSOFT SQL SERVER 2005 .NET

Microsoft SQL Server 2005 .NET es un sistema gestor de bases de


datos relacionales (SGBDR). Una base de datos relacional proporciona
una forma de organizar información almacenándola en tablas de bases
de datos. La información relacional se puede agrupar en tablas, y
también se pueden definir relaciones entre tablas; de ahí el nombre,
base de datos relacional. Los usuarios acceden a la información que está
en el servidor a través de una aplicación. Los administradores acceden
al servidor directamente para realizar tareas de configuración,
administrativas y de mantenimiento de la base de datos. SQL Server es
una base de datos dimensionable, lo que quiere decir que puede alma-
cenar cantidades de datos y que puede soportar muchos usuarios
accediendo a los datos al mismo tiempo.
SQL Server nació en 1989 y ha cambiado de forma significativa
desde entonces. Se han realizado grandes mejoras de
dimensiónhabilidad, la integridad, la facilidad de administración, el
rendimiento y las características del producto. SQL Server se puede
utilizar en dos tipos de entornos.

2.6.1 SISTEMAS SQL SERVER

Un sistema SQL Server se puede implementar como sistema


cliente/servidor o como sistema independiente. El tipo de sistema que se
diseñe dependerá del número de usuarios que vayan a acceder a la base
de datos simultáneamente y de la clase de trabajo que vayan a realizar.
En esta sección se examinan ambos tipos de sistemas.

Sistema cliente/servidor
El sistema cliente/servidor puede tener una configuración de dos
capas o de tres capas. Independientemente de la configuración, el
software y las bases de datos de SQL Server residen en un equipo
central llamado servidor de bases de datos. Los usuarios tienen equipos
independientes llamados clientes.
Los usuarios acceden a la base de datos por medio de aplicaciones
en sus equipos cliente (en un sistema de dos capas) o a través de
aplicaciones que se ejecutan en un equipo independiente conocido como
servidor de aplicaciones (en un sistema de tres capas).
En los sistemas de dos capas los clientes ejecutan una aplicación
que accede al servidor de bases de datos directamente por medio de la
red. Por lo tanto el cliente ejecuta el código empresarial y el código para

2
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

presentar los resultados al usuario. Este tipo de cliente se conoce como


cliente pesado porque realiza esas dos operaciones. Una configuración
de dos capas puede ser útil cuando el número de usuarios es
relativamente pequeño, dado que cada conexión de usuario requiere
recursos del sistema como memoria y bloqueos. Si se conectan un gran
número de usuarios, el rendimiento del sistema decaerá debido a la
contención de recursos, en cuyo caso se debería considerar una solución
de tres capas.

Una configuración de tres capas involucra a un tercer equipo


llamado servidor de aplicaciones. En este tipo de sistema las únicas
tareas del equipo del cliente son la ejecución de código para solicitar las
funciones del servidor de aplicaciones y la presentación posterior de los
resultados. Este tipo de cliente se denomina cliente ligero. El servidor de
aplicaciones ejecuta una aplicación para ejecutar el código empresarial;
esta aplicación es multiacceso, lo que significa que muchos usuarios
pueden acceder a ella simultáneamente. El servidor de aplicaciones
realiza conexiones al servidor de bases de datos para acceder a la
información y devuelve los resultados al cliente.
La ventaja de un sistema de tres capas es que se puede permitir
que el servidor de aplicaciones organice todas las conexiones cliente al
servidor de bases de datos, en lugar de dejar que cada cliente realice su
propia conexión, lo que desperdicia recursos del servidor de bases de
datos. Este concepto se denomina cola de conexiones. La cola de
conexiones implica que las solicitudes de los clientes se colocan en un
grupo (literalmente, una cola) para esperar la siguiente conexión
disponible. Cuando una conexión se libera, puede ser utilizada para la
siguiente petición de la cola. En cierto sentido, la cola de conexiones
permite regular la cantidad de trabajo que se realiza en el servidor de
bases de datos mediante la configuración del número de conexiones que
se encuentran en la cola y, así, el número disponible para realizar el
trabajo del usuario. (El número de conexiones se puede configurar por
software.) Se elimina la necesidad de un gran número de conexiones de
usuario que puedan agotar rápidamente los recursos y causar una
disminución del rendimiento. Se puede implementar una cola de
conexiones utilizando Microsoft Internet Information Server y un software
de cola de conexiones como COM+, que es un servicio de componentes
que se proporciona con el sistema operativo Microsoft Windows. No
entraremos en detalles sobre cómo se utilizan estos productos, porque la
programación de aplicaciones queda fuera del ámbito de este trabajo.
Algunos sistemas empresariales y sitios Web necesitan más
potencia de proceso que el que proporciona un único servidor. SQL
Server proporciona la capacidad de dividir en particiones las tablas a lo

3
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

largo de múltiples servidores que comparten la carga del proceso de la


información.

Sistema independiente
También es posible utilizar SQL Server como servidor de bases de
datos independiente que se ejecuta en un equipo de sobremesa o en un
portátil. Esto se denomina sistema independiente. Las aplicaciones
cliente se ejecutan en la misma máquina que almacena el motor de SQL
Server y las bases de datos. En este sistema sólo está implicado un
único equipo. Por lo tanto no se realiza ninguna conexión de red del
cliente al servidor; el cliente realiza una conexión local a su instalación
local de SQL Server.
El sistema independiente es útil en aquellos casos en los que un
único usuario accede a la base de datos o en los que unos pocos
usuarios que comparten un equipo acceden a la base de datos en
diferentes momentos. Por ejemplo, en una pequeña tienda con un
equipo, varios empleados podrían acceder a la base de datos de la
tienda para insertar clientes e información de las ventas, pero tendrían
que acceder al sistema por turnos. Además, como en este ejemplo, los
sistemas independientes son útiles cuando la base o bases de datos son
pequeñas

2.6.2 INSTALACION DE MICROSOFT VISUAL BASIC 2005 .NET Y


MICROSOFT SQL SERVER 2005 .NET

Para la instalación de Visual Basic y del Servidor SQL,


aprovechamos el paquete de Microsoft Visual Studio 2005 Professional
Edition, versión: 8.0.50727.42 (RTM.050727-4200), el cual viene
acompañado de los siguientes lenguajes y tecnologías de desarrollo:

Lenguajes:
C#, C++, HTML, J#, JScript, VBScript, Visual Basic y XML
Tecnologías:
SQL Server 2005, ASP.NET, .NET Development, Office
Development, Web Development

Microsoft Visual Studio 2005 .NET ofrece de forma opcional al


programador una librería de ayuda “MSDN Library, la cual es muy útil al
momento de querer conocer aun más sobre alguno de los componentes
o herramientas. Los requerimientos mínimos del Sistema para la
instalación de Visual Studio 2005 .NET son:

 Sistema Operativo: Microsoft® Windows® 2000 Professional SP4 o


Superior, incluido los Sistemas de 64bits.

4
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

 Procesador: Mínimo: 600 MHz con microprocesador Pentium,


Recomendado: 1GHz con microprocesador Pentium.
 Memoria RAM: Mínimo: 192 MB, Recomendado: 256 MB.
 Disco Duro: Sin MSDN: 2 GB de espacio libre en la unidad de
instalación, con MSDN: 3.8 GB de espacio libre para una
instalación completa de MSDN Library, y 2.8 GB de espacio libre
para una instalación básica de MSDN Library. En todos los casos se
requiere 1 GB de espacio libre en todo el sistema.
 Pantalla: Mínimo: 800 x 600 con 256 colores, recomendado: 1024
x 768 con calidad de color de 16bits.
 Una vez revisado y aprobado que la PC tiene todos los
requerimientos mínimos, se ejecuta el asistente de instalación, el
tiempo aproximado de instalación es de 60 minutos, dependiendo
de los componentes seleccionados para la instalación.

3.3 VIDEO MONITOREO

El sistema de video monitoreo se basa en la Cámara de Red


Observer Plus, de VEO Europe (Ver Fig. 3.8), el cual como se a
mencionado anteriormente, cuenta con un modulo de control interno
que permite la manipulación de los controles de paneo e inclinación
desde el servidor.

5
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Fig. 3.8 Fotografía de la Cámara de Red


La lente de la cámara enfoca la imagen en el sensor de imagen
(CCD). Antes de llegar al sensor, la imagen pasa por el filtro óptico que
elimina cualquier luz infrarroja y muestra los colores correctos.
Actualmente están apareciendo cámaras día/noche que disponen de un
filtro de infrarrojos automático, este filtro se coloca delante del CCD sólo
cuando las condiciones de luz son adecuadas proporcionándonos de esta
manera imágenes en color, cuando las condiciones de luz bajan este
filtro se desplaza y la cámara emite la señal en blanco y negro
produciendo más luminosidad y de esta manera podemos iluminar la
escena con luz infrarroja y ver en total oscuridad.
El sensor de imagen convierte la imagen, que está compuesta por
información lumínica, en señales eléctricas. Estas señales eléctricas se
encuentran ya en un formato que puede ser comprimido y transferido a
través de redes. Como las cámaras de vídeo convencionales, las
cámaras IP gestionan la exposición (el nivel de luz de la imagen), el
equilibrio de blancos (el ajuste de los niveles de color), la nitidez de la
imagen y otros aspectos de la calidad de la imagen. Estas funciones las
lleva a cabo el controlador de cámara y el chip de compresión de vídeo.
Las cámaras IP comprimen la imagen digital en una imagen que
contiene menos datos para permitir una transferencia más eficiente a
través de la Red.
La comunicación al PC es por medio del protocolo TCP/IP, usando el
conector RJ-45. Cuenta con su propio servidor interno, lo cual se facilita
el acceso a el, ya sea mediante una sola computadora, o a varias
computadoras por medio de un switch, lo cual también permite que
accedamos a la cámara desde cualquier dispositivo móvil, como son los
Palms, celulares, etc.

3.3.1 INSTALACION Y CONFIGURACION DE LA CAMARA

Para la instalación de la cámara debe tener disponible una


conexión LAN Ethernet, El cual es el medio de transmisión de datos de la
Cámara al Servidor o PC.
A continuación se muestra en la figura los diferentes componentes que
conforman la cámara de red.

6
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Fig. 3.9 Componentes de la Cámara de Red.

Conociendo las partes que integran la cámara, a continuación se


procede a la configuración del hardware, primeramente se conecta el
cable Ethernet por medio del conector RJ-45 a la cámara. La cámara
cuenta con dos tipos de cables de conexión, los cuales tienen un
funcionamiento diferente, el primero se conoce como “Cable Cruzado”, y
su función es simplemente de conectar la cámara a una sola PC, es decir
la cámara solo transmitirá datos de manera local a una computadora en
especifica, el segundo tipo se conoce como “Cable Recto de Red”, este
tipo de cable nos permite conectar la cámara de red a un Router, Switch
o concentradores, y tiene la ventaja de que la cámara pueda ser
accedida desde varias computadoras o servidores a la vez.
La configuración que nos beneficia en este proyecto es utilizando
el Cable Recto de Red, conocido también como configuración en
Paralelo. El siguiente paso ahora es conectar la alimentación de la
cámara, en donde el LED de Encendido se iluminará. Se debe esperar
aproximadamente unos 50 segundos, la cual la cámara rotará y se
inclinará automáticamente al centro.
Ya conectado la cámara de red al modem ADSL o al concentrador
LAN, se utiliza el software IPEdit, que viene con la cámara y el cual
puede ser accedido desde el software de control y monitoreo. El IPEdit
nos permite seleccionar las diferentes opciones de Red. (Ver Fig. 3.9)

7
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Fig. 3.10 Programa de la Cámara IPEdit

Las opciones de red de la PC desplegarán los parámetros Gateway


y mascara de Red, los cuales se pueden editar con IPEdit.
Alternativamente, el usuario puede contactar a su administrador de red
para que le provea de los detalles de la Puerta de Enlace y la Máscara de
Red, Ingrese el número IP de la Cámara. Si se permiten usuarios
externos para ver la cámara de red, se debe ingresar otra IP. Si solo se
desea ver a la cámara de red en una red interna, se puede ingresar un
número IP local, por ejemplo: 192.168.1.88. Al dar Clic en ‘Submit’ se
actualizarán todos los cambios en los parámetros de la cámara. Para la
descripción general de cada uno de los componentes del programa de la
Cámara IPEdit se tiene la Tabla 3.10.

8
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo
Etiquetas Descripción Funciones
opcionales
Name Nombre de la Opciones para el nombre de la cámara
Cámara
Gateway Puerta de Examina a través de las opciones de
Enlace red del usuario
IP Dirección de Red
Netmask Red Examina a través de las opciones de
red del usuario
HTTP Port 1 Puerto 1 HTTP 80
HTTP Port 2 Puerto 2 HTTP Dirección IP dada por el administrador,
absténgase de cambiarla
MAC Dirección MAC
Tabla 3.10

3.3.2 CONFIGURACION EN UNA RED LAN CON UN SERVIDOR DHCP

Simplemente seleccione la cámara en la ventana de Lista de


Cámaras, las configuraciones por default se mostraran en la ventana de
la derecha. Y por ultimo actualice el IP Status de la Cámara.

1.- Actualice el Nombre de la Cámara.


12. Actualice la dirección de la Puerta de Enlace [Gateway]
(192.168.1.254)
23. Actualice la dirección IP de la IP-Cam (192.168.1.xx).
34. Actualice la Máscara de Red (255.255.255.0)
45. En puerto 1 Http escriba 80 y presione ‘Submit’

3.3.3 CONFIGURACION EN UNA RED LAN UTILIZANDO UN RUTEADOR


ADSL

Si la Cámara de red fue instalada en un ruteador ADSL, se le


asignará dinámicamente una dirección IP desde el servidor DHCP. Si se
desea acceder a la Cámara desde la WAN, se necesita asignar la
dirección IP como fija. Lo mismo para la función de Servidor Virtual del
ruteador ADSL, la cual también necesita configurarse:

11. Configure la Cámara como IP Fija, por ejemplo 192.168.0.49.


22. Entre a la página del administrador del ruteador +ADSL
33. Ingrese a la Página del Servidor Virtual.
4A. Configure el mapeo de puertos HTTP (80) a 192.168.0.49.
5B. Reinicie al ruteador ADSL.
Ahora la Cámara puede ser accedida desde WAN, por la dirección IP WAN
ADSL.

9
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

CAPITULO IV PROGRAMACION DEL SOFTWARE Y


PRESENTACION DEL SISTEMA DE CONTROL
ELECTRONICO Y VIDEO MONITOREO.
4.1 DISEÑANDO LA BASE DE DATOS DEL SISTEMA

El primer paso es conectarnos a un servidor en nuestro sistema,


para esto debemos ejecutar Microsoft Visual Studio .NET, sin crear
ningún proyecto aún, damos clic en el menú “view” y en la opción de
“Server Explorer”. A continuación aparece la ventana de servidores así
como las conexiones de datos en el costado izquierdo (por default) de la
ventana principal del programa. (Ver Fig. 4.1)

Fig. 4.1 Ventana de Servidores de Visual Studio.NET

SQL Server 2005, automáticamente nos crea un espacio en el


servidor de la PC, generalmente llamado
“nombre_del_servidor_de_la_PC)\sqlexpress”, en el cual es donde vamos
a crear nuestras bases de datos.
Para crear una nueva base de datos, debemos agregar una
conexión a nuestro servidor, para esto debemos dar clic derecho sobre
conexiones de datos (data connections), y seleccionamos “Add
Connection…”, aparecerá una ventana para agregar la nueva conexión.
(Ver Fig. 4.2)

10
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Fig. 4.2 Ventana para agregar nueva Conexión.

Ahora se introduce la información para crear la conexión a una


fuente de datos, por default aparece el cliente SQL, y en nuestro caso
usaremos el cliente SQL (si se desea acceder a una base de datos
diferente, como una base de datos en Access, damos clic en el botón
“Change…” y cambiamos nuestra opción). A continuación
proporcionamos el nombre de la base de datos y luego seleccionamos el
tipo de autentificación de entrada al servidor, seleccionamos la opción
“Use Windows Authentication” para acceder con nuestra cuenta de
administrador de Windows y seleccionamos la opción “Use SQL Server
Authentication” para acceder con nuestra cuenta dada de alta en el
servidor SQL. Para finalizar verificamos que la conexión sea correcta,
dándole clic al botón “Test Connection”, aparecerá un mensaje de
información, y terminamos dando clic en “ok” para crear la base de
datos. Observamos que en la ventana de explorador de Servidores
aparecerán nuestras bases de datos creadas en el árbol de conexiones
de datos.
Creada la base de datos, procedemos a crear las tablas, funciones,
vistas, etc., que necesitemos para nuestros proyectos.
Abrimos el árbol de contenido de nuestra base de datos, y en la
carpeta de “Tables” damos clic derecho y seleccionamos la opción “Add
New Table”, en la sección central de Visual Studio 2005 .NET se abrirá la
tabla en la modalidad de definición de tabla, es aquí en donde
agregamos el nombre de las columnas, los tipos de datos que deberán
aceptar las filas de cada columna, y si los valores de las filas permitirán
valores nulos. (Ver Fig. 4.3)

11
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Fig. 4.3 Ventana de Edición de Tablas.

Una vez agregado los nombres de las columnas, se guarda la


tabla, y que da almacenada dentro de nuestra base de datos.
En nuestro proyecto se crearon 2 bases de datos, una que
corresponde al registro interno, el cual almacena las claves de todas las
llaves existentes, así como el nombre de usuario de cada llave. (Ver Fig.
4.4) La segunda base de datos es el registro de actividades de cada
llave insertada en el sistema de control, el cual almacenará los datos de
la llave, como son la clave y el usuario, junto con la fecha y hora de
entrada/salida al laboratorio, así como la dirección del archivo de imagen
capturada en el momento del acceso. (Ver Fig. 4.5)

Fig. 4.4 Definición de la Base de Datos de Llaves.

12
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Fig. 4.5 Definición de la Base de Datos de Registros.


4.2DISEÑO DEL SOFTWARE DE VISUALIZACION

En esta sección se detalla la creación del software de visualización,


la interacción del mismo con el sistema de control de accesos, la cámara
de red y el registro en las bases de datos.

4.2.1 RECEPCION DE LA IMAGEN

Primeramente se desarrollo la parte de visualización de imágenes


obtenidas de la cámara de red, para ello se necesito descargar del
servidor interno de la cámara de red la librería DLL, el cual controla la
mayoría de las funciones de la cámara.
Este archivo lleva el nombre de WinWeb.dll, tiene muchas
funciones que manipulan el hardware de la cámara, esta librería se
complementa con instrucciones de código Script que nos ayudan a
lograr todas las funciones de la cámara, como son el movimiento,
ajustes de posición, etc.
Como primer ejercicio se agrega la librería DLL a los componentes
de la caja de herramientas de Visual Studio .NET, entonces se debe crear
un nuevo proyecto y seleccionamos el componente correspondiente a la
librería DLL “WinWeb.dll” en el “Toolbox” y lo agregamos a nuestra
Forma “Form” de diseño. (Ver Fig. 4.6)

Fig. 4.6 Selección del componente WebWatch de la caja de Herramientas.

En nuestra Forma de diseño, trazamos el componente y con eso ya


podemos iniciar la programación del mismo. A partir de aquí depende

13
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

mucho de las técnicas de programación de cada persona, nosotros


comenzamos programando todo lo relacionado con la obtención de
imágenes, se debe estudiar como se comporta cada instrucción del
componente WebWatch ya que se debe de tener mucha seguridad al
momento de ejecutar comandos ya que podríamos dañar la cámara de
red, así mismo como la declaración de cada variable utilizada.
Para conectarnos directamente a la dirección IP de la cámara se
utiliza la propiedad axwebwatchX.URL = “dirección IP”, cabe aclarar que
la asignación de IP tiene que ser una cadena de caracteres, es decir un
valor de tipo “String”, si se utlizan variables es recomendable verificar
que tipo de valor acepta cada propiedad esto con el fin de no cometer
errores al momento de programar.
Al momento de ejecutar la instrucción de asignación de IP, el
cuadro de la cámara mostrará en unos segundos las imágenes en
tiempo real de la cámara de red.

Otros controles nos permiten capturar imágenes desde nuestro


programa, así como iniciar la grabación de video con un lapso de tiempo
determinado o seleccionando el tamaño de archivo, estos controles
corresponden a las propiedades: SaveCurrentJpg y Avi, respectivamente,
cada una debe ser configurada por otras propiedades y se nos facilita
mas utilizando otros componentes de la caja de herramientas de Visual
Basic .NET, como son cajas de texto “TextBox”, botones “Button”,
botones de selección simples “Radiobutton”. (Ver Fig. 4.7)

Fig. 4.7 Pantalla y Controles de Imagen de la Cámara de Red.

14
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

La Propiedad SaveCurrentJpg solo requiere de una asignación, el


cual es el nombre del archivo a guardar o la dirección en donde se
guardará el archivo y el mismo nombre del archivo, ejemplos:

Axwebwatch1.SaveCurrentJpg(“Photo.jpg”); el archivo se guardará en la


dirección donde esté guardado nuestro proyecto.
Axwebwatch1.SaveCurrentJpg(“C:\Camara\Photo.jpg”); el archivo se
almacenará en la dirección especificada en la asignación.

La propiedad Avi debe ser pre-configurada para poder iniciar la


grabación, esto es con las siguientes propiedades: DownAviType,
AviTotalSize, AviSaveIntervalNum, AviPath y AviPre, la propiedad
AviTotalSize puede ser cambiada por la propiedad AviTotalTime, la
variante será que se para AviTotalTime se especifica el tiempo total a
grabar en segundos, y AviTotalSize se especifica el tamaño total en Kb a
grabar.
El orden es muy importante al momento de ejecutar las
instrucciones, ya que primero se debe de configurar el tipo de grabación
con DownAviType (1 y 2 para formato MPEG1 y MPEG2, y 3 para formato
AVI), y luego el tamaño en Kb o el tiempo total de grabación con las
instrucciones AviTotalTime y AviTotalSize, a continuación se debe asignar
la dirección donde deberá guardarse el archivo “.avi” y el prefijo que
llevara el nombre del archivo esto es con AviPath y AviPre.
Al momento de utilizar la propiedad Avi se debe asignar un valor
entero que identifica el tipo de grabación, se asigna el valor 1 y 2
cuando queremos grabar manualmente (1 inicia, 2 termina), y 3 cuando
se desea grabar por un lapso de tiempo o por el tamaño de video
especificado.
Es muy importante saber utilizar muchas funciones que Visual
Basic nos provee para una mejor programación, y de esta forma evitar
los errores, uno muy claro es al momento de asignar un valor a una
propiedad, ya que si utilizamos un “TextBox” para que el usuario
introduzca el valor puede cometer el error de asignar un carácter de
diferente tipo, un ejemplo claro es la asignación de valores a las
propiedades AviTotalTime y AviTotalSize, ambos solo aceptar valores
enteros, por lo que si al momento de ejecutar esas instrucciones el valor
asignado es una cadena (de tipo “string”), el programa mostrará una
advertencia y se cerrará. Estos problemas son muy fáciles de resolver
usando una función de Visual Basic llamada “IsNumeric”, el cual es una
ayuda para conocer si cierta herramienta contiene almacenado un valor
de tipo numérico, esta función es de tipo booleana, devolverá verdadero
si el contenido asignado a la función es un valor numérico, y devolverá
falso si no lo es y aprovechado la directiva “If…Then” podemos
solucionar ese problema.
Ejemplo:

15
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

If IsNumeric (Valor) Then ‘Si isNumeric es verdadero…


‘Programación para cuando el valor asignado es un número
Else ‘Si isNumeric es falso…
‘Programación para cuando el valor no es un número
End If

Si el valor no fuese un número, se podría programar en la sección


de falso para que despliegue un mensaje de advertencia, y no ejecutar
la instrucción hasta que la función “isNumeric” sea verdadera, es muy
común utilizar la función “Msgbox” para desplegar cierta información
rápida en pantalla, ya sea previniendo de algún error o simplemente
para informar de algo ocurrido en particular. A continuación se muestra
parte de nuestro código para solucionar el problema:

If IsNumeric(TextBox7.Text) Then
AxWebWatch1.DownAviType = 3 ‘Especifica el formato de
grabación.
AxWebWatch1.AviTotalTime = TextBox7.Text
AxWebWatch1.Avi = 3
Else
MsgBox("Error, Coloque un valor Entero")
TextBox7.Text = ""
TextBox7.Focus()
End If

Nota: Textbox7.text es el valor que necesitamos verificar si es de


tipo numérico, la propiedad Focus se utiliza simplemente para colocar el
cursor del teclado en esa caja de texto.

4.2.2 MOVIMIENTO DE LA CAMARA DE RED

Ahora que ya podemos acceder a la cámara de red, capturar


imágenes y grabación de video, procedemos a la programación del
movimiento de la cámara, y otras funciones que necesitamos para
manipular de forma más eficiente la cámara de red.
Para el movimiento usaremos parte de códido Script, que serán
asignadas a la propiedad URL del Componente WebWatch. La cámara de
red en su servidor interno cuenta con muchos archivos que utiliza para
configuración y movimiento. Uno muy especial es el archivo
MoveCam.cgi, las extensiones CGI (Common Gateway Interface) vienen
a ser programas escritos en cualquier lenguaje que añaden una mayor
funcionalidad a las paginas Web, son programas que se ejecutan en el
servidor interno de los componentes web, en el caso de la cámara de
red este archivo ejecuta las instrucciones para el movimiento de la

16
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

cámara, por ello debemos direccionar nuestro componente hacia ese


archivo, refiriéndonos específicamente que comando ejecutar.
Debemos conocer todas las propiedades internas del archivo “.cgi”
que se deben ejecutar para cada instrucción de movimiento. A
continuación se mencionan las instrucciones más comunes que se
utilizan en nuestro proyecto.

Centrar cámara: “MoveCam.cgi?Dir=Center&Step=0”


Mover a la derecha: “MoveCam.cgi?Dir=Right&Step=(valor)”
Mover a la izquierda: “MoveCam.cgi?Dir=Left&Step=(valor)”
Mover arriba: “MoveCam.cgi?Dir=Up&Step=(valor)”
Mover abajo: “MoveCam.cgi?Dir=Down&Step=(valor)”
Ajustar puntos de monitoreo:
“MoveCam.cgi?PresetPoint&Set&Num=(punto)”
Mover a un punto de monitoreo:
“MoveCam.cgi?PresetPoint&Move&Num=(punto)”
Patrullaje en ejes: “MoveCam.cgi?Dir=Patrol(eje X o Y)&Step=0”
Patrullaje de puntos de monitoreo: “MoveCam.cgi?Dir=PatrolP&Step=0”

‘Valor’ depende del número de grados que avanza la cámara por


cada movimiento, punto es el valor asignado a cada punto de monitoreo.
Se utiliza en nuestro proyecto un componente como es el “TrackBar”
para asignar el número de grados y el “PictureBox” que se utiliza para
mover la cámara al dar clic sobre cierta imagen.
Utilizamos otros controles como son los de movimientos en ambos
ejes (izquierda-arriba, izquierda-abajo, derecha-arriba, derecha-abajo),
así también como los controles que nos permiten patrullar en ambos
ejes (X, Y) y patrullar los puntos de monitoreo. (Ver Fig. 4.8)
Número de grados

Puntos de
Monitoreo

Fig. 4.8 Panel de control de Movimiento de la Cámara de Red.

Cada instrucción del archivo CGI debe de estar acompañado de la


dirección IP del servidor de la Cámara de red, lo cual nos lleva a utilizar
otras herramientas para asignar la dirección IP. Puesto que las
instrucciones para mover la cámara a lo largo de sus ejes son muy

17
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

similares, solo se detallará una de ellas. A continuación se muestra el


código para hacer mover la cámara cierto grado a la derecha:

AxWebWatch1.URL = TextBox3.Text & "/MoveCam.cgi?Dir=Right&Step="


& TrackBar2.Value

Utilizamos una caja de texto (TextBox) para asignar la dirección IP


que estamos manejando y una barra de pista (TrackBar), que se utiliza
para variar los grados que queramos mover la cámara de red. Si bien
con estas herramientas se nos facilita más, es necesario especificar toda
la instrucción de forma completa cuando no se desea utilizar loas
herramientas:

AxWebWatch1.URL =
“http://169.254.1.13/MoveCam.cgi?Dir=Right&Step=5”

De esta manera podemos crear cada botón para el movimiento de


la cámara, así también con los controles de patrullaje en ambos ejes, de
ajuste y patrullaje de los puntos de monitoreo.

4.2.3 RECEPCION DE DATOS DE LA LLAVE ELECTRONICA AL SOFTWARE


DEL SISTEMA

Antes de empezar a detallar la interacción de todas las partes del


software, vamos a mostrar el proceso de recepción de datos de la llave
electrónica.
Lo primero es agregar la herramienta que nos permitirá utilizar el
puerto serial de nuestra PC, Visual Studio .NET cuenta con el
componente de comunicaciones “MSCOMM” que se usa para transmitir y
recibir datos binarios. Estos datos deben ser convertidos de byte en byte
a carácter y luego transmitidos. Cuando se reciben deben ser
convertidos de nuevo en datos binarios de byte en byte.
Ya agregado el componente a nuestro proyecto, se procede a
configurar los parámetros del mismo, esto se puede realizar en forma de
código o en la sección de propiedades del componente. Esta ultima
forma es la mas fácil y rápida, ya que nos muestra primeramente los
parámetros por default del componente. (Ver Fig. 4.9)

18
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Fig. 4.9 Ventana de Propiedades del Componente MSCOMM.

Debemos conocer como funciona cada propiedad para poder


manipularla, ya que si se comente algún error, la transmisión no será la
correcta. En la sección de propiedades de comunicación “Comm” se
encuentran las propiedades que debemos modificar para que la
transmisión con el micro controlador que se encuentra en la llave
electrónica sea la adecuada.

CommPort: especifica el número de puerto COM asignado al control.


Puede ser 1, 2, 3 ó 4 según los puertos que tengamos instalados.
Settings: especifica la configuración de velocidad, paridad bits de datos
y bit de parada para el puerto serie. Es una cadena con los
correspondientes valores separados por comas. Por defecto su valor es
"9600,N,8,1".
PortOpen: valor lógico que indica si el puerto está abierto y activo. Para
abrir el puerto basta poner este valor a True.
Sthreshold: especifica el número mínimo de caracteres en el bufer de
salida que son enviados.
OutBufferSize: especifica el tamaño del bufer de transmisión. Por
defecto es de 512 bytes.

Para nuestro caso en particular modificamos la velocidad de


transmisión en la propiedad “Settings”, llegamos a la conclusión que
2400 Baudios son suficientes para una buena transmisión. Para la
recepción y envío de datos por el puerto serial de la PC, se utilizan los
métodos input y output, para conocer cuando un valor llega o sale al
puerto serial usamos la propiedad CommEvent, el cual puede tomar 2
valores principales, 1 si un valor es enviado desde nuestra PC por puerto

19
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Serial y 2 si un valor llega al puerto serial de nuestra PC desde un


dispositivo.
Esta propiedad nos ayuda para saber en que momento una llave
electrónica es introducida en nuestro sistema de control de acceso.
Utilizando la directiva “If…Then” dentro de la declaración
“Oncomm” del MSComm, verificamos cuando la propiedad CommEvent
toma un valor de 2, cuando esto sucede debemos de guardar el valor
que llega en el buffer a una variable de tipo “String”:

If AxMSComm1.CommEvent = 2 Then
dato = AxMSComm1.Input ‘Se lee el valor que llega por el puerto serial.
End If

Como el dato que llega a la PC por el puerto serial es decimal, lo


debemos convertir a un valor ASCII para que podamos interpretar que
cadena de caracteres nos llega, esto es con ayuda de la función “Asc”
que nos provee Visual Basic, tomando en cuenta que la instrucción
“AxMSComm1.Input” se ejecuta cada que llega un carácter, debemos
hacer un arreglo para que en una variable de tipo “String” se vayan
alojando esos caracteres:

dato = Asc(AxMSComm1.Input) ‘Se lee el valor, pero en formato ASCII


cadena = cadena & dato ‘Se concatenan todos los datos recibidos.

Cada vez que un dato llegue “cadena” tomará el carácter y lo


almacenar, cuando otro dato llegue cadena se sobre escribirá guardando
el carácter que tomo anteriormente.
Como nuestro proyecto se basa en el reconocimiento de cierta
cadena proveniente de la llave electrónica, debemos comparar entonces
esa cadena con la de los registros de llaves de nuestro sistema. Con
ayuda de un contador dentro de la declaración “OnComm” podremos
verificar cuando la cadena llega a cierto número de caracteres, y en ese
momento podemos iniciar la comparación usando la directiva “If…Then”.
A continuación se muestra el código de forma general este
reconocimiento, mas adelante se detalla el código completo, en donde
se agregan mas funciones como son la lectura de las claves en la base
de datos.

Private Sub AxMSComm1_OnComm(…..)


dato = Asc(AxMSComm1.Input)
cadena = cadena & dato
cont=cont+1
If cont=16 Then
If cadena=registros then
Msgbox (”Clave Correcta”)

20
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Else
Msgbox (“Clave Incorrecta”)
End If
End If
End Sub
4.2.4 ACCESO A LAS BASES DE DATOS DESDE NUESTRO SOFTWARE

A continuación se detalla como dar de alta nuestras bases de


datos en el software y como acceder a ellas mediante programación.
Primeramente agregamos un “DataGridView” (vista de datos en
rejillas) a nuestro proyecto, aparecerá un menú extra al lado del
componente (Ver Fig. 4.10), en el selector de fuente de datos damos clic
en la opción “Add Project Data Source”.

Fig. 4.10 Herramientas del Componente DataGridView.

Aparecerá el asistente de configuración de la fuente de datos (Ver


Fig. 4.11), en el cual seleccionaremos “Database”, el asistente nos
llevara a seleccionar la base de datos, en donde nos dará una lista de las
bases de datos recién creadas o la opción para buscarlas, una vez
seleccionada la base de datos, nos pedirá que seleccionemos que
componentes agregar como son tablas, vistas, etc., seleccionamos las
tablas creadas y automáticamente el asistente asignará al
“DataGridView” la fuente de datos, este paso se repite para tener las
dos bases de datos en diferentes “DataGridView”. (Ver. Fig. 4.12)

21
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Fig. 4.11 Asistente de Configuración de la Fuente de Datos.

Fig. 4.12 Vista Final de los componentes DataGridView.

Para la primera base de datos que contiene las claves de todas las
llaves existentes, debemos agregar componentes que nos permitan dar
de altas nuevas llaves, utilizando cajas de textos y un botón, vamos a
dar de alta las llaves que queramos. Para ello vamos a utilizar
sentencias de código SQL, los cuales guardaran los valores en la base de
datos.
Primeramente debemos agregar las referencias de clientes SQL a
nuestro proyecto, esto es agregando el código siguiente al inicio de todo
el código del programa, antes de las declaraciones de tipo publicas:

Imports System
Imports System.Data
Imports System.Data.SqlClient

22
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Ahora debemos conectarnos a la base de datos, para esto


debemos agregar variables de conexiones SQL:

Dim conexion as New SqlConnection()

Para abrir la conexión usamos cadenas de código SQL, que van


asignadas a la propiedad “ConnectionString” en donde se especifica el
servidor al cual nos vamos a conectar, así como el tipo de seguridad,
nombre de la base de datos, nombre de usuario y password:

Try
conexion.ConnectionString = "server=TOSHIBITA\SQLEXPRESS; _
_integrated security=sspi;database=llaves;uid=sa;pwd=;"
conexion.Open()
Catch excepcion As SqlException ‘En caso de Error…
MessageBox.Show("Error al conectar con la Base de Datos")
End Try

Para prevenir errores usamos la directiva “Try…Catch” el cual nos


permite evaluar que una operación se realizo con éxito, si ocurre una
excepción es decir la conexión SQL no se lleva a cabo, Catch verificará si
esta ocurre, entonces mandará un mensaje de error.
Una vez que nos conectemos a la base de datos, iniciamos la
programación del botón de Altas, el cual maneja 3 cajas de texto, y una
serie de funciones de Visual Basic para generar por si mismo la clave de
las llaves.
Ejemplo:

Nombre de Usuario: SANDRA


Primer Apellido: COLLINGS
ID: 1234567

Con estos datos el software generará por si mismo el valor que


almacenará el campo de Usuario, en este ejemplo sería:
“SANDRACOLLINGS”. Para generar el valor de la clave, el software toma
los primeros 6 caracteres del campo de Nombre de Usuario, luego los 3
primeros caracteres del campo de Apellido y por ultimo agrega los 7
caracteres del numero de Identificación. Cuando los campos Nombre y
Apellido no llegan a completarse con los caracteres, el sistema genera
los caracteres faltantes, esto con el fin de completar los 16 caracteres
requeridos para el campo clave. En nuestro ejemplo sera:
“SANDRACOL1234567”.
Se utilizan variables de tipo “String” para asignar las cadenas de
cada campo a almacenar en la base de datos. Ahora solo queda registrar

23
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

los valores en los campos de la base de datos, utilizando los comandos


SQL agregamos los valores:

Sentencia = "INSERT INTO llavesid VALUES ('" & user & "','" & clave &
"');"
Dim comando As New SqlCommand(sentencia, conexion) ‘ Se crea una
variable temporal
comando.ExecuteNonQuery() ‘Ejecuta el comando SQL
Me.LlavesidTableAdapter.Fill(Me.LlavesDataSet.llavesid) ‘Actualiza la
Base de datos

La variable sentencia debe ser declarada de tipo “String”. Se


declara una variable temporal llamada comando, que especifica la
cadena del comando SQL, así como en que conexión se ejecutará. La
propiedad ExecuteNonQuery(), ejecuta el comando y da de alta los datos
agregados a la base de datos. La ultima línea de código mostrada,
simplemente actualiza el “DataGridView”, donde se debe especifica la
base de datos.

4.2.5 DISEÑO DEL REGISTRO DE LOS USUARIOS

Una parte fundamental de este sistema es la seguridad en el


acceso al sistema, para ello el software debe contar con un pequeño
sistema que verifique a los usuarios que se registran al momento de
acceder al mismo.
Con la ayuda de un “Form” adicional al diseño podemos crear un
pequeño cuadro de dialogo que solicite al los usuarios y administradores
la contraseña con la que fueron dados de alta en el sistema de
contraseñas, una base de datos es creada específicamente para
almacenar las cuentas de los usuarios, una vez iniciado el software este
cuadro de dialogo aparecerá y solicitara la información.
El botón “Aceptar” que acompaña al cuadro de dialogo es el que
verificará y comprobará que los datos se encuentren registrados en la
base de datos. Con las funciones que nos provee la herramienta
“DataGridView” podemos realizar la búsqueda de los usuarios y
comparar las contraseñas almacenadas en la base de datos con las que
proporcione el usuario. A continuación se muestra el código para realizar
la comprobación de usuarios y contraseñas.

For contbd = 0 To DataGridView1.RowCount - 1

If TextBox1.Text = DataGridView1.Item(1, contbd).Value Then


Timer3.Enabled = True
AxMSComm1.Output = "a" ‘Se envía a la Llave electrónica el valor
decimal 97

24
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

AxWebWatch1.URL = TextBox3.Text &


"/MoveCam.cgi?PresetPoint&Move&Num=1"
MsgBox("Aceptado")
cont = 0
Exit For
Else
If cont = 16 Then
Timer1.Enabled = True
End If
End If
Next contbd

En el código anterior el ciclo “FOR” comprueba en todas las filas y


columnas correspondientes a Usuarios y Contraseñas, si el nombre de
usuario y la contraseña escritas se encuentran en una misma fila de la
base de datos, entonces una variable de tipo “Boolean” pasará a un
estado verdadero, y pasará a un estado en falso cuando no se haya
encontrado los datos, al momento de validar la contraseña el software
obtendrá datos adicionales como son el tipo de cuenta y la ultima
modificación que sufrió esa cuenta (cambio de contraseña).
Una vez aceptado el usuario y contraseña el sistema debe
registrar la fecha y hora en que este usuario esta accediendo al sistema,
también debe administrar las herramientas que estarán disponibles para
cada tipo de usuario, ya que los usuarios comunes solo tendrán ciertas
opciones activadas en la ventana principal del software.
Con la ayuda de Valores en los Registros de Sistema de Windows,
se guardan datos temporales en el registro para mayor seguridad del
sistema, ya que en un momento dado que el sistema tenga algún
problema o sea cerrado de forma inadecuada, no se pierdan los últimos
registros en las bases de datos y de esta manera el administrador podrá
verificar que cuenta estaba en uso en el momento de ocurrir.

If aceptado = True Then


If tipo = "admin" Then
cuenta_ejec = Registry.CurrentUser.CreateSubKey(rutaClave)
cuenta_ejec.SetValue("cuenta_ejec", "admin")
cuenta_ejec.Close()
cuenta_ejec = Nothing
Activar_funciones()
End If

If tipo = "mod" Then

25
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

cuenta_ejec = Registry.CurrentUser.CreateSubKey(rutaClave)
cuenta_ejec.SetValue("cuenta_ejec", "mod")
cuenta_ejec.Close()
cuenta_ejec = Nothing
Desactivar_Funciones()
End If
Obtener_fecha()
sentencia = "UPDATE pass set inicio = '" & modificacion & "'
WHERE usuario = '" &_ _TextBox1.Text & "' and contraseña = '" &
TextBox2.Text & "';"
Ejecutar_sentencia()
cuenta_ejec = Registry.CurrentUser.CreateSubKey(rutaClave)
cuenta_ejec.SetValue("inicio", modificacion) ‘Almacena el valor
cuenta_ejec.Close() ‘Cierra la ejecución
cuenta_ejec = Nothing ‘Termina la ejecución
Me.Visible = False
Else
MsgBox("Usuario/Contraseña Incorrecta")
contbd = 0
End If

En el código anterior, se muestra el proceso de registro de datos


en los Valores de Registros de Sistema de Windows, primeramente
debemos haber declarado las variables en este caso “rutaClave” debe
ser de tipo “String” donde deberá almacenar la dirección donde están
los valores en el registro, P Ej:
“SOFTWARE\Microsoft\Windows\System\Run”. “cuenta_ejec” tiene que
ser registrado como una variable de tipo “RegistryKey” o clave de
registro, en el código aparece la propiedad
“Registry.CurrentUser.CreateSubKey”, con esta instrucción accedemos a
todos los valores en la dirección que se especifica (rutaClave). Una vez
accedido a los valores guardamos los datos en ellos con la ayuda de la
función “SetValue” donde debemos especificar entre comillas el nombre
del valor de registro y los datos a almacenar (“valor”, dato). Después de
almacenar los datos debemos cerrar los valores de registro para mayor
seguridad.
Para las cuentas de tipo “Admin” y “Mod”,el código que acompaña
a la instrucción es una llamada a una Función “Sub” de código que se
encuentra alojado en el código general del “Form” utilizado. Cuando el
tipo de cuenta que se esta accediendo es de tipo “Admin” la función es
“Activar_Funciones()”, cuando se ejecuta el llamado de este código, el
programa se dirige a la Sub-función que activa todas las herramientas
de la ventana principal del software. Si el tipo de cuenta es “Mod” la
función es “Desactivar_Funciones()”, este código se dirige a la Sub-
función que deshabilita algunas herramientas que solo deben estar

26
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

disponibles para los usuarios con cuentas de tipo administrador. Para


ambas Sub-funciones se utilizan las propiedades “Enable” de cada
componente y en ella debemos especificar si van a ser deshabilitadas o
habilitadas.

Sub Desactivar_Funciones()
Form1.MostrarLlavesToolStripMenuItem.Enabled = False
Form1.PictureBox1.Enabled = False
Form1.PictureBox2.Enabled = False
… ‘Se continua deshabilitando las otras herramientas
End Sub

Sub Activar_funciones()
Form1.Height = 613 ‘Se cambia el tamaño del FORM
Form1.DataGridView2.Width = 602 ‘Se cambia el ancho del
DataGridView
Form1.TextBox1.PasswordChar = ""
Form1.MostrarLlavesToolStripMenuItem.Enabled = True
… ‘Se continua habilitando las otras herramientas
End Sub

En este momento la ventana principal del software aparece


configurada correctamente para cada tipo de cuenta.

4.2.6 DISEÑO DEL ADMINISTRADOR DE CONTRASEÑAS

Otra parte fundamental del software es la administración de


contraseñas por los usuarios y administradores, en esta sección del
software cada usuario puede modificar su contraseña y verificar los
datos de todos los usuarios para tener una visión de cómo se utiliza el
software, los usuarios comunes solo podrán editar sus contraseñas,
mientras que los administradores podrán agregar nuevas cuentas y
eliminar alguna en especifica. Con ayuda de instrucciones SQL se
realizan estas operaciones, a continuación se muestras las instrucciones
que realizan estas operaciones.

If RadioButton1.Checked = True Then


Generar_datos()
sentencia = "INSERT INTO pass VALUES('" & TextBox1.Text & "','"
& TextBox2.Text & "','" & cuenta & "','" & modificacion & "','" & "Cuenta
Agregada" & "');"
Ejecutar_sentencia()
End If

If RadioButton2.Checked = True Then

27
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Obtener_Cuenta() ‘Llamada a la Sub-función que obtiene el tipo


de cuenta.
sentencia = "DELETE FROM pass WHERE usuario = '" &
TextBox1.Text & "' and tipo = '" & cuenta & "';"
Ejecutar_sentencia() ‘Llamada a la Sub-función que ejecuta la
sentencia SQL
End If

If RadioButton3.Checked = True Then


Obtener_fecha()Llamada a la Sub-función que obtiene la fecha
en este instante.
sentencia = "UPDATE pass set contraseña = '" & TextBox3.Text &
"', modificacion = '" & modificacion & "' WHERE usuario = '" &
TextBox1.Text & "' and contraseña = '" & TextBox2.Text & "';"
Ejecutar_sentencia()

El botón “Aceptar” que acompaña a el administrador de


contraseñas verifica que opción esta activada (“Checked”), con la ayuda
de “RadioButtons” escogemos la operación que deseamos realizar.
La Sub-función “Generar_datos()” obtiene la fecha y hora con la
que se inicio el software, esto es leyendo el dato almacenado en el valor
de registro del sistema que se almacenó al momento de iniciar el
software.

Sub Generar_datos()
cuenta_ejec = Registry.CurrentUser.OpenSubKey(rutaClave)
inicio = cuenta_ejec.GetValue("inicio") ‘Toma el valor de fecha y
hora almacenado
cuenta_ejec.Close() ‘Cierra la ejecución
cuenta_ejec = Nothing ‘Termina la ejecución
End Sub

La Sub-función “Obtener_Cuenta()” simplemente asigna la clave


con la que se identifica cada tipo cuenta. La Sub-función
“Ejecutar_Sentencia()”, es el código que acompaña a la instrucción SQL
que se desea ejecutar, esta Sub-función también actualiza la base de
datos de las contraseñas.

Sub Ejecutar_sentencia()
Dim comando As New SqlCommand(sentencia, conexion)
resultados = comando.ExecuteNonQuery()
End Sub

28
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Para prevenir que los usuarios comunes no tengan acceso a las


opciones “Agregar” y “Eliminar” debemos leer el tipo de cuenta que fue
iniciada.

cuenta_ejec = Registry.CurrentUser.OpenSubKey(rutaClave)
cuentareg = cuenta_ejec.GetValue("cuenta_ejec")
cuenta_ejec.Close()
cuenta_ejec = Nothing

Una vez leído el tipo de cuenta verificamos de que tipo es y al


igual que en el diseño de Registros de Usuarios, activamos y
desactivamos ciertas herramientas.

4.2.7 INTERACCION DE TODOS LOS SISTEMAS

Ahora que ya se describió de manera básica cada sistema en el


software, vamos a detallar la forma en que estos interactúan entre si.
Nuestro proyecto se basa primeramente en el reconocimiento de
claves, las cuales el software debe comparar con las claves que se
encuentran en la base de datos de las Llaves, en el momento de validar
una clave insertada, el software por si solo debe realizar ciertas
operaciones como son responder a la llave insertada la cual al recibir
cierto comando de nuestra PC, deberá activar por si sola el mecanismo
de apertura de puerta que se encuentra en la unidad de control de
acceso. Una vez realizada esa operación deberá comenzar a registrar en
la base de datos de Registros los datos de la llave, fecha y hora de
entrada/salida así como el nombre del usuario al que se le fue asignado,
al mismo tiempo el sistema de monitoreo deberá posicionarse en la
entrada del laboratorio y capturar una imagen o iniciar la grabación de
cierto periodo de video, la dirección y nombre del archivo generado
deberá ser almacenado en forma de cadena en la base de datos de
registros.
Primero debemos configurar a manera de código como queremos
que el software inicie, lo primero es conectarse vía lenguaje SQL a las
bases de datos, actualizar los datos desde los “DataGirdView”, y otros
componentes que mas adelante especificaremos mientras se van
agregando, todos estos códigos van desde la “carga” del programa
comúnmente en el Form_Load.
Si una llave es conectada al sistema, lo primero que se debe hacer
es comparar la clave con todas las claves almacenadas en la base de
datos de las llaves. Si esta resulta la correcta la cámara se posicionará
en la posición de monitoreo 1, que fue asignada como el punto donde la
cámara quedará enfocada hacia la puerta del laboratorio, en seguida el
software activara un temporizador el cual al termino de 5 segundos
capturará una imagen, todo este código debe de ser agregado a la

29
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

declaración “OnComm” del MSComm. A continuación se muestra parte


fundamental del código para la verificación de autenticidad de la llave:

For contbd = 0 To DataGridView1.RowCount - 1

If TextBox1.Text = DataGridView1.Item(1, contbd).Value Then


Timer3.Enabled = True
AxMSComm1.Output = "a" ‘Se envía a la Llave electrónica el valor
decimal 97
AxWebWatch1.URL = TextBox3.Text &
"/MoveCam.cgi?PresetPoint&Move&Num=1"
MsgBox("Aceptado")
cont = 0
Exit For
Else
If cont = 16 Then
Timer1.Enabled = True
End If
End If

Next contbd

Usando el ciclo FOR compara cada clave almacenada en la base de


datos con la clave que se ah obtenido de la llave electrónica.

Si la clave es incorrecta el sistema activara un temporizador


(Timer1) El cual solicitará que el código de la llave sea reenviado desde
la llave electrónica, esto lo realiza enviando en carácter “b” (98 en
Decimal) hacia la llave, el limite de solicitudes de clave es 3, si al final
de las 3 solicitudes la clave es incorrecta, el sistema borrará la clave que
contiene esa llave electrónica.
Cuando la clave es correcta, el sistema actuará para activar el
sistema de apertura de puerta en un tiempo determinado, suficiente
para que los usuarios accedan al laboratorio, esta operación se realiza
cuando el sistema le envía el carácter “a” (97 en Decimal), a la llave
electrónica, entonces la misma llave activará el sistema de apertura.
Para registrar en la base de datos el sistema debe obtener los
campos necesarios automáticamente, Visual Studio nos provee de
ciertas instrucciones para obtener datos como son hora y fecha del
sistema (Microsoft.VisualBasic.TimeOfDay,
Microsoft.VisualBasic.DateString), entonces el sistema debe tomar esos
datos y registrarlos justo en el instante en que la clave de la llave sea
verificada y aceptada, por lo tanto se debe agregar el código que
registrará los datos justo dentro de la sentencia de la directiva “If…
Then” que verifica que la clave sea correcta. Usando los comandos de
SQL accedemos a la base de datos y agregamos los valores necesarios:

30
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

sentencia2 = "INSERT INTO regllaves VALUES('" & userreg & "','"_


& clavereg & "','" & horareg & "','" & fechareg & "','" & imagenreg
& "');"
Dim comando As New SqlCommand(sentencia2, conexion2)
resultados2 = comando.ExecuteNonQuery()
Me.RegllavesTableAdapter.Fill(Me.RegistrosllavesDataSet.regllaves)

En nuestra carga del programa (Form_Load), debemos realizar la


conexión a nuestra base de datos de registros, de la misma manera que
se realizó con la base de datos de Claves. Tomado en cuenta que se
debe cambiar el nombre de las variables para no tener conflictos a la
hora de acceder a las bases de datos.
Una vez realizado el registro, el Timer3 realizará el conteo de 10
segundos, y automáticamente capturará una imagen en tiempo real,
usando la propiedad SaveCurrentJpg de AxWebWatch, en donde se debe
asignar el nombre del archivo a guardar, así como la dirección donde se
desea alojarlo en le sistema.
Para mantener una orden sobre las imágenes capturadas el
sistema asigna automáticamente los nombres a los archivos JPG,
tomando como base un prefijo que el administrador puede cambiar, el
sistema verifica que no se repitan los nombres de las imágenes ya
capturadas y escoge un nombre automáticamente y es como se registra
y se guarda la imagen:

On Error GoTo Aceptado


seti = GetAttr(TextBox4.Text & TextBox5.Text & phcont & ".jpg")
phcont = phcont + 1 ‘contador de numero de imagenes.
Aceptado: ‘Cuando el contador no exista…
photo = TextBox5.Text & phcont & ".jpg" ‘Se Asigna el nombre de
la nueva Imagen.

Usando la directiva “On Error GoTo” realizamos la asignación de los


nombres de las imágenes, “seti” es una variable de tipo “FileAttribute” y
debe declararse antes de realizar la operación o en conjunto con todas
las declaraciones generales al inicio de nuestro código, “GetAttr” es una
propiedad que nos permite verificar si un archivo en nuestro sistema
existe, utilizando un contador y cajas de texto en los cuales deberá
contener la dirección de imágenes, y el prefijo del nombre(Textbox4 y
Textbox5), el contador se utilizará para formar el nombre final del
archivo de imagen (Ejemplo: C:\Imagenes de Cámara\Foto03.jpg)
“GetAttr” validará a “seti” y esto significará que el archivo si existe por
tanto el sistema no deberá usar ese nombre ya que sobre escribiría una
imagen ya almacenada, entonces el contador deberá incrementarse y

31
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

“GetAttr” volverá a verificar la existencia de ese nombre (Ejemplo:


C:\Imagenes de Cámara\Foto04.jpg), si no existe el archivo, “Seti” no se
validará y el error se presentará entonces la directiva “On Error GoTo”
nos llevará a una etiqueta (en este caso “Aceptado”), el cual
aprovechamos para asignar el nombre que el sistema encontró como
libre para nombrar nuestra imagen.

4.3 FUNCIONAMIENTO GENERAL DEL SOFTWARE Y HARDWARE

Finalmente queda determinar el funcionamiento de todo el


software y como actúa el hardware físicamente en relación a el.
Al ejecutar el programa “Sistema de Control de Acceso y Video
monitoreo”, mostrará un cuadro de dialogo llamado “Inicio de Cuenta:”,
aquí los usuarios o administradores deberán proporcionar su nombre de
usuario y contraseña.
(Ver Fig. 4.13).

Fig. 4.13 Ventana de Inicio de Cuenta.

Al dar clic en el botón aceptar se accederá automáticamente a la


ventana principal del software, si el nombre de usuario introducido o
contraseña son incorrectos, aparecerá un cuadro de dialogo advirtiendo
del error cometido.
(Ver Fig. 4.14).

Fig. 4.14 Mensaje de Error “Usuario/Contraseña Incorrecta”.

Una vez introducido de manera correcta los datos, aparecerá la


ventana principal del software. (Ver Fig. 4.15)

32
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

La ventana principal varia, dependiendo del tipo de cuenta que fue


iniciada. Existen 2 tipos de cuenta principales, “Administradores”, que
tienen acceso a todas las partes del software, incluyendo la eliminación
de cuentas de administradores y de usuarios, las cuentas de tipo
“Usuarios” solo tendrán acceso directo a la cámara de red, así como de
sus funciones básicas como son captura de Imagen y grabación de
video, este tipo de cuenta no podrá agregar ni eliminar las otras cuentas
existentes, también no podrán leer las claves de las llaves electrónicas
dadas de alta en el sistema por un administrador, por lo tanto algunos
botones y secciones del software quedaran desactivadas.
Nuestro software esta dividido en 7 secciones principales, todos
ellos interactúan de manera automática, y alguno de ellos pueden ser
configurados y utilizados por el administrador para operaciones
especificas.

Fig. 4.15 Ventana Principal del Sistema.

4.3.1 MENU PRINCIPAL DEL SISTEMA

En la parte superior se encuentra el menú principal del sistema, el


cual provee de herramientas necesarias para la administración del
mismo.

33
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

En el Menú “Opciones” aparecen 3 herramientas, la primera opción


“Cambiar Dirección de Cámara”, el cual solo estará disponible para
cuentas de tipo “Administrador” permite al los administradores asignar
al software la dirección IP actual de la cámara, si esta no se conoce
podrá ejecutar el asistente “IP Edit”. Con él podrá obtener la dirección IP
actual de la cámara de red, asi como la opción de modificar esa
dirección IP fija y asignarle una nueva disponible en la red local, se le
pedirán otros parámetros como la mascara de red, puerta de enlace, etc.
Una vez escrito la dirección IP actual de la cámara, y dar clic en el
botón actualizar, la cámara de red se actualizará y comenzará a recibir
imágenes en tiempo real. (Ver Fig. 4.16)

Fig. 4.16 Editor de Dirección de Cámara.

La siguiente opción “Administrar contraseñas” permitirá a


administradores y usuarios modificar sus cuentas personales. Los
administradores tendrán la opción adicional de “Agregar” o “Eliminar”
cuentas de usuarios. Seleccionando la opción adecuada, el software
pedirá los datos necesarios para cada opción, la opción “Agregar” pedirá
el nombre del usuario a dar de alta, así como la contraseña que el
administrador asigne temporalmente a ese usuario, la opción “Eliminar”
permite al administrador eliminar los usuarios en la base de datos de
contraseñas, en donde deberá especificar el nombre del usuario y el tipo
de cuenta que este tiene. La opción “Editar contraseña” esta disponible
para todos los usuarios y administradores.
La parte Superior del Administrador de Contraseñas muestra las
contraseñas que existen, cuenta con las columnas de: “usuario”, donde
aparecen todos los nombres de los usuarios, la columna “tipo” muestra
el tipo de cuenta, “admin” se refiere a los administradores y “mod” se
refiere a los usuarios que pueden moderar en el software, la columna
“modificación” indica la fecha y hora en que alguna cuenta fue
modificada, y por ultimo la columna “inicio”, indica el ultimo inicio de
sesión de la cuenta, si esta acaba de crearse aparecerá “Cuenta
Agregada”. (Ver Fig. 4.17).

34
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Fig. 4.17 Administrador de Contraseñas.


La siguiente opción “Cambiar de Usuario”, muestra nuevamente el
cuadro de dialogo de “Inicio de Cuenta”, aquí se deberá proporcionar los
nuevos datos de la cuenta con la que se desea acceder al sistema,
entonces el software se volverá a configurar para el tipo de cuenta del
usuario ahora registrado (Ver Fig. 4.13).
El Menú “Vista” contiene las opciones de “Mostrar Editor de
Llaves” y “Mostrar Registros”, ambos están disponibles para cuentas de
tipo administrador, en las cuentas de usuarios solo estará disponible la
opción “Mostrar Registros”, la primera opción hará que la ventana
principal del software se expanda hacia la derecha, en donde quedará
expuesta la base de datos de “Llaves”, si el administrador desea ocultar
esta base de datos, en el menú vista esta misma opción cambia a
“Ocultar Editor de Llaves”. La segunda opción hará que la ventana
principal se expanda hacia abajo, donde quedara expuesta la base de
datos de “Registros”.

35
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Fig.
4.18 Ventana Principal del Sistema mostrando las Bases de Datos.

En el Menú “Ayuda” se encuentra toda la información sobre el


desarrollo del sistema.

4.3.2 PANTALLA

36
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Fig. 4.19 pantalla de la Cámara de Red.

La pantalla de video tiene como objetivo principal que el


administrador pueda tener una visión en tiempo real de lo que ocurre en
el laboratorio, la cámara de red enviará imágenes a esta pantalla.
Esta pantalla es totalmente configurable, el administrador podrá
configurar la resolución, calidad, brillo, saturación, contraste, etc. Para
poder modificar estos parámetros debemos acceder al menú de la
pantalla dando clic derecho sobre ella y a continuación aparecerá el
menú en donde tendremos una lista de todas las opciones que podemos
modificar, así como otras opciones extras de la cámara de red.
(Ver Fig. 4.20)

Fig. 4.20 Menú de la Pantalla.

El primer menú “View” nos permite modificar la forma en como se


quiere ver la pantalla de la cámara de red, la primera opción “resizable”
permite que el administrador pueda modificar el tamaño de la pantalla,
arrastrando y soltando con un clic el borde de la misma. La opción
“Actual size” mantiene la pantalla en esa posición y no es modificable el
tamaño. Por ultimo “StatusBar” es la opción que nos mostrará en
pantalla (en la parte inferior) una barra de estado, en donde podemos
ver todos los parámetros que están seleccionados y nos permite
modificarlos desde ahí.
(Ver Fig. 4.21)

37
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Fig. 4.21 Pantalla con la barra de Estado.

En el menú “Splits” es una utilidad que nos permite dividir la


pantalla en ciertos números de sub-pantallas, la opción por default es
“1X1” esto quiere decir que solo es una pantalla la que se mostrara en el
margen, el máximo numero de divisiones es “4X4”, el cual nos permitirá
observar 16 secuencias de imágenes al mismo tiempo. (Ver Fig. 4.22)

Fig. 4.22 Ejemplo de vista Split con divisiones de 2X2.

El menú “Rotate” es el mas importante, aquí el administrador


deberá configurar primeramente la posición y orientación en que desee
ver la pantalla, esto depende de cómo este instalada físicamente la
cámara de red, ya sea que este parado sobre una superficie o que este
instalada en el techo del laboratorio esto implicaría que la cámara
prácticamente este a 180º. La primera opción de este menú es “Rotate
0”, es decir las imágenes en pantalla se recibirán tal cual es obtenida
por la cámara de red. La opción “Rotate 180” es útil para invertir a 180
grados las imágenes que se muestren en pantalla. “Flip Vertical” y “Flip
Horizontal” permite cambiar a 180 grados la pantalla ya sea vertical u
horizontalmente.

38
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

a) b)
Figuras 4.23 a) Imagen invertida de forma vertical. b) Imagen a 180 grados

La diferencia notable entre las opciones “Flip Vertical” y “Rotate


180” es que la primera solo invierte la imagen de pantalla sobre el eje Y,
mientras que “Rotate 180” invierte la pantalla en ambos ejes. Las dos
opciones ajustan los controles automáticamente para no confundir al
administrador a la hora de mover la cámara. (Ver Figuras 4.23)
Los menús “Resolution” y “Quality” permiten configurar la
resolución de la imagen y la calidad de la misma, si bien en el software
la resolución no se es visible, al momento de grabar video o al capturar
una imagen, esta se capturará con las especificaciones que se ajustan
en estos menús.
Los siguientes 2 menus “Image recording” y “Save Current Picture
As” inician un asistente que da opciones al administrador para grabar
video, y muestra un cuadro de dialogo para capturar imágenes. (Ver Fig.
4.24)

39
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Fig. 4.24 Cuadros de Diálogos de Grabación de Video y captura de Imagen.

En este asistente tenemos 2 opciones para escoger el formato con


el que queremos almacenar el archivo de video, JPEG y AVI, AVI es el
más utilizado actualmente y se recomienda que siempre sea este
formato, el cual es compatible con cualquier software de reproducción
de video.
Los últimos menús “I’am…” y “About…” nos proporcionan
información de la cuenta que esta en uso e información de la cámara de
red.

4.3.3 AJUSTES DE CAPTURA DE IMAGEN Y GRABACION DE VIDEO

Fig. 4.25 Opciones de Captura de Imagen y Grabación de Video.

Las Herramientas de imagen y video nos permiten cambiar los


parámetros que componen a la captura de imágenes y la grabación de
video. El botón “Capturar Imagen” almacena la imagen real que esta
sobre la pantalla, guardando la imagen en la dirección que se especifica
en la caja de texto de “Directorio” con el prefijo escrito por el
administrador en “Prefijo Imagen”. Automáticamente el sistema coloca
en “Prefijo Imagen” el nombre del archivo, esto para evitar sobre

40
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

escritura de archivos, si se desea cambiar el nombre del archivo, el


administrador deberá escribir un nuevo prefijo en esa sección. (Ver Fig.
4.25)

El botón “Iniciar grabación” inicia la grabación de video, en la


parte inferior, se encuentra la selección de tiempo o tamaño de video, si
seleccionamos Tiempo, se debe colocar un valor entero en segundos,
que especificará el tiempo total a grabar. Si se escoge tamaño se debe
colocar un valor entero que especifica el tamaño en Kilobytes que
deseamos almacenar en nuestro servidor. En nombre del video va
acompañado de un prefijo y de la fecha y hora de grabación. (Ver Fig.
4.25)

4.3.4 CONTROL DE MOVIMIENTO

Fig. 4.26 Control de Movimiento, Puntos de Vigilancia y Audio.

El control de movimiento tiene las funciones para hacer girar la


cámara de red en posiciones que el administrador desee, esta sección
del programa estará activa únicamente cuando se haya introducido un
nombre y contraseña de algún administrador.
En la parte principal se encuentran los botones de giro, el botón de
centrado de la cámara y los botones de patrullaje de puntos de
vigilancia (Ver Fig. 4.26). Funcionan en conjunto con el ajuste de ángulo
de movimiento que se encuentra en el costado derecho del control, de
esta manera permite al administrador avanzar de manera mas rápida o
mas lenta cada vez que da clic sobre algún botón de giro, el rango de
grados va de 3 a 60 y podrá seleccionar valores enteros en ese rango
deslizando el “TrackBar” del ajuste (Ver Fig. 4.27, en la parte superior del
control existe un indicador que especifica el numero de grados
seleccionado para el movimiento.

41
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

a)
b)
Figura 4.27 a) Giro a 10 Grados b) Giro a 60 Grados.

En la parte inferior del control se encuentra el ajuste de puntos de


vigilancia, el administrador deberá primeramente ajustar el punto de
puerta, ya que se toma como referencia para la automatización del
software. Los otros 5 puntos son de propósito general en donde el
administrador escogerá dentro del rango de la cámara donde estarán
esos puntos. Para el ajuste primero se debe posicionar la cámara con los
controles de giro en el lugar donde se quiere vigilar, de ahí se debe de
dar clic en el numero correspondiente del punto de vigilancia que se
desea ajustar. Ya configurado todos los puntos, el administrador podrá
mover la cámara automáticamente a un punto de vigilancia en cualquier
momento, para ello deberá dar clic al punto de vigilancia. En la parte
superior del Control se encuentran los botones de encendido y apagado
del servidor de audio de la cámara, con esto el administrador podrá
escuchar en tiempo real los sonidos que capta el micrófono de la
cámara.

4.3.5 LECTURA DE CODIGO DE ACCESO

Fig. 4.28 Opciones para Códigos de Acceso de las Llaves Electrónicas.

Esta es la sección del software en donde se leen todas las llaves


que se insertan en el sistema de control de accesos. Automáticamente al
insertar la llave electrónica, la sección de código almacena la clave de la
llave, esta es comparada con la base de datos de llaves y si es aceptada,
el sistema envía los datos necesarios al sistema de control para realizar
la apertura de la puerta. Con el botón “Leer” el administrador puede leer

42
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

la clave que almacena cierta llave que este insertada en el sistema de


control, con el botón “Borrar” podrá eliminar la clave que esta
almacenada en cierta llave. El botón “Grabar” sustituye el código que
esta en la llave por un nuevo código el cual el administrador deberá
primeramente dar de alta en la base de datos de Laves, en la sección de
“Usuario de Llave” deberá proporcionar el nombre del usuario que
generó el sistema automáticamente, una vez escrito el usuario, al dar
clic en el botón “Grabar” la clave de ese usuario se grabará a la Llave
insertada. Estas 3 opciones solo estarán disponibles cuando se haya
iniciado una cuenta de tipo administrador. (Ver Fig. 4.28)

4.3.6 LAS BASES DE DATOS DEL SISTEMA

En el Software el administrador tiene la opción de ver las bases de


datos y los datos que contienen, una es la base de datos de “Llaves” que
almacena todos las claves de las llaves y el nombre de los usuarios a los
cuales pertenece, esta base de datos no se mostrará si la cuenta de
inicio no es de un administrador. La segunda base de datos
(“Registros”), se mostrará a cualquier cuenta valida iniciada. (Ver Fig.
4.29)

Fig. 4.29 Editor de Base de Datos de Llaves Electrónicas.

En la base de datos de “Llaves” el administrador podrá agregar los


datos de las llaves que existan, para ello debe seleccionar la opción
“Agregar”, automáticamente aparecerán los cuadros de texto en donde
proporcionará los datos para generar la clave y registrar las llaves (Ver.
Fig. 4.30a), el sistema automáticamente generará la clave con los datos
proporcionados, esto lo realiza al momento de dar clic sobre el botón
“Aceptar”.
Si el administrador desea borrar la cuenta de un usuario y así
impedir que la clave a borrar nunca pueda activar el sistema de control
de accesos, deberá seleccionar la opción “Eliminar”, entonces el
administrador deberá proporcionar el nombre del “usuario” así como el
de la “clave” que desea eliminar de la base de datos, al dar clic en

43
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

“Aceptar” la base de datos eliminará ese registro y se actualizará


automáticamente (Ver Fig. 4.30b).

Si el administrador desea cambiar la clave generada por el


software por uno que se ajuste al usuario de la llave, por seguridad, etc.,
lo podrá realizar seleccionado la opción “Editar Clave”, en donde el
sistema le pedirá que proporcione el nombre de “usuario”, la “clave
anterior” que desea sustituir, al igual que la “clave nueva” que desea
agregar a dicho usuario. (Ver. Fig. 4.30c)

a) b)
c)
Figuras 4.30 Opciones del editor de Base de Datos de las Llaves Electrónicas.

En la parte inferior del Software aparece la base de datos de


“Registros” en la cual se registran automáticamente todos los datos de
las llaves electrónicas que son insertadas en cualquier momento en el
sistema de control. Esta base de datos no puede ser editada
directamente desde el software, por cuestiones de seguridad puede ser
editada desde el servidor SQL local, en el cual se solicitará el nombre del
administrador y la contraseña del mismo (Ver Fig. 4.31).

Fig. 4.31 Base de Datos de Registros.

4.4 INSTALACION DEL SISTEMA DE SEGURIDAD

La instalación del sistema de control de acceso electrónico es


relativamente fácil. Tenemos una puerta sencilla de ejemplo para ver el
funcionamiento del sistema de seguridad. (Ver Fig. 4.32).

44
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Fig. 4.32 Puerta con el


sistema instalado
Tenemos instaladas en ambos lados de la pared las entradas para
poder conectar la Llave electrónica con el sistema y así hacer funcionar
el solenoide para la apertura de la puerta. (Ver Fig. 4.33)

Fig. 4.33 Entrada para la Llave electrónica

Estas entradas son los conectores hembras USB que se vieron en


el capitulo anterior. En ella se introduce la llave como lo muestra la
Figura 4.34.

45
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Fig. 4.34 Llave Electrónica insertada en el conector

Al momento de insertar la llave en la entrada se comunicara con el


servidor mediante el protocolo RS-232 para que de esta manera enviar
el código de acceso para permitir la entrada al usuario.
Si la clave no es registrada o no existe dentro del servidor, se
encenderá en la llave un Led rojo el cual indica que el código no es
correcto y no es admitido. (Ver Fig. 4.35).

46
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Fig. 4.35 LED rojo indicando que el código de acceso no es el correcto

Fig. 4.36
LED verde indicando que el código de acceso es correcto.
De otro modo si el código es el correcto encenderá un Led verde el
cual indica que el servidor acepta el código enviado y permite el paso al
usuario. (Ver Fig. 4.36). El solenoide es activado y la puerta es abierta
como se muestra en las Figuras 4.37 a) y b).

47
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

a) b)
Fig. 4.37 a) El solenoide es activado para jalar el eje de la chapa b) La puerta esta
abierta.

Todo esto es conectado al modulo de comunicación y de acceso


que se encuentra a un lado de la puerta. Esta conectado a la corriente
normal 127 V A.C y conectado también al servidor mediante su
comunicación serial para la vigilancia de las claves al igual que el video
monitoreo. Ya que la velocidad de comunicación de la llave no es muy
rápida, podemos extender un cable hasta 30 metros sin perder ningún
dato importante del código. Esto da la ventaja de poder colocar el
modulo en cualquier parte ya sea cerca de la puerta o hasta donde se
encuentra el servidor para tener un mayor control sobre ella. (Ver Fig.
4.38).

48
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Fig. 4.38 Modulo de comunicación y de acceso instalado para la apertura de la puerta.

CONCLUSIONES Y MEJORAS A FUTURO

49
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

Después de las pruebas del sistema de control electrónico de


acceso y video monitoreo se concluye este trabajo obteniendo un
sistema semejante a algunos productos comerciales.
Los objetivos propuestos como el desarrollo del sistema de control
electrónico de acceso y el video monitoreo se lograron de una manera
que cumple con los requerimientos de los sistemas de seguridad y de
vigilancia. El software es fácil de usar al igual que el sistema ya que no
presenta complicaciones al utilizarlo.
Se retomaron y ampliaron varios temas vistos en el plan de
estudios de la carrera de Instrumentación Electrónica, como la
programación en lenguaje C para una PC como en los
microcontroladores y la programación orientada a objetos para realizar
el software que controla el acceso, registro y la visualización de las
imágenes de la cámara en tiempo real; con la inclusión de nuevos temas
como Bases de Datos con SQL.
Así también fueron aplicados los conocimientos obtenidos en
Microprocesadores, Comunicación de Datos y herramientas de software
CAD como lo es PROTEL99 para la construcción de la Llave Electrónica
del tamaño deseado y el modulo de comunicación y de acceso para el
sistema. Se implemento un software orientado a objetos como lo es
Visual Studio .NET 2005 para el desarrollo del software del servidor para
su control de acceso y visualización, incluyendo en este, el manejo de
SQL y la Cámara de Red.
Algunas complicaciones que se tuvieron en este trabajo fue
encontrar el código para el movimiento de la Cámara de Red y otras
funciones como la rapidez del movimiento de este. Encontrar una
velocidad de comunicación adecuada para no perder los datos del
código almacenados en la Llave y tener una distancia
considerablemente grande haciendo así el sistema más confiable.
Las mejoras proyectadas implica el uso de un microcontrolador
más pequeño, que cuente con la comunicación serial y espacio EEPROM
suficiente para almacenar el código de acceso. Introducir dentro del
software del servidor el control de inventario del laboratorio al igual que
el horario del laboratorio sincronizado con la Llave Electrónica para tener
otras opciones de control. Mejorar dentro del software la comunicación
con la Llave para obtener los datos deseados y disminuir el error al
momento de conectar el mismo. Incorporar una cámara más avanzada y
con mejor resolución de video, que cuente con Zoom y otras funciones
para el buen desempeño del video monitoreo.

50
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

BIBLIOGRAFIA
LIBROS DE CONSULTA

• TOMPKINS, WILLIS J., WEBSTER, JOHN G. (1988) INTERFACING


SENSORS TO THE IBM PC 2da. EDICION. NEW JERSEY: PRENTICE
HALL
• KERNIGHAN, BRIAN W., RITCHIE, DENNIS M. (1991) EL LENGUAJE
DE PROGRAMACION C 2da. EDICION. EDO. DE MEXICO: PRENTICE
HALL HISPANOAMERICANA S.A.
• CASAR CORREDERA, JOSE R. (2005, ENERO) TECNOLOGIAS Y
SERVICIOS PARA LA SOCIEDAD DE LA INFORMACION MADRID:
CONSEJO SOCIAL, UNIVERSIDAD POLITECNICA DE MADRID
• AXELSON, JAN (2003) EMBEDDED ETHERNET AND INTERNET
COMPLETE DESIGNING AND PROGRAMMING SMALL DEVICES FOR
NETWORKING MADISON, WI: LAKEVIEW RESEARCH LLC.
• KORTH, H., SILBERSCHATZ, A (1987) FUNDAMENTOS DE BASES DE
DATOS 1ra. EDICION, MEXICO: MCGRAW-HILL
• COLEMAN O., SAMUEL (2004, JULIO-AGOSTO) SEGURIDAD EN
AMERICA (25), 32-54
• COLEMAN O., SAMUEL (2006, MAYO-JUNIO) SEGURIDAD EN
AMERICA (36), 8-22-60

PAGINAS CONSULTADAS EN INTERNET

• HELP & SUPPORT SQL SERVER .NET, MICROSOFT CORPORATION


http://support.microsoft.com/kb/308656/es
REVISADO: 08/03/2006
• ARQUITECTURA ETHERNET,
http://www.zator,com/hardware/H12_4.htm
REVISADO: 24/11/2006
• CONTROL DE ACCESO : LECTORAS / TECLADOS DE ACCESO,
SYSCOM
http://www.syscom.com.mx/Productos/Monitoreos_Seguridad/Lecto
ras_Tarjeta_teclado.htm
REVISADO: 07/11/2006
• CAMARA DE RED AXIS MEXICO,
http://www.axis.com.mx/productos/camaras/index.htm

51
Diseño y construcción de un sistema de control electrónico de acceso y
video monitoreo

REVISADO: 9/11/2006
• EL CIRCUITO CERRADO DE TELEVISION, SYSCOM
http://www.syscomcctv.com.mx/que_es_cctv.htm
REVISADO: 9/11/2006

52

Vous aimerez peut-être aussi