cerradura eléctrica controlada con arduino
DESCRIPTION
Cerradura eléctrica construida mediante un inductor y accionada por una placa de desarrollo ArduinoTRANSCRIPT
ESCUELA SUPERIOR POLITÉCNICA
DE CHIMBORAZO
FACULTAD DE INFORMÁTICA Y ELECTRÓNICA.
ESCUELA DE INGENIERÍA EN CONTROL Y REDES INDUSTRIALES.
ASIGNATURA: Máquinas Eléctricas 2
TRABAJO N°: 04
TEMA: Cerradura Electrónica
PROFESOR: Ing. Jhony Vizuete
ESTUDIANTES: Carlos Manosalvas S. 63
Vanessa Salazar P. 308
Jonathan Guamangallo T. 259
Danilo Vallejo Ll. 254
Andrés Chacha M. 229
SEMESTRE: Abril – Agosto 2015
FECHA: 03 de junio del 2015
INTRODUCCIÓN
Los campos en los cuales tiene aplicación la electrónica son muy variados, entre
los cuales tenemos: el control de procesos, comunicaciones, domótica,
seguridad entre otros.
En esta ocasión se realizara un proyecto sencillo, en el cual se aplicaran el
conocimiento de semestres anteriores, así como información disponible en la red
para realizar una cerradura electrónica, la cual básicamente está constituida
por una bobina alimentada con ciento diez voltios de corriente alterna, la cual
generara un campo electromagnético que abrirá o cerrara el seguro de la
puerta; todo este proceso será controlado mediante una placa de desarrollo
Arduino, en la cual se ingresara un código para realizar la acción antes
mencionada.
OBJETIVOS
Objetivo General
Implementar una cerradura electrónica con activación por código
numérico.
Objetivos Específicos
Construir una bobina alimentada a ciento diez voltios.
Desarrollar codificación en Arduino para la activación de la etapa de
potencia mediante código numérico.
Equipos y Materiales
Arduino Mega 2560 R3.
Teclado numérico.
5 onzas de alambre esmaltado calibre 23.
LCD 16 x 2
Relé.
Multímetro.
Taladro.
Cable gemelo calibre 14.
Alambres de conexión para Arduino.
Martillo.
Resorte.
Tol Galvanizado.
Tubo de PVC de media pulgada.
Clavos.
Rodelas.
Tornillos.
Bisagras.
Madera (diferentes medidas).
Presupuesto
ITEM Descripción Cantidad Valor Unitario Valor Total
1 Arduino Mega 2560 R3 1 60.00 60.00
2 Teclado numérico 1 7.50 7.50
3 Alambre esmaltado calibre 23
(onza)
5 1.15 5.75
4 LCD 16 x 2 1 12.00 12.00
5 Relé de 5 voltios DC 1 0.40 0.40
6 Tol galvanizado (30cm x
50cm)
1 2.75 2.75
7 Cable gemelo calibre 14
(metro)
3 0.80 2.40
8 Tabla Triplex (30cm x 40 cm) 2 2.00 4.00
9 Bisagras 2 0.30 0.60
Total 85.40
Nota: El resto de materiales son reciclados por lo cual es difícil asignarles valor.
Fundamento teórico
Reconocimiento de huella dactilar
El reconocimiento de huellas dactilares es uno de los métodos más populares para la
identificación de personas, debido a que tiene características únicas llamadas
minucias, las cuales son puntos donde los bordes terminan o se dividen. Los sistemas de
identificación que usan patrones biométricos de huella dactilar se denominan AFIS
(Sistema de identificación automático de huella dactilar).
Tradicionalmente las contraseñas y las tarjetas ID han sido usadas para moderar el
acceso a lugares restringidos, sin embargo estos sistemas pueden ser vulnerados cuando
llega a descifrarse una contraseña o se roba una tarjeta ID. Una huella dactilar se forma
a partir de los siete meses del desarrollo del feto, y esta o cambia en el transcurso de su
vida excepto por factores ajenos como cortaduras o algún tipo de accidente, por lo
que la probabilidad de hallar dos huellas dactilares similares es 1.9x10-15.
Adquisición de huella dactilar
Existen dos métodos de adquisición de huellas dactilares: método off-line y método on-
line. El primero obtiene una huella digitalizada con una resolución de 500 dpi (puntos por
pulgada). Esta metodología de funcionamiento requiere de un costo importante de
tiempo y suele usarse en aplicaciones criminalísticas. El segundo método se realiza en
tiempo real mediante el escaneo de la huella a través de escáneres tipo inkless.
Procesamiento de la huella dactilar
Los pasos para el procesamiento de la huella dactilar por un sistema automatizado de
identificación son:
Mejora de la imagen.- Consiste en eliminar las zonas confusas de la imagen original
(ruido) dejando solo las zonas con información fiable.
Binarización.- Pasa la imagen original en tonos de gris a blanco y negro, reconstruyendo
posibles bordes y mejorando la calidad global de la imagen.
Adelgazamiento.- Todas las crestas de las líneas dactilares tienen el mismo grosor,
haciendo que los puntos característicos de la huella dactilar se puedan identificar con
más facilidad.
Extracción de puntos característicos.- A partir de la imagen adelgazada el sistema es
capaz de detectar y extraer la posición exacta de los puntos características. Dentro de
esta etapa cabe destacar:
Construcción de un índice o vector.- Mediante algoritmos se crea un índice matemático,
el cual constituye la esencia de la huella dactilar analizada, almacenándolo en forma
de fichero.
Identificación y verificación.- Una vez que se tiene el índice o vector de muchas huellas
el sistema es capaz de realizar búsquedas 1:1 para verificar una identidad o 1: N para
identificarla.
La extracción de puntos característicos es el proceso final que completa la obtención
de la plantilla de la huella o patrón biométrico dactilar. La cantidad mínima de puntos
característicos necesarios para proceder a comparaciones eficaces entre imágenes
dactilares es de 15.
Tipos de sensores de huella digital
Ópticos reflexivos.- Consiste en colocar el dedo sobre una superficie de cristal o un
prisma que se ilumina por un diodo LED. Cuando las crestas de la huella tocan la
superficie, la luz se absorbe, mientras que entre crestas se produce una reflexión total
Escaneo de retina
La retina humana es un tejido fino compuesto de células neurales situadas en la porción
posterior del ojo. Debido a la compleja estructura de las venas capilares que suministran
sangre a la retina es que la retina de cada persona es única. La red de vasos sanguíneos
en la retina es tan compleja que ni siquiera dos gemelos idénticos comparten el mismo
patrón. Aunque los patrones de la retina pueden alterarse en caso de diabetes,
glaucoma o trastorno degenerativo de la retina, ésta típicamente se mantiene sin
variación desde el nacimiento hasta la muerte.
Un identificador biométrico conocido como escaneo de retina, se emplea para mapear
los patrones únicos de la retina de una persona. Los vasos sanguíneos dentro de la retina
absorben luz con más rapidez que el tejido circundante y se identifican fácilmente con
una iluminación apropiada.
El escaneo de retina se realiza dirigiendo un rayo imperceptible de luz infrarroja de baja
energía hacia el ojo de la persona cuando esta mira a través de la pieza ocular del
escáner. Ese rayo de luz traza una ruta estandarizada sobre la retina. Como los vasos
sanguíneos de la retina son más absorbentes de esa luz que el resto del ojo, la cantidad
de luz reflejada varía durante el escaneo. El patrón resultante de las variaciones es
convertido a código informático y se guarda en una base de datos.
Escaneo de iris
El iris es una estructura fina y circular del ojo, que controla el diámetro y tamaño de la
pupila, y por tanto la cantidad de luz que alcanza la retina. El reconocimiento de iris es
un método automatizado de identificación biométrica, que emplea técnicas
matemáticas para reconocimiento de patrones en imágenes de video del iris de los ojos
de un individuo. Estos patrones aleatorios son únicos y pueden verse a cierta distancia.
A diferencia del escaneo de retina, el reconocimiento de iris utiliza tecnología de
cámara con una sutil iluminación infrarroja para adquirir imágenes de las intrincadas
estructuras del iris. Las matrices digitales codificadas de esos patrones mediante
algoritmos matemáticos y estadísticos permiten la identificación positiva de un individuo.
La búsqueda en las bases de datos de las matrices registradas se realiza mediante
motores de asociación a velocidades que se miden en millones de matrices por
segundo, y las tasas de falsa coincidencia son cifras infinitesimales.
Cientos de millones de personas en todo el globo se han registrado en sistemas de
reconocimiento de iris por razones de conveniencia y seguridad, desde los procesos
automatizados de cruce de fronteras hasta las funciones de tarjetas nacionales de
identificación. Una ventaja esencial del reconocimiento de iris, además de la rapidez
de la asociación y su extrema resistencia a las falsas coincidencias, es la estabilidad del
iris como órgano ocular interno, protegido, y pese a ello, visible externamente.
Desarrollo
Se procede a cortar la madera de acuerdo al tamaño de la puerta, de ahí se procede
a sujetarla en el marco (construido con resto de barrederas) mediante bisagras y
tornillos. El marco ira sujetado con clavos a una base de madera (triplex).
Cálculo Calibre Conductor
Se procede a realizar los cálculos para el calibre del alambre esmaltado y del bobinado.
A partir de la fórmula de inducción magnética determinamos el número de espiras de
nuestra bobina, asignándole un valor cuatro veces mayor que el necesario para
pequeños transformadores (B = 8000 x 4 [Gauss]).
𝑁 =𝑉 × 108
𝑓 × 𝑆 × 𝐵 × 4.4
𝑁 =84.85 × 108
60 × 1.2668 × 32000 × 4.4= 792.847 ≈ 793 𝑣𝑢𝑒𝑙𝑡𝑎𝑠
Para el cálculo del calibre de conductor usaremos una corriente de 0.7 amperios y de
acuerdo a un estándar usaremos una densidad de corriente de 3 A/mm2.
𝑠 =𝐼
𝐷=
0.7 𝐴
3 𝐴/𝑚𝑚2= 0.2333 𝑚𝑚2
Buscamos en la siguiente tabla el calibre correspondiente a esa sección.
Como resultado obtenemos un alambre con calibre 23 como la mejor opción.
Con estos resultados vamos
Código Arduino
Cuando se ingrese en la placa de Arduino el código correcto se enviara una señal al
relé, que cambiara de estado y energizara la bobina de la cerradura, abriendo o
cerrando la puerta.
Este proceso se realiza mediante la incorporación de dos librerías keypad.h y
password.h; la primera me da la facilidad para leer lo ingresado con el teclado y el
segundo nos ayuda a simplificar el proceso para ingresar, guardar y modificar una
contraseña en la placa de Arduino. También se usa una tercera librería, LiquidCrystal.h
la cual nos ayuda con la visualización del código en una pantalla LCD y asi tener un
manejo más intuitivo. (Se incluye el código de Arduino en los anexos)
Cronograma
Fecha: 22 de mayo de 2015
Actividad: Construcción de la puerta y bobina
Número de horas: 3 15H00 -18H00 Vanessa Salazar
Danilo Vallejo
Jonathan Guamangallo
Carlos Manosalvas
Edgar Chacha
Fecha: 29 de mayo de 2015
Actividad: Programación en Arduino
Número de horas: 3 09H00 -12H00 Vanessa Salazar
Danilo Vallejo
Carlos Manosalvas
Fecha: 02 de junio de 2015
Actividad: Conexión Puerta - Arduino
Número de horas: 3 21H00 - 00H00 Vanessa Salazar
Danilo Vallejo
Jonathan Guamangallo
Carlos Manosalvas
Edgar Chacha
Costo por horas de trabajo
Jefe Vanessa Salazar
Secretario Danilo Vallejo
Integrante Número de Horas Costo Hora Costo Total
Vanessa Salazar 9 7.50 67.50
Danilo Vallejo 9 6.25 56.25
Jonathan Guamangallo 6 5.00 30.00
Carlos Manosalvas 9 5.00 45.00
Edgar Chacha 6 5.00 30.00
Total 228.75
Conclusión
El campo electromagnético inducido en la bobina al circular una corriente provoca que
el metal usado como seguro de la puerta sea atraído a la bobina, no se puede
mantener energizada a la bobina por mucho tiempo, ya que el calor producido por el
efecto Joule puede dañar el aislamiento de esmalte de la bobina y dañarla.
Es necesario aplicar una etapa de potencia para activar a la bobina con la placa de
desarrollo Arduino, ya que manejan corrientes diferentes, y así asegurar su correcto
funcionamiento.
Recomendaciones
En el caso de necesitar una fuente de corriente directa adicional al de la placa Arduino
es necesario interconectar los terminales de GND para que el circuito funcione, caso
contrario no funcionara el circuito.
El aplicar un relé en la etapa de potencia es una muy buena opción para la etapa de
potencia, ya que es un elemento económico, confiable y puede manejar un amplio
rango de corrientes.
Referencias
R. M. Kerchner y G. F. Corcoran, "Circuitos de corriente alterna," (13 ed.) México:
Compañía Editorial Continental.
J. Sánchez, “DISEÑO Y PARAMETRIZACIÓN DE INDUCTORES CON NÚCLEO DE
HIERRO”, [Online]. Disponible en
http://dialnet.unirioja.es/servlet/articulo?codigo=4727779
G. Mendoza, “Cómo construir una cerradura eléctrica y electrónica”, [Online].
Disponible en
http://prototiposeinformaciongusment.blogspot.com/2011/04/como-construir-
una-cerradura-electrica.html
J. Trader, “Biometría de iris vs. retina, sí, en realidad son diferentes”, [Online].
Disponible en http://www.idnoticias.com/2014/08/13/biometria-de-iris-vs-retina-
si-en-realidad-son-diferentes
Prometec, “Teclados matriciales” [Online]. Disponible en
http://www.prometec.net/teclados-matriciales/
V. García, “Teclado con LCD”. [Online]. Disponible en
http://www.hispavila.com/3ds/atmega/keypad.html
O. Gonzales. “Cerradura de puerta automática con Arduino”, [Online].
Disponible en http://blog.bricogeek.com/noticias/arduino/cerradura-de-
puerta-automatica-con-arduino/#more
Anexos
Imagen 1. Construcción de la puerta
Imagen 2. Mecanismo de apertura/cierre
Imagen 3. Bobina con núcleo de tubería PVC
Figura 4. Cerradura accionada magnéticamente
Figura 5. Montaje de cerradura en la puerta
Figura 6. Puerta con cerradura terminada
Codificación en Arduino
#include <Keypad.h>
#include <Password.h>
#include <LiquidCrystal.h>
const byte FILAS=4; //cuatro filas
const byte COLS=4; //cuatro columnas
//definimos el keymap
char keys[FILAS][COLS]={
{'D','C','B','A'}, // Declaración del teclado
{'#','9','6','3'},
{'0','8','5','2'},
{'*','7','4','1'},
};
//conectar los pines FILA0,FILA1,FILA2,FILA3 a estos pins de arduino MEGA
byte rowPins[FILAS]={8,9,10,11};
//conectar los pines COL0, COL1, COL2, COL3 a estos pins de arduino
byte colPins[COLS]={12,13,14,15};
//crear el keypad
Keypad keypad = Keypad(makeKeymap(keys),rowPins,colPins, FILAS, COLS);
#define ledA 16
#define ledC 17
#define rele 18
//crear el password para la alarma
Password password=Password("4564");
LiquidCrystal lcd(2,3,4,5,6,7);
const int analogInPin = A0; //entrada de los botones del keypad
int sensorValue = 0;
int activada=0;
String mensaje;
void setup(){
Serial.begin(9600);
pinMode(ledC ,OUTPUT);
pinMode(ledA ,OUTPUT);
pinMode(rele ,OUTPUT);
Serial.begin(9600);
lcd.begin(16,2);
lcd.print("PUERTA CERRADA");
digitalWrite(ledA,LOW);
digitalWrite(ledC,HIGH);
digitalWrite(rele,LOW);
activada=1;
lcd.setCursor(0,2);
lcd.print("Codigo");
keypad.addEventListener(keypadEvent); //añadimos un evento de escucha para
este keypad
}
void loop(){
keypad.getKey();
//funcion que este leyendo de la entrada analogica de la ldr y si salta estando
activada, mete un delay de 30seg y suena
}
//FUNCION PARA COMPROBAR SI SE PULSA EL KEYPAD
void keypadEvent(KeypadEvent eKey){
switch(keypad.getState()){
case PRESSED:
limpiarlinea();
lcd.setCursor(0,2);
lcd.print("Codigo:");
lcd.print(eKey);
delay(10);
switch(eKey){
case 'B': checkPassword(); delay(1); break;
case 'C': password.reset(); delay(1); break;
case 'D': bluethoot(); delay(1); break;
default: password.append(eKey); delay(1);
}
}
}
void bluethoot(){
lcd.print("PUERTA CERRADA");
digitalWrite(ledA,LOW);
digitalWrite(ledC,HIGH);
digitalWrite(rele,LOW);
while(Serial.available()){
delay(10);
char c = Serial.read();
mensaje += c;
}
if(mensaje.length()>0){
if(mensaje=="*abrir puerta"){
lcd.print("Correcto");
digitalWrite(ledA,HIGH);
digitalWrite(ledC,LOW);
digitalWrite(rele,HIGH);
delay(800);
digitalWrite(rele,LOW);
}//interpretando mensaje
else if ("hola"){
lcd.print("INCORRECTO");
digitalWrite(ledA,HIGH);
digitalWrite(ledC,HIGH);
digitalWrite(rele,LOW);
}
}
}
//FUNCION DE COMPROBACION DE LA CONTRASEÑA
void checkPassword(){
if(password.evaluate()){
//si el password es correcto, activa la alarma
limpiarlinea();
lcd.setCursor(0,2);
lcd.print("Correcto");
digitalWrite(ledA,HIGH);
digitalWrite(ledC,LOW);
digitalWrite(rele,HIGH);
delay(800);
digitalWrite(rele,LOW);
password.reset();
limpiartodo();
lcd.setCursor(0,0);
lcd.print("PUERTA ABIERTA");
activada=0;
delay(10);
}
else
{
limpiarlinea();
lcd.setCursor(0,2);
lcd.print("INCORRECTO");
digitalWrite(ledC,HIGH);
digitalWrite(ledA,HIGH);
digitalWrite(rele,LOW);
password.reset();
delay(10);
}
}
//FUNCION PARA LIMPIAR LA PRIMERA LINEA DEL LCD
void limpiarlinea(){
lcd.setCursor(0,2);
for(int i=0;i<16;i++){
lcd.print(" ");
}
}
//FUNCION PARA LIMPIAR TODO EL LCD
void limpiartodo(){
lcd.setCursor(0,1);