Contents

Como utilizar um Raspberry Pi para monitorizar as temperaturas com um Sense HAT

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

O que é o Sense HAT?

/pt/images/sense-hat-angle.jpg 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 um Sense HAT têm sido utilizados em experiências científicas concebidas por alunos que entraram no desafio contínuo Astro Pi Estas duas unidades foram entretanto substituídas por versões actualizadas baseadas num Raspberry Pi 4 e equipadas com uma câmara de alta qualidade.

/pt/images/astro-pi.jpg Crédito da imagem: Raspberry Pi

A placa Sense HAT, embora não possua o invólucro prateado exclusivo destinado à utilização extraterrestre, mantém capacidades funcionais idênticas quando emparelhada com qualquer modelo Raspberry Pi com uma interface GPIO de 40 pinos. Este dispositivo versátil possui uma variedade de sensores integrados que permitem uma monitorização abrangente do ambiente circundante, bem como a deteção da sua própria orientação e movimento. Além disso, está equipado com uma matriz de LED RGB 8x8 que facilita a apresentação visual de informações como texto, figuras e imagens. Além disso, o design inclui um joystick compacto de cinco posições.

A gama completa de funcionalidades do Sense HAT, que estão relacionadas com a deteção e perceção, pode ser resumida da seguinte forma:

O dispositivo utiliza um sensor STMicro HTS221 capaz de medir tanto a humidade relativa como a temperatura num intervalo de 0-100% de humidade relativa e de 32°F a 149°F (0°C a 65°C ± 2°C) para a temperatura.

O barómetro LPS25HB da STMicro está equipado com uma gama de medição que vai de 260 a 1260 hPa e tem a capacidade de detetar a temperatura numa gama de 59°F a 104°F (15°C a 40°C com uma precisão de \+/-0,5°C).

A temperatura pode ser obtida através da leitura de um sensor de humidade ou de pressão ou, em alternativa, pode ser calculada tomando o valor médio de ambas as leituras.

A IMU STMicro LSM9DS1, integrada no Sense HAT do Raspberry Pi, possui a capacidade de medir a orientação e a velocidade angular do dispositivo em relação ao plano terrestre, bem como a sua taxa de rotação.

O acelerómetro é um componente da Unidade de Medida Inercial (IMU) capaz de medir forças de aceleração em várias direcções.

O magnetómetro da unidade de medição por inércia (IMU) é capaz de detetar o campo magnético da Terra, o que lhe permite determinar a orientação do norte magnético e, consequentemente, fornecer uma leitura da bússola.

Com uma compreensão abrangente das capacidades e potenciais aplicações do versátil Raspberry Pi HAT, é agora apropriado iniciar o processo de implementação para os seus respectivos projectos.

Passo 1: Montar o Sense HAT

Para fixar corretamente o Sense HAT a um Raspberry Pi, certifique-se de que este está desligado e desconectado de qualquer fonte de eletricidade. Em seguida, insira cuidadosamente o Sense HAT, completo com o extensor de cabeçalho preto incluído, no cabeçalho GPIO de 40 pinos do Raspberry Pi. Certifique-se de que o Sense HAT está alinhado corretamente no topo do Raspberry Pi, com todas as ligações entre as duas placas a serem feitas. Para maior segurança, pode utilizar suportes aparafusados.

/pt/images/raspberry-pi-sense-hat-mount.jpg

É possível utilizar qualquer modelo convencional de Raspberry Pi com um conetor de entrada/saída de uso geral (GPIO) de 40 pinos para o projeto. No entanto, uma limitação significativa associada ao modelo Raspberry Pi 400 é o facto de o seu conetor GPIO estar situado na parte de trás, adjacente ao teclado integrado. Consequentemente, o Sense HAT será posicionado na direção oposta durante o funcionamento. Para resolver este problema, recomenda-se a utilização de um cabo de extensão para estabelecer a ligação entre o cabeçalho GPIO e o Sense HAT.

Passo 2: Configurar o Raspberry Pi

Para começar a utilizar o seu Raspberry Pi, siga estes passos:1. Ligue um teclado e um rato USB ao dispositivo.2. Ligue o Raspberry Pi a um ecrã ou a um televisor.3. Insira um cartão microSD que contenha o sistema operativo Raspberry Pi predefinido na ranhura do dispositivo. Se ainda não o tiver feito, consulte as instruções para instalar um sistema operativo num Raspberry Pi.4. Ligue o Raspberry Pi fornecendo eletricidade à sua fonte de alimentação.

Em alternativa, é possível utilizar o Raspberry Pi integrado com o Sense HAT num ambiente sem monitor, estabelecendo o acesso remoto através de uma ligação Secure Shell (SSH) a partir de um dispositivo informático ou gadget adicional.Nesse cenário, o utilizador não terá a capacidade de utilizar o Ambiente de Desenvolvimento Integrado (IDE) Thonny Python, mas é capaz de editar ficheiros utilizando o editor de texto nano e executar programas através dos comandos do terminal.

Para verificar se o firmware Sense HAT está pré-instalado no seu Raspberry Pi, pode abrir uma aplicação de emulador de terminal como o “Terminal” ou “xterm” no menu Aplicações no Lubuntu e, em seguida, digitar o comando “sudo dmesg | grep sensehat”. Se não aparecer nenhum resultado, significa que o firmware foi instalado com êxito. No entanto, se aparecer alguma mensagem de erro, poderá ser necessário instalar manualmente o firmware utilizando as instruções fornecidas anteriormente nesta secção.

 sudo apt install sense-hat

Se o pacote foi recentemente instalado no seu Raspberry Pi, recomenda-se que execute um reinício do sistema para garantir que todas as alterações necessárias são corretamente implementadas e configuradas.

 sudo reboot

Passo 3: Comece a programar em Python

É possível utilizar o Raspberry Pi Sense HAT em conjunto com o Scratch para programação baseada em blocos; no entanto, utilizaremos Python como o nosso método preferido para interpretar e exibir os dados recolhidos pelos seus sensores.

A utilização do Ambiente de Desenvolvimento Integrado (IDE) Thonny representa um método eficiente para executar tarefas de programação baseadas em Python num Raspberry Pi, dada a sua gama abrangente de funcionalidades e ferramentas de depuração vantajosas. Para aceder ao Thonny IDE na interface gráfica do utilizador (GUI) do ambiente de trabalho do Raspberry Pi OS, navegue até ao canto superior esquerdo do ecrã e seleccione ‘Menu’, seguido de ‘Programação’ e, finalmente, ‘Thonny IDE’.

/pt/images/thonny-ide-hello-world.jpg

Passo 4: Efetuar uma leitura da temperatura

Na janela principal do Ambiente de Desenvolvimento Integrado (IDE) Thonny, insira o seguinte código no editor de programas:

from sense_hat import SenseHat

sense = SenseHat()
sense.clear()

temp = sense.get_temperature()
print(temp) 

As linhas iniciais do código importam e atribuem a classe SenseHat da biblioteca Python sense\_hat, que está pré-instalada no Raspberry Pi OS. Posteriormente, a matriz de LEDs do SenseHat é limpa usando as instruções fornecidas.

Obtemos subsequentemente a medição da temperatura e apresentamo-la na interface Shell do Ambiente de Desenvolvimento Integrado Thonny. Este valor é expresso em graus Celsius; por isso, pode ser vantajoso convertê-lo inicialmente para Fahrenheit para uma maior facilidade de interpretação:

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

Para garantir que a leitura do sensor de temperatura tem uma representação exacta com uma única casa decimal, utilizaremos a função round() para truncar quaisquer casas decimais em excesso presentes no valor.Esta abordagem permite uma medição exacta da temperatura e elimina a precisão desnecessária.

 temp = round(temp, 1) 

A função sense.get_temperature() recupera os dados de temperatura obtidos a partir do sensor de temperatura integrado no sensor de humidade. Como opção alternativa, é possível utilizar o método sense.get_temperature_from_pressure() para obter leituras de temperatura com base em medições efectuadas a partir do sensor de pressão. Além disso, é possível obter simultaneamente leituras de temperatura de ambos os sensores e calcular o seu valor médio calculando a média dos respectivos valores e dividindo depois por dois.

Passo 5: Mostrar a temperatura no Sense HAT

De facto, a apresentação de um fluxo contínuo de dados em tempo real pode ser bastante cativante. Neste caso, vamos apresentar uma visualização dinâmica actualizando periodicamente o valor da temperatura atual na matriz de LED RGB do Sense HAT utilizando a função show\_message(). Além disso, utilizaremos um loop while com a instrução “while True” para obter repetidamente uma nova medição de temperatura a intervalos regulares de dez segundos através da utilização da função sleep() derivada 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) 

Ao executar este código, será apresentado um fluxo contínuo de leituras de temperatura na matriz LED em tempo real. Para experimentar a sua capacidade de resposta, basta expirar suavemente sobre o Sense HAT para observar quaisquer flutuações de temperatura que possam ocorrer como resultado.

/pt/images/raspberry-pi-sense-hat-temperature.jpg

Poderá ser necessário efetuar ajustes às leituras de temperatura obtidas através do Sense HAT, uma vez que estas podem ser influenciadas pela transferência de calor da unidade central de processamento da Raspberry Pi, localizada diretamente por baixo. Para obter maior precisão nessas medições, uma abordagem possível envolveria o uso de um cabeçalho de empilhamento para elevar o Sense HAT mais longe do Raspberry Pi.

Utilizar um Raspberry Pi para monitorizar a temperatura

A utilização de um termómetro independente é viável para esta tarefa; no entanto, o Sense HAT simplifica a monitorização da temperatura através da integração com o Raspberry Pi. Além disso, permite a recolha de dados relativos a vários factores ambientais, incluindo a pressão atmosférica e a humidade relativa, ao mesmo tempo que apresenta estas medições no seu conjunto de LEDs individualmente endereçáveis.