Saya tahu Anda bisa mendapatkan suhu menggunakan alat vcgencmd tapi saya bertanya-tanya apakah ada API yang dapat saya gunakan di C untuk mendapatkan suhu secara pemrograman tanpa membaca stdout dari vcgencmd?
c
temperature
opc0de
sumber
sumber
Jawaban:
Anda dapat membaca file
/sys/class/thermal/thermal_zone0/temp
, seperti yang ditentukan dalam jawaban ini . Ini tentang mengukur dari baris perintah, dan file dibaca dengancat
. Tetapi Anda harus dapat hanya membuka file dalam C. Suhu dikembalikan dalam mili derajat Celcius dan sebagai angka ASCII. Mungkin seperti ini, tidak diuji :)sumber
open()
danread()
sebagai gantinya - tetapi YMMV. Ada juga "libsysfs", tetapi telah ditinggalkan dan devs kernel secara eksplisit mengatakan kepada orang-orang untuk menjauh darinya.Seperti @Frepa katakan, sekarang ada driver thermal kernel untuk RaspberryPi jadi cara termudah adalah menggunakannya. Sejauh yang saya tahu, itu bukan cara
vgencmd
kerjanya. Itu bisa membaca suhu bahkan sebelum driver kernel termal ada. Itu menggunakan mekanisme komunikasi khusus yang tersedia di RaspberryPi yang dipanggilmailbox
untuk berkomunikasi dengan VideoCore OS yang berjalan pada GPU. Itu sebagian didokumentasikan di sini .sumber