Sensor · Temperatura

DS18B20 sumergible

Sensor digital de temperatura con sonda de acero inoxidable y 1 m de cable. Lo metés en agua, aceite o tierra, y te devuelve grados con un solo pin.

  • Manual en español
  • Código de ejemplo
  • Soporte técnico
Qué es

Temperatura digital, sin calibrar ni convertir

El DS18B20 es un sensor de temperatura digital: la medición y la conversión a grados las hace el chip, y te las entrega por el protocolo 1-Wire usando un solo pin de datos. Esta versión viene encapsulada en un tubo de acero inoxidable de 6 × 50 mm, sellado, con cable de 1 metro de tres hilos.

Cada sensor tiene un número de serie único de 64 bits, así que podés colgar varios del mismo pin y leerlos por separado: tres sondas, un cable, un GPIO.

Para qué sirve

Medir temperatura donde un sensor de placa no llega

Su ventaja es la sonda: mide dentro del líquido o del material, no el aire alrededor.

  • Acuarios, peceras, piletas y tanques de agua.
  • Fermentación (cerveza, vino, yogur) y sous-vide.
  • Temperatura de suelo en huertas y cultivos.
  • Cañerías, calefones, termotanques y colectores solares.
  • Monitoreo ambiental de varios puntos con un solo microcontrolador.
Cuándo usarlo

Límites reales del sensor

Elegilo si

  • Querés medir en líquidos o enterrado.
  • Te sirve ±0,5 °C de precisión sin calibrar.
  • Necesitás varios sensores con pocos pines.
  • Hay distancia (varios metros) entre sensor y placa.

Mirá otra cosa si

  • Necesitás respuesta rápida: la sonda tarda varios segundos en estabilizar.
  • Hay presión o químicos agresivos: el acero aguanta, la unión con el cable no está pensada para eso.
  • También querés humedad → un DHT22 / SHT31 (consultanos).
Así arranca

Ejemplo mínimo

Lee la temperatura cada segundo. Librerías OneWire y DallasTemperature (se instalan desde Arduino IDE). Sirve para ESP32, ESP32-C3 y Arduino.

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

OneWire oneWire(4);                 // DATA en GPIO 4 + resistencia 4,7 kΩ a 3,3 V
DallasTemperature sensores(&oneWire);

void setup() {
  Serial.begin(115200);
  sensores.begin();
}

void loop() {
  sensores.requestTemperatures();
  Serial.printf("%.2f °C\n", sensores.getTempCByIndex(0));
  delay(1000);
}

En la guía: cómo leer varios sensores por su ID, resolución vs. tiempo de lectura, y envío por WiFi.

Errores típicos

Lo que más consultan

  • Lee -127 °C o 85 °C: falta la resistencia pull-up de 4,7 kΩ entre DATA y VCC, o los cables están invertidos. Es el error número uno; viene explicado con foto en el manual.
  • Colores del cable: rojo = VCC (3,3 V o 5 V), negro = GND, amarillo (a veces blanco o azul) = DATA. Si tu unidad varía, en la guía está cómo verificarlo con un multímetro.
  • La lectura salta o tarda: a 12 bits cada conversión lleva 750 ms; bajá la resolución a 10 bits si necesitás más velocidad y te alcanza con 0,25 °C.
  • Mide distinto que el termómetro: ±0,5 °C es lo normal. Si necesitás menos, en la guía hay un procedimiento de calibración con agua con hielo.
También te puede servir

Otros componentes