Subido por JESUS ALBERTO SOTO CHAVARRIA

FINAL DIGITAL

Anuncio
Universidad Autónoma de Chihuahua
Facultad de Ingeniería
Electrónica Analógica
Proyecto de electrónica digital
Casa domótica
Juan Antonio Luna Gutiérrez - 329500
Jesus Alberto Soto Chavarría - 329651
Jesús Alfredo Domínguez Rodríguez - 288123
Ruth Mariana González Banda - 326724
Abstract
En el presente reporte se muestran una simulación de un circuito diseñado para controlar
una casa por medio de un módulo bluetooth HC-06. Se presenta el código de programación
y la aplicación que se usó para establecer comunicación con el PIC.
Introducción
La electrónica cada vez se integra más a
nuestra vida, desde los dispositivos móviles
que usamos día a día hasta las grandes
maquinas dedicadas al ensamblaje en las
fábricas. El hogar no es la excepción, en los
últimos años hemos visto el creciente
interés por integrar toda clase de circuitos y
dispositivos para controlar los aparatos
electrónicos a distancia.
La construcción del sistema de domótica en
el hogar, una casa inteligente, puede llegar
incluso a ser controlada en su totalidad a
través de la simple pulsación de un botón,
ya que lo cierto es que, por intermedio de
los sistemas de automatización, una
vivienda puede estar por completo
conectada a través de un controlador
central, lo que la convierte en una casa
inteligente. El controlador central funciona
dentro de una casa inteligente como una
especie de control remoto, que el usuario
puede utilizar para activar o desactivar las
distintas funciones que incluye el sistema,
como por ejemplo para controlar el uso de
la luz, la temperatura del ambiente, el
sistema de seguridad, el stock de insumos,
la programación de rociadores y demás.
En función de ello, podemos mencionar
que a grandes rasgos la domótica en el
hogar es precisamente una tecnología que
permite la creación de controles
automatizados para los hogares.
Desarrollo
En el presente proyecto se llevó a cabo la
realización de una casa domótica. Para ello
se incorporaron 3 sistemas:
El primero sistema, una alarma con la cual
se controlará el acceso a la puerta frontal.
Se agregó un sistema de encendido de luz
usando una aplicación en el teléfono móvil
y un controlador Bluetooth que permite
conectar el PIC al módulo Bluetooth.
Se integró una cochera, la cual puede ser
controlada por medio del teléfono celular.
Para este diseño se usó el PIC16F877A,
un pic de gama alta de 40 pines que
maneja frecuencias de operación de hasta
20MHz.
El pic PIC16F877A cuenta con 5 puertos
de pines bidireccionales, que pueden ser
usados como entradas o salidas (figura 1).
Al trabajar con un cristal externo de 20MHz la
frecuencia de procesamiento interno del
microcontrolador será:
𝐹=
𝐹𝑐𝑙𝑜𝑐𝑘 20𝑀𝐻𝑧
=
= 5𝑀𝐻𝑧
4
4
Así realmente el ciclo de máquina interno del
microcontrolador va a trabajar a 5MHz.
Figura 1. Diagrama de los pines del
PIC18F4550.
Para nuestro circuito se hizo uso de un
oscilador externo de 20 MHz, para ello se
usó un cristal de cuarzo y dos capacitores
conectados a los pines OSC1 y OSC2
(figura 2) de acuerdo a lo estipulado en el
manual para osciladores externos de alta
frecuencia
(‘HS
High-Speed
Crystal/Resonator’).
Por lo que cada instrucción de código dentro
del PIC en lenguaje Assembler tomaría 0.2
micro-segundos.
1
Ciclo de maquina = 5𝑀𝐻𝑧 = 0.2𝑢𝑠
Debido a que este proyecto fue programado
en CCS C Compiler que es un lenguaje más
alejado del lenguaje maquina (de más alto
nivel), este valor puede crecer.
Programación
Para la parte de programación se usó el
programa CCS C compiler en su versión
5.015.
Los fuses que se usaron para el proyecto son:
Figura 2. Cristal/cerámica funcionamiento
del resonador (XT, HS o HSPLL
configuración).
Para determinar el valor adecuado de los
capacitores se uso la tabla de la figura 3,
valores que recomienda el fabricante.
HS: Configura el oscilador externo como un
cristal de alta velocidad.
NOWDT: Desactiva el perro guardián que
provoca un reset del sistema en caso de que
éste se haya bloqueado.
NOPROTECT: No se protege el código, por
lo que este puede ser extraído del pic si
alguien lo desea.
NOPUT: No power up timmer.
NOLVP: Desactiva
Programming
Figura 3. Selección de condensadores para
resonadores de cerámica.
el
Low
Voltage
BROWNOUT: Se desactiva el modo Brownout, el cuales un sistema que hace que el PIC
entre en modo Reset si la alimentación VCC
baja de un cierto valor que es configurable.
Figura
4.
Simulación
en Proteus.
Figura
5.
Inicio de la
simulación.
Circuito portón.
La señal se envía desde el teléfono hacia
el módulo bluetooth, este le entrega la
señal al pic por el pin 26 y el pic interpreta
la información para dar una respuesta por
el puerto “e” del pic.
Si se presiona el botón abrir de la sección
“Garaje” en la aplicación, se envía una “g”
al microcontrolador. Lo que provoca que el
motor gire en sentido horario por 5
segundos (se abre el portón) *.
Figura 6. Circuito usado en el portón.
Para el diseño del protón, se hizo uso de
dos compuertas AND del 7408 y dos
compuestas NOT del 7404.
Después, en el panel derecho de la
sección “Garaje” de la aplicación, se
escribe la palabra “Portón abierto” (figura
8).
Tal circuito se configuro usando la siguiente
tabla de verdad.
h
g Q1 Q2 Q3 Q4
Giro
0
0
0
0
0
0 Detenido
0
1
1
0
0
1
Cerrar
1
0
0
1
1
0
Abrir
1
1
x
x
x
x
x
Tabla 1. Tabla de verdad para el motor del
portón.
Escogiendo x=0 por simplicidad.
Q1 = h'g
Q3 = hg' = Q2
Q2 = hg'
Q4 = h'g = Q1
Figura 8. Diagrama de bloques en la
aplicación App Inventor.
Si se presiona el botón cerrar de
aplicación, se envía una “h”
microcontrolador. Lo que provoca que
motor gire en sentido antihorario por
segundos (se cierra el portón).
la
al
el
5
Después, en el panel derecho de la
sección “Garaje” de la aplicación, se
escribe la palabra “Portón cerrado” (figura
9).
Q2, Q3
Figura 9. Diagrama de bloques en App
Inventor.
Q1. Q4
Figura 7. Configuración de las compuertas a
parir de las funciones de Boole expuestas.
*Como medida de seguridad, para evitar
que el motor se active una segunda vez si
el operador presiona dos veces la tecla
“cerrar” o “abrir” en la aplicación, se agrega
un contador al programa para evitar
accidentes o daños en el sistema.
Desarrollo de la aplicación
Para crear la aplicación se uso la
aplicación MIT App Inventor 2.
La aplicación se diseño para celulares
Android y aquellos que tiene el sistema
operativo IOS.
La interfaz de usuario se trato de hacer lo
mas accesible posible, incliyendoce un
contro por voz esto diseñado con la
intención de falcilitar las operaciones para
todos los usuarios.
Figura 10.
Interfaz de la
aplicación
diseñada.
Figura
11.
Lista para el
usuario de los
comandos al
dar clic en la
pestaña
comandos de
voz.
Código
Simulaciones
Para simular el envío de datos se utilizaron
dos aplicaciones, Hercules y Virtual Serial
Ports Emulator.
Primero, se creó un puerto virtual usando el
programa Virtual Serial Ports Emulator. Para
ello se procedió a ejecutar el programa, dando
después clic en la pestaña “Create new
device” del panel (figura 12).
Una vez creado el puerto se procedió a
minimizar la pestaña (figura 14).
Figura 14. Puerto creado.
Después se procedió a abrir el programa
Hercules. Una vez abierto el programa, se
seleccionó se pestaña “Serial”.
Figura 12. Creación del puerto virtual.
En la pestaña emergente se selecciona la
opción “Connector” (figura 12).
Figura 15. Selección de la pestaña “Serial” en
el programa Hercules.
En la ventana “Serial” se seleccionó el puerto
de trabajo, en nuestro caso el puerto que
creamos (COM1). Se eligió un velocidad de
comunicación (Baud) de 9600, valor típico en
el HC-06. Finalmente se dio clic en el botón
“Open” (figura 16).
Figura 13. Creación del puerto virtual.
Después se selecciona “COM1” (figura 13).
Figura
Selección
puerto
trabajo.
Figura 13. Selección de “COM1”.
16.
del
de
Al cargar el programa en el simulador y enviar
una “a”, usando el programa Hercules, se
enciende el led D3 (figura 17).
Figura 19. Envío de una “e” al pic.
Al enviar una “b”, se apaga el led D3 (figura
20).
Figura 17. Envío de una “a” al pic usando el
programa Hercules.
Al enviar una “c”, se enciende el led D2 (figura
18).
Figura 20. Envío de una “e” al pic.
Al enviar una “d”, se apaga el led D2 (figura
21).
Figura 18. Envío de una “c” al pic.
Al enviar una “e”, se enciende el led D1 (figura
19).
Figura 21. Envío de una “d” al pic.
Al enviar una “f”, se apaga el led D1 (figura
22).
Figura 24. Envío de una “h” al pic.
Figura 22. Envío de una “f” al pic.
Al enviar una “g” se activa el motor girando
este a la derecha por 5 segundo. Esto se
puede observar viendo el estado de los
transistores Q1 y Q4 (cuadros azules en la
figura 23).
Figura 25.
Programa
del pic.
Para el tercer circuito, la alarma inicia
pidiendo la contraseña a través del LCD.
Además, el led rojo (que representa una
cerradura magnética) indica que la puerta
está cerrada y por ende la cerradura activa
(figura 26). También se puede observar de
la figura 27 que el buzzer está desactivado
(no está sonando).
Figura 23. Envío de una “g” al pic.
Al enviar una “h” se activa el motor girando
este a la izquierda por 5 segundo. Esto se
puede observar viendo el estado de los
transistores Q2 y Q3 (cuadros azules en la
figura 24).
Cabe destacar que al enviar una vez la señal
para que se abra o cierra el portón, se lleva a
cabo un conteo (variable n) para evitar que al
presionar otra vez por error el mismo botón,
el motor vuelva arrancar en el mismo sentido
(figura 25).
Figura 26. Alarma en su estado inicial.
abierta, después se vuelve a cerrar (figura
31).
Figura
27.
Buzzer
desactivado.
Al presionar cualquier tecla del teclado este
despierta y nos pide ingresar el primer digito
de la contraseña (figura 28).
Cabe destacar que la contraseña se configuro
como 1,2,3. Lo anterior se hizo al inicio del
programa (figura 29).
Figura 30. Ingreso del segundo digito de la
contraseña.
Figura 31. Ingreso del tercer digito de la
contraseña.
Figura 28. Simulación en Proteus, ingreso del
primer digito de la contraseña.
Figura 29. Configuración de la contraseña
como 123, almacenándose esta en la memoria
rom del pic en la localidad 0x2100.
Después de que se ingresa el primer digito el
LCD nos pide ingresar el segundo y tercer
digito como se muestra en las figuras 30 y 31.
Si la contraseña es correcta, se despliega el
letrero de “Contraseña correcta” y se desactiva
la cerradura magnética encendiéndose el led
verde por 5 segundo (valor que puede
modificarse), lo que indica que la puerta esta
Figura 32. Contraseña correcta y
desactivación de la cerradura (led puesto
en verde).
Si la contraseña se ingresa una contraseña
incorrecta, el LCD nos lo indicara como se
puede ver en la figura 33.
Para poder desactivar el Buzzer es
necesario ingresar la contraseña correcta,
de lo contrario este continuara sonado por
un periodo indefinido (figura 36).
Figura 33. Contraseña incorrecta.
Si se ingresa 3 veces mal el código se activa
el pin 5 del microcontrolador (figura 34), el
cual pone en saturación el transistor Q5
encendiéndose una bocina (figura 35).
Figura 36. Desactivación de la bocina
ingresando la contraseña correcta en el
teclado.
Archivo de simulación
En el siguiente link se encuentran carpetas
que contienen los videos en YouTube de
nuestro circuito funcionando, además se
encuentran las simulaciones en Proteus:
Figura 34.
Activación
del pin 5 del
microcontrol
ador.
https://drive.google.com/drive/folders/1nLAM
VrkghCY2xs56SWtS0SnUUthL5TCl?usp=sh
aring
Las mismas carpetas se encuentran en el
siguiente código QR.
Figura
35.
Activación de
la bocina.
Código QR que va
al link de los
archivos (Proteus y
CCSC C Compiler)
utilizados en el
proyecto.
Aplicación
para
Android
(archivo
.apk).
Conclusión
La electrónica esta cada vez más en nuestra
vida, entender y manejar los conceptos
básicos nos permite diseñar nuestros
propios circuitos para controlar desde un
simple foco o motor hasta una alarma.
La comunicación entre dispositivos es una
parte importante, el poder recibir y transmitir
información, pues nos brinda confort y
comodidad en cualquier clase de tarea.
Es importante conocer y aprender a manejar
todas estas aplicaciones que nos permiten
programar y diseñar aplicaciones. Al igual
que es importante conocer los tipos de
lenguaje que existen y aprender a
manejarlos de acuerdo a las necesidades de
nuestro proyecto. Conocer las plataformas y
sitios donde podemos encontrar información
es un papel clave al diseñar un circuito. Es
importante conocer y aprender a leer los
datasheet del fabricante, ya que una mala
interpretación tan simple como interpretar un
pin de salida como uno de entrada nos
puede causar graves problemas o incluso
nos puede poner en riesgo.
Bibliografía
CCS C Compiler Manual. (2021,
Noviembre). Obtenido de CCS C:
https://www.ccsinfo.com/downloads/
ccs_c_manual.pdf
PIC16F87XA Data sheet. (23 de julio de
2015). Obtenido de Microchip:
https://www.microchip.com/enus/product/PIC 18F877A.
Reinoso, S., Mena, L., & Sánchez, J. (2018).
Gestión de puertos e interrupciones
externas.
Sangolquí:
Comisión
Editorial de la Universidad de las
Fuerzas Armadas ESPE. Obtenido
de
http://repositorio.espe.edu.ec/bitstrea
m/21000/15406/1/Programaci%C3%
B3n%20de%20microcontralores%20
tomo%201.pdf
Reninoso, S., Pilatasig, M., Mena, L., &
Sánchez, J. (2018). Programación
de módulos: temporizadores, ADC,
CCP Y DE comunicaciones.
Sangolquí: Comisión Editorial de la
Universidad de las Fuerzas
Armadas ESPE. Obtenido de
file:///C:/Users/jesus/Downloads/P
ROGRAMACI%C3%93N%20DE%
20MICROCONTROLADORES%20
PIC%20CON%20LENGUAJE%20
C%20tomo%202%20(1).pdf
Tecnologia-facil.com. 2022. Domótica
doméstica: Casas Inteligentes Tecnología fácil.
Descargar