Como usar um Raspberry Pi para monitorar temperaturas com um Sense HAT

Existem várias maneiras de monitorar a temperatura ambiente usando um computador de placa única Raspberry Pi, talvez como parte da configuração de uma estação meteorológica. Embora você possa usar um sensor externo conectado aos pinos GPIO do Raspberry Pi, aqui explicaremos como monitorar a temperatura com um Raspberry Pi equipado com um Sense HAT.

O que é o Sense HAT?

Crédito da imagem: Raspberry Pi

Uma placa complementar oficial Raspberry Pi HAT (Hardware Attached on Top) projetada e produzida pela empresa Raspberry Pi, o Sense HAT foi originalmente criado para ser usado por astronautas a bordo da Estação Espacial Internacional. Desde 2015, dois computadores Raspberry Pi equipados com Sense HAT têm sido usados ​​em experimentos científicos projetados por crianças em idade escolar que ingressaram no curso AstroPi desafio Essas duas unidades foram substituídas por versões atualizadas baseadas em um Raspberry Pi 4 e equipadas com uma câmera de alta qualidade.

Crédito da imagem: Raspberry Pi

Embora não possua o case prateado especial projetado para uso no espaço, a placa Sense HAT padrão tem exatamente a mesma funcionalidade. Compatível com qualquer modelo Raspberry Pi com conector GPIO de 40 pinos, possui uma variedade de sensores integrados que permitem monitorar o ambiente ao redor e também detectar sua própria orientação e movimento. Além disso, possui uma matriz de LED RGB 8×8 para exibir texto, dados e imagens. Há também um mini joystick de cinco direções.

A gama completa de funções sensoriais do Sense HAT é a seguinte:

  • Umidade: Um sensor STMicro HTS221 com faixa de umidade relativa de 0 a 100%, além de detecção de temperatura de 32°F a 149°F (0°C a 65°C ± 2°C).
  • Pressão barométrica: Um sensor STMicro LPS25HB com faixa de 260 a 1.260 hPa, além de detecção de temperatura de 59°F a 104°F (15°C a 40°C ±0,5°C).
  • Temperatura: Pode ser lida no sensor de umidade ou pressão, ou medida fazendo uma média de ambas as leituras.
  • Giroscópio: O IMU STMicro LSM9DS1 pode medir a rotação do Sense HAT em relação à superfície da Terra (e a rapidez com que ele está girando).
  • Acelerômetro: Outra função do IMU, pode medir a força de aceleração em múltiplas direções.
  • Magnetômetro: Ao detectar o campo magnético da Terra, o IMU pode determinar a direção do norte magnético e, assim, fornecer uma leitura da bússola.
  Como clicar com o botão direito em qualquer Mac usando um trackpad, mouse ou teclado

Agora que você sabe o que este Raspberry Pi HAT multifuncional pode fazer, é hora de começar o projeto.

Etapa 1: monte o Sense HAT

Para conectar o Sense HAT, primeiro certifique-se de que o Raspberry Pi esteja desligado e desconectado da energia. Em seguida, empurre cuidadosamente o Sense HAT (com o extensor de cabeçalho preto fornecido instalado) no conector GPIO de 40 pinos do Raspberry Pi para que a placa Sense HAT fique posicionada sobre a placa Raspberry Pi. Certifique-se de que todos os pinos estejam alinhados corretamente e que ambas as linhas estejam conectadas. Você também pode usar espaçadores aparafusados ​​para ajudar a prendê-lo.

Você pode usar qualquer modelo Raspberry Pi padrão que tenha um cabeçalho GPIO de 40 pinos. Uma das principais limitações do Raspberry Pi 400, entretanto, é que seu conector GPIO está localizado na parte traseira do teclado integrado. Isso significa que o Sense HAT ficará voltado para trás, então você pode usar um cabo de extensão GPIO para conectá-lo.

Etapa 2: configurar o Raspberry Pi

Como em qualquer outro projeto, você deve conectar um teclado e mouse USB e, em seguida, conectar seu Raspberry Pi a um monitor ou TV. Você também deve ter um cartão microSD inserido com o sistema operacional Raspberry Pi padrão – se ainda não fez isso, veja como instalar um sistema operacional em um Raspberry Pi. Você estará então pronto para ligar a energia.

  O que é RAM? Tudo o que você precisa saber

Alternativamente, você pode usar seu Raspberry Pi com Sense HAT no modo headless, sem um monitor conectado e conectar-se ao Raspberry Pi remotamente usando SSH de outro computador ou dispositivo. Se fizer isso, você não poderá usar o IDE Thonny Python, mas ainda poderá editar programas usando o editor de texto nano e executá-los a partir da linha de comando.

O firmware Sense HAT deve ser instalado por padrão. Para verificar novamente, abra uma janela do Terminal e digite:

 sudo apt install sense-hat

Então, se o pacote acabou de ser instalado, reinicie o Raspberry Pi:

 sudo reboot

Etapa 3: comece a programar em Python

Embora você possa usar o Raspberry Pi Sense HAT com a linguagem de programação baseada em blocos Scratch, usaremos Python para ler e exibir as leituras de seus sensores.

O Thonny IDE (ambiente de desenvolvimento integrado) é uma boa maneira de programar Python em um Raspberry Pi, pois possui muitas funcionalidades, incluindo recursos úteis de depuração. Na GUI da área de trabalho do Raspberry Pi OS, vá para Menu (ícone de framboesa no canto superior esquerdo)> Programação> Thonny IDE para iniciá-lo.

Etapa 4: faça uma leitura da temperatura

Na janela principal do IDE Thonny, 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 (que está pré-instalada no Raspberry Pi OS). Isso é então atribuído à variável de sentido. A terceira linha limpa a matriz de LED do Sense HAT.

  Construindo Popovers, Alertas e Toasts com Blueprint UI em React

Em seguida, fazemos a leitura da temperatura e a imprimimos na área Shell do Thonny IDE. Isso está em graus Celsius, então você pode primeiro convertê-lo para Fahrenheit:

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

A leitura do sensor de temperatura terá vários dígitos após o ponto decimal. Portanto, usaremos a função round para arredondar para uma única casa decimal:

 temp = round(temp, 1) 

A função sense.get_temperature() lê o sensor de temperatura embutido no sensor de umidade. Alternativamente, você pode fazer uma leitura de temperatura do sensor de pressão com sense.get_temperature_from_ Pressure() ou até mesmo fazer as duas leituras e calcular uma média (somando-as e dividindo por dois).

Etapa 5: mostrar a temperatura no Sense HAT

Imprimir uma única leitura de temperatura no Python Shell é um pouco enfadonho, então, em vez disso, vamos fazer uma nova leitura regularmente e mostrá-la na matriz de LED RGB do Sense HAT. Para exibir uma mensagem de texto de rolagem, usamos a função show_message. Também usaremos um loop while: True para continuar fazendo uma nova leitura a cada 10 segundos – para o qual usaremos a função sleep da biblioteca time.

Aqui está 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)

Execute este código e você verá cada nova leitura de temperatura rolando pela matriz de LED. Experimente soprar o Sense HAT para ver se a temperatura muda.

As leituras de temperatura podem ser afetadas pelo calor transferido da CPU do Raspberry Pi logo abaixo, portanto, pode ser necessário um ajuste para obter um valor mais preciso. Outra solução é usar um cabeçalho de empilhamento para elevar o Sense HAT acima do Raspberry Pi.

Use um Raspberry Pi para monitorar a temperatura

Embora você possa usar um sensor de temperatura independente para este projeto, o Sense HAT facilita o monitoramento da temperatura com seu Raspberry Pi. Você também pode usá-lo para fazer uma série de outras leituras de sensores, como pressão barométrica e umidade relativa, e exibi-las em sua matriz de LED.