Descripción
Aquí tienes una descripción completa del módulo sonda termal impermeable DS18B20, acompañada de una guía detallada de uso con Arduino, ejemplos de conexión y código de programación.
🌡️ Sonda Termal Impermeable DS18B20 – Sensor de Temperatura Digital para Arduino
✅ Descripción General
La DS18B20 es una sonda de temperatura digital impermeable que mide temperaturas con alta precisión en un amplio rango (-55°C a +125°C). Encapsulada en un tubo de acero inoxidable y dotada de cable, es perfecta para mediciones en ambientes húmedos o líquidos, como:
- Agua
- Suelo
- Instalaciones de calefacción
- Acuarios
⚙️ Características Técnicas
| Característica | Valor |
|---|---|
| Sensor interno | DS18B20 digital |
| Rango de temperatura | de -55°C a +125°C |
| Precisión | ±0.5°C (de -10°C a +85°C) |
| Resolución | Programable: 9–12 bits |
| Protocolo | 1-Wire |
| Alimentación | 3.0 – 5.5V |
| Salida | Digital (1-Wire, no analógico) |
| Longitud del cable típico | 90–100 cm (varía según el vendedor) |
| Impermeabilidad | Sí (acero inoxidable 304 o 316) |
📌 Cada sensor DS18B20 tiene un ID único de 64 bits, por lo que puedes conectar más de uno al mismo pin de la tarjeta Arduino!
🧪 Conexión a la Tarjeta Arduino
🧰 Material necesario
- Sonda DS18B20 impermeable
- 1 Resistencia de 4.7 kΩ
- Arduino Uno, Nano, Mega, etc.
- Placa de pruebas y jumpers
🔌 Esquema de Conexión
| Cable Sonda | Conexión |
|---|---|
| Negro | GND |
| Rojo | 5V |
| Amarillo | Datos (por ejemplo D2) |
Importante: conecta una resistencia de 4.7 kΩ entre el pin de datos (amarillo) y 5V (pull-up), de lo contrario el sensor no funcionará correctamente.
💻 Programación Arduino
📦 Bibliotecas Necesarias
Instala las siguientes bibliotecas desde Arduino IDE → Administración de Bibliotecas:
- OneWire de Paul Stoffregen
- DallasTemperature de Miles Burton
📜 Código Básico – Lectura de Temperatura desde una DS18B20
#include <OneWire.h>
#include <DallasTemperature.h>
// Pin dati della sonda collegato al pin D2
#define ONE_WIRE_BUS 2
// Setup comunicazione OneWire
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(9600);
sensors.begin(); // inizializza i sensori
}
void loop() {
sensors.requestTemperatures(); // richiede la temperatura da tutti i sensori
float tempC = sensors.getTempCByIndex(0); // legge la temperatura del primo sensore trovato
Serial.print("Temperatura: ");
Serial.print(tempC);
Serial.println(" °C");
delay(1000);
}
🧠 Profundización y Funciones Útiles
🔄 Más Sensores en el Mismo Pin
Cada DS18B20 tiene un ID único: puedes leerlo con sensors.getAddress() y luego usarlo para leer la temperatura de un sensor específico.
📏 Establecer la Resolución
sensors.setResolution(12); // valori validi: 9, 10, 11, 12 (più bit = maggiore precisione, ma lettura più lenta)
🔋 Ventajas de la DS18B20
- ✅ Salida digital estable y precisa
- ✅ Óptima para ambientes húmedos o líquidos
- ✅ Soporte para más sensores en paralelo (gracias al protocolo 1-Wire)
- ✅ Código simple y ampliamente soportado
📚 Ejemplos de Aplicación
- 🌡️ Monitoreo de la temperatura del suelo o invernadero
- 💧 Monitoreo de líquidos (agua, cerveza, vino, etc.)
- 🐟 Control de temperatura de acuarios
- 🔥 Control de calderas o calefacción
- 🧪 Proyectos IoT o data logging con microSD o WiFi
🛠 Consejos Prácticos
- Usa fundas térmicas o conectores impermeables si extiendes el cable.
- Si alimentas el sensor desde 3.3V (por ejemplo en ESP32), asegúrate de que la longitud del cable esté limitada (para evitar caídas de tensión).
- Puedes alimentar el DS18B20 en modo parásito, pero se recomienda la alimentación normal para mayor fiabilidad.
✅ Conclusión
La sonda impermeable DS18B20 es uno de los sensores de temperatura más versátiles, precisos y fáciles de usar con Arduino. Es ideal para:
- Uso en ambientes externos o líquidos
- Proyectos múltiples en un solo pin
- Aplicaciones IoT de temperatura
✅ 1. Integración con Displays LCD o OLED
Opción A: Display LCD 16×2 con I2C
🔧 Hardware:
- DS18B20
- Display LCD 16×2 con adaptador I2C
- Arduino Uno/Nano
- Resistencia 4.7kΩ
📦 Bibliotecas:
LiquidCrystal_I2COneWire,DallasTemperature
📜 Código base:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
LiquidCrystal_I2C lcd(0x27, 16, 2); // cambia l'indirizzo se necessario
void setup() {
lcd.init();
lcd.backlight();
sensors.begin();
}
void loop() {
sensors.requestTemperatures();
float temp = sensors.getTempCByIndex(0);
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temp);
lcd.print(" C");
delay(1000);
}
Opción B: Display OLED 128×64 I2C (ej. SSD1306)
📦 Bibliotecas:
Adafruit_SSD1306Adafruit_GFXDallasTemperature,OneWire
📜 Código base disponible si quieres también layouts gráficos personalizados. Házmelo saber si lo quieres!
📡 2. Integración Wi-Fi con ESP8266/ESP32 (monitoreo remoto)
Solución A: ESP8266/ESP32 con Servidor Web Local
📦 Bibliotecas:
WiFiESPAsyncWebServer(oWebServer.h)DallasTemperature,OneWire
📜 Código: ESP crea una página web accesible desde PC/smartphone
#include <WiFi.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <WebServer.h>
const char* ssid = "TUO_SSID";
const char* password = "TUA_PASSWORD";
#define ONE_WIRE_BUS 4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
WebServer server(80);
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) delay(1000);
sensors.begin();
server.on("/", []() {
sensors.requestTemperatures();
float t = sensors.getTempCByIndex(0);
server.send(200, "text/html", "<h1>Temperatura: " + String(t) + " °C</h1>");
});
server.begin();
}
void loop() {
server.handleClient();
}
📲 Abre el navegador en tu smartphone → ingresa elIP del módulo ESP (impreso en el Monitor Serial).
Solución B: ESP + Blynk (o Telegram) → App smartphone
- Visualiza la temperatura en tiempo real
- Agrega notificaciones, gráficos y logs en la nube
Puedo proporcionarte código listo para Blynk (2.0) si quieres apps sin escribir interfaz desde cero.
📁 3. Guardado en tarjeta SD
🔧 Hardware:
- Módulo SD (microSD)
- Arduino Uno/Mega
- DS18B20
📦 Bibliotecas:
SD.hSPI.hDallasTemperature,OneWire
📜 Código base:
#include <SPI.h>
#include <SD.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
#define SD_CS 10
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
File logFile;
void setup() {
Serial.begin(9600);
sensors.begin();
SD.begin(SD_CS);
}
void loop() {
sensors.requestTemperatures();
float temp = sensors.getTempCByIndex(0);
logFile = SD.open("log.csv", FILE_WRITE);
if (logFile) {
logFile.print(millis() / 1000);
logFile.print(",");
logFile.println(temp);
logFile.close();
}
delay(5000);
}
📝 Archivo log.csv listo para Excel/LibreOffice.
📲 4. Visualizar Datos en Smartphone
Opción A: Servidor Web (ESP)
- Abre la IP del módulo desde el navegador (no se necesita app)
- Diseño HTML personalizable
Opción B: App Blynk 2.0
- Panel de control gráfico: medidor, gráficos, notificaciones
- Lectura de temperatura y automatizaciones (ej. «encender ventilador si >30°C»)
Opción C: Bot Telegram (ESP32/ESP8266)
- Recibe mensajes con temperatura por Telegram
📦 Proyecto Completo Posible
Sistema de Monitoreo Inteligente de Temperatura
✔️ DS18B20 impermeable
✔️ ESP32 con Wi-Fi
✔️ Visualización en OLED
✔️ Envío al smartphone a través de Web o Blynk
✔️ Copia de seguridad en tarjeta SD
Tenemos disponibles los datasheets de todos los componentes, en caso de que no estén presentes en la hoja de descarga del producto, envíanos un mensaje a través del formulario de contacto y los publicaremos lo antes posible en nuestro sitio web.
Tutorial: Cómo usar el sensor de temperatura DS18B20
El sensor de temperatura DS18B20 mide temperaturas precisas en ambientes húmedos y secos. Ideal para proyectos de humedad y temperatura.
Qué necesitas
- Sensor de temperatura DS18B20
- Arduino
- Resistencia pull-up (4.7kΩ)
- Cable de conexión
Pasos
- 1. Conecta el sensor de temperatura al pin DQ del Arduino a través del cable.
- 2. Conecta la resistencia pull-up entre el pin DQ y la VCC de 5V.
- 3. Conecta el pin GND del sensor al GND del Arduino.
- 4. Carga el código Arduino proporcionado.
- 5. Verifica en el datasheet para la precisión de medición.
- 6. Prueba el sensor con una aplicación de prueba.
- 7. Verifica la temperatura en diversos entornos.
- 8. Configura la alarma de temperatura si es necesario.
Código de ejemplo
```void loop() { // Leggi la temperatura OneWire ds(DQ); DigitalClock ds; float tempC = ds.getTempC(); Serial.print("Temperatura: "); Serial.print(tempC); Serial.println("°C"); delay(1000);}```
Miniproyecto
Construye un sistema de monitoreo de temperatura para un tanque de agua.
Errores comunes
- Olvidar la resistencia pull-up.
- Conectar el pin DQ a VCC.
- No verificar la conexión antes del uso.
- Configurar la alarma de temperatura sin configurarla.
Accesorios recomendados
- Arduino UNO
- Display LCD 16×2
- Batería 3.7V
- Cable USB
Preguntas frecuentes
¿Cómo puedo verificar la conexión?
Verifica que el sensor esté bien conectado y que la resistencia pull-up esté instalada correctamente.
¿Cuál es la precisión de medición?
Verifica el datasheet para la precisión de medición.
¿Puedo usar este sensor con un microcontrolador diferente?
Sí, pero verifica la compatibilidad con el pin DQ y la tensión de alimentación.











Valoraciones
No hay valoraciones aún.