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

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

El sensor TMP36 es un componente analógico de entrada, es decir, su funcionamiento consiste entregar la información correspondiente a la temperatura del ambiente por medio del voltaje en su pin de señal. Ningún modelo de Raspberry Pi cuenta con la capacidad de leer una señal analógica de voltaje, debido a esto, utilizaremos un ADC externo (convertidor de señal analógica a digital).

El circuito integrado MCP3008 nos servirá como puente entre nuestro sensor y nuestra Raspberry Pi. De esta manera el circuito integrado realizara la lectura analógica convirtiendo la información a digital para después mandarla a la Raspberry Pi por medio de un protocolo serial digital llamado SPI.

Componentes necesarios

  • Sensor de temperatura TMP36
  • MCP3008
  • Protoboard chica
  • Raspberry Pi (cualquier modelo)
  • Cables de conexión H-M y M-M

Diagrama de conexiones

Rasoberry Pi – MCP3008 – Sensor de temperatura TMP36

Pasos previos a ejecutar el código

1.- Instalar paquetes de Python3

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

[email protected]:~$ sudo pip3 install gpiozero

2.- Habilitar comunicación SPI en la Raspberry Pi

Para que podamos ejecutar un programa que reciba información por SPI 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.


from gpiozero import MCP3008
from time import sleep

lectura = MCP3008(channel=0)

while True:
    temperatura = (lectura.value * 3.3 - 0.5) * 100    
    print('Temperatura:', temperatura, 'C')
    sleep(0.5)