Raspberry Pi - Controlando a temperatura do Raspberry Pi: mudanças entre as edições
De Área31 Hackerspace
Sem resumo de edição |
Sem resumo de edição |
||
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada) | |||
Linha 3: | Linha 3: | ||
vi /usr/bin/tempcheck | vi /usr/bin/tempcheck | ||
<pre> | <pre> | ||
#!/bin/sh | #!/bin/sh | ||
# | # Este script lê o valor da temperatura do SoC Broadcom e desliga se | ||
# | # Exceder um determinado valor. | ||
# | # 80 º C é o máximo permitido para um Raspberry Pi. | ||
LOCK="/tmp/tempcheck.lock" | |||
if [ -e ${LOCK} ]; then | |||
echo -e "Falha de checagem de temperatura do SoC. Outro processo encontra-se em execucao:\n\n" | |||
exit 1 | |||
fi | |||
##################################### | |||
# criando LOCK | |||
touch ${LOCK} | |||
# | # Transforma o valor lido em numero inteiro | ||
SENSOR="$(vcgencmd measure_temp | cut -d "=" -f2 | cut -d "'" -f1 | cut -d '.' -f1)" | SENSOR="$(vcgencmd measure_temp | cut -d "=" -f2 | cut -d "'" -f1 | cut -d '.' -f1)" | ||
TEMP="$(printf "%.0f\n" ${SENSOR})" | TEMP="$(printf "%.0f\n" ${SENSOR})" | ||
# | # Define temperatura maxima suportada | ||
MAX="78" | MAX="78" | ||
if [ "${TEMP}" -gt "${MAX}" ] ; then | if [ "${TEMP}" -gt "${MAX}" ] ; then | ||
# Sera enviado um email para o root caso seja executado via cron | |||
echo "${TEMP}ºC is too hot!" | |||
# Registra um evento no log do sistema | |||
/usr/bin/logger "Shutting down due to SoC temp ${TEMP}." | |||
# Desliga o hardware | |||
rm ${LOCK} | |||
/sbin/shutdown -h now | |||
else | |||
# Removendo lock | |||
rm ${LOCK} | |||
exit 0 | |||
fi | fi | ||
</pre> | </pre> | ||
Dê permissão de execução: | Dê permissão de execução: | ||
Linha 37: | Linha 49: | ||
[[Categoria:Embarcados]] | |||
[[Categoria:HardwareOpensource]] | [[Categoria:HardwareOpensource]] | ||
[[Categoria:SoftwareOpensource]] | [[Categoria:SoftwareOpensource]] | ||
[[Categoria:Linux]] | [[Categoria:Linux]] | ||
[[Categoria:KnowledgeBase]] | [[Categoria:KnowledgeBase]] |
Edição atual tal como às 20h26min de 14 de agosto de 2015
Controlando a temperatura do Raspberry Pi
Por questões de segurança, adicione um script que irá verificar a temperatura a cada 5 minutos e desligar o Raspberry Pi caso exceda 78ºC.
vi /usr/bin/tempcheck
#!/bin/sh # Este script lê o valor da temperatura do SoC Broadcom e desliga se # Exceder um determinado valor. # 80 º C é o máximo permitido para um Raspberry Pi. LOCK="/tmp/tempcheck.lock" if [ -e ${LOCK} ]; then echo -e "Falha de checagem de temperatura do SoC. Outro processo encontra-se em execucao:\n\n" exit 1 fi ##################################### # criando LOCK touch ${LOCK} # Transforma o valor lido em numero inteiro SENSOR="$(vcgencmd measure_temp | cut -d "=" -f2 | cut -d "'" -f1 | cut -d '.' -f1)" TEMP="$(printf "%.0f\n" ${SENSOR})" # Define temperatura maxima suportada MAX="78" if [ "${TEMP}" -gt "${MAX}" ] ; then # Sera enviado um email para o root caso seja executado via cron echo "${TEMP}ºC is too hot!" # Registra um evento no log do sistema /usr/bin/logger "Shutting down due to SoC temp ${TEMP}." # Desliga o hardware rm ${LOCK} /sbin/shutdown -h now else # Removendo lock rm ${LOCK} exit 0 fi
Dê permissão de execução:
chmod +x /usr/bin/tempcheck
Configure o Crontab para executar o script a cada 5 minutos:
*/5 * * * * /usr/bin/tempcheck