Interfaz arduino
Interfaz arduino
Practica final
Competencia:
Conoce los diferentes módulos de adquisición de datos para su aplicación en el diseño de
interfaces programables
Diseña y aplica interfaces hombre-máquina y máquina-maquina
Materiales:
Protoboard
LCD
Jumpers
DTH11
Leds
Resistencia 220
18
Marco teórico:
Sensor DHT11
El DHT11 es un sensor digital de temperatura y humedad ampliamente utilizado en
proyectos de monitoreo ambiental. Este sensor es ideal para aplicaciones básicas debido
a su bajo costo y facilidad de implementación. Tiene un rango de medición de
temperatura que varía entre 0°C y 50°C, y de humedad relativa entre 20% y 90%. El
sensor es capaz de entregar las lecturas de manera digital a través de una interfaz de
comunicación de una sola línea, lo que simplifica su conexión a microcontroladores, como
Arduino o ESP32, al requerir solo un pin para la transmisión de los datos.
El sensor utiliza un protocolo de comunicación específico, que se basa en un sistema de
tiempos. Esta comunicación consiste en la transmisión de 40 bits de información, donde
16 bits corresponden a la humedad, 16 bits a la temperatura y 8 bits se usan para la
suma de verificación (checksum). Aunque el DHT11 no es tan preciso como otros
sensores de gama más alta, su desempeño es adecuado para muchas aplicaciones
básicas, como la monitorización de condiciones en invernaderos, habitaciones, y
dispositivos de control de temperatura y humedad.
Pantalla LCD
Las pantallas LCD (Liquid Crystal Display) son dispositivos electrónicos que permiten
mostrar datos de manera visual. Estas pantallas son ampliamente utilizadas en proyectos
de electrónica debido a su bajo consumo de energía y la facilidad con la que se pueden
controlar mediante microcontroladores. Una de las pantallas LCD más comunes es la
basada en el controlador HD44780, que puede mostrar hasta 16 caracteres por línea en
pantallas de 2 líneas (16x2) o más, y se conecta mediante un protocolo de comunicación
paralelo o serial.
Python
Python es un lenguaje de programación versátil y de alto nivel, utilizado ampliamente en
diversas áreas de la programación, desde desarrollo web hasta ciencia de datos. En este
proyecto, Python es la herramienta principal para interactuar con los datos
proporcionados por el sensor DHT11. Python ofrece múltiples bibliotecas y herramientas
para facilitar la creación de interfaces gráficas de usuario (GUI), lo que permite presentar
los datos de manera visual y accesible.
Una de las bibliotecas más populares para crear interfaces gráficas en Python es Tkinter,
que es la interfaz estándar de Python para crear aplicaciones GUI. Tkinter permite crear
ventanas, botones, etiquetas y otros elementos gráficos que facilitan la interacción del
usuario con el sistema. En este caso, se utilizará Tkinter para mostrar los datos de
temperatura y humedad obtenidos del sensor DHT11 de manera gráfica, con un diseño
de pantalla que puede incluir gráficos, etiquetas de texto y botones para actualizar los
datos.
Además, Python también ofrece bibliotecas como Matplotlib y PyPlot, que permiten
crear gráficos dinámicos, lo que mejora la presentación visual de los datos, permitiendo
que los usuarios vean las variaciones de temperatura y humedad en tiempo real.
19
Prácticas y Elementos Importantes en la Implementación de Código
En este proyecto, la implementación de código es crucial para lograr la integración de los
diferentes componentes, como el sensor DHT11, la pantalla LCD, y la interfaz gráfica de
Python. Algunos de los elementos clave de las prácticas de codificación incluyen:
1. Lectura del Sensor DHT11: El código debe ser capaz de leer correctamente los
datos del sensor DHT11. Esto implica el uso de bibliotecas adecuadas (como
Adafruit_DHT en Python o DHT.h en Arduino) para interactuar con el sensor y
obtener las mediciones de temperatura y humedad. Además, el código debe
manejar la comunicación del sensor, que depende de un protocolo de temporización
específico.
2. Control de la Pantalla LCD: El código debe manejar la comunicación con la
pantalla LCD. Esto generalmente se logra utilizando una biblioteca como
Adafruit_CharLCD en Python o LiquidCrystal en Arduino, que facilita la escritura
de texto en la pantalla. La visualización de datos debe ser clara y bien estructurada
para que el usuario pueda fácilmente leer las lecturas de temperatura y humedad.
3. Interfaz Gráfica en Python: Utilizando Tkinter, el código debe crear una ventana
con elementos gráficos que presenten la información de manera visual. Además,
puede incluir elementos como botones para actualizar los datos o configurar el
sistema. La visualización de datos en tiempo real puede implicar la actualización
constante de las lecturas en la interfaz gráfica.
4. Simulación y Pruebas: Antes de implementar el código en hardware físico, la
simulación del circuito en Thinkercad permite verificar el comportamiento del
sistema. Esto permite realizar pruebas de funcionalidad sin necesidad de tener el
hardware físico disponible, asegurando que el sistema funcione correctamente
antes de la implementación.
5. Manejo de Errores: Es fundamental implementar un manejo adecuado de errores
en el código, especialmente al trabajar con sensores. Los errores de lectura o de
comunicación deben ser controlados para evitar que el sistema se detenga
inesperadamente. El uso de estructuras de control como try-except en Python o
condiciones en el código de Arduino asegura que el sistema pueda manejar
imprevistos de manera robusta.
11
0
Desarrollo de la práctica:
Dentro del circuito conectaremos primero nuestro sensor DTH11 el cual según el
Datasheet tiene los pines GND, VCC Y S que este ultimo viene siendo el pin de la
señal.
Su salida S será conectada al pin 7 del arduino y los demás pines a la alimentación
correspondiente de cada uno.
Pin 7
Posteriormente conectamos tres leds, uno azul, un verde y un rojo, estos serán los
encargados de darnos la señal de advertencia de temperatura, estos estarán
conectados a los pines 2 3 y 4 a sus pines positivos y los negativos estarán
conectados a tierra con una resistencia de 220 Ω.
Pin 2 Pin 5
Pin 7
11
1
Por último, dentro de la conexión física conectaremos nuestra pantalla LCD, pero
haremos uso de nuestro modulo I2C que nos ayudara en la comunicación con la
pantalla.
Este componente va conectado de manera paralela a la pantalla LCD, sus pines SDA
y SCL van conectados a los pines A4 y A5 respectivamente y sus demás pines a la
alimentación pertinente.
A5
Pin VCC A4
Pin GND
Código Arduino
Como parte inicial del código importamos las librerías las cuales son para el uso del
sensor DTH11 y el modulo I2C
11
2
Inicializamos la comunicación con la pantalla LCD y declaramos el pin del sensor y el
tipo de sensor que estamos utilizando, en esta caso el sensor DTH11 y su pin de
conexión es el pin 7.
Ahora hacemos las variables para los tres leds que se usarán para advertir de la
temperatura del ambiente, los cuales serán lo leds 2 3 y 4, posteriormente
manejamos los valores de temperatura como float es decir que acepta los valores
decimales y por ultima tenemos una variable de estilo bool que será el encargado
de decir si el sistema este encendido o apagado.
11
3
Después hacemos la lectura de la temperatura, y agregamos una condición para
saber si no existe ningún error en la lectura de la temperatura y si existe un error
mandar un mensaje tanto en el monitor serie como en la pantalla LCD
Después hacemos la condición del led azul, el cual encenderá si la temperatura esta
por debajo de los 20 grados, en este también está la señal que se imprima en la
segunda línea del LCD y mostrara el mensaje de frio en la pantalla LCD.
11
4
Posteriormente hacemos la condición de la temperatura normal es entre 20 y 30
grados, que encienda el led verde y que se imprima en la segunda línea del LCD, e
imprimimos el mensaje de NORMAL en la pantalla LCD.
Por parte del botón de apagar se leerá el monitor serial en la espera del comando
0 , si este comando esta la interfaz se apagara.
11
5
Posteriormente hacemos la función de apagar el sistema el cual si esta apagado el
sistema los leds pasaran a estar apagados y en la primera línea de la pantalla LCD
se mostrará circuito apagado.
Código Python
Iniciamos importando las librerías necesarias para hacer la interfaz gráfica así como
la comunicación con el monitor serial de arduino.
11
6
Seguimos con la comunicación serial en el cual ponemos el puerto el cual es
importante saber que nombre tiene, en nuestro caso es el COM3 y estará la
comunicación a 9600 y declaramos variables para la comunicación
Definimos la función leer_datos, en las cuales hacemos uso de las variables globales
para leer la temperatura, se manda el comando para inicial la comunicación con el
monitor serial, usamos el método utf-8 para , imprimimos los valores de
temperatura y agregamos una condición de que no tenga mas de 25 datos en la
gráfica.
11
7
Para la comunicación esta desactiva escribiremos en el monitor serial el comando
para cerrar el puerto de comunicación, también hacemos la limpieza de los datos y
actualizamos la interfaz. Por parte del botón se mostrará en el un mensaje de
encender y de fondo vede
Después hacemos las condiciones de los leds los cuales encenderán dependiendo el
rango declarado para cada led.
11
8
Agregamos el estilo a los leds cuando están apagados, su fondo será un color gris y
estarán rodeados por un rectángulo gris.
Ahora definimos el diseño de la grafica la cuales tanto las líneas de los datos, textos
y números se mostraran en un color verde, un tamaño de letra de 10, con un fondo
blanco y el nombre del eje X y Y.
Ahora para la parte del apagado de la interfaz se limpiara la grafica por medio
de .draw, posteriormente establecemos color y tamaño total de la ventana.
11
9
Resultados
Por parte de la interfaz al inicio se mostrará una interfaz gráfica que en la parte
derecha se mostrará la parte de la grafica y en la parte izquierda se muestra el
valor de la temperatura, los leds y el botón de encender
12
0
12
1
Cuestionario:
1. ¿Qué es una pantalla LCD?
Es un dispositivo electrónico de visualización que utiliza la propiedad de los cristales
líquidos para controlar el paso de la luz y mostrar información en forma de texto o
gráficos
12
2
Conclusiones:
Este proyecto integra varias tecnologías, como sensores, pantallas LCD,
interfaces gráficas de usuario y simuladores de circuitos, para crear un sistema
funcional que monitoriza y visualiza datos de temperatura y humedad. Al
utilizar Python y herramientas como Tkinter, se facilita el diseño y la simulación
del sistema, permitiendo una implementación efectiva y robusta que puede ser
aplicada en proyectos de monitoreo ambiental, automatización y control de
sistemas.
Aplicaciones industriales:
Las pantallas LCD permiten la visualización inmediata de los datos
críticos del proceso, como temperatura, presión, velocidad, nivel de
fluidos y otros parámetros esenciales
Al mostrar información clara y precisa, las pantallas LCD ayudan a
reducir errores humanos.
Las pantallas LCD sirven como interfaz de usuario (HMI) en sistemas
industriales, facilitando la interacción con maquinaria y procesos
Las interfaces graficas facilitan la comunicación entre hombre y
maquina
Citas y referencias:
[1]F. E. Valdés-Pérez, R. Pallás-Areny, Microcontroladores: Fundamentos y
aplicaciones con PIC. España: Marcombo, 2007.
[2]A. Diaz-Estrella, Teoría y diseño Microcontroladores de Freescale. México:
Mcgraw-Hill, 2009.
[3]G. Tojeiro-Calaca, Taller de Arduino un enfoque práctico para principiantes.
México: Alfaomega, 2015.
[4]“Harmonic Drive SE - Glosario,” Harmonic Drive SE, 2024.
https://harmonicdrive.de/es/glosario/motor-dc
[5]Mecatrónica LATAM, “Motor de Corriente Continua o Directa,” Mecatrónica
LATAM, Feb. 21, 2020.
https://www.mecatronicalatam.com/es/tutoriales/motor/motores-electricos/
motor-de-corriente-continua/.
[6]UAEH, “Temperatura y humedad DHT11 | Arduino,” Uaeh.edu.mx, 2021.
http://ceca.uaeh.edu.mx/informatica/oas_final/red4_arduino/temperatura_y_hu
medad_dht11.html.
Criterios de evaluación: