
En calidad de Afiliado de Amazon, obtengo ingresos por las compras adscritas que cumplen los requisitos aplicables. Si compras desde estos enlaces, el precio para ti es el mismo y Amazon me paga una pequeña comisión que ayuda a mantener Tecnoyfoto.
Actualizado el 2 de agosto de 2026.
El DS18B20 con ESP8266 y ESPHome es una combinación sencilla y fiable para medir temperatura en Home Assistant. Cada sensor tiene una dirección única de 64 bits, por lo que podemos conectar varias sondas al mismo cable de datos y reconocerlas individualmente. Es una solución muy práctica para acuarios, tuberías, cámaras frigoríficas, calefacción, depósitos y estaciones meteorológicas.
Cambio importante de ESPHome: desde ESPHome 2024.6 la antigua configuración
dallas:yplatform: dallasfue eliminada. Actualmente debemos crear un busone_wirey utilizarplatform: dallas_temp. Todo el código de esta guía ya utiliza el formato vigente.
Qué es el sensor DS18B20
El DS18B20 es un termómetro digital fabricado originalmente por Maxim Integrated, actualmente Analog Devices. Se comunica mediante el protocolo 1-Wire, que necesita una línea de datos y masa. Aunque admite alimentación parásita, para un proyecto con ESP8266 recomiendo el cableado normal a tres hilos: VDD, DATA y GND. Es más fácil de diagnosticar y suele comportarse mejor con cables largos o varios sensores.
- Rango especificado: de −55 °C a +125 °C.
- Precisión especificada: ±0,5 °C entre −10 °C y +85 °C.
- Resolución configurable: 9, 10, 11 o 12 bits.
- Alimentación: de 3,0 a 5,5 V.
- Dirección individual de 64 bits para utilizar varios sensores en el mismo bus.
Estos valores proceden de la ficha técnica oficial del DS18B20. A 12 bits, una conversión puede tardar hasta 750 ms; no tiene sentido solicitar decenas de lecturas por segundo.
DS18B20 encapsulado y sonda impermeable
Podemos comprar el componente TO-92 de tres patas o una versión montada dentro de una sonda de acero inoxidable. El chip es el mismo, pero una sonda encapsulada resulta mucho más cómoda para líquidos, tuberías o exteriores protegidos. Que la punta sea impermeable no significa que también lo sean el empalme, el conector o la placa ESP8266.
En muchas sondas el rojo es VDD, el negro es GND y el amarillo o blanco es DATA, pero los colores no están normalizados en todos los fabricantes. Comprueba la ficha del producto antes de alimentar el sensor. En el encapsulado TO-92, consulta siempre el dibujo de pines del fabricante y su orientación.
Material necesario
- Uno o varios sensores DS18B20Enlace de afiliado.
- Una resistencia de aproximadamente 4,7 kΩ para el pull-up del bus 1-Wire.
- Una placa ESP8266 NodeMCUEnlace de afiliado o Wemos D1 miniEnlace de afiliado. Puedes consultar la guía del ESP8266 y la guía del Wemos D1 mini.
- Cables DupontEnlace de afiliado y protoboard para las pruebas.
- Una fuente USB estableEnlace de afiliado.
Los enlaces de Amazon son de afiliado. El precio para ti no cambia y ayudan a mantener el proyecto.
Cableado del DS18B20 al ESP8266
| DS18B20 | NodeMCU | Función |
|---|---|---|
| VDD / rojo | 3V3 | Alimentación a 3,3 V |
| GND / negro | GND | Masa común |
| DATA / amarillo o blanco | D5 / GPIO14 | Bus 1-Wire |
Coloca la resistencia de 4,7 kΩ entre DATA y 3,3 V. Es el pull-up que mantiene el bus en su estado correcto cuando ningún dispositivo lo fuerza a nivel bajo. La documentación de 1-Wire de ESPHome recomienda aproximadamente 4,7 kΩ y acepta valores cercanos en instalaciones normales.
Todos los DS18B20 del mismo bus se conectan en paralelo: comparten 3,3 V, GND y GPIO14. Solo hace falta una resistencia pull-up por bus. Para una instalación larga, evita una estrella con muchas ramas; suele funcionar mejor una línea principal con derivaciones cortas y cable de par trenzado.
Preparar ESPHome y secrets.yaml
Si todavía no lo utilizas, empieza por qué es ESPHome y qué es Home Assistant. Crea un dispositivo ESP8266 desde ESPHome y guarda las credenciales en secrets.yaml:
wifi_ssid: "NOMBRE_DE_TU_WIFI"
wifi_password: "CONTRASEÑA_DE_TU_WIFI"
ds18b20_api_key: "CLAVE_BASE64_GENERADA_POR_ESPHOME"
ds18b20_ota_password: "UNA_CONTRASEÑA_OTA_LARGA"Cómo descubrir la dirección de cada DS18B20
Primero configura únicamente el bus 1-Wire. No necesitas declarar todavía ningún sensor. Al iniciar el dispositivo, ESPHome escaneará el bus y mostrará las direcciones encontradas en el registro:
one_wire:
- platform: gpio
pin: GPIO14
id: bus_1wireCopia cada dirección completa, incluido el prefijo 0x. Utiliza solo la dirección que aparezca en tu registro; las direcciones de los ejemplos siguientes son ilustrativas.
Código completo para un DS18B20
substitutions:
device_name: ds18b20-esp8266
friendly_name: "DS18B20 ESP8266"
esphome:
name: ${device_name}
friendly_name: ${friendly_name}
esp8266:
board: nodemcuv2
logger:
api:
encryption:
key: !secret ds18b20_api_key
ota:
- platform: esphome
password: !secret ds18b20_ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "DS18B20 Fallback"
password: !secret ds18b20_ota_password
captive_portal:
one_wire:
- platform: gpio
pin: GPIO14
id: bus_1wire
sensor:
- platform: dallas_temp
one_wire_id: bus_1wire
address: 0x1C0000031EDD2A28 # Sustituye por tu dirección
name: "Temperatura DS18B20"
id: temperatura_ds18b20
resolution: 12
update_interval: 30sLa dirección es obligatoria cuando hay más de un dispositivo en el bus. Con un único sensor puede omitirse, pero escribirla hace que la configuración sea más predecible si después añades otro. La plataforma actual y sus opciones están documentadas en Dallas Temperature Sensor de ESPHome.
Código para varios DS18B20
one_wire:
- platform: gpio
pin: GPIO14
id: bus_1wire
sensor:
- platform: dallas_temp
one_wire_id: bus_1wire
address: 0x1C0000031EDD2A28
name: "Temperatura impulsión"
update_interval: 30s
- platform: dallas_temp
one_wire_id: bus_1wire
address: 0xA40000031F055028
name: "Temperatura retorno"
update_interval: 30s
- platform: dallas_temp
one_wire_id: bus_1wire
address: 0xDD0000031EFB0428
name: "Temperatura ambiente"
update_interval: 30sESPHome también admite index, pero el orden puede cambiar al sustituir, añadir o retirar una sonda. Para una instalación permanente es mejor utilizar la dirección única de cada DS18B20.
Resolución y frecuencia de lectura
| Resolución | Paso aproximado | Conversión máxima |
|---|---|---|
| 9 bits | 0,5 °C | 93,75 ms |
| 10 bits | 0,25 °C | 187,5 ms |
| 11 bits | 0,125 °C | 375 ms |
| 12 bits | 0,0625 °C | 750 ms |
Más resolución no significa más exactitud absoluta. Para calefacción o acuarios, 11 o 12 bits y una actualización cada 30–60 segundos suelen ser suficientes. Una frecuencia excesiva solo añade tráfico y puede calentar ligeramente el propio encapsulado.
Añadirlo a Home Assistant
- Instala el firmware y abre Ajustes → Dispositivos y servicios.
- Acepta el dispositivo descubierto por ESPHome o añade manualmente la integración.
- Asigna el dispositivo a una zona y comprueba que cada sonda muestre una temperatura razonable.
Una tarjeta de historial resulta más útil que un valor aislado:
type: history-graph
title: Temperatura DS18B20
hours_to_show: 24
entities:
- entity: sensor.temperatura_ds18b20Problemas frecuentes
ESPHome no encuentra ninguna dirección
Comprueba 3,3 V, GND y DATA, la resistencia pull-up y que has usado GPIO14 en el cableado y en el YAML. Revisa también los colores reales de tu sonda. Prueba primero con un cable corto y un solo sensor.
Aparecen errores CRC o lecturas no disponibles
Suelen apuntar a ruido, mala alimentación, conexiones flojas o una topología de cable inadecuada. Acorta las derivaciones, utiliza un par trenzado para DATA/GND y evita llevar el cable junto a motores, relés o conductores de red.
El sensor muestra 85 °C
El registro de temperatura del DS18B20 contiene 85 °C después del encendido hasta completar una conversión. Si ese valor se repite, revisa alimentación, pull-up y tiempos de comunicación; no lo interpretes automáticamente como una temperatura real.
La temperatura no coincide con otro termómetro
Deja estabilizar las sondas juntas y compara en varios puntos. La carcasa, el contacto térmico, la circulación del agua o aire y la calidad de las sondas encapsuladas influyen. Puedes aplicar un filtro offset solo después de comparar con una referencia fiable.
DS18B20, DHT22 o BME280
El DS18B20 mide únicamente temperatura, pero soporta sondas remotas y varios dispositivos en un cable. Los DHT11 y DHT22 añaden humedad, aunque suelen ser más lentos. El BME280 con ESPHome ofrece temperatura, humedad y presión mediante I²C. La mejor elección depende del lugar de medida y no solo del número de magnitudes.
Conclusión
El DS18B20 sigue siendo una excelente sonda para Home Assistant, pero los ejemplos antiguos con dallas: ya no deben utilizarse. Con el bus one_wire, platform: dallas_temp, una resistencia de 4Enlace de afiliado,7 kΩ y direcciones reales obtenidas del registro, puedes montar desde un termómetro sencillo hasta una red de sondas estable y fácil de mantener.
Continúa leyendo
Siguiente guía relacionada · 8 min de lectura
Sensor de lluvia MH-RD con ESP32 y ESPHome: guÃa actualizada
Actualizado el 2 de agosto de 2026. El sensor de lluvia MH-RD es una forma económica de saber cuándo empieza a mojarse una superficie…
Continuar con este artículo

