Cómo utilizar una Raspberry Pi para controlar las temperaturas con un Sense HAT

Hay varias formas de controlar la temperatura ambiente utilizando una computadora de placa única Raspberry Pi, tal vez como parte de la configuración de una estación meteorológica. Si bien podrías usar un sensor externo conectado a los pines GPIO de la Raspberry Pi, aquí explicaremos cómo monitorear la temperatura con una Raspberry Pi equipada con un Sense HAT.

¿Cuál es el sentido del SOMBRERO?

Credito de imagen: Frambuesa Pi

Una placa adicional oficial Raspberry Pi HAT (Hardware adjunto en la parte superior) diseñada y producida por la compañía Raspberry Pi, la Sense HAT fue creada originalmente para ser utilizada por astronautas a bordo de la Estación Espacial Internacional. Desde 2015, dos computadoras Raspberry Pi equipadas con un Sense HAT se han utilizado en experimentos científicos diseñados por escolares que ingresaron al actual astro pi Desafío Desde entonces, estas dos unidades han sido reemplazadas por versiones mejoradas basadas en una Raspberry Pi 4 y equipadas con una cámara de alta calidad.

Credito de imagen: Frambuesa Pi

Si bien carece de la carcasa plateada especial diseñada para su uso en el espacio, la placa Sense HAT estándar tiene exactamente la misma funcionalidad. Compatible con cualquier modelo de Raspberry Pi con un encabezado GPIO de 40 pines, cuenta con una serie de sensores integrados que le permiten monitorear el entorno circundante y también detectar su propia orientación y movimiento. Además, cuenta con una matriz de LED RGB de 8×8 para mostrar texto, datos e imágenes. También hay un mini joystick de cinco direcciones.

La gama completa de funciones sensoriales de Sense HAT es la siguiente:

  • Humedad: Un sensor STMicro HTS221 con rango de humedad relativa de 0 a 100 %, además de detección de temperatura de 32 °F a 149 °F (0 °C a 65 °C ± 2 °C).
  • Presión barométrica: un sensor STMicro LPS25HB con un rango de 260 a 1260 hPa, además de detección de temperatura de 59 °F a 104 °F (15 °C a 40 °C ±0,5 °C).
  • Temperatura: Puede leerse en el sensor de humedad o presión, o medirse tomando un promedio de ambas lecturas.
  • Giroscopio: La IMU STMicro LSM9DS1 puede medir la rotación del Sense HAT en relación con la superficie de la Tierra (y la rapidez con la que gira).
  • Acelerómetro: otra función de la IMU, puede medir la fuerza de aceleración en múltiples direcciones.
  • Magnetómetro: Al detectar el campo magnético de la Tierra, la IMU puede determinar la dirección del norte magnético y así dar una lectura de la brújula.

Ahora que ya sabe lo que puede hacer este Raspberry Pi HAT multipropósito, es hora de comenzar con el proyecto.

Paso 1: Monte el Sense HAT

Para conectar el Sense HAT, primero asegúrese de que su Raspberry Pi esté apagada y desconectada de la corriente. Luego, empuje con cuidado el Sense HAT (con el extensor de cabezal negro suministrado) sobre el cabezal GPIO de 40 pines de la Raspberry Pi para que la placa Sense HAT quede colocada sobre la placa Raspberry Pi. Asegúrese de que todos los pines estén alineados correctamente y que ambas filas estén conectadas. También puede utilizar separadores atornillados para ayudar a asegurarlo.

Puede utilizar cualquier modelo de Raspberry Pi estándar que tenga un encabezado GPIO de 40 pines. Sin embargo, una de las limitaciones clave de una Raspberry Pi 400 es que su encabezado GPIO está ubicado en la parte posterior del teclado integrado. Esto significa que el Sense HAT estará orientado hacia atrás, por lo que es posible que desees utilizar un cable de extensión GPIO para conectarlo.

Paso 2: configurar la Raspberry Pi

Como con cualquier otro proyecto, debes conectar un teclado y un mouse USB y luego conectar tu Raspberry Pi a un monitor o televisor. También debe tener insertada una tarjeta microSD con el sistema operativo Raspberry Pi estándar; si aún no lo ha hecho, consulte cómo instalar un sistema operativo en una Raspberry Pi. Entonces estará listo para encender la energía.

Alternativamente, puede usar su Raspberry Pi con Sense HAT en modo sin cabeza, sin un monitor conectado y conectarse a la Raspberry Pi de forma remota mediante SSH desde otra computadora o dispositivo. Si hace esto, no podrá usar el IDE de Thonny Python, pero aún puede editar programas usando el editor de texto nano y ejecutarlos desde la línea de comandos.

El firmware Sense HAT debe instalarse de forma predeterminada. Para volver a verificar, abra una ventana de Terminal e ingrese:

 sudo apt install sense-hat

Luego, si el paquete se acaba de instalar, reinicie la Raspberry Pi:

 sudo reboot

Paso 3: comience a programar en Python

Si bien puedes usar Raspberry Pi Sense HAT con el lenguaje de programación basado en bloques Scratch, usaremos Python para leer y mostrar las lecturas de sus sensores.

Thonny IDE (entorno de desarrollo integrado) es una buena forma de programar Python en una Raspberry Pi, ya que tiene muchas funciones, incluidas útiles funciones de depuración. En la GUI de escritorio del sistema operativo Raspberry Pi, vaya a Menú (icono de frambuesa arriba a la izquierda) > Programación > Thonny IDE para iniciarlo.

Paso 4: tome una lectura de temperatura

En la ventana principal de Thonny IDE, ingrese las siguientes líneas de código:

 
from sense_hat import SenseHat

sense = SenseHat()
sense.clear()

temp = sense.get_temperature()
print(temp)

La primera línea importa la clase SenseHat de la biblioteca sense_hat Python (que está preinstalada en el sistema operativo Raspberry Pi). Luego se asigna a la variable de detección. La tercera línea borra la matriz de LED del Sense HAT.

Luego tomamos la lectura de temperatura y la imprimimos en el área Shell del IDE de Thonny. Esto está en grados Celsius, por lo que es posible que desees convertirlo primero a Fahrenheit:

 temp = (sense.get_temperature() * 1.8 + 32) 

La lectura del sensor de temperatura tendrá varios dígitos después del punto decimal. Entonces usaremos la función de redondeo para redondearlo a un solo decimal:

 temp = round(temp, 1) 

La función sense.get_temperature() lee el sensor de temperatura integrado en el sensor de humedad. Alternativamente, puede tomar una lectura de temperatura del sensor de presión con sense.get_temperature_from_pression() o incluso tomar ambas lecturas y calcular un promedio (sumándolas y dividiéndolas por dos).

Paso 5: muestra la temperatura en el Sense HAT

Imprimir una sola lectura de temperatura en Python Shell es un poco aburrido, así que tomemos una nueva lectura regularmente y mostrémosla en la matriz de LED RGB del Sense HAT. Para mostrar un mensaje de texto desplazable, utilizamos la función show_message. También usaremos un bucle while: True para seguir tomando una nueva lectura cada 10 segundos, para lo cual usamos la función de suspensión de la biblioteca de tiempo.

Aquí está el programa completo:

 from sense_hat import SenseHat
from time import sleep

sense = SenseHat()
sense.clear()

while True:
 temp = (sense.get_temperature() * 1.8 + 32)
 temp = round(temp, 1)
 message = "Temp: " + str(temp)
 sense.show_message(message)
 sleep (10)

Ejecute este código y verá cada nueva lectura de temperatura desplazándose por la matriz de LED. Intente soplar el Sense HAT para ver si la temperatura cambia.

Las lecturas de temperatura pueden verse afectadas por el calor transferido desde la CPU de Raspberry Pi justo debajo, por lo que es posible que sea necesario un ajuste para obtener una cifra más precisa. Otra solución es utilizar un encabezado apilable para elevar el Sense HAT por encima de la Raspberry Pi.

Utilice una Raspberry Pi para controlar la temperatura

Si bien podrías usar un sensor de temperatura independiente para este proyecto, Sense HAT facilita el monitoreo de la temperatura con tu Raspberry Pi. También puede usarlo para tomar una serie de otras lecturas de sensores, como la presión barométrica y la humedad relativa, y mostrarlas en su matriz de LED.