El DS18B20 es un sensor digital de temperatura con interfaz 1-Wire. Puedes conectarlo a Arduino, ESP32 o Raspberry Pi y leer varias sondas desde un mismo pin de datos. Para montar tu circuito, necesitas identificar los terminales, agregar una resistencia pull-up y configurar el programa que leerá las mediciones.
Qué es el DS18B20 y cuáles son sus especificaciones
Según el datasheet de Maxim Integrated, hoy Analog Devices, el DS18B20 mide entre −55 y +125 °C, con precisión de ±0,5 °C entre −10 y +85 °C. Puedes configurar una resolución de 9 a 12 bits; a 12 bits, cada conversión tarda hasta 750 ms. La alimentación externa admite de 3,0 a 5,5 V. El código ROM único de 64 bits identifica cada sensor en el bus 1-Wire. Al elegirlo, distingue el rango de medición del intervalo de precisión especificado y revisa las condiciones de tu aplicación.
Pines y resistencia pull-up
En el encapsulado TO-92, el pin 1 corresponde a GND, el 2 a DQ y el 3 a VDD. Comprueba la orientación en el dibujo del datasheet antes de cablear. Con alimentación externa, conecta GND a tierra, VDD a la alimentación y DQ al pin de datos de tu placa. Agrega una resistencia de 4,7 kΩ entre DQ y la tensión lógica del bus, como en la figura 7 del fabricante. En una sonda con cable, identifica los conductores según su ficha o el fabricante; evita asignar funciones por color sin confirmarlas.
Conexión con Arduino y ESP32
Para un Arduino Uno R3, puedes usar D2 como datos, 5 V para VDD y GND como tierra común, con la pull-up entre D2 y 5 V. Instala OneWire y DallasTemperature desde el gestor de bibliotecas del IDE. Configura OneWire con el pin 2, inicia DallasTemperature y solicita una conversión antes de leer. Para una placa de desarrollo ESP32 clásica, puedes elegir GPIO4 si está libre y admite entrada y salida. Usa 3,3 V tanto para VDD como para la pull-up y comparte GND. Configura el pin 4 en tu programa. Revisa el pinout de tu modelo de ESP32, porque las placas y variantes tienen diferencias. Mantén la línea DQ a 3,3 V en el ESP32; la alimentación admitida por el sensor no autoriza aplicar 5 V al GPIO.
Conexión con Raspberry Pi
En una Raspberry Pi con cabecera de 40 pines, conecta VDD al pin físico 1 (3,3 V), GND al pin físico 6 y DQ al pin físico 7 (GPIO4). Une la pull-up de 4,7 kΩ entre DQ y 3,3 V. Desconecta la alimentación mientras haces el montaje. Habilita 1-Wire desde raspi-config, en las opciones de interfaz, y reinicia. Con el controlador activo, busca el sensor en /sys/bus/w1/devices/; su directorio comienza con 28-. El archivo w1_slave permite consultar la lectura. Comprueba la validación CRC y convierte el valor t= de milésimas de grado a grados Celsius. Si no aparece el directorio, revisa el cableado y que hayas habilitado la interfaz.
Varios sensores y alimentación parásita
Conecta las líneas DQ de las sondas al mismo bus y comparte alimentación y tierra. Identifica cada sonda por su ROM para asociar la lectura con su ubicación; guarda esa relación en tu programa. Calcula la pull-up para el conjunto y evita agregar una por sonda sin revisar la resistencia equivalente. Para comenzar, usa alimentación de tres conductores. En modo parásito, conecta VDD a GND y alimenta el sensor desde DQ. Durante la conversión necesitas una pull-up fuerte, según el circuito del datasheet, además de la resistencia. El modo parásito exige controlar esa alimentación desde el maestro del bus.
Sonda sumergible, TO-92 y largo de cable
El TO-92 es el componente para integrar en tu circuito. Para medir en contacto con agua, busca una sonda encapsulada cuya ficha permita ese uso. Confirma las condiciones de inmersión, la compatibilidad con el líquido y los límites del cable y del sellado; el rango térmico del chip no certifica el montaje completo. Zamper tiene fichas de sondas DS18B20 resistentes al agua con cables de 1, 3, 5 y 10 metros, enlazadas al final junto a la categoría Temperatura. Mide el recorrido desde la placa hasta el punto de medición y elige el largo que lo cubra con margen para fijar el cable. Evita dejar tramos sobrantes y prueba el montaje con todas las sondas conectadas antes de instalarlo.
Lecturas de −127 °C o de 85 °C
En DallasTemperature, −127 °C corresponde a DEVICE_DISCONNECTED_C. Si aparece, revisa la dirección del sensor, el pin configurado, la tierra común y la pull-up; comprueba si la biblioteca logra comunicarse con la sonda. Si lees el registro crudo del DS18B20 justo al encender, puedes obtener su valor inicial de 85 °C. Solicita una conversión y espera a que termine antes de leer. Si el valor persiste en un ambiente a otra temperatura, comprueba la alimentación y posibles reinicios. Evita descartar 85 °C por sistema, porque también puede ser una temperatura real.
Cuándo pasar a un sensor de temperatura LoRaWAN
Considera un equipo LoRaWAN si necesitas medir en puntos donde tender cable hasta tu controlador resulta difícil. El DS18B20 requiere un equipo que lea su bus; para enviar datos por LoRaWAN necesitas un dispositivo compatible y una red con gateway y servidor. En la categoría Sensores LoRaWAN enlazada al final, revisa los modelos que midan temperatura, su tipo de sonda y las condiciones de instalación. Define el intervalo de envío y comprueba la cobertura donde montarás el sensor. Configura el registro histórico y las alertas en la plataforma que reciba las mediciones.
Fuentes técnicas
- Datasheet DS18B20 de Maxim Integrated / Analog Devices (rev. 6) (abre en otra pestaña)
- Biblioteca DallasTemperature: instalación y lectura de sensores (abre en otra pestaña)
- Arduino Uno R3: documentación y pinout (abre en otra pestaña)
- Espressif: GPIO del ESP32 (abre en otra pestaña)
- Raspberry Pi: configuración de interfaces y GPIO (abre en otra pestaña)