Raspberry Pi

Monitor de temperatura Raspberry Pi

Monitor de temperatura Raspberry Pi
Raspberry Pi é um poderoso computador de placa única (SBC). Ele pode ser usado para fazer muitas tarefas sofisticadas. Mas isso aumentará a temperatura do processador dos dispositivos Raspberry Pi. O que não é bom. O desempenho do Raspberry Pi SBC sofrerá com a temperatura. Isso também é conhecido como estrangulamento térmico.

Se a temperatura do processador do seu Raspberry Pi estiver acima de 80 graus Celsius, você verá um ícone de termômetro no canto superior direito da tela. Oficialmente, a Raspberry Pi Foundation recomenda que a temperatura do seu dispositivo Raspberry Pi esteja abaixo de 85 graus Celsius para que funcione corretamente. Esse é o limite máximo. Mas começaria a diminuir a 82 graus Celsius.

Neste artigo, vou mostrar como monitorar a temperatura do seu Raspberry Pi. Usarei o sistema operacional Raspbian no meu dispositivo Raspberry Pi 3 Modelo B. Mas deve funcionar em qualquer Raspberry Pi SBC com o sistema operacional Raspbian instalado.

Medindo a temperatura do Raspberry Pi SBC:

Você pode medir a temperatura central do seu dispositivo Raspberry Pi com o seguinte comando:

$ vcgencmd measure_temp

A temperatura central atual é 48.3 graus Celsius como você pode ver na seção marcada da imagem abaixo.

Como você pode ver, cada vez que eu executo o comando mostra diferentes valores de temperatura.

Analisando os dados de temperatura:

Os dados de temperatura que obtemos do vcgencmd comando é uma string. Você não pode realizar nenhum cálculo nele. Podemos facilmente usar a expressão regular para extrair apenas os dados de temperatura e realizar qualquer tipo de cálculo sobre eles.

Se você quiser usar os dados de temperatura em um script de shell Bash, poderá extrair os dados de temperatura com egrep comando da seguinte forma:

$ vcgencmd measure_temp | egrep -o '[0-9] * \.[0-9] * '

Como você pode ver, apenas os dados de temperatura são impressos. Não há nada antes ou depois disso.

Você pode usá-lo em seu script de shell (digamos print_temp.sh) do seguinte modo:

$ nano print_temp.sh

Aqui, na linha 3, eu defino o temp variável para os dados de temperatura analisados ​​que obtenho do vcgencmd e grep comando.

Na linha 5, usei eco para imprimir o conteúdo do temp variável na tela.

A linha 1 é usada para informar ao Linux que o script deve ser executado com / bin / bash por padrão.

Agora, torne o script executável com o seguinte comando:

$ chmod + x print_temp.sh

Agora, execute o script da seguinte maneira:

$ ./ print_temp.sh

Como você pode ver, a saída desejada é impressa na tela.

Escrevendo um script de monitoramento de temperatura do Raspberry Pi:

Agora que podemos analisar os dados de temperatura que obtemos do vcgencmd comando, podemos escrever facilmente um script de monitoramento de temperatura para Raspberry Pi. O script de monitoramento de temperatura imprimirá o timestamp atual e a temperatura central a cada segundo na tela de uma forma bem formatada.

Primeiro, crie um novo script tempmon.sh com o seguinte comando:

$ touch tempmon.sh

Agora, edite o tempmon.sh script com o seguinte comando:

$ nano tempmon.sh

Agora, digite as seguintes linhas de código e salve o arquivo com + x e então pressione y seguido pela .

Aqui, na linha 4, printf é usado para imprimir as strings TIMESTAMP e TEMP (degC) como coluna de largura fixa.

Na linha 5, usei printf novamente para imprimir uma linha tracejada apenas para tornar a saída mais legível e atraente.

Na linha 7-13, executei um loop infinito para imprimir os dados de temperatura a cada segundo.

Na linha 9, armazenei os dados de temperatura analisados ​​no temp variável.

Na linha 10, armazenei os dados de carimbo de data / hora que obtive do data comando no carimbo de data / hora variável.

Na linha 11, imprimi a data e hora em formato de carimbo de data / hora e os dados de temperatura em formato de coluna de largura fixa.

Na linha 12, usei o comando sleep 1 para segurar a execução do script por um segundo. Depois, o loop continuará.

Agora, faça o script tempmon.sh executável com o seguinte comando:

$ chmod + x tempmon.sh

Finalmente, execute o script tempmon.sh com o seguinte comando:

$ ./ tempmon.sh

Como você pode ver, o script do monitor de temperatura está funcionando perfeitamente. Ele está imprimindo os dados de temperatura a cada segundo.

Como você pode ver, conforme eu aumentava a carga do sistema, a temperatura aumentou ligeiramente.

Se você quiser parar o script de monitoramento de temperatura, pressione + c. O monitoramento de temperatura não está mais funcionando como você pode ver na imagem abaixo.

Agora que o script de monitoramento de temperatura está funcionando, vamos copiá-lo para / usr / bin diretório. Dessa forma, você pode executá-lo como qualquer outro comando do Linux.

Para copiar o script tempmon.sh para o / usr / bin diretório, execute o seguinte comando:

$ sudo cp tempmon.sh / usr / bin / tempmon

Como você pode ver, posso executar o script de monitoramento de temperatura da mesma forma que executo comandos Linux padrão.

Modificando tempmon para impressão de dados de temperatura em Fahrenheit:

Você pode facilmente converter os dados de temperatura de Celsius para Fahrenheit.

A fórmula amplamente conhecida para calcular temperaturas em Fahrenheit a partir de Celsius é,

F = (9/5) * C + 32
Ou
F = 1.8 * C + 32

Mas o problema é que o bash shell não tem funções necessárias para realizar cálculos de ponto flutuante. Portanto, você precisa contar com alguns outros programas, como ac.

ac não está instalado no Raspbian por padrão. Mas você pode instalá-lo facilmente com o seguinte comando:

$ sudo apt install bc

ac deve ser instalado.

Agora, você tem que modificar o script de monitoramento de temperatura e fazer os cálculos necessários para converter a temperatura de Celsius para Fahrenheit com ac.

Edite o tempmon.sh script com o seguinte comando:

$ nano tempmon.sh

Agora, faça as modificações marcadas na imagem abaixo.

Aqui, na linha 4, imprimi TEMP (F) em vez de TEMP (degC).

Na linha 9, mudei a variável de temp para tempC.

Na linha 10, adicionei o resultado da conversão de Celsius para Fahrenheit em uma variável tempF.

Por fim, imprimi o valor de tempF variável em vez de temp na linha 12.

Agora, execute o script da seguinte maneira:

$ ./ tempmon

Como você pode ver, a temperatura é impressa na unidade Fahrenheit.

É assim que você monitora a temperatura no Raspberry Pi. Obrigado por ler este artigo.

Como mostrar a sobreposição de OSD em aplicativos e jogos Linux em tela cheia
Jogar jogos em tela cheia ou usar aplicativos em modo de tela cheia sem distração pode cortar você das informações relevantes do sistema visíveis em u...
Top 5 cartas de captura de jogos
Todos nós vimos e amamos streaming de jogos no YouTube. PewDiePie, Jakesepticye e Markiplier são apenas alguns dos melhores jogadores que ganharam mil...
Como desenvolver um jogo no Linux
Uma década atrás, poucos usuários de Linux preveriam que seu sistema operacional favorito um dia seria uma plataforma de jogos popular para videogames...