C# Raspberry rilevare la temperatura della CPU

Articolo che illustra una tecnica di utilizzo delle classi per la gestione hardware.

il
Sviluppatore Microsoft .Net, Collaboratore di IProgrammatori

In questo articolo, vedremo come rilevare la temperatura della CPU di una scheda Raspberry PI 4, utilizzando la tecnologia .Net 7 con il linguaggio di programmazione C#.
Può capitare di verificare di volta in volta la temperatura del processore della scheda Raspberry per vari motivi, in questo articolo verrà illustrata tale tecnica che visualizzerà a video ogni tot secondi alcune informazioni sulla temperatura, il tutto come mostrato in figura 1.

Figura 1 – le informazioni sulla temperatura

Figura 1 – le informazioni sulla temperatura

Creazione del progetto

Si crea un nuovo progetto di tipo “app Console”, destinato a tutte le piattaforme (Windows, Linux e  MacOS) il quale applicativo eseguibile può girare anche su schede Raspberry, purché sia installato il framework .Net 7, dopo aver selezionato il modello, fare click sul pulsante “Avanti”, impostare un nome al progetto, e fare di nuovo click sul pulsante “Avanti”, nella finestra  successiva, selezionare l’ultima versione del Framework, nel nostro caso la versione “.Net 7 (Supporto a termine Standard)” a questo punto fate click sul pulsante “Crea”.
Una volta creato il progetto, che ricordiamo non ha interfaccia grafica, occorre aggiungere al progetto il riferimento alla libreria “Iot.Device.Bindings” tramite Nuget,  il tutto come mostrato in figura 2.

Figura 2 – L’aggiunta del pacchetto Iot.Device.Bindings

Figura 2 – L’aggiunta del pacchetto Iot.Device.Bindings

A questo punto la creazione e configurazione del progetto è terminata, non resta che scrivere il codice per rilevare la temperatura.

Stesura del codice

Il progetto non ha interfaccia grafica, quindi visualizzerà nel prompt del terminale le informazioni del processore.
In alto, sopra ad ogni dichiarazione, dobbiamo aggiungere lo spazio dei nomi per la gestione della temperatura, in modo che possiamo utilizzare le varie classi per rilevare le informazioni.
Di seguito si riporta il frammento di codice delle suddette operazioni.

C#
using System;
using Iot.Device.CpuTemperature;

Si crea un oggetto di tipo “CpuTemperature” con il quale tramite le varie proprietà possiamo ottenere le informazioni sulla CPU.
Una volta creato tale oggetto verrà eseguito un ciclo ogni 5 secondi in modo da visualizzare a video le informazioni della temperatura del processore.
Di seguito si riporta il codice delle suddette operazioni.

C#
Console.WriteLine("Esecuzione programma per temperatura CPU");
CpuTemperature temperaturaCPU = new CpuTemperature();
while (true)
{
    if (temperaturaCPU.IsAvailable)
    {
       Console.WriteLine("La temperatura in Kelvins è: " + temperaturaCPU.Temperature.Kelvins);
       Console.WriteLine("La temperatura in Celsius è: " + temperaturaCPU.Temperature.DegreesCelsius);
       Console.WriteLine("La temperatura in DegreesFahrenheit è: " + temperaturaCPU.Temperature.DegreesFahrenheit);
       Console.WriteLine("La temperatura in Dimensions è: " + temperaturaCPU.Temperature.Dimensions.Temperature);
       Console.WriteLine("Nome: " + temperaturaCPU.Temperature.QuantityInfo.Name);
       Thread.Sleep(5000);
   }
}

Ora non resta che eseguire il nostro progetto nella scheda Raspberry per rilevare la temperatura.


Conclusioni

Le ultime versioni del Framework .Net, in particolare la 7 e la 6, hanno portato notevole migliorie e soprattutto la possibilità di scrivere codice su vari ambienti, tra cui scenari come l’internet delle cose (IOT).
Questo articolo ha illustrato una tecnica di come rilevare alcune informazioni della scheda Raspberry, in particolare della CPU, che con poche righe di codice e con le classi messe a disposizione del Framework risulta tutto molto più semplice.
Per chi ha sviluppato applicazioni di tipo “Windows Forms” troverà in maniera molto semplice la creazione di applicazioni anche per scenari come questi.
Presso il sito Kubii, qui https://www.kubii.com/it/ , è possibile visionare ed acquistare sensori e schede di questa famosa scheda open source.