Raspberry Pi

Raspberry Pi-temperatuurmonitor

Raspberry Pi-temperatuurmonitor
Raspberry Pi is een krachtige Single Board Computer (SBC). Het kan worden gebruikt om veel geavanceerde taken uit te voeren. Maar dit zal de temperatuur van de processor van Raspberry Pi-apparaten verhogen. Wat is niet goed?. De prestaties van de Raspberry Pi SBC zullen lijden onder de temperatuur. Dit wordt ook wel thermische throttling genoemd.

Als de temperatuur van de processor van je Raspberry Pi hoger is dan 80 graden Celsius, zie je een thermometerpictogram in de rechterbovenhoek van het scherm. Officieel beveelt de Raspberry Pi Foundation aan dat de temperatuur van je Raspberry Pi-apparaat lager dan 85 graden Celsius moet zijn om goed te kunnen werken. Dat is de maximale limiet. Maar het zou gaan smoren bij 82 graden Celsius.

In dit artikel laat ik je zien hoe je de temperatuur van je Raspberry Pi in de gaten kunt houden. Ik ga het Raspbian-besturingssysteem gebruiken op mijn Raspberry Pi 3 Model B-apparaat. Maar het zou moeten werken op elke Raspberry Pi SBC waarop het Raspbian-besturingssysteem is geïnstalleerd.

De temperatuur van Raspberry Pi SBC meten:

Je kunt de kerntemperatuur van je Raspberry Pi-apparaat meten met het volgende commando:

$ vcgencmd measure_temp

De huidige kerntemperatuur is 48.3 graden Celsius zoals je kunt zien in het gemarkeerde gedeelte van de onderstaande schermafbeelding.

Zoals je kunt zien, toont elke keer dat ik de opdracht uitvoer een andere temperatuurwaarde.

De temperatuurgegevens ontleden:

De temperatuurgegevens die we krijgen van de vcgencmd commando is een string. Je kunt er geen berekening op uitvoeren. We kunnen eenvoudig reguliere expressie gebruiken om alleen de temperatuurgegevens te extraheren en er elk type berekening op uit te voeren.

Als u de temperatuurgegevens in een Bash-shellscript wilt gebruiken, kunt u de temperatuurgegevens extraheren met egrep commando als volgt:

$ vcgencmd measure_temp | egrep -o '[0-9]*\.[0-9]*'

Zoals u kunt zien, worden alleen de temperatuurgegevens afgedrukt. Er is niets ervoor of erna.

Je kunt het gebruiken in je shellscript (laten we zeggen print_temp.sh) als volgt:

$ nano print_temp.sh

Hier, op regel 3, stel ik de temp variabele naar de geparseerde temperatuurgegevens die ik krijg van de vcgencmd en grep opdracht.

Op regel 5 gebruikte ik echo om de inhoud van de . af te drukken temp variabele op het scherm.

Regel 1 wordt gebruikt om Linux te vertellen dat het script moet worden uitgevoerd met /bin/bash standaard.

Maak het script nu uitvoerbaar met de volgende opdracht:

$ chmod +x print_temp.sh

Voer het script nu als volgt uit:

$ ./print_temp.sh

Zoals u kunt zien, wordt de gewenste uitvoer op het scherm afgedrukt.

Een Raspberry Pi-script voor temperatuurbewaking schrijven:

Nu we de temperatuurgegevens kunnen ontleden die we krijgen van de vcgencmd commando, kunnen we eenvoudig een temperatuurbewakingsscript schrijven voor Raspberry Pi. Het temperatuurbewakingsscript zal elke seconde de huidige tijdstempel en kerntemperatuur op een mooi opgemaakte manier op het scherm afdrukken.

Maak eerst een nieuw script tempmon.sh met het volgende commando:

$ tik op tempmon.sh

Bewerk nu de tempmon.sh script met het volgende commando:

$ nano-tempmon.sh

Typ nu de volgende regels codes in en sla het bestand op met + X en druk vervolgens op ja gevolgd door .

Hier, op regel 4, printf wordt gebruikt om de tekenreeksen TIMESTAMP en TEMP (degC) af te drukken als kolom met vaste breedte.

Op regel 5 gebruikte ik printf nogmaals om een ​​stippellijn af te drukken om de uitvoer leesbaarder en aantrekkelijker te maken.

Op regel 7-13 heb ik een oneindige lus uitgevoerd om de temperatuurgegevens elke seconde af te drukken.

Op regel 9 heb ik de geparseerde temperatuurgegevens opgeslagen op de temp variabele.

Op regel 10 heb ik de tijdstempelgegevens opgeslagen die ik kreeg van de datum commando op de tijdstempel variabele.

Op regel 11 heb ik de datum en tijd afgedrukt in tijdstempelformaat en de temperatuurgegevens in kolomformaat met vaste breedte.

Op regel 12 heb ik de opdracht sleep 1 gebruikt om de uitvoering van het script een seconde vast te houden. Daarna gaat de lus verder.

Maak nu het script tempmon.sh uitvoerbaar met het volgende commando:

$ chmod +x tempmon.sh

Voer ten slotte het script uit tempmon.sh met het volgende commando:

$ ./tempmon.sh

Zoals je kunt zien, werkt het temperatuurmonitorscript perfect. Het drukt elke seconde de temperatuurgegevens af.

Zoals je kunt zien, nam de temperatuur iets toe toen ik de systeembelasting verhoogde.

Als u het temperatuurbewakingsscript wilt stoppen, drukt u op + c. De temperatuurbewaking werkt niet meer zoals je kunt zien in de onderstaande schermafbeelding.

Nu het temperatuurbewakingsscript werkt, laten we het kopiëren naar /usr/bin map. Op die manier kun je het uitvoeren zoals elk ander Linux-commando.

Het script kopiëren: tempmon.sh naar de /usr/bin map, voer de volgende opdracht uit:

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

Zoals je kunt zien, kan ik het temperatuurbewakingsscript uitvoeren net zoals ik standaard Linux-commando's uitvoer.

Wijzigen tempmon voor het afdrukken van temperatuurgegevens in Fahrenheit:

U kunt de temperatuurgegevens eenvoudig converteren van Celsius naar Fahrenheit.

De algemeen bekende formule voor het berekenen van temperaturen in Fahrenheit vanuit Celsius is,

F = (9/5)* C + 32
Of
F = 1.8 * C + 32

Maar het probleem is dat bash-shell geen noodzakelijke functies heeft om drijvende-kommaberekeningen uit te voeren. U moet dus vertrouwen op een aantal andere programma's, zoals: bc.

bc is standaard niet geïnstalleerd op Raspbian. Maar je kunt het eenvoudig installeren met het volgende commando:

$ sudo apt install bc

bc moet worden geïnstalleerd.

Nu moet u het temperatuurbewakingsscript wijzigen en de nodige berekeningen maken om de temperatuur van Celsius naar Fahrenheit te converteren met bc.

Bewerk de tempmon.sh script met het volgende commando:

$ nano-tempmon.sh

Breng nu de wijzigingen aan zoals aangegeven in de onderstaande schermafbeelding.

Hier, op regel 4, heb ik afgedrukt TEMP (F) in plaats van TEMP (degC).

Op regel 9 heb ik de variabele gewijzigd van temp naar tempC.

Op regel 10 heb ik het resultaat van de Celsius naar Fahrenheit-conversie toegevoegd aan een variabele tempF.

Ten slotte heb ik de waarde van afgedrukt tempF variabele in plaats van temp online 12.

Voer het script nu als volgt uit:

$ ./tempmon

Zoals u kunt zien, wordt de temperatuur afgedrukt in Fahrenheit-eenheid.

Dus zo bewaak je de temperatuur in Raspberry Pi. Bedankt voor het lezen van dit artikel.

Hoe League Of Legends op Ubuntu 14 te installeren.04
Als je fan bent van League of Legends, dan is dit een kans voor jou om League of Legends te testen. Merk op dat LOL wordt ondersteund op PlayOnLinux a...
Installeer de nieuwste OpenRA Strategy Game op Ubuntu Linux
OpenRA is een Libre/Free Real Time Strategy-game-engine die de vroege Westwood-games nabootst, zoals de klassieke Command & Conquer: Red Alert. Gedist...
Installeer de nieuwste Dolphin Emulator voor Gamecube & Wii op Linux
Met de Dolphin Emulator kun je de door jou gekozen Gamecube- en Wii-spellen spelen op Linux Personal Computers (pc). Omdat het een vrij beschikbare e...