Cómo conectar un Sensor de temperatura DS18B20 a Raspberry Pi

En este pequeño tutorial veremos cómo conectar un sensor de temperatura DS18B20 a una tarjeta Raspberry Pi, también encontrarás un código de programación para tus primeras pruebas.

El sensor DS18B20 es un componente digital de entrada, es decir, su funcionamiento consiste en entregar la información correspondiente a la temperatura del ambiente por medio de un protocolo de comunicación específico implementado en su pin de señal, la tarjeta Raspberry Pi a su vez recibe la señal y la lee con uno de sus GPIO.

Componentes necesarios

  • Sensor de temperatura DS18B20
  • Protoboard chica
  • Raspberry Pi
  • Resistor de 4.7 kohms
  • Cables de conexión H-M y M-M

Diagrama de conexiones

Raspberry Pi – Sensor de temperatura DS18B20 – Resistor de 4.7 kohms

Pasos previos a ejecutar el código

1.- Instalar paquetes de Python3

En este código hacemos uso del paquete de Python3 «w1thermsensor». Para instalarlo ejecuta el siguiente comando en la terminal:

[email protected]:~$ sudo pip3 install w1thermsensor

2.- Habilitar comunicación One-Wire en la Raspberry Pi

Para que podamos ejecutar un programa que intercambie información por One-Wire en nuestra Raspberry Pi, debemos habilitar el hardware correspondiente en dicha tarjeta. Esto lo podemos hacer de manera sencilla con ayuda de la herramienta de configuración raspi-config, si no has utilizado esta herramienta antes da click aquí para ver el paso a paso. Una vez que termines regresa para ejecutar el código.

Código de Python3

Copiamos el siguiente código a un script de Python y lo ejecutamos con Python3 para observar la temperatura entregada por el sensor cada 0.5 segundos aproximadamente.


import time                             #Importamos el paquete time
from w1thermsensor import W1ThermSensor #Importamos el paquete W1ThermSensor

sensor = W1ThermSensor() #Creamos el objeto sensor

while True:
    temperature = sensor.get_temperature()                #Obtenemos la temperatura en centígrados
    print("The temperature is %s celsius" % temperature)  #Imprimimos el resultado
    time.sleep(1)                                         #Esperamos un segundo antes de terminar el ciclo 

¡Sigue explorando!