Monitor de temperatura Raspberry Pi

Raspberry Pi Temperature Monitor



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.



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



$vcgencmd measure_temp

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





Como você pode ver, cada vez que executo o comando, o valor de temperatura é diferente.



Analisando os dados de temperatura:

Os dados de temperatura que obtemos do vcgencmd o 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 -ou '[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:

$nanoprint_temp.sh

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

Na linha 5, usei jogou fora 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 , podemos escrever facilmente um script de monitoramento de temperatura para Raspberry Pi. O script de monitoramento de temperatura imprimirá o carimbo de data / hora 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:

$tocartempmon.sh

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

$nanotempmon.sh

Agora, digite as seguintes linhas de código e salve o arquivo com + x e então pressione e 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 encontro comando no carimbo de data / hora variável.

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

Na linha 12, usei o comando sleep 1 para reter 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 captura de tela 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 ao / usr / bin diretório, execute o seguinte comando:

$sudo cptempmon.sh/usr/sou/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 converter facilmente 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. Então, você tem que 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:

$sudoaptoinstalar ac

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 para Fahrenheit de Celsius com ac .

Edite o tempmon.sh script com o seguinte comando:

$nanotempmon.sh

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

Aqui, na linha 4, imprimi TEMP (F) ao invés 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 em unidades Fahrenheit.

Então é assim que você monitora a temperatura no Raspberry Pi. Obrigado por ler este artigo.