Medir la temperatura en una Raspberry Pi

Uno de los principales problemas de los «ordenadores» del estilo Raspberry Pi es la falta de refrigeración que puede hacer que su temperatura se dispare. El objetivo principal de este artículo es ver de forma simple cómo podemos medir la temperatura en una Raspberry Pi, mediante dos comandos muy simples al alcance de todo el mundo.

A pesar de que es un tema extremadamente importante, muchas veces tan solo queremos nuestra Raspberry para alojar ficheros, o para guardar nuestras películas y no pensamos en este tipo de cosas. Pero tenemos que tener en cuenta que, a parte de temas de seguridad, a mayor temperatura, menos rendimiento de la CPU. Y a nadie le gusta que su dispositivo funcione lento, ¿verdad?

¿Se puede medir la temperatura de una Raspberry Pi?

¡Sí! 🙂

Incluso si no tenemos interfaz gráfica sino que accedemos a nuestra Raspberry por SSH, también es posible medir a qué temperatura está operando nuestra Raspberry Pi.

Es importante destacar que los componentes que más sufren por temperatura en una Raspberry Pi son el procesador (CPU), y el controlador gráfico (GPU). Para conocer su temperatura, basta con usar dos comandos que se pueden ejecutar de forma nativa en el Sistema Operativo de la Raspberry:

  • Temperatura de la CPU: cat /sys/class/thermal/thermal_zone0/temp
  • Temperatura de la GPU: vcgencmd measure_temp

Si ejecutamos ambos comandos, vemos que nos sacará valores por consola:

Se muestra por consola el valor de temperatura en una Raspberry Pi
42.3ºC en la CPU y 42.0ºC en la GPU

El valor que devuelve el primer comando, para la CPU, debemos dividirlo entre 1000. En mi caso vemos que la CPU de mi Raspberry, en este momento, es de 42.3ºC.

Por otra parte, el segundo comando ya nos devuelve la temperatura de la GPU directamente en Celsius, y en mi caso está sobre los 42ºC.

De esta forma podemos saber si nuestra placa se está calentando demasiado, por si fuera necesario añadir un ventilador. O en el caso de que ya tengamos un ventilador, quizá no sea lo suficientemente potente como para mantener la placa a buena temperatura.

Dichosos comandos … se me olvidan

Ahora bien, personalmente siempre olvido estos comandos y termino escribiendo algo mal. Y al final tengo que ir navegando con la tecla «Flecha Arriba» del teclado por los últimos comandos introducidos en la consola hasta llegar a ellos. Y la verdad, no es nada agradable cuando has estado horas (o días) trabajando en algún tema que ha requerido un usdo intensivo de la consola … ya podéis imaginar la cantidad de comandos que hemos escrito en la consola.

¿Alguna forma de simplificar esto? Por supuesto! Una de las mil cosas que podemos hacer es crear un script ejecutable que tenga dentro estas instrucciones, y así no tenemos que recordarlas todo el tiempo 🙂

En primer lugar, navegamos al Home de nuestro usuario:

Después, creamos un fichero con extensión .sh con el editor de texto que prefiramos. En mi caso, voy a utilizar nano:

Una vez abierto el editor, vamos a usar el siguiente código para guardar en variables los valores que nos interesan, y después imprimirlos con la instrucción echo. Incluimos algo de formato para que sea más legible. ¡Ah! Sin olvidar la cabecera en el fichero para que pueda ser ejecutable:

Ya sólo nos queda guardar el fichero, que dependerá del editor de texto que estáis usando. En el caso de nano, vamos a hacer Control+O (Guardar) + Enter para confirmar, y después Control+X (Salir).

Si todo ha ido bien, ya tendremos nuestro script temperatura.sh creado correctamente. Podemos comprobar que el fichero existe a través del comando ls, que nos mostrará todos los archivos del directorio.

Por último, ya sólo nos faltan dos pasos. El primero es marcar el script como ejecutable, y para ello ejecutamos esta instrucción:

De esta forma ya podemos ejecutar nuestro script con la instrucción:

El script muestra por consola los valores de temperatura en una Raspberry Pi
Temperatura de nuestra Pi usando el script ejecutable que acabamos de crear

Como apunte, tan solo recordar que temperatura.sh es un script que está en la carpeta Home del usuario (pi en mi caso). Si nos encontramos en otra carpeta y ejecutamos el comando ./temperatura.sh, nos va a decir que no se encuentra el fichero ya que no estamos en la carpeta Home. Para no estar escribiendo el path completo, podemos incluir nuestro script en la zona de scripts ejecutables del usuario. Esto se hace a través de enlaces simbólicos de Linux con la siguiente instrucción:

Y de esta forma ya podemos ejecutar temperatura.sh sin importar en qué carpeta estemos, para medir la temperatura en una Raspberry Pi y saber si debemos añadir algún tipo de refrigeración para que la CPU y GPU no se calienten en exceso.