Professional Documents
Culture Documents
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
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
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
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
Las siguientes fotos muestran el montaje real:
5
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
Visualización del programa:
7
lcd.print("");
Keypad keypad = Keypad( lcd.clear();
makeKeymap(keys), rowPins, colPins, }
ROWS, COLS ); }
8
case 'B':
Serial.println(posicion);
void keypadEvent(KeypadEvent eKey){ if ((posicion<150)&&(posicion>30)){
case 'D':
lcd.clear();
lcd.print("Puerta cerrada"); lcd.clear();
delay(750); lcd.print("Borrando");
lcd.clear(); for(int i = 0; i < 4; i++){
} lcd.print(".");
delay(750);
if(posicion<30){ }
lcd.setCursor(0,0); i=0;
lcd.print("Cerrando"); password.reset();
for(int i = 0; i < 4; i++){ lcd.clear();
lcd.print("."); break;
delay(750); default:
} password.append(eKey);
servo1.attach(12); }
posicion = 800; }
posicion = map(posicion, 0, 1023, 0,
179); }
servo1.write(posicion); delay(150);
lcd.clear(); void checkPassword(){
if (password.evaluate()){
} lcd.clear();
lcd.clear(); lcd.print("Comprobando");
i=0; for(int i = 0; i < 4; i++){
password.reset(); break; lcd.print(".");
case 'E': delay(750);
lcd.setCursor(0,0); }
lcd.print("Vibracion:"); lcd.setCursor(5,1);
lcd.print(Nivel); lcd.clear();
delay(1000); lcd.print("Password");
i=0; lcd.setCursor(5,1);
lcd.clear(); lcd.print("correcta");
break; lcd.setCursor(16,1);
case 'F': digitalWrite(led2, HIGH);
delay(1000);
Temp=(5*analogRead(A0)*100/1023.0); digitalWrite(led2,LOW);
lcd.setCursor(0,0); lcd.clear();
lcd.print("Temperatura:"); posicion = 150;
lcd.print(Temp); posicion = map(posicion, 0, 1023, 0,
delay(1000); 179);
lcd.clear();
9
i=0; lcd.print("Abriendo");
break;
case '*':
checkPassword();i=0; break; for(int i = 0; i < 4; i++){
servo1.write(posicion); delay(2000); lcd.print(".");
lcd.clear(); delay(750);}
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();
}
10
3.4.-Montaje de maqueta
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
4.-PRESUPUESTO
Producto Nombre Referencia Unidade Precio Total
s Unida
d
Arduino Uno Código: Arduino- 26,56€ 26,56€
SMD Uno-DMS
1
Página:
www.dieltron.com
12
35.085 Código: 1 1,17€ 1,17€
Zumbador de 644-35.085
Electro DH
Página:
www.dieltron.com
10k Ω,470 Ω
1/4W
Placa Código: 1 6,28€ 6,28€
Protoboard y Q00915023
cables de
conexión. Página:
www.b2cqshop.com
Página:
www.cajasestuche
smadera.com
TOTAL= 69,89 €
13
5.-NOTACIÓN BIBLIOGRAFICA
.-www.arduinco.cc
.-www.dfrobots.com
.-www.bricogeek.com
14