We zijn er weer! Volg ons herbouwproces na de brand op onze blog (updated 20/09).

De temperatuur meten van je Raspberry Pi

Geplaatst door Lisanne 10-07-2019 1 Reactie(s)

Meet de temperatuur van je Raspberry Pi
De Raspberry Pi is een krachtige Single Board Computer (SBC). Hij kan gebruikt worden voor een heleboel doeleinden, maar hierdoor verhoogt de temperatuur van de processor, waar de performance onder lijdt.
Als de temperatuur op jouw Raspberry Pi boven de 80 graden Celsius is zal je een thermometer icoontje zien bovenaan het scherm. Officieel beveelt de Raspberry Pi Foundation je aan om de temperatuur onder de 85 graden te houden om hem goed te laten draaien. Maar de performance begint al te lijden bij 82 graden.
In dit artikel gaan we het hebben over hoe je een oogje op de temperatuur van je Pi kan houden. Hierbij gebruiken we Raspbian op een Raspberry Pi 3 Model B, maar dit zou met elke Raspberry Pi moeten werken met Raspbian.

Het meten van de Temperatuur van een Raspberry Pi
Je kan de core temperatuur van je Raspberry Pi meten met het volgende commando:

$ vcgencmd measure_temp

De huidige core temperatuur is 48.3 graden Celsius, zoals je kan zien op het plaatje beneden.


Zoals je kan zien, elke keer als we het commando uitvoeren laat deze verschillende temperatuurwaarden zien.

Ontleed de temperatuur data
De data die we krijgen van het vcgencmd command is een tekenreeks. Je kan hier geen berekeningen op maken. Om dit wel te kunnen maken we gebruik van 'regular expressions' om alleen temperatuur data te verkrijgen waar we elke berekening mee kunnen doen. Als je temperatuur data in een Bash shell script wilt gebruiken kan je de temperatuur verkrijgen met egrep commando:

Zoals je kan zien is alleen de temperatuurdata geprint. Niets ervoor of erna.



Je kan het gebruiken op je shell script (zoals bijvoorbeeld print_temp.sh):
$ nano print_temp.sh


Hier, op lijn 3 is de temp variabele gezet op de ontleedde temperatuur data die verkregen is van de vcgencmd en grep commando.
Op lijn 5 is echo gebruikt om de inhoud van de temp variabele te printen.
Lijn 1 is gebruikt om Linux te vertellen dat het script moet worden uitgevoerd met /bin/bash als default.

Maak het script uitvoerbaar met het volgende commando:
$ chmod +x print_temp.sh



Voer het script uit:
$ ./print_temp.sh

Zoals je kan zien is de gewenste uitvoer nu op het scherm zichtbaar.

Het schrijven van een Raspberry Pi temperatuur monitoring script:
Nu dat we de temperatuur data kunnen ontleden via het vcgencmd commando kunnen we makkelijk een temperatuur monitoring script voor de Raspberry Pi schrijven. Dit script zal elke seconde de huidige tijd en core temperatuur vertonen in een mooie, geformatteerde manier.

Als eerste maak je een nieuw script tempmon.sh met het volgende commando:
$ touch tempmon.sh

Pas het tempmon.dh script aan met de volgende commando:
$ nano tempmon.sh


Typ de volgende lijnen code en sla het bestand op met <Ctrl> + x en druk daarna op y en daarna <Enter>.


Hier, op lijn 4 is printf gebruikt om de TIMESTAMP en TEMP (degC) strings te printen als vaste breedte colom.
Op lijn 5 is printf opnieuw gebruikt om een spatielijn toe te voegen om de uitvoer leesbaarder te maken.
Op lijn 7-13 is een 'infinite loop' geprint om de temperatuur data elke seconde te vertonen.
Op lijn 9 is de ontleedde temperatuur data opgeslagen op de temp variabele.
Op lijn 10 is de timestamp data die verkregen is via het date commando opgeslagen op de timestamp variabele.
Op lijn 11 is de datum en tijd in timestamp formaat en de temperatuur data in vaste breedte colom geprint.
Op lijn 12 is het sleep 1 commando gebruikt om de uitvoering van het script 1 seconde te laten wachten. Daarna gaat de loop verder.

Maak het script tempmon.sh uitvoerbaar met het volgende commando:
$ chmod +x tempmon.sh

Als laatste voer je het script tempmon.sh uit met het volgende commando:
$ ./tempmon.sh

Zoals je kan zien werkt het temperatuur monitor script nu perfect. Hij print de temperatuur data elke seconde.


Als de systeembelasting hoger wordt zal de temperatuur stijgen.


Als je het script wilt stoppen druk je op <Ctrl> + c.

Nu dit script werkt gaan we het kopiëren naar /usr/bin waardoor deze kan worden gebruikt als elk andere Linux commando.
Om het tempmon.sh script te kopiëren naar de /usr/bin moet je het volgende commando uitvoeren:

$ sudo cp tempmon.sh /usr/bin/tempmon


Nu kan je het temperatuur monitoring script gebruiken op de zelfde manier als andere Linux commandos.

 

1 Reactie(s)

F.J.M. Meerhoff:
28-07-2019, 20:17:02
Antwoorden

Op de desktop kan dit ook: R muisklik op menubalk. Add/Remove panel items. klik op Add in rechter menu. Scroll naar beneden tot zichtbaar wordt: CPU Temerature Monitor Deze kan ook: CPU Usage Monitor Klik rechts beneden op Add en dan staat de temperatuur op de taakbalk.

Schrijf een reactie


Voer onderstaande code in:
Verzend