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
Linha 3: Linha 3:


  vi /usr/bin/tempcheck
  vi /usr/bin/tempcheck
<pre>
<pre>
#!/bin/sh
#!/bin/sh
# This script reads the Broadcom SoC temperature value and shuts down if it
# Este script lê o valor da temperatura do SoC Broadcom e desliga se
# exceeds a particular value.
# Exceder um determinado valor.
# 80ºC is the maximum allowed for a Raspberry Pi.
# 80 º C é o máximo permitido para um Raspberry Pi.


# Get the reading from the sensor and strip the non-number parts
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)"
# -gt only deals with whole numbers, so round it.
TEMP="$(printf "%.0f\n" ${SENSOR})"
TEMP="$(printf "%.0f\n" ${SENSOR})"
# How hot will we allow the SoC to get?
# Define temperatura maxima suportada
MAX="78"
MAX="78"


if [ "${TEMP}" -gt "${MAX}" ] ; then
if [ "${TEMP}" -gt "${MAX}" ] ; then
# This will be mailed to root if called from cron
        # Sera enviado um email para o root caso seja executado via cron
echo "${TEMP}ºC is too hot!"
        echo "${TEMP}ºC is too hot!"
# Send a message to syslog
        # Registra um evento no log do sistema
/usr/bin/logger "Shutting down due to SoC temp ${TEMP}."
        /usr/bin/logger "Shutting down due to SoC temp ${TEMP}."
# Halt the box
        # Desliga o hardware
/sbin/shutdown -h now
        rm ${LOCK}
else
        /sbin/shutdown -h now
  exit 0
else
        # Removendo lock
        rm ${LOCK}
        exit 0
fi
fi
</pre>
</pre>


Dê permissão de execução:
Dê permissão de execução:

Edição das 21h20min de 21 de setembro de 2014

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
Cookies nos ajudam a entregar nossos serviços. Ao usar nossos serviços, você concorda com o uso de cookies.