Monitore a Temperatura com seu Raspberry Pi e Sense HAT: Guia Completo!

Existem diversas abordagens para acompanhar a temperatura do ambiente utilizando um computador de placa única Raspberry Pi, possivelmente como parte de uma instalação de estação meteorológica. Embora seja viável empregar um sensor externo conectado aos pinos GPIO do Raspberry Pi, neste guia, demonstraremos como monitorar a temperatura com um Raspberry Pi equipado com um Sense HAT.

O que é o Sense HAT?

Crédito da imagem: Raspberry Pi

O Sense HAT, uma placa complementar oficial do Raspberry Pi HAT (Hardware Attached on Top), foi idealizado e produzido pela Raspberry Pi Foundation. Originalmente, foi desenvolvido para uso por astronautas na Estação Espacial Internacional. Desde 2015, dois computadores Raspberry Pi equipados com Sense HAT têm sido utilizados em experimentos científicos concebidos por estudantes que participaram do desafio AstroPi. Essas duas unidades foram substituídas por versões atualizadas, baseadas em um Raspberry Pi 4 e dotadas de uma câmera de alta resolução.

Crédito da imagem: Raspberry Pi

Embora não possua o revestimento prateado especial para uso espacial, a placa Sense HAT convencional apresenta a mesma funcionalidade. Compatível com qualquer modelo Raspberry Pi com um conector GPIO de 40 pinos, ela integra uma variedade de sensores que possibilitam monitorar o ambiente ao redor, assim como identificar sua própria orientação e movimento. Adicionalmente, dispõe de uma matriz de LED RGB 8×8 para exibir texto, dados e imagens, e também um mini joystick de cinco direções.

O conjunto de funcionalidades de detecção do Sense HAT abrange:

  • Umidade: Um sensor STMicro HTS221 com faixa de umidade relativa de 0 a 100%, além de medição de temperatura de 0°C a 65°C (± 2°C).
  • Pressão barométrica: Um sensor STMicro LPS25HB com faixa de 260 a 1.260 hPa, e medição de temperatura de 15°C a 40°C (±0,5°C).
  • Temperatura: A leitura pode ser obtida a partir do sensor de umidade ou pressão, ou através da média de ambas.
  • Giroscópio: O IMU STMicro LSM9DS1 é capaz de medir a rotação do Sense HAT em relação à superfície terrestre (e a velocidade dessa rotação).
  • Acelerômetro: Outra função do IMU, possibilita medir a força da aceleração em diferentes direções.
  • Magnetômetro: Ao identificar o campo magnético da Terra, o IMU pode determinar a direção do norte magnético, funcionando como uma bússola.

Agora que você conhece as capacidades desse Raspberry Pi HAT multifuncional, podemos dar início ao projeto.

Etapa 1: Montar o Sense HAT

Para conectar o Sense HAT, primeiramente, certifique-se de que o Raspberry Pi esteja desligado e desconectado da fonte de alimentação. Em seguida, encaixe cuidadosamente o Sense HAT (com o extensor de cabeçalho preto já instalado) no conector GPIO de 40 pinos do Raspberry Pi, de modo que a placa Sense HAT fique posicionada sobre a placa Raspberry Pi. Assegure-se de que todos os pinos estejam alinhados corretamente e que ambas as linhas estejam conectadas. Espaçadores aparafusados podem ser empregados para auxiliar na fixação.

Qualquer modelo padrão do Raspberry Pi que possua um cabeçalho GPIO de 40 pinos é compatível. No entanto, uma das limitações do Raspberry Pi 400 é que seu conector GPIO se localiza na parte traseira do teclado integrado. Isso implica que o Sense HAT ficará posicionado para trás, sendo necessário um cabo de extensão GPIO para realizar a conexão.

Etapa 2: Configurar o Raspberry Pi

Como em qualquer outro projeto, é preciso conectar um teclado e um mouse USB, e então conectar seu Raspberry Pi a um monitor ou TV. Um cartão microSD com o sistema operacional Raspberry Pi padrão também é necessário. Caso ainda não tenha feito isso, veja como instalar um sistema operacional em um Raspberry Pi. Feito isso, você estará pronto para ligar a alimentação.

Alternativamente, o Raspberry Pi com Sense HAT pode ser utilizado no modo headless, sem um monitor conectado, com acesso remoto através de SSH a partir de outro computador ou dispositivo. Ao optar por essa modalidade, o IDE Thonny Python não poderá ser utilizado, mas ainda será possível editar programas com o editor de texto nano e executá-los através da linha de comando.

O firmware do Sense HAT geralmente é instalado por padrão. Para confirmar, abra uma janela do Terminal e digite:

 sudo apt install sense-hat

Em seguida, caso o pacote tenha sido recém-instalado, reinicie o Raspberry Pi:

 sudo reboot

Etapa 3: Iniciar a Programação em Python

Embora seja possível utilizar o Raspberry Pi Sense HAT com a linguagem de programação visual Scratch, optaremos por Python para ler e exibir as informações dos sensores.

O Thonny IDE (ambiente de desenvolvimento integrado) é uma excelente opção para programar em Python no Raspberry Pi, devido às suas funcionalidades, incluindo ferramentas de depuração. Na interface gráfica do sistema operacional Raspberry Pi, acesse Menu (ícone de framboesa no canto superior esquerdo) > Programação > Thonny IDE para iniciá-lo.

Etapa 4: Obter a Leitura da Temperatura

Na janela principal do Thonny IDE, insira as seguintes linhas de código:

 
from sense_hat import SenseHat

sense = SenseHat()
sense.clear()

temp = sense.get_temperature()
print(temp)

A primeira linha importa a classe SenseHat da biblioteca sense_hat Python (pré-instalada no Raspberry Pi OS). Em seguida, esta classe é atribuída à variável “sense”. A terceira linha limpa a matriz de LED do Sense HAT.

Em seguida, efetuamos a leitura da temperatura e a imprimimos na área Shell do Thonny IDE. O valor estará em graus Celsius, sendo possível convertê-lo para Fahrenheit:

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

A leitura do sensor de temperatura exibirá vários dígitos após a vírgula. Para simplificar, empregaremos a função round para arredondar o valor para uma casa decimal:

 temp = round(temp, 1) 

A função sense.get_temperature() lê o sensor de temperatura integrado no sensor de umidade. Alternativamente, é possível realizar uma leitura de temperatura do sensor de pressão com sense.get_temperature_from_Pressure() ou até mesmo obter ambas as leituras e calcular a média (somando-as e dividindo por dois).

Etapa 5: Exibir a Temperatura no Sense HAT

Exibir uma única leitura de temperatura no Python Shell é um tanto monótono. Por isso, vamos configurar o programa para efetuar novas leituras regularmente e mostrá-las na matriz de LED RGB do Sense HAT. Para exibir uma mensagem de texto em rolagem, empregaremos a função show_message. Também utilizaremos um loop while: True para realizar novas leituras a cada 10 segundos, com o auxílio da função sleep da biblioteca time.

A seguir, apresentamos o 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)

Ao executar esse código, cada nova leitura de temperatura será exibida em rolagem na matriz de LED. Experimente soprar o Sense HAT para observar as variações de temperatura.

As leituras de temperatura podem ser influenciadas pelo calor gerado pela CPU do Raspberry Pi, posicionada logo abaixo. Portanto, ajustes podem ser necessários para obter uma medição mais precisa. Uma alternativa é utilizar um cabeçalho de empilhamento para elevar o Sense HAT e distanciá-lo do Raspberry Pi.

Utilize um Raspberry Pi para Monitorar a Temperatura

Apesar da disponibilidade de sensores de temperatura independentes para esse propósito, o Sense HAT simplifica o monitoramento da temperatura através do Raspberry Pi. Adicionalmente, permite realizar diversas outras leituras de sensores, como pressão barométrica e umidade relativa, com exibição na matriz de LED.