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:
- 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.
- 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.
- 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ámetro | Valor del DS18B20 (KY-001 |
|---|---|
| Rango de Medición | -55°C a 125°C |
| Voltaje de Operación | 3.0V a 5.5V |
| Precisión Estándar | ±0.5C° |
| Protocolo | 1-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 LCD | Función |
|---|---|
| VSS | Tierra |
| VDD | Alimentación |
| V0 | Registro Contraste |
| RS | Registro Selector |
| RW | Lectura/Escritura |
| E | Habilitar (Enable) |
| D4-D7 | Pines de Datos |
| A/K (LED+) | Retroiluminación (Ánodo) |
| K (LED-) | Retroiluminación (Cátodo) |
🔨Componentes
| Componente | Cantidad | Especificación | Función |
|---|---|---|---|
| Placa Arduino | 1 | Arduino Uno, Nano, etc | Control de componentes(cerebro) |
| Sensor de Temperatura | 1 | KY-001 (DS18B20). | Obtiene la temperatura |
| Pantalla LCD | 1 | 16×2 1602A | Visualizar el texto |
| Potenciómetro | 1 | 10kΩ | Controlar el contraste |
| Resistencia | 1 | 220Ω x 1 | Limitar la corriente |
| Cables de conexión | n | Unir 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:
- OneWire.h: Maneja el protocolo físico de comunicación de un solo cable.
- DallasTemperature.h: Interpreta la información digital bruta del DS18B20 y la convierte en una lectura de temperatura utilizable.
- 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.

