Sé que puede obtener la temperatura usando la herramienta vcgencmd, pero me preguntaba si hay alguna API que pueda usar en C para obtener la temperatura mediante programación sin leer el estándar de vcgencmd.
c
temperature
opc0de
fuente
fuente
Respuestas:
Puede leer el archivo
/sys/class/thermal/thermal_zone0/temp
, como se especifica en esta respuesta . Ahí se trata de medir desde la línea de comando, y el archivo se lee concat
. Pero debería poder abrir el archivo en C. La temperatura se devuelve en miligramos centígrados y como números ASCII. Quizás así, no probado :)fuente
open()
y en suread()
lugar, pero YMMV. También hay un "libsysfs", pero ha sido abandonado y los desarrolladores del núcleo han dicho explícitamente a la gente que se mantenga alejado de él.Como dijo @Frepa, ahora hay un controlador térmico del núcleo para RaspberryPi, por lo que la forma más fácil es usarlo. Hasta donde sé,
vgencmd
sin embargo , esa no es la forma en que funciona. Fue capaz de leer la temperatura incluso antes de que existiera el controlador térmico del núcleo. Está utilizando un mecanismo de comunicación especial disponible en RaspberryPi llamadomailbox
para comunicarse con VideoCore OS que se ejecuta en GPU. Está parcialmente documentado aquí .fuente