Introducción
Si te adentras en el mundo de los PLC industriales y la medición de temperatura, te encontrarás tarde o temprano con el protocolo OneWire y los sensores DallasTemperature, como el DS18B20. Son muy apreciados por su sencillez, precisión y versatilidad, lo que los hace ideales para proyectos muy distintos, desde medir la temperatura ambiente hasta aplicaciones industriales.
En este artículo veremos los fundamentos del protocolo OneWire, cómo permite comunicarse con dispositivos como el DS18B20 y por qué la familia de sensores DallasTemperature se ha convertido en una opción habitual tanto para makers como para ingenieros. Tanto si empiezas como si quieres optimizar tus proyectos de medición de temperatura, es esencial entender cómo trabajan juntos estos componentes.
Hardware
- 1 x PLC basado en Arduino / ESP32
- Fuente de alimentación (12 - 24 V)
- Cable tipo B o micro B, para programar el PLC basado en Arduino / ESP32.
- Sensor Dallas Temperature.
- Resistencia de 4k7 ohmios.
Software
- Arduino IDE
- Placas Industrial Shields
- OneWire Librería de Arduino
- DallasTemperature Librería de Arduino
Implementación
Montaje del hardware
Primero alimenta el PLC con una tensión entre 12 y 24 V. Después conecta los 3 cables del sensor Dallas Temperature como se muestra:

Vcc se conecta a 5 V. Así se alimenta el sensor DS1820 Dallas Temperature (pines 1 y 3), con el pin de datos (pin 2) en modo pull-up. Por último, el pin de datos se conecta a un pin directo del PLC. Según el modelo adquirido, las opciones posibles son las siguientes:
- M-Duino PLC:
- SCL: GPIO 21
- SDA: GPIO 20
- MISO: GPIO 50
- MOSI: GPIO 51
- SCK: GPIO 52
- Pin 3: GPIO 3
- Pin 2: GPIO 2
- Ardbox PLC:
- SCL – Pin 3: GPIO 3
- SDA – Pin 2: GPIO 2
- MISO: GPIO 14
- SCK: GPIO 15
- MOSI: GPIO 16
- PLC basados en ESP32:
- SDA: GPIO 21
- SCL: GPIO 22
Algunos GPIO de los PLC basados en Arduino se deben habilitar con los DIP switches; consulta la guía de usuario para saber cómo habilitar esos pines.
Implementación del software
Para programar el PLC sigue estos pasos:
1. Ve a Archivo > Ejemplos > DallasTemperature y selecciona el ejemplo Simple.
2. Cambia el pin ONE_WIRE_BUS por el GPIO correspondiente de la lista anterior.
3. Selecciona la placa y el modelo según tu PLC:
- Para la familia de PLC M-Duino: Herramientas > Placa > Industrial Shields AVR Boards > M-Duino [Extension] family y Herramientas > Modelo > M-Duino [Module]
- Para la familia de PLC Ardbox: Herramientas > Placa > Industrial Shields AVR Boards > Ardbox [Extension] family y Herramientas > Modelo > Ardbox [Module] HF+ w/HW RS-485
- Para la familia de PLC ESP32: Herramientas > Placa > Industrial Shields ESP32 Boards > ESP32 PLC Family y Herramientas > Modelo > ESP32 PLC [Module]
- Para el ESP32 PLC 14: Herramientas > Placa > Industrial Shields ESP32 Boards > 14 IOS PLC Family
4. Por último, sube el sketch en Programa > Subir