Está en la página 1de 33

Programación Avanzada

Proyecto Final
Cerradura electromagnética

Profesor: Juan Manuel Ramos Arreguin


Equipo y expedientes:
Ruiz Cuatzo Carmen 243197
Sánchez Reséndiz Jesús Iram 243504
Yáñez Barrón Diana Saraí 24
Fecha de entrega: 07/Diciembre/2018
Tabla de contenido
INDICE DE FIGURAS ........................................................................................................................ 4
Índice de tablas .............................................................................................................................. 4
I. INTRODUCCIÓN...................................................................................................................... 4
II. OBJETIVO GENERAL ................................................................................................................ 5
III. OBJETIVOS PARTICULARES .................................................................................................. 5
IV. MARCO TEORICO ................................................................................................................ 5
 Cerradura electromagnética: .............................................................................................. 5
 Microcontroladores: ........................................................................................................... 6
o Microcontroladores PIC .................................................................................................. 7
 Pantalla LCD 16x2 ............................................................................................................. 10
 TECLADO MATRICIAL 4X4 ................................................................................................. 15
V. METODOLOGIA .................................................................................................................... 15
VI. RESULTADOS .................................................................................................................... 16
A. RESULTADOS OBTENIDOS ................................................................................................. 16
B. CONCLUSION .................................................................................................................... 17
VII. REFERENCIAS.................................................................................................................... 18
VIII. ANEXOS ............................................................................................................................ 18
a) ANEXO A. CODIGO (DE TODOS LOS COMPONENTES) ........................................................ 18
b) ANEXO B INTERFAZ DE MONITOREO Y CONTROL EN VISUAL C .......................................... 22
c) ANEXO C. MEMORIA FOTOGRAFICA ................................................................................. 26
d) ANEXO D HOJAS DE DATOS DE TODOS LOS COMPONENTES ELÉCTRICOS Y ELECTRONICOS
USADOS ................................................................................................................................... 29
e) ANEXO ESQUEMATICOS ELECTRONICOS ........................................................................... 30
f) ANEXO F IMAGEN 3D DE LA TARJETA ELECTRONICA ......................................................... 30
g) ANEXO G VIDEO ..................................................................... Error! Bookmark not defined.
h) ANEXO H COSTOS ............................................................................................................. 33
INDICE DE FIGURAS
Ilustración 1 Cerradura electromagnética ..................................................................................................... 5
Ilustración 2 Diferentes microcontroladores .................................................................................................. 7
Ilustración 3 Pic de la familia 18 .................................................................................................................... 8
Ilustración 4 PIC18F4550 .............................................................................................................................. 9
Ilustración 5 Diagrama de PIC18F4550 ........................................................................................................ 10
Ilustración 6 Pantalla LCD 16x2 ................................................................................................................... 10
Ilustración 7 Diagrama en proteus .............................................................................................................. 12
Ilustración 8 Teclado matricial .................................................................................................................... 15
Ilustración 9 Pantala funcionando ............................................................................................................... 26
Ilustración 10 Componentes........................................................................................................................ 27
Ilustración 11.............................................................................................................................................. 28
Ilustración 12 Ingresando contraseña ......................................................................................................... 29
Ilustración 13 Diagrama de conexiones ....................................................................................................... 30
Ilustración 14 diseño de placa electrónica (vista isométrica) ........................................................................ 30
Ilustración 15 Vista isométrica diseño de la tarjeta electrónica .................................................................... 31
Ilustración 16 Vista superior del diseño de la tarjeta electrónica. ................................................................. 31
Ilustración 17 Vista superior........................................................................................................................ 32
Ilustración 18 Diseño de la tarjeta electrónica que se utilizara en el proyecto............................................... 32

Índice de tablas
Tabla 1.Caracteristicas de los microcontroladores ......................................................................................... 7
Tabla 2 Descripción de bus de datos............................................................................................................ 13
Tabla 3 Descripción de comandos ............................................................................................................... 14
Tabla 4 Costos ............................................................................................................................................ 33

I. INTRODUCCIÓN
El concepto de seguridad domiciliaria, de oficina o de un edificio en general toma un papel
muy importante dentro de nuestra sociedad, hoy en día es necesario proteger las
pertenencias de cada individuo y/o brindarles cierta protección. En el mercado existen
diferentes tipos de artículos y artefactos que aseguran brindar defensa ante cualquier atraco
o agresión, como lo son las alarmas, cámaras de seguridad, sensores etc.
Dentro de la Universidad Autónoma de Querétaro, se propone desarrollar un sistema de
seguridad de puertas que controle el acceso y la salida de los alumnos y docentes de un
edificio, un sistema donde se lleve el control y se registren los movimientos dentro del
inmueble.
Este proyecto se propone ser colocado en el edificio de mecatrónica de la Facultad de
Ingeniería, donde se encuentran piezas de importancia para la universidad.
La aparición de la electrónica y la materia de Programación avanzada nos han permitido un
rápido progreso en lo que se refiere al concepto de seguridad y desarrollo de estos sistemas,
ya que nos proporciona una variedad de posibilidades de trabajo en este tipo de procesos,
eliminando y transformando de esta forma nuevos conceptos que nos brindarán la
optimización del mismo.

II. OBJETIVO GENERAL


 Desarrollar un sistema de seguridad automatizado para puertas, implementando los
conocimientos adquiridos durante el transcurso del semestre en la clase de
Programación avanzada.
 Favorecer a la facultad de ingeniera brindando seguridad al edificio de mecatrónica.
 Realizar una propuesta para que este tipo de métodos se implemente en demás
inmuebles o facultades de la universidad.
 Estudiar los resultados de este proyecto; verificar y optimizar

III. OBJETIVOS PARTICULARES


 Aprender el funcionamiento completo de los microcontroladores.
 Aprender a usar Visual Studio.
 Generar competencia en el mercado de sistemas de seguridad.
 Verificar las posibles fallas y solucionarlas.

IV. MARCO TEORICO


 Cerradura electromagnética:
Las cerraduras son elemento indispensable de seguridad, la cerradura presenta en la
actualidad un gran número de variantes, cada una asociada a distintas tecnologías.
La Cerradura Electromagnética se utiliza como medio de apertura en lugares donde la
entrada debe ser limitada (control de acceso).

Ilustración 1 Cerradura electromagnética


¿Cómo funciona?
Las cerraduras electromagnéticas cuentan con dos principales piezas, por un lado el
electroimán, y por el otro lado una lámina metálica llamada pieza móvil o pieza polar. El
electroimán se coloca en el marco de la puerta, trabaja como imán en la medida que circule
corriente por su bobina y cierra la puerta; al dejar de recibir corriente eléctrica permite la
apertura de la puerta.
Todas estas cerraduras electromagnéticas son de tipo “Fail Safe” lo que significa que se
mantienen cerradas solo mientras exista corriente eléctrica a diferencia de los otros tipos de
cerraduras eléctricas que funcionan del modo “Fail Secure” las cuales funcionan de modo
contrario cuando no hay electricidad se mantienen cerradas.
Por lo que las cerraduras electromagnéticas se recomiendan para ser usadas en puertas
internas que no requieran grandes niveles de seguridad aunque siempre recomendamos que
los sistemas de control de acceso que utilicen este tipo de cerraduras tengan fuentes de
energía de respaldo como UPS o baterías.
Adicionalmente el uso de estas cerraduras como accesos las recomendamos durante el
horario de flujo constante de personas, y que en horas no laborales se refuercen con otro
tipo de cerraduras.

 Microcontroladores:
Un Microcontrolador es Circuito integrado o chip que incluye en su interior las tres
unidades funcionales de un ordenador: CPU, Memoria y Unidades de E/S, es decir, se trata
de un computador completo en un solo circuito integrado. Aunque sus prestaciones son
limitadas, además de dicha integración, su característica principal es su alto nivel de
especialización. Aunque los hay del tamaño de una moneda, lo normal es que sean incluso
más pequeños, ya que, lógicamente, forman parte del dispositivo que controlan.
Un microcontrolador típico posee en su interior un generador de reloj integrado, una
pequeña cantidad de memoria RAM y ROM/EPROM/EEPROM. Para hacerlos funcionar
todo lo que se necesita son unos pocos programas de control, alimentación (típicamente
3.3V o 5V) y un cristal de sincronización.
Los microcontroladores disponen generalmente también de una gran variedad de
dispositivos de entrada/salida, como convertidores de analógico a digital, temporizadores,
UARTs y buses de interfaz serie especializados, como I2C y CAN.
Los microcontroladores más utilizados son los:
 AVR
 ARM
 MSP430
 PIC
o Microcontroladores PIC

Ilustración 2 Diferentes microcontroladores

El nombre verdadero de este microcontrolador es PICmicro (Peripheral Interface Controller),


conocido bajo el nombre PIC. Su primer antecesor fue creado en 1975 por la compañía
General Instruments. Este chip denominado PIC1650 fue diseñado para propósitos
completamente diferentes. Diez años más tarde, al añadir una memoria EEPROM, este
circuito se convirtió en un verdadero microcontrolador PIC. Hace unos pocos años la
compañía Microchip Technology fabricó la 5 billonésima muestra.

Tabla 1.Caracteristicas de los microcontroladores


Todos los microcontroladores PIC utilizan una arquitectura Harvard, lo que quiere decir
que su memoria de programa está conectada a la CPU por más de 8 líneas. Hay
microcontroladores de 12, 14 y 16 bits, dependiendo de la anchura del bus. La tabla anterior
muestra las características principales de estas tres categorías.

Como se puede ver en la tabla de la página anterior, salvo “los monstruos de 16 bits” PIC
24FXXX y PIC 24HXXX – todos los microcontroladores tienen la arquitectura Harvard de
8 bits y pertenecen a una de las tres grandes grupos. Por eso, dependiendo del tamaño de
palabra de programa existen la primera, la segunda y la tercera categoría de
microcontroladores, es decir microcontroladores de 12, 14 o 16 bits. Puesto que disponen
del núcleo similar de 8 bits, todos utilizan el mismo juego de instrucciones y el “esqueleto”
básico de hardware conectado a más o menos unidades periféricas.

Familia PIC18CXXX/18FXXX:

Ilustración 3 Pic de la familia 18

 Encapsulados de 18 a 80 pines.
 Memoria de Programa de 16 bits.
 Juego de 77 instrucciones (multiplicación).

Pic18F4550
El PIC18F4550 es uno de los más populares microcontroladores cuando de
conectividad USB se trata, solo basta googlear un poco para ver cuantos proyectos a través
del puerto USB utilizan este microcontrolador, además es un buen paso para dejar a la
familia PIC16F, y pasar al siguiente nivel porque no solo incluye conectividad USB, sino
que además tiene más memoria RAM EEPROM, y FLASH que el común de la
familia PIC16F. Ideal para pequeñas potencias (nanovatio) y aplicaciones de conectividad
que benefician de la disponibilidad de los tres puertos seriales: FS-USB (12 Mbit /
s), I²C ™ y SPI ™ (hasta 10 Mbit / s). Su gran capacidad de memoria RAM para
almacenamiento temporal y su memoria FLASH de programa mejoradas hacen que sea
ideal para el control integrado y aplicaciones de monitoreo que requieren conexión
periódica con un ordenador personal a través de USB para la carga / descarga de datos y / o
actualizaciones de firmware.

Ilustración 4 PIC18F4550

Principales Características
 Puerto USB V2.0 que puede trabajar en modo low speed (1.5 Mb/s) y Full speed
(12 Mb/s).
 RAM 1-Kbyte accesible por USB.
 Reloj externo hasta de 48 MHz.
 Oscilador interno de 31 KHz – 8 MHz configurable por software.
 Pines con salida de alta corriente de hasta 25 mA.
 4 timers de los cuales: hasta 2 pueden ser utilizados como módulos de
captura/comparación/PWM.
 Puerto USART con soporte para comunicaciones MSSP, SPI e I²C.
 Hasta 13 canales ADC de 10 bits.
 Memoria FLASH con 100,000 ciclos de lecturas escritura típicos.
 Memoria EEPROM con 1, 000,000 ciclos de lectura escritura típicos y retención
de datos de hasta 40 años.
 Programación con código de protección.
 Programación ICSP vía dos pines.

Ilustración 5 Diagrama de PIC18F4550

 Pantalla LCD 16x2

Ilustración 6 Pantalla LCD 16x2

LCD son las siglas en inglés de Liquid Crystal Dysplay, pantalla de cristal líquido en español,
un tipo de dispositivo que se utiliza para la visualización de diferentes tipos de contenidos o
información de manera gráfica, mediante el uso de diferentes caracteres, símbolos o dibujos.
La segunda parte de este término, 16x2, se refiere a que la pantalla cuenta con dos filas, cada
una con la capacidad para mostrar hasta dieciséis caracteres, símbolos o figuras, según su
programación.
Entonces, el término LCD 16x2 se refiere a un pequeño dispositivo con pantalla de cristal
líquido que cuenta con dos filas, de dieciséis caracteres cada una, que se utiliza para mostrar
información, por lo general alfanumérica. Las capacidades de estos dispositivos son altas,
pues se puede mostrar todo tipo de información sin importar qué tipo de símbolos o caracteres
sean, el idioma o el lenguaje, pues el sistema puede mostrar cualquier carácter alfanumérico,
símbolos y algunas figuras, el número de píxeles que tiene cada símbolo o carácter varía
dependiendo del modelo del dispositivo y cada artefacto está controlado por un
microcontrolador que está programado para dirigir el funcionamiento y la imagen mostrada
en la pantalla.
Entre las ventajas que se tienen al utilizar este tipo de artefactos están el mínimo consumo de
energía o corriente eléctrica, la programación es sumamente sencilla y es por lo general
cargada por el fabricante, dependiendo del uso y tipo de equipo que se trate.
Estos módulos de pantalla de cristal líquido tienen usos muy variados y en diferentes campos
como la informática, las telecomunicaciones, la telefonía, la industria automotriz, la relojería,
la robótica, la línea blanca, entre muchas otras, ideales sobre todo para dispositivos que
requieren de una visualización pequeña o incluso mediana.
Las pantallas de cristal líquido suelen disponer de una matriz de 5x8 puntos que se utiliza
para representar los diferentes caracteres. Comúnmente, el total de caracteres que se pueden
representar en dispositivo es de 256, de los cuales los primeros 240 son los símbolos
alfanuméricos comunes (letras mayúsculas y minúsculas, signos de puntuación, algunos
caracteres especiales, comunes y números) y el resto son caracteres que pueden ser
introducidos o definidos por el usuario.
Los dispositivos LCD 16x2 deben contar con un controlador, el más común que se utiliza en
la industria es el chipset HD44780, sobre todo por su flexibilidad, soporte y compatibilidad
con prácticamente cualquier plataforma. Existen, sin embargo, otros controladores bastante
efectivos, la mayoría desarrollados a partir del controlador HD44780.
Estos dispositivo con pantallas de cristal líquido se han vuelto muy populares en los últimos
años, esto es debido a la gran variedad que existe y la enorme versatilidad en su uso, su gran
capacidad para mostrar mensajes de texto, ya sea fijos o en movimiento, valores numéricos
y una mayor cantidad de símbolos especiales, en comparación con modelos anteriores.
Este tipo de dispositivos, además, tienen un precio bastante accesible, a diferencia de otros
equipos, su gran potencia en imagen con un bajo consumo de recursos y energía es otra gran
ventaja.
En cuestiones de programación y recursos informáticos, estos dispositivos solo requieren de
6 pines del microcontrolador para su conexión, la programación en diferentes lenguajes de
alto nivel es muy sencilla, incluso para inexpertos, los caracteres con los que se programe
el display deben estar en código ASCII. Dependiendo del microcontrolador que se utilice,
los dispositivos LCD 16x2 pueden conectarse a través de un bus de datos de 4 u 8 bits,
dependiendo del número de pines a disposición y son compatibles con diversas plataformas
como Arduino, PIC, MSP430, AVR, entre otras.
Debido a la retroiluminación con la que cuentan estos dispositivos, es posible lograr un alto
grado de contraste de colores y por lo tanto tener gran claridad en el mensaje mostrado, la
pantalla es sumamente delgada, en consecuencia su tamaño es pequeño y su vida útil es
bastante más extensa que muchos otros displays.
Quizás la única desventaja de este tipo de pantallas es que no se tiene una diversificación
muy fina o exacta de los colores, por lo que en ambientes con una iluminación poco favorable
no es posible visualizar de la mejor manera los mensajes mostrados en la pantalla. Para estos
casos los displays de siete segmentos siguen siendo la mejor opción.
¿Cómo se conecta?
En la siguiente imagen de Proteus se puede observar la estructura de sus pines.
Lo podemos dividir en los Pines de alimentación, pines de control y los pines del bus de
datos bidireccional. Por lo general podemos encontrar además en su estructura los pines de
Ánodo y cátodo de led.

Ilustración 7 Diagrama en proteus

a) Pines de alimentación:

Vss: Gnd
Vdd: +5 voltios
Vee: corresponde al pin de contraste, lo regularemos con un potenciómetro de 10K

b) Pines de control:

RS: Corresponde al pin de selección de registro de control de datos (0) o registro de


datos (1). Es decir el pin RS funciona paralelamente a los pines del bus de datos.
Cuando RS es 0 el dato presente en el bus pertenece a un registro de
control/instrucción. y cuando RS es 1 el dato presente en el bus de datos pertenece a
un registro de datos o un carácter.
RW: Corresponde al pin de Escritura (0) o de Lectura (1). Nos permite escribir un
dato en la pantalla o leer un dato desde la pantalla.
E: Corresponde al pin Enable o de habilitación. Si E (0) esto quiere decir que el
LCD no está activado para recibir datos, pero si E (1) se encuentra activo y
podemos escribir o leer desde el LCD.

c) Pines de Bus de datos:

El Bus de datos bidireccional comprende desde los pines D0 a D7. Para realizar la
comunicación con el LCD podemos hacerlo utilizando los 8 bits del bus de datos (D0 a D7)
o empleando los 4 bits más significativos del bus de datos (D4 a D7)
Tabla 2 Descripción de bus de datos

d) La librería del LCD:

Para poder visualizar los caracteres o símbolos en el LCD es necesario que en el programa
de código fuente a emplear, incluyamos la librería.
En este caso empleamos la librería "lcd.c".
La librería viene configurada de esta manera

#define LCD_ENABLE_PIN PIN_E0


#define LCD_RS_PIN PIN_E1
#define LCD_RW_PIN PIN_E2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7

Vamos a configurar para poder usar el PIN que nosotros deseamos, en este caso para usar el
puerto D del PIC.

#define LCD_ENABLE_PIN PIN_D0


#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7

o también de esta manera

#define LCD_DATA_PORT getenv("SFR:PORTD")


#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2

e)Funciones a usar:
 lcd_init(): Inicializa el lcd
 lcd_gotoxy(x,y): Establece la posición de escritura en el lcd.
 lcd_putc(char s): nos muestra un dato en la siguiente posición del lcd.
\f se limpia el lcd
\n el cursor se posiciona al inicio de la segunda línea
\b el cursor retrocede una posición
 lcd_getc(x,y): lee el carácter de la posición (x,y)
 printf(lcd_putc, cadena, variable)

Tabla 3 Descripción de comandos


 TECLADO MATRICIAL 4X4

Ilustración 8 Teclado matricial

Teclado matricial de 4 filas y 4 columnas para un total de 16 teclas. El teclado es tipo


membrana, por lo que entre sus ventajas se encuentra el poco espacio que requiere para ser
instalado. Puede ser conectado a cualquier microcontrolador o tarjetas de desarrollo como
Arduino.

El teclado matricial 4x4 está constituido por una matriz de pulsadores dispuestos en filas
(A,B,C,D) y columnas (1,2,3,4), con la intención de reducir el número de pines necesarios
para su conexión. Las 16 teclas necesitan sólo 8 pines del microcontrolador, en lugar de los
16 pines que se requerirían para la conexión de 16 teclas independientes. Para poder leer
que tecla ha sido pulsada se debe de utilizar una técnica de barrido y no solo leer un pin de
microcontrolador.

Su funcionamiento es muy sencillo, cuando se presiona una tecla, se conectan internamente


la fila y columna correspondientes; por ejemplo, al presionar la tecla “7” se conectan la fila
C y la columna 1. Si no hay ninguna tecla presionada, las filas están desconectadas de las
columnas.

V. METODOLOGIA
Para este proyecto de programación avanzada la metodología fue la siguiente.
Una vez que se eligió el proyecto en el cual íbamos a trabajar a inicios del semestre, se hizo
una investigación acerca de los métodos que podíamos utilizar para realización del proyecto.
El que nos pareció más viable fue el de la chapa magnética, el cual consiste en un imán que
se activa o se desactiva cuando le sumistas energía. Ya que hemos trabajado prácticas que se
basan en él envió de señales a través de los puertos, se nos hizo la opción más viable.

Una vez definido el proyecto, se procederá a investigar que componentes utilizaremos. En


este caso se compró una cerradura magnética (60 kg de fuerza 12 V y 120 mA), una pantalla
LCD de 16x2, un teclado matricial de 4x4. Entre otras componentes que se utilizaran para su
correcto funcionamiento.

Una vez que se tengan todos los componentes que utilizaremos, procederemos ha hacer el
diseño de nuestra placa donde soldaremos todos los componentes, se utilizara un relevador,
ya que la chapa magnética requiere de 12 V, mucho más de lo que un pic puede soportar.

Ya teniendo la placa diseñada con todos los componentes soldados, y funcionando cada uno
de ellos continuaremos con la parte de programación, primeramente, realizaremos una base
de datos en la plataforma de access donde registraremos a las personas que podrán entrar al
laboratorio de mecatrónica con su expediente, datos personales y una clave para poder
ingresar.

Una vez que tengamos la base de datos se realizara una interfaz en visual c, donde se
mostraran las personas que han entrado al laboratorio, así como la hora en que lo hicieron.

La base de datos estará conectada con la interfaz de visual, que a su vez estará comunicado
con el microcontrolador, que mandara la señal para que se abra la puerta, en caso de que la
clave que ha ingresado el usuario sea la correcta, de lo contrario la puerta no se abrirá.

Esta es una metodología a grandes rasgos, pero en general es lo que se quiere lograr como
parte del proyecto, un sistema de seguridad totalmente funcional.

VI. RESULTADOS
A. RESULTADOS OBTENIDOS
La cerradura electromagnética cumplió con las funciones planteadas a inicios del semestre,
en donde especificábamos las características del mismo, que fueron utilizar un teclado
matricial 4x4, un solenoide, la creación de una base de datos que dijera quien y a qué hora
se tenía acceso a cierto lugar, además de contar con un módulo bluetooth para conectarse de
manera inalámbrica a la computadora para enviar los datos. Tuvimos unas pequeñas
complicaciones ya que nos dimos cuenta de que el solenoide estaba muy cerca del relé y
esto hacia que no se desactivara el imán, además de que nuestros programas sufrieron de
muchas trabas a la hora de utilizarlos.

B. CONCLUSION
 Jesús Iram:
En la realización de este proyecto, aplicamos todos los conocimientos que hemos adquirido
a lo largo del semestre, y tuvimos que investigar más cosas ya que algunas cosas no las
habíamos visto en clase ni en el laboratorio por lo que se nos hizo un poco difícil la
realización del proyecto. Pero ya que estuvimos investigando y aprendiendo cosas nuevas,
cada uno a su manera se pudo realizar el proyecto.
La parte que más nos costó trabajo fue la de la parte de la programación de la interfaz de
visual estudio ya que teníamos que conectar otras dos plataformas en conjunto con esta para
que el proyecto funcionara, esas dos plataformas fueron la de acces donde realizamos la
base de datos, y el pic compiler donde programamos el microcontrolador, para que mandara
los datos a visual studio y este a su vez tomara datos de acces.
Para mi esa fue la parte complicada ya que yo me encargue más de la parte de
programación, y si tuvo su grado de complejidad.
Con la realización de este proyecto tuvimos la oportunidad de aprender más sobre la
electrónica y la programación ya que juntamos todo ese conocimiento y creamos algo que
puede ser de utilidad para el laboratorio de mecatrónica, si se implementa de manera
correcta.
 Carmen:
En el desarrollo de este proyecto, tuvimos que meternos a investigar sobre el desarrollo de
un sistema de control de acceso, que debo decir existen cientos pero muy raramente tenían
integrado una base de datos, así que lo pesado fue el desarrollo de esta; el cómo fusionar C#
y Access para lograr lo que deseábamos. Mi trabajo se centró en el desarrollo de un
programa que utilizara la memoria EEPROM del microcontrolador para guardar claves,
pero como el acceso iba a ser a muchas personas, era necesario optimizar demasiado esa
memoria, por lo cual optamos por la idea que quedo al final, y aunque básicamente mis
esfuerzos no sirvieron, pude aprender varias cosas acerca de cómo funciona esta memoria.
También me encargue de aprender a programar la pantalla LCD, fue un poco complicado
pero al final también me sirvió para realizar un ejercicio de practica y fue muy interesante
aprender esos comandos y funciones de la pantalla. La parte del trabajo si fue un poco mal
distribuida, ya que mis compañeros y yo pasamos por diferentes situaciones que requerían
de tiempo igualmente y al final el que hizo más fue Jesús al tener más tempo libre, pero los
tres estuvimos al pendiente de que hacia cada uno y así no quedar en blanco en cualquiera
de las cosas, pero hacer este proyecto fue de las mejores cosas ya que aplique todo lo que
aprendimos en el semestre y reforcé lo que aprendí en programación I.
Diana:
Durante el desarrollo de esta práctica hemos definido un sistema de seguridad como el
conjunto de elementos e instalaciones necesarias para proporcionarnos a las personas,
bienes materiales o inmuebles protección frente a agresiones tales como robo o atraco.
Para llevar a cabo este sistema, fue necesario poner a prueba todos los conocimientos
adquiridos en clase; así como en el desarrollo de las prácticas, en este proyecto nos
encontramos con diversos problemas a los que nos tuvimos que enfrentar para buscar la
mejor solución.
Considero que hoy en día es importante brindar y apoyar a nuestra universidad en el área de
seguridad, con este proyecto buscamos aportar un sistema de seguridad en puertas viable y
de bajo costo que la facultad pueda costear y de esta manera lograr un mejoramiento de la
misma.

VII. REFERENCIAS
http://aprendiendoelectronicafacil.blogspot.com/2015/04/pic-c-compiler-manejo-de-lcd-
16x2.html

https://www.nextiafenix.com/producto/pic18f4550/

https://unasguiasmas.com/tag/pic18f4550/

https://www.geekfactory.mx/tutoriales/tutoriales-pic/teclado-matricial-con-pic/

http://programarpicenc.com/articulos/teclado-matricial-4x4-con-los-microcontroladores-pic/

https://www.geekfactory.mx/tutoriales/tutoriales-pic/pantalla-lcd-16x2-con-pic-libreria/

VIII. ANEXOS
a) ANEXO A. CODIGO (DE TODOS LOS COMPONENTES)
#include <18F4550.h>

#FUSES NOWDT

#FUSES NOPROTECT

#FUSES NOLVP

#use delay(internal=4000000)

#use rs232(baud = 9600, xmit = pin_c6, rcv = pin_c7, bits = 8, parity = N)


#define LCD_TYPE 1

#define LCD_ENABLE_PIN PIN_E0 ////

#define LCD_RS_PIN PIN_E1 ////

#define LCD_RW_PIN PIN_E2 ////

#define LCD_DATA4 PIN_D4 ////

#define LCD_DATA5 PIN_D5 ////

#define LCD_DATA6 PIN_D6 ////

#define LCD_DATA7 PIN_D7

#define use_portb_kbd TRUE

#include <lcd.c>

#include <KBD4x4_1.c>

int i;

char k;

char c;

char dato[4];

#int_rda

void rcv_data()

c= getc();

if(c=='c')

lcd_putc("\fcorrecto");

output_low(pin_a0);

delay_ms(15000);

output_high(pin_a0);
c='x';

if(c=='i')

lcd_putc("\fincorrecto");

delay_ms(1000);

c='x';

void main()

output_high(pin_a0);

enable_interrupts(INT_RDA);

enable_interrupts(global);

//printf("hola");

i=0;

lcd_init();

kbd_init(); //

port_b_pullups(TRUE);

lcd_putc("\fIniciando");

delay_ms(1000);

while(1){

//lcd_putc("\f");

lcd_gotoxy(0,1);
lcd_putc("INGRESE SU CLAVE ");

int renglon=0;

while(i<4){

k=kbd_getc(); // leer la tecla presiono

if(k!=0){

if(i==0)

lcd_putc("\f");

dato[i]=k;

//printf("%c",dato[i]);

i++;

lcd_gotoxy(i,1);

printf(lcd_putc,"*");

//printf(lcd_putc,"\fSali ");

if(i!=0)

// printf(lcd_putc,"\fSali ");

printf("%c%c%c%c",dato[0],dato[1],dato[2],dato[3]);
}

i=0;

//delay_ms(1000);

b) ANEXO B INTERFAZ DE MONITOREO Y CONTROL EN VISUAL C


Imports System.IO.Ports

Public Class pantalla_pincipal


Public c As New OleDb.OleDbConnection 'es la conección a la BD'
Public a As New OleDb.OleDbDataAdapter 'instruccion sql'
Public d As New DataSet 'imagen de los datos con los que trabajaremos'
Dim clave As String = "1234"
Public Sub abre_coneccion()
c.ConnectionString = " Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=|Datadirectory|\datos.mdb"
c.Open() 'abrimos la coneccion'
End Sub
Public Sub historial()
d = New DataSet 'preprando el espacio para almacenar imagen de los datos'
a.SelectCommand = New OleDb.OleDbCommand("SELECT * From acceso order by hora
", c)
a.Fill(d, "acceso") 'llena la imagen con los datos'
grdhistorial.DataSource = d.Tables("acceso")
End Sub
Public Sub abre()
d = New DataSet 'preprando el espacio para almacenar imagen de los datos'
a.SelectCommand = New OleDb.OleDbCommand("SELECT * from usuarios where
clave='" & txtdatos.Text & "'", c)
a.Fill(d, "usuarios") 'llena la imagen con los datos'
DataGridView1.DataSource = d.Tables("usuarios")
End Sub
Public Sub registrar()
a.SelectCommand = New OleDb.OleDbCommand("Insert into acceso(nombre,
expediente, hora ) values('" & lblnombre.Text & "','" & lblexpediente.Text & "','" &
lblfecha.Text & "')", c)
a.Fill(d, "acceso")

End Sub
Public Sub llena_campos()
Me.lblnombre.DataBindings.Clear()
Me.lblexpediente.DataBindings.Clear()
Me.lblcarrera.DataBindings.Clear()

Me.lblnombre.DataBindings.Add("text", d.Tables("usuarios"), "nombre")


Me.lblcarrera.DataBindings.Add("text", d.Tables("usuarios"), "carrera")
Me.lblexpediente.DataBindings.Add("text", d.Tables("usuarios"),
"expediente")

End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
lblfecha.Text = Date.Now
End Sub

Private Sub pantalla_pincipal_Load(sender As Object, e As EventArgs) Handles


MyBase.Load
CheckForIllegalCrossThreadCalls = False
Timer1.Start()
buscarpuerto()
abre_coneccion()
historial()
c.Close()

End Sub

Private Sub buscarpuerto()


cbopuerto.Items.Clear()
For Each puerto As String In My.Computer.Ports.SerialPortNames
cbopuerto.Items.Add(puerto)

Next
If cbopuerto.Items.Count > 0 Then
cbopuerto.SelectedIndex = 0
MsgBox("Carga completa")
Else
MsgBox("No se encontraron puertos")
End If

End Sub

Private Sub btnconectar_Click(sender As Object, e As EventArgs) Handles


btnconectar.Click
serialpic.BaudRate = 9600
serialpic.DataBits = 8
serialpic.Parity = IO.Ports.Parity.None
serialpic.StopBits = 1
serialpic.PortName = cbopuerto.Text
serialpic.Open()
If serialpic.IsOpen Then
lblestado.Text = "Conectado"
Else
MsgBox("No se pudo conectar", MsgBoxStyle.Exclamation)

End If

End Sub

Private Sub grdhistorial_CellContentClick(sender As Object, e As


DataGridViewCellEventArgs) Handles grdhistorial.CellContentClick

End Sub

Private Sub serialpic_DataReceived(sender As Object, e As


SerialDataReceivedEventArgs) Handles serialpic.DataReceived
txtdatos.Text = serialpic.ReadExisting

'Label2.Text = "Validando"
lblnombre.Text = "k"
abre()
llena_campos()
If (lblnombre.Text = "k") Then
serialpic.Write("i")

Else
serialpic.Write("c")

registrar()

End If
Label2.Text = ""

'clave = txtdatos.Lines(0)
End Sub

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles


txtdatos.TextChanged

End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles


Button1.Click
'serialpic.Write(TextBox1.Text)
registrar()

End Sub
Private Sub Label2_Click(sender As Object, e As EventArgs) Handles Label2.Click

End Sub

Private Sub DataGridView1_CellContentClick(sender As Object, e As


DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick

End Sub

Private Sub Label4_Click(sender As Object, e As EventArgs) Handles


lblexpediente.Click

End Sub

Private Sub Label6_Click(sender As Object, e As EventArgs) Handles


lblnombre.Click

End Sub

Private Sub Label5_Click(sender As Object, e As EventArgs) Handles


lblcarrera.Click

End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles


Button2.Click
historial()
End Sub
End Class
c) ANEXO C. MEMORIA FOTOGRAFICA

Ilustración 9 Pantala funcionando


Ilustración 10 Componentes
Ilustración 11
Ilustración 12 Ingresando contraseña

d) ANEXO D HOJAS DE DATOS DE TODOS LOS COMPONENTES ELÉCTRICOS Y


ELECTRONICOS USADOS
 Carpeta con Hojas de datos

https://drive.google.com/open?id=1Uo1hcCcbQ-S5ZpYXq2ZCeZO8aft9EbwN
e) ANEXO ESQUEMATICOS ELECTRONICOS

Ilustración 13 Diagrama de conexiones

f) ANEXO F IMAGEN 3D DE LA TARJETA ELECTRONICA

Ilustración 14 diseño de placa electrónica (vista isométrica)


Ilustración 15 Vista isométrica diseño de la tarjeta electrónica

Ilustración 16 Vista superior del diseño de la tarjeta electrónica.


Ilustración 17 Vista superior

Ilustración 18 Diseño de la tarjeta electrónica que se utilizara en el proyecto.


g) ANEXO H COSTOS
Tabla 4 Costos

También podría gustarte