Está en la página 1de 25

UNIVERSIDAD NACIONAL DE PIURA

Facultad De Ingeniería Industrial


Escuela Profesional De Ingeniería
Mecatrónica

“Año del Fortalecimiento de la Soberanía Nacional”

TEMA:

INFORME 2 DE PROYECTO FINAL Nº 2

PROFESOR:

ING. LUIS ALBERTO CALDERÓN PINEDO

ALUMNO:

CALLE ARELLANO ARNOLD STEEVEN

CURSO:

MICROCONTROLADORES

2022
TITULO

SISTEMA DE SEGURIDAD PARA EL ESTACIONAMIENTO DE UN HOTEL,


MEDIANTE EL USO DE UN MICROCONTROLADOR ARDUINO

¿EN QUE CONSISTE NUESTRO PROYECTO?

EL proyecto a desarrollar será un sistema de seguridad para el estacionamiento de un


hotel, por medio del control de un mecanismo de entrada automatico. Desarrollaremos el
sistema de control de un mecanismo de entrada automatico aplicado al estacionamiento
de un hotel, con el uso de una clave de acceso, la cual será digitada mediante un aplicativo
móvil (celular) y a su vez esta clave se visualice en una pantalla de cristal líquido (LCD).
La conectividad del dispositivo móvil con el mecanismo de acceso de entrada del
estacionamiento, se realizará mediante el uso de un módulo de bluetooth, a su vez el
sistema nos dirigirá a cada posición que el usuario debe tomar para estacionarse. Para
nuestro proyectó se hace uso de un motor que estará conectado al mecanismo de un portón
corredizo por donde ingresaran los automóviles.

FUNCIONAMIENTO DEL PROYECTO

Funcionamiento de un Arduino:

Arduino es una plataforma de desarrollo basada en una placa electrónica de hardware


libre que incorpora un microcontrolador reprogramable y una serie de pines hembra. Estos
permiten establecer conexiones entre el microcontrolador y los diferentes sensores y
actuadores de una manera muy sencilla que puedan detectar y controlar objetos del mundo
real.
Arduino UNO, es una placa basada en el microcontrolador ATmega328P. Tiene 14 pines
de entrada/salida digital (de los cuales 6 pueden ser usando con PWM), 6 entradas
analógicas, un cristal de 16Mhz, conexión USB, conector jack de alimentación,
terminales para conexión ICSP y un botón de reseteo. Tiene toda la electrónica necesaria
para que el microcontrolador opere, simplemente hay que conectarlo a la energía por
el puerto USB o con un transformador AC-DC.

FIGURA 1: Diagrama de puertos del PIC16F877A

Características del Arduino Uno


 Microcontrolador: Microchip ATmega328P
 Voltaje de funcionamiento: 5 voltios
 Voltaje de entrada: 7 a 20 voltios
 Pines de E/S digitales: 14 (de los cuales 6 proporcionan salida PWM)
 Pines de entrada analógica: 6
 Corriente DC por Pin de E/S: 20 mA
 Corriente CC para Pin de 3.3V: 50 mA
 Memoria Flash: 32 KB de los cuales 0.5 KB utilizados por el gestor de
arranque
 SRAM: 2 KB
 EEPROM: 1 KB
 Velocidad del reloj: 16 MHz
 Longitud: 68.6mm
 Ancho: 53,4mm
 Peso: 25g

FUNCIONAMIENTO:

El proyecto consiste en la simulación de un mecanismo de acceso para la entada del


estacionamiento de un hotel, mediante el uso de un actuador (motor) conectado a un
portón corredizo, el cual se puede acceder mediante una clave que será introducida por
medio de un dispositivo móvil a la unidad de control del microcontrolador Arduino,
mediante un módulo de bluetooth que se encargará de conectar nuestro dispositivo móvil,
en este caso con el motor del mecanismo de la entrada para realizar posteriormente su
acceso.

Esta unidad de control será la encargada de comparar la clave introducida por el usuario
con la estipulada por defecto, permitiendo visualizar “CLAVE CORRECTA” O “CLAVE
INCORRECTA” en nuestro dispositivo móvil.

Si la clave ingresada en nuestro móvil es correcta se habilita el acceso de entrada y se


activa nuestro motor, permitiendo así que el mecanismo se apertura y el vehículo pueda
ingresar, en caso contrario el motor no se activa, indicando el acceso erróneo del sistema
de control en el dispositivo móvil.
Una vez activado el motor del mecanismo de acceso a la entrada del estacionamiento del
hotel, el vehículo hace su ingreso, una vez que ingreso el usuario, podrá activar el motor
y cerrar el mecanismo de la entrada mediante un dispositivo que simulará el móvil, en el
cual con ayuda de un comando se podrá accionar para que el mecanismo se cierre, y así
este libre para que un nuevo usuario mediante su dispositivo móvil se conecte al módulo
bluetooth y pueda realizar el ingreso al estacionamiento.

El estacionamiento del hotel funcionará con un control de posicionamiento del vehículo,


el sistema indicara la posición, la cual se observará en una pantalla LCD, el vehículo debe
tomar la posición asignada por el sistema cuando ingrese al estacionamiento. Se desarrolla
un contador de automóviles integrado en el sistema, en este caso al ingresar un auto, este
será contado automáticamente y se mostrará en una pantalla LCD el número de autos que
ira ingresando y se ira guardando en un contador. Una vez llegado a la cantidad de
vehículos programados en nuestro sistema, el estacionamiento pasará a estar completo y
no se permitirá ningún acceso a este.

Para la programación del Arduino, se utilizará el propio programa que cuenta Arduino, el
cual trabaja con un lenguaje c, ahí se irá desarrollando las líneas del código, utilizando
las diferentes librerías para que nuestro proyecto funcione de manera correcta a lo que se
plantea.
DIAGRAMA DE BLOQUES DEL PROYECTO

ELEMENTOS A SIMULAR EN EL PROYECTO

Aplicativo móvil Portón corredizo


DIAGRAMA DE FLUJO

INICIO

DECLARAR LIBRERIAS
Y VARIABLES

IMPRIMIR BIENVENIDA

INGRESAR CONTRASEÑA VÍA BLUETOOTH

IMPRIMIR CONTRASEÑA
INCORRECTA COMPARAR CONTRASEÑA

NO
¿CONTRASEÑA
ES CORRERECTA?

SI

IMPRIMIR CONTRASEÑA
ES CORRECTA EN CELULAR

INGRESAR A MENU DE
ACCESO DE ENTRADA

ACCEDER AL COMANDO DE
ACCESO DE ENTRADA ABIERTO

INGRESA VEHÍCULO

ACCEDER AL COMANDO DE
ACCESO DE ENTRADA CERRADO

FIN
DISPOSITIVOS DE PROTEUS PARA SIMULACION DEL
CIRCUITO DEL PROYECTO

Módulo Bluetooth HC-05

Módulo Bluetooth HC-06 es un dispositivo que soporta conexiones inalámbricas a través


del protocolo “bluetooth”. Los módulos Bluetooth se pueden comportar como esclavo o
maestro, los cuales sirven para escuchar peticiones de conexión y otros para generar
peticiones de conexión. El módulo HC-05 cumple con las especificaciones del estándar
Bluetooth 2.0 a 2.4 GHz que es perfectamente compatible con celulares o smartphones
Android.

Teclado matricial 4x4 – tipo menbrana

El teclado matricial 4x4 está formado por una matriz de pulsadores dispuestos en filas
(L1, L2, L3, L4) y columnas (C1, C2, C3, C4), 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.
Arduino UNO

Arduino UNO, es una placa basada en el microcontrolador ATmega328P. Tiene 14 pines


de entrada/salida digital (de los cuales 6 pueden ser usando con PWM), 6 entradas
analógicas, un cristal de 16Mhz, conexión USB, conector jack de alimentación,
terminales para conexión ICSP y un botón de reseteo. Tiene toda la electrónica necesaria
para que el microcontrolador opere, simplemente hay que conectarlo a la energía por
el puerto USB o con un transformador AC-DC

Características:

 Microcontrolador: Microchip ATmega328P6


 Voltaje de funcionamiento: 5 voltios
 Voltaje de entrada: 7 a 20 voltios
 Pines de E/S digitales: 14 (de los cuales 6 proporcionan salida PWM)
 Pines de entrada analógica: 6
 Corriente DC por Pin de E/S: 20 mA
 Corriente CC para Pin de 3.3V: 50 mA
 Memoria Flash: 32 KB de los cuales 0.5 KB utilizados por el gestor de arranque
 SRAM: 2 KB
 EEPROM: 1 KB
 Velocidad del reloj: 16 MHz
 Longitud: 68.6mm
 Ancho: 53,4mm
 Peso: 25g
Integrado inversor de giro L239D

El integrado L293D incluye cuatro circuitos para manejar cargas de potencia media, en
especial pequeños motores y cargas inductivas, con la capacidad de controlar corriente
hasta 600 mA en cada circuito y una tensión entre 4,5 V a 36 V.
El integrado permite formar, entonces, dos puentes H completos, con los que se puede
realizar el manejo de dos motores. En este caso el manejo será bidireccional, con frenado
rápido y con posibilidad de implementar fácilmente el control de velocidad.

Motor DC :

El motor de corriente continua (motor DC) es una máquina que convierte la energía
eléctrica en mecánica, provocando un movimiento rotatorio. En algunas modificaciones,
ejercen tracción sobre un riel. Estos motores se conocen como motores lineales. Una
máquina de corriente continua (generador o motor) se compone principalmente de dos
partes, un estator que da soporte mecánico al aparato y tiene un hueco en el centro
generalmente de forma cilíndrica. El rotor es generalmente de forma cilíndrica, también
devanado y con núcleo, al que llega la corriente mediante dos escobillas.
Pantalla LCD de 16x2

El LCD (Liquid Crystal Dysplay) o pantalla de cristal líquido es un dispositivo empleado


para la visualización de contenidos o información de una forma gráfica, mediante
caracteres, símbolos o pequeños dibujos dependiendo del modelo. Está gobernado por un
microcontrolador el cual dirige todo su funcionamiento. En este caso vamos a emplear
un LCD de 16x2, esto quiere decir que dispone de 2 filas de 16 caracteres cada una. Los
píxeles de cada símbolo o carácter, varían en función

DESARROLLO Y FUNCIONAMIENTO DE LA SIMULACIÓN DEL


PROYECTO

1. Ingreso de clave

Inicialmente la simulacion del proyecto se baso en el uso de un modulo bluetooth, para


digitar la clave de seguridad, por motivos de fallos en la simulacion del modulo se
desarrollo mediante el uso del teclado matricial, con el se podra digitar la clave la cual al
ser correcta accionara el mecanismo de la entrada del estacionamiento, permitiendo que
los automoviles puedan ingresa. La clave estipulada contara con 4 digitos.
2. Placa arduino

El microcontrolador que se utiliza en el proyecto es el arduino uno R3, es el encargado


de hacer la comunicación entre los dispositivos existentes y el cual recibe la programación
previamente desarrollada en el entorno de desarrollo integrado (IDE) de arduino. Es el
dispositivo mas importante del circuito electrónico.

3. Pantalla LCD

L a pantalla LCD de 16x2, sirve para visualizar los mensajes que se deben imprimir en el
desarrollo del funcionamiento, cuando se ingresa la clave y se compara con la
programada, sirve para que el usuario observe la posición que debe tomar cuando ingresa
al estacionamiento y por último se podrá observar la cantidad de vehículos que ingresan.
4. Mecanismo de acceso a entrada

El mecanismo de acceso a la entrada esta constituido por un portón corredizo, el cual


tiene como elemento principal un motor DC, el que se conecta al arduino uno mediante
un inversor de giro y funcionara por medio de la clave que se ingrese, de ser correcta el
sistema proporcionara el pulso necesario para que el motor se accione y el portón se puede
contraer permitiendo el ingreso del vehículo y pasado un tiempo determinado vuelva a su
posición inicial. Si la clave ingresa es correcta el sistema no deberá proporcionar el pulso
al motor, por lo tanto, el portón no se moverá, manteniéndose la entrada cerrada.

DISEÑO DE MAQUETA PARA SIMULACIÓN

Se desarrolla una maqueta representativa, con el fin de explicar el funcionamiento del


proyecto de forma más sencilla y que se pueda entender lo que se pretende desarrollar, se
construye el portón corredizo y las posiciones dentro del estacionamiento del hotel.

Portón corredizo
Posiciones interiores del estacionamiento

Maqueta completa y dispositivos del proyecto


DIAGRAMAS DE FLUJO

INICIO

DECLARAR LIBRERIAS
Y VARIABLES

IMPRIMIR BIENVENIDA

INGRESAR CONTRASEÑA VÍA BLUETOOTH

IMPRIMIR CONTRASEÑA
INCORRECTA COMPARAR CONTRASEÑA

NO
¿CONTRASEÑA
ES CORRERECTA?

SI

IMPRIMIR CONTRASEÑA
ES CORRECTA EN CELULAR

INGRESAR A MENU DE
ACCESO DE ENTRADA

ACCEDER AL COMANDO DE
ACCESO DE ENTRADA ABIERTO

INGRESA VEHICULO

ACCEDER AL COMANDO DE
ACCESO DE ENTRADA CERRADO

FIN
INICIO

MOSTRAR INGRESE
CLAVE EN CELULAR

SI ¿CONTRASEÑA NO
ES CORRECTA?

MOSTRAR EN
PANTALLA DE
CONTADOR PANTALLA DE CONECCIÓN
CELULAR
i=i+1 MENU ABIERTA BLUETOOTH
“CONTRASEÑA ES
INCORRECTA”
ACCIONAR ABRIR CONECTAR
IMPRIMIR NÚMERO DE MECANISMO DE ENTRADA
POSICIÓN “i” DE VEHÍCULO
DESCONECTAR
Y
ACCIONAR CERRAR
MECANISMO DE ENTRADA
CONTADOR
J=J+1
IMPRIMIR INGRESO DE
VEHÍCULO NUMERO “J”

SI J=9 ACCIONAR SALIR


DE APLICACIÓN

ESTACIONAMIENTO
COMPLETO

5 SEGUNDOS
FIN
PROGRAMACION EN IDE DE ARDUINO
#include <LiquidCrystal.h>
#include <Keypad.h>

const byte ROWS = 4;


const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'},
};
byte rowPins[ROWS] = {7, 6, 5, 4};
byte colPins[COLS] = {3, 2, 1, 0};
char Password[4];
int dir = 0, i = 0, j = 0, k = 0;
const int rs = A0, en = A1, d4 = A2, d5 = A3, d6 = A4, d7 = A5;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
const int MotorPin1 = 10;
const int MotorPin2 = 9;
void setup() {
pinMode(MotorPin1, OUTPUT);
pinMode(MotorPin2, OUTPUT);
pinMode(11, OUTPUT);
pinMode(8, OUTPUT);
pinMode(12, OUTPUT);

lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("BIENVENIDO AL ");
lcd.setCursor(0, 1);
lcd.print("ESTACIONAMIENTO");
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DIGITE CLAVE");
lcd.setCursor(0, 1);
}

void loop() {
char key = keypad.getKey();
if (key) {
Password[dir] = key;
lcd.print('*');
dir = dir + 1;

if (dir == 4)
{
if(Password[0] == '7' && Password[1] == '3' && Password[2] == '7' &&
Password[3] == '7')
{
lcd.setCursor(0, 0);
lcd.print("CLAVE CORRECTA ");
lcd.setCursor(0, 1);
lcd.print("ADELANTE......");
j++;
delay(1000);
if(j==1){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-1 ");
delay(1000);
}
if(j==2){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-2 ");
delay(1000);
}
if(j==3){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-3 ");
delay(1000);
}
if(j==4){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-4 ");
delay(1000);
}
if(j==5){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-5 ");
delay(1000);
}
if(j==6){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-6 ");
delay(1000);
}
if(j==7){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-7 ");
delay(1000);
}
if(j==8){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-8 ");
delay(1000);
}
if(j==9){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-9 ");
delay(1000);
}
if(j==10){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-10 ");
j=0;
delay(1000);
}
digitalWrite(MotorPin1, LOW);
digitalWrite(MotorPin2, HIGH);
delay(3000);
digitalWrite(MotorPin1, LOW);
digitalWrite(MotorPin2, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("ABIERTO SOLO POR");
lcd.setCursor(0, 1);
lcd.print("10 SEGUNDOS ");
digitalWrite(11, HIGH);
delay(10000);
digitalWrite(11, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("CERRANDO EN ");
lcd.setCursor(0, 1);
lcd.print("5 SEGUNDOS...!!");
delay(5000);
digitalWrite(8, HIGH);
digitalWrite(MotorPin1, HIGH);
digitalWrite(MotorPin2, LOW);
delay(3000);
digitalWrite(MotorPin1, LOW);
digitalWrite(MotorPin2, LOW);
digitalWrite(8, LOW);
k++;
if(k==1){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-1 ");
delay(1000);
}
if(k==2){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-2 ");
delay(1000);
}
if(k==3){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-3 ");
delay(1000);
}
if(k==4){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-4 ");
delay(1000);
}
if(k==5){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-5 ");
delay(1000);
}
if(k==6){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-6 ");
delay(1000);
}
if(k==7){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-7 ");
delay(1000);
}
if(k==8){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-8 ");
delay(1000);
}
if(k==9){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-9 ");
delay(1000);
}
if(k==10){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-10 ");
delay(1000);
lcd.setCursor(0, 0);
lcd.print("ESTACIONAMIENTTO");
lcd.setCursor(0, 1);
lcd.print(" COMPLETO!! :) ");
delay(500000);
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("BIENVENIDO AL ");
lcd.setCursor(0, 1);
lcd.print("ESTACIONAMIENTO");
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DIGITE CLAVE ");
dir = 0;
}else {
lcd.setCursor(0, 0);
lcd.print("CLAVE INCORRECTA");
i++;
digitalWrite(8, HIGH);
delay(1000);
digitalWrite(8, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("BIENVENIDO AL ");
lcd.setCursor(0, 1);
lcd.print("ESTACIONAMIENTO ");
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DIGITE CLAVE ");
dir = 0;
}
lcd.setCursor(0, 1);
if(i ==3 )
{
lcd.setCursor(0, 0);
lcd.print("SISTEMA BLOQUEADO");
lcd.setCursor(0, 1);
lcd.print("POR 15 SEGUNDOS");
i=0;
digitalWrite(12, HIGH);
delay(15000);
digitalWrite(12, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("BIENVENIDO AL ");
lcd.setCursor(0, 1);
lcd.print("ESTACIONAMIENTO");
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DIGITE CLAVE ");
dir = 0;
}
lcd.setCursor(0, 1);
}
}
}

También podría gustarte