Proyecto-Sistema Seguridad Caja Fuerte

17
Proyecto Arduino SISTEMA SEGURIDAD CAJA FUERTE

Transcript of Proyecto-Sistema Seguridad Caja Fuerte

Page 1: Proyecto-Sistema Seguridad Caja Fuerte
Page 2: Proyecto-Sistema Seguridad Caja Fuerte

INDICE

1.-OBJETIVO………………………………………………………………………… 2

2.-JUSTIFICACIÓN………………………………………………………………… 2

3.-DESARROLLO DEL PROYECTO…………………………………………... 3

3.1.-Materiales necesarios………………………………………………… 3

3.2.-Montaje Prototipo……………………………………………………… 4

3.3.-Programación…………………………………………………………….. 6

3.4.-Montaje de maqueta…………………………………………………. 11

4.-PRESUPUESTO…………………………………………………………………. 12

5.-NOTACIÓN BIBLIOGRAFICA……………………………………………….14

1

Page 3: Proyecto-Sistema Seguridad Caja Fuerte

1.-OBJETIVO

El objetivo de este proyecto es un sistema de seguridad de una caja fuerte controlado por una pantalla LCD y un teclado matricial 4x4.

El proyecto presenta un menú por pantalla desde el cual debemos introducir la contraseña para activar el servo que nos permite abrir y cerrar la puerta.A través de este menú podemos visualizar mediante la pantalla controlada por el teclado el estado de nuestro sensor de temperatura, sensor de vibración, comprobar y borrar datos introducidos y desbloquear el programa, que se bloqueara al introducir 3 veces de manera incorrecta la contraseña.

2.-JUSTIFICACIÓN

La principal justificación es crear un sistema de seguridad eficaz, que bloque todo el programa al cometer un mínimo de errores y que nos alerte cuando la caja fuerte sea sometida a vibraciones altas o altas temperaturas.

2

Page 4: Proyecto-Sistema Seguridad Caja Fuerte

3.-DESARROLLO DEL PROYECTO

3.1.-Materiales necesarios

-Arduino Uno SMD

- Modulo LCD I2C Serie 2 x 16.

-Teclado matricial 4 x 4.

- Sensor de Vibración.

- Servomotor.

-Zumbador.

- 3 LEDs de 5 mm.

-3 resistencias de 220 Ω, 470 Ω y 10k.

-Placa Protoboard.

-Cables conectores.

-Sensor de temperatura.

-Caja de madera.

3

Page 5: Proyecto-Sistema Seguridad Caja Fuerte

3.2.-Montaje Prototipo

Para el montaje de nuestro prototipo hemos utilizado Arduino UNO SMD, es una modificación del Arduino UNO cuya principal diferencia es el tipo de encapsulado que ofrece.

El esquema del montaje sería el siguiente:

En dicho esquema se pueden aprecia todas las conexiones realizadas para cada uno de los LEDs, el sensor de temperatura (LM35), el zumbador, el servo, el sensor de vibarción y el tecaldo matricial.

4

Page 6: Proyecto-Sistema Seguridad Caja Fuerte

Las siguientes fotos muestran el montaje real:

5

Page 7: Proyecto-Sistema Seguridad Caja Fuerte

3.3.-Programación.

Hemos realizado la programación de nuestro prototipo con el programa arduino 1.0.1 que podemos descargar de la propia web de arduino.

Hemos utilizado números libreiras:

.-Password.h. Necesaria para establecer una contraseña e utilizar diveras funciones incluidas en ella.

.-Keypad.h. Es la librería para el teclado matriciail.

.-Wire.h. Permite comunicar con dispositivos I2C.

.-LiquidCrystal_I2C.h. Es la librería de nuestro LCD.

.-Servo.h. Librería utilizada para el funcionamiento del servomotor.

El programa se basa principalmente en un menú mostrado por el LCD a través del cual podemos visualizar el estado de nuestros sensores así como la activación de nuestro servo mediante contraseña.

Las teclas numéricas se reservan únicamente para los dígitos de la contraseña.

La tecla F nos muestra por pantalla la temperatura a la que se encuentra la caja fuerte.

La tecla E nos muestra el valor de vibración que tenemos actualmente.

La tecla C nos permite comprobar la contraseña introducida, si fuera correcta nos abriría la puerta mediante el servo, si fuera incorrecta nos pediría una nueva introducción sumando un error a la cuenta. Si fallamos tres veces el sistema se bloquearía, nos pediría una contraseña de desbloqueo que debemos de comprobar con la tecla A.

La tecla D nos permitiría borrar los dígitos introducidos en el caso de que nos equivocáramos.

La tecla C nos permite cerrar la puerta una vez abierta.

Si se sobrepasa la temperatura límite o se comete error en la introducción de la contraseña, el diodo LED rojo y el zumbador se activarían.

Si los niveles de vibración sobrepasas el límite establecido se encendería el LED amarillo.

Si introducimos la contraseña correcta y activamos el Servo, se enciende el LED verde.

6

Page 8: Proyecto-Sistema Seguridad Caja Fuerte

Visualización del programa:

#include <Password.h> #include <Keypad.h> #include <Wire.h>#include <LiquidCrystal_I2C.h>#include <Servo.h> LiquidCrystal_I2C lcd(0x27,16,2);

Password password = Password( "1234" );

int LM35= A0;int TempH = 28 ;float Temp; int Entrada=1;float Nivel;int Lim=1000;int salida=13; Servo servo1; int posicion;int led = 13;int led2= 3;int led3=2;int posi=0;int i=0;int pirPin = 7;int p;int x;int errores;const byte ROWS = 4; const byte COLS = 4; // Define the Keymapchar keys[ROWS][COLS] = '1','2','3','F', '4','5','6','E', '7','8','9','D', 'A','0','B','*';

byte rowPins[ROWS] = 7,6,5,4 ;byte colPins[COLS] = 11,10,9,8, ;

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup() Serial.begin(9600); lcd.init(); lcd.backlight(); servo1.attach(12); posicion = 800; posicion = map(posicion, 0, 1023, 0, 179); servo1.write(posicion); delay(150); pinMode(led, OUTPUT); pinMode(pirPin, INPUT); digitalWrite(pirPin, LOW); pinMode(led2,OUTPUT); pinMode(led3,OUTPUT); keypad.addEventListener(keypadEvent); char key = keypad.getKey();

void loop() if(errores>=3) password.set("4321"); lcd.setCursor(0,0); lcd.print("Bloqueado"); char key = keypad.getKey(); if (key=='1' || key=='2' || key=='3' || key=='4' || key=='5' || key=='6' || key=='7' || key=='8' || key=='9' || key=='0') lcd.setCursor(5+i,1); lcd.print("*"); i++; else if (key=='F' || key=='E' ||key=='D' || key=='C'|| key=='B') lcd.print(""); lcd.clear();

7

Page 9: Proyecto-Sistema Seguridad Caja Fuerte

else

Temp=(5*analogRead(A0)*100/1023.0); Nivel = analogRead(Entrada); lcd.setCursor(0,0); if(Temp>TempH) digitalWrite(salida,HIGH); delay(1000); digitalWrite(salida,LOW); if(Nivel<Lim) lcd.print("Vibracion alta!!");digitalWrite(led3,HIGH); delay(1000); digitalWrite(led3,LOW); password.reset(); i=0; lcd.clear(); lcd.setCursor(0,0); lcd.print("Password:"); char key = keypad.getKey(); if (key=='1' || key=='2' || key=='3' || key=='4' || key=='5' || key=='6' || key=='7' || key=='8' || key=='9' || key=='0') lcd.setCursor(5+i,1); lcd.print("*"); Serial.println("*"); i++;

void keypadEvent(KeypadEvent eKey)

switch (keypad.getState()) case PRESSED: switch (eKey) case 'A': if (password.evaluate()) lcd.clear(); lcd.setCursor(0,0); digitalWrite(led2, HIGH); delay(500); digitalWrite(led2,LOW); delay(500); digitalWrite(led2, HIGH); delay(500); digitalWrite(led2,LOW); delay(500); lcd.print("Desbloqueado"); delay(500); password.set("1234"); lcd.clear(); errores=0; i=0; password.reset(); else lcd.clear(); lcd.setCursor(0,0); digitalWrite(led, HIGH); delay(500); digitalWrite(led,LOW); delay(500); digitalWrite(led, HIGH); delay(500); digitalWrite(led,LOW); delay(500); lcd.print("Error"); delay(500); lcd.clear(); i=0; password.reset(); break; case 'B': Serial.println(posicion); if ((posicion<150)&&(posicion>30))

8

Page 10: Proyecto-Sistema Seguridad Caja Fuerte

lcd.clear(); lcd.print("Puerta cerrada"); delay(750); lcd.clear(); if(posicion<30) lcd.setCursor(0,0); lcd.print("Cerrando"); for(int i = 0; i < 4; i++) lcd.print("."); delay(750); servo1.attach(12); posicion = 800; posicion = map(posicion, 0, 1023, 0, 179); servo1.write(posicion); delay(150); lcd.clear();

lcd.clear(); i=0; password.reset(); break; case 'E': lcd.setCursor(0,0); lcd.print("Vibracion:"); lcd.print(Nivel); delay(1000); i=0; lcd.clear(); break; case 'F': Temp=(5*analogRead(A0)*100/1023.0); lcd.setCursor(0,0); lcd.print("Temperatura:"); lcd.print(Temp); delay(1000); lcd.clear(); i=0; break; case '*': checkPassword();i=0; break;servo1.write(posicion); delay(2000); lcd.clear();

case 'D': lcd.clear(); lcd.print("Borrando"); for(int i = 0; i < 4; i++) lcd.print("."); delay(750); i=0; password.reset(); lcd.clear(); break;

default: password.append(eKey);

void checkPassword() if (password.evaluate()) lcd.clear(); lcd.print("Comprobando"); for(int i = 0; i < 4; i++) lcd.print("."); delay(750); lcd.setCursor(5,1); lcd.clear(); lcd.print("Password"); lcd.setCursor(5,1); lcd.print("correcta"); lcd.setCursor(16,1); digitalWrite(led2, HIGH); delay(1000); digitalWrite(led2,LOW); lcd.clear(); posicion = 150; posicion = map(posicion, 0, 1023, 0, 179); lcd.print("Abriendo"); for(int i = 0; i < 4; i++) lcd.print("."); delay(750);

9

Page 11: Proyecto-Sistema Seguridad Caja Fuerte

lcd.print("Puerta abierta"); delay(2000); lcd.clear(); errores=0; else lcd.clear(); lcd.print("Comprobando"); for(int i = 0; i < 4; i++) lcd.print("."); delay(750); lcd.clear(); digitalWrite(led, HIGH); delay(1000); digitalWrite(led,LOW); lcd.print("Incorrecto"); lcd.setCursor(0,1); lcd.print("Prueba otra vez"); lcd.setCursor(0,1); delay(1000); errores++; password.reset(); lcd.clear();

3.4.-Montaje de maqueta

10

Page 12: Proyecto-Sistema Seguridad Caja Fuerte

Todo el prototipo se ha montado dentro de una caja de madera que simularía la forma de una caja fuerte.

El montaje ha sido sencillo, se ha cortado la tapa de la caja a medida, se han hecho los agujeros necesario para los LEDs y un pestillo que junto con el servo y la introducción de la contraseña abriría o no la puerta de la caja fuerte.

11

Page 13: Proyecto-Sistema Seguridad Caja Fuerte

4.-PRESUPUESTO

Producto Nombre Referencia Unidades

Precio Unida

d

Total

Arduino Uno SMD

Código: Arduino-Uno-DMS

Página:www.dieltron.com

1

26,56€ 26,56€

Modulo LCD I2C Serie 2 x 16

Código: Q00615043

Página:www.b2cqshop.com 1

17,26€ 17,26€

Teclado matricial 4 x 4

Código: Q04915190

Página:www.b2cqshop.com

1 3,30€ 3,30€

Sensor de Vibración

Código: DFR0027

Pag:www.dfrobot.com

1 3,53 € 3,53 €

Micro Servo Tower Pro

SG909grs

Código:E502

Página:www.todomodel.es

1 4,60€ 4,60€

35.085 Zumbador de

Electro DH

Código:644-35.085

Página:www.dieltron.com

1 1,17€ 1,17€

12

Page 14: Proyecto-Sistema Seguridad Caja Fuerte

LED 5mm 10Kmcd

Transparente 12.675/5/R/C/

10K

Código:113-12.675-5RC10K

Página:www.dieltron.com

3 0,17€ 0,51€

Resistencias220Ω,

10k Ω,470 Ω1/4W

Página:www.dieltron.com

3 0,17 0,51€

Placa Protoboard y

cables de conexión.

Código:Q00915023

Página:www.b2cqshop.com

1 6,28€ 6,28€

LM35 Sensor de

Temperatura

Código:Q02315076

Página:www.b2cqshop.com

1 2,67€2,67€

Caja de madera

Código:734

Página:www.cajasestuches

madera.com

1 3,5€ 3,5€

TOTAL= 69,89€

13

Page 15: Proyecto-Sistema Seguridad Caja Fuerte

5.-NOTACIÓN BIBLIOGRAFICA

.-www.arduinco.cc

.-www.dfrobots.com

.-www.bricogeek.com

14