Monitor de temperatura con Arduino y sensor KY-001 en pantalla LCD de 16 pines

El monitoreo ambiental es una tarea fundamental en múltiples disciplinas, desde la agricultura de precisión hasta el control de calidad en laboratorios. Este proyecto de electrónica aborda esta necesidad mediante el diseño y la construcción de un Termómetro Digital de Alta Precisión utilizando componentes estándar de bajo costo: la potente placa Arduino, el sensor digital KY-001 (basado en el chip DS18B20) y un Display LCD 16×2 de 16 pines.



🔩Funcionamiento

Este proyecto consiste en construir un sistema que mida la temperatura ambiental usando el sensor KY-001 y despliegue la lectura en un LCD de 16 pines, controlado por un Arduino. Este tipo de sistema tiene múltiples aplicaciones, como el monitoreo ambiental en hogares o laboratorios, y puede ser expandido con características adicionales.

La elección del Módulo KY-001 es crucial. A diferencia de los sensores analógicos como el LM35 o el TMP36, el KY-001 integra el sensor DS18B20, que opera bajo el protocolo de comunicación 1-Wire (un solo cable).

🔬Fundamentos Teóricos: La Ventaja Digital del KY-001

La elección del Módulo KY-001 es crucial. A diferencia de los sensores analógicos como el LM35 o el TMP36, el KY-001 integra el sensor DS18B20, que opera bajo el protocolo de comunicación 1-Wire (un solo cable).

El Protocolo 1-Wire y sus Beneficios

El protocolo 1-Wire, desarrollado por Dallas Semiconductor (ahora Maxim Integrated), permite la comunicación bidireccional de datos digitales utilizando un solo pin de datos. Esta característica ofrece ventajas significativas:

  1. Precisión Digital: El DS18B20 realiza la conversión de temperatura de manera interna, ofreciendo una resolución programable de 9 a 12 bits. A 12 bits, la precisión es de ±0.5C° en el rango crítico de -10°C a 85°C, superando la típica incertidumbre de los sensores analógicos.
  2. Cableado Simplificado: Requiere solo tres conexiones físicas: VCC (Alimentación), GND (Tierra) y DATA (Datos). Esto reduce drásticamente la complejidad del cableado en comparación con la conexión de 4 u 8 pines de datos de un LCD estándar.
  3. Identificación Única: Cada chip DS18B20 posee un número de serie único de 64 bits, permitiendo la conexión de múltiples sensores al mismo pin de datos del Arduino sin generar conflictos de comunicación.
ParámetroValor del DS18B20 (KY-001
Rango de Medición-55°C a 125°C
Voltaje de Operación3.0V a 5.5V
Precisión Estándar±0.5C°
Protocolo1-Wire (Un solo pin de datos)

🖥️ El Despliegue de Datos: El LCD 16×2 de 16 Pines

Para la visualización de datos, se emplea un Display LCD 16×2 (16 caracteres y 2 líneas). Aunque existen módulos que usan la interfaz I2C (solo 4 pines), este proyecto se centrará en la conexión directa de 16 pines para profundizar en el manejo directo de los registros de control, un concepto fundamental en la electrónica digital.

Conexiones Críticas del LCD

El LCD requiere un total de 6 a 10 pines digitales del Arduino para su funcionamiento en modo de 4 bits.

Pin LCDFunción
VSSTierra
VDDAlimentación
V0Registro Contraste
RSRegistro Selector
RWLectura/Escritura
EHabilitar (Enable)
D4-D7Pines de Datos
A/K (LED+)Retroiluminación (Ánodo)
K (LED-)Retroiluminación (Cátodo)


🔨Componentes

ComponenteCantidadEspecificaciónFunción
Placa Arduino1Arduino Uno, Nano, etcControl de componentes(cerebro)
Sensor de Temperatura1KY-001 (DS18B20).Obtiene la temperatura
Pantalla LCD116×2 1602AVisualizar el texto
Potenciómetro 110kΩControlar el contraste
Resistencia1220Ω x 1Limitar la corriente
Cables de conexiónnUnir los componentes

🔌Conexiones

  • Conexión del sensor KY-001:
    • Conecta el pin de señal del KY-001 al pin digital 2 del Arduino.
    • Conecta el pin GND del sensor al GND del Arduino.
    • Conecta el pin VCC del sensor al pin de 5V del Arduino.
  • Conexión del LCD de 16 pines:
    • VSS a GND
    • VDD a 5V
    • V0 al potenciómetro (para ajustar el contraste)
    • RS al pin digital 12 del Arduino
    • RW a GND
    • E al pin digital 11 del Arduino
    • D4 al pin digital 6 del Arduino
    • D5 al pin digital 5 del Arduino
    • D6 al pin digital 4 del Arduino
    • D7 al pin digital 3 del Arduino
    • A a 5V (retroiluminación). Resistencia 220Ω(opcional)
    • K a GND (retroiluminación)
  • Instalación de librerías:
    • En el IDE de Arduino, instala las librerías OneWire y DallasTemperature para el sensor KY-001.
    • Instala también la librería LiquidCrystal, que permite controlar pantallas LCD.

0️⃣Código

El código requiere la integración de dos librerías esenciales:

  1. OneWire.h: Maneja el protocolo físico de comunicación de un solo cable.
  2. DallasTemperature.h: Interpreta la información digital bruta del DS18B20 y la convierte en una lectura de temperatura utilizable.
  3. LiquidCrystal.h: Maneja la escritura y el control de la pantalla LCD.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <Arduino.h>

#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>

// Configuración de los pines
#define ONE_WIRE_BUS 2

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

// Inicializar la biblioteca con los números de los pines de la interfaz
LiquidCrystal lcd(12, 11, 6, 5, 4, 3);

void setup() {
  Serial.begin(9600);
  sensors.begin(); // Inicializa el sensor

  // Establecer el número de columnas y filas de la pantalla LCD
  lcd.begin(16, 2);
}

void loop() {
  sensors.requestTemperatures(); // Solicita la temperatura al sensor
  float temperatura = sensors.getTempCByIndex(0); // Obtén la lectura en grados Celsius

  //Colocamos el primer texto a partir de la culumna 2 fila 0
  lcd.setCursor(4,0);
  // Imprimir un mensaje en la pantalla LCD
  lcd.print(temperatura );
  lcd.print(" C");
  delay(500); // Actualiza cada 500 milisegundos
}


🖌️Diseños


🎬Videos


📑Conclusión

El proyecto del Termómetro Digital con Arduino, Sensor KY-001 y LCD 16×2 concluye con la exitosa demostración de un sistema de monitoreo ambiental robusto y de alta fidelidad. Hemos logrado integrar y sincronizar de manera efectiva la adquisición de datos digitales y su despliegue en tiempo real.

El éxito técnico reside en la maestría del protocolo 1-Wire del sensor KY-001 (DS18B20). A diferencia de las soluciones analógicas, este sensor nos proporcionó una lectura de temperatura intrínsecamente digital, eliminando el ruido y la imprecisión inherentes a la conversión analógico-digital (ADC) de la placa Arduino. Esta elección tecnológica asegura una alta precisión (±0.5C°) y simplifica el cableado de datos a un solo pin.

Por otro lado, la implementación del LCD 16×2 en modo de 4 bits fue un ejercicio fundamental de control de periféricos, requiriendo el manejo directo de los registros de control (RS y E), una habilidad esencial en el desarrollo de firmware. La pantalla proporciona una interfaz de usuario clara y localizada, crucial para aplicaciones de control de procesos y termostatos.

En esencia, este proyecto es una plataforma didáctica que valida la capacidad de la electrónica moderna para construir instrumentos de medición fiables y escalables a partir de componentes accesibles. Las futuras expansiones, como la conexión inalámbrica (Wi-Fi) o el registro de datos, quedan sólidamente cimentadas en esta base de lectura digital precisa y despliegue de datos efectivo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Carrito de compra