Monitor ng Temperatura ng Raspberry Pi

Raspberry Pi Temperature Monitor



Ang Raspberry Pi ay isang malakas na Single Board Computer (SBC). Maaari itong magamit upang makagawa ng maraming sopistikadong gawain. Ngunit ang paggawa nito ay magpapataas sa temperatura ng processor ng mga aparato ng Raspberry Pi. Alin ang hindi maganda. Ang pagganap ng Raspberry Pi SBC ay magdurusa dahil sa temperatura. Kilala rin ito bilang thermal throttling.

Kung ang temperatura ng processor ng iyong Raspberry Pi ay higit sa 80 degree Celsius, makakakita ka ng isang icon ng thermometer sa kanang sulok sa itaas ng screen. Opisyal, inirekomenda ng Raspberry Pi Foundation na ang temperatura ng iyong aparato na Raspberry Pi ay dapat na mas mababa sa 85 degree Celsius upang gumana ito nang maayos. Iyon ang maximum na limitasyon. Ngunit magsisimula ito sa pag-throttling sa 82 degree Celsius.







Sa artikulong ito, ipapakita ko sa iyo kung paano subaybayan ang temperatura ng iyong Raspberry Pi. Gumagamit ako ng operating system na Raspbian sa aking aparato na Raspberry Pi 3 Model B. Ngunit dapat itong gumana sa anumang Raspberry Pi SBC na may naka-install na Raspbian operating system.



Maaari mong sukatin ang pangunahing temperatura ng iyong aparato na Raspberry Pi gamit ang sumusunod na utos:



$vcgencmd panukalang_temp

Ang kasalukuyang temperatura ng core ay 48.3 degrees Celsius tulad ng nakikita mo sa minarkahang seksyon ng screenshot sa ibaba.





Tulad ng nakikita mo, sa tuwing tatakbo ako ang utos ay nagpapakita ng iba't ibang halaga ng temperatura.



Pag-parse ng Data ng Temperatura:

Ang data ng temperatura na nakukuha natin mula sa vcgencmd utos ay isang string. Hindi ka maaaring magsagawa ng anumang pagkalkula dito. Madali naming magagamit ang Regular na expression upang makuha lamang ang data ng temperatura at magsagawa ng anumang uri ng pagkalkula dito.

Kung nais mong gamitin ang data ng temperatura sa isang Bash shell script, maaari mong makuha ang data ng temperatura sa egrep utos tulad ng sumusunod:

$vcgencmd panukalang_temp| egrep -o kaya '[0-9] * . [0-9] *'

Tulad ng nakikita mo, ang data ng temperatura lamang ang nakalimbag. Walang bago o pagkatapos nito.

Maaari mo itong magamit sa iyong shell script (sabihin natin print_temp.sh ) tulad ng sumusunod:

$nanoprint_temp.sh

Dito, sa linya 3, itinakda ko ang temp variable sa na-parse na data ng temperatura na nakukuha ko mula sa vcgencmd at mahigpit na pagkakahawak utos

Sa linya 5, ginamit ko itinapon upang mai-print ang nilalaman ng temp variable sa screen.

Ginagamit ang linya 1 upang sabihin sa Linux na dapat isagawa ang script / basahan / bash bilang default.

Ngayon, gawin ang script na maipapatupad sa sumusunod na utos:

$chmod+ x print_temp.sh

Ngayon, patakbuhin ang script tulad ng sumusunod:

$./print_temp.sh

Tulad ng nakikita mo, ang nais na output ay naka-print sa screen.

Pagsulat ng isang Script ng Pagsubaybay sa Temperatura ng Raspberry Pi:

Ngayon na maaari naming mai-parse ang data ng temperatura na nakukuha namin mula sa vcgencmd utos, madali kaming makakasulat ng isang script sa pagmamanman ng temperatura para sa Raspberry Pi. I-print ng script ng pagsubaybay sa temperatura ang kasalukuyang timestamp at pangunahing temperatura bawat segundo sa screen sa isang maayos na naka-format na paraan.

Una, lumikha ng isang bagong script tempmon.sh kasama ang sumusunod na utos:

$hawakantempmon.sh

Ngayon, i-edit ang tempmon.sh script na may sumusunod na utos:

$nanotempmon.sh

Ngayon, i-type ang mga sumusunod na linya ng mga code at i-save ang file gamit ang + x at pagkatapos ay pindutin at sinundan ng .

Dito, sa linya 4, printf ay ginagamit upang mai-print ang mga string ng TIMESTAMP at TEMP (degC) bilang naayos na haligi ng lapad.

Sa linya 5, ginamit ko printf muli upang mai-print ang isang linya na tinadyak upang gawing mas madaling mabasa at nakakaakit ang output.

Sa linya 7-13, nagpatakbo ako ng isang walang katapusang loop upang mai-print ang data ng temperatura bawat segundo.

Sa linya 9, naimbak ko ang data ng parsed na temperatura sa temp variable.

Sa linya 10, naimbak ko ang data ng timestamp na nakuha ko mula sa petsa utos sa timestamp variable.

Sa linya 11, nai-print ko ang petsa at oras sa format ng timestamp at ang data ng temperatura sa nakapirming format ng haligi ng lapad.

Sa linya 12, ginamit ko ang utos ng pagtulog 1 upang hawakan ang pagpapatupad ng script nang isang segundo. Pagkatapos, magpapatuloy ang loop.

Ngayon, gawin ang script tempmon.sh maipapatupad sa sumusunod na utos:

$chmod+ x tempmon.sh

Panghuli, patakbuhin ang script tempmon.sh kasama ang sumusunod na utos:

$./tempmon.sh

Tulad ng nakikita mo, ang script ng temperatura monitor ay gumagana nang perpekto. Nagpi-print ito ng data ng temperatura bawat segundo.

Tulad ng nakikita mo, habang nadagdagan ko ang pag-load ng system, ang temperatura ay bahagyang tumaas.

Kung nais mong ihinto ang script ng pagsubaybay sa temperatura, pindutin + c . Ang pagsubaybay sa temperatura ay hindi tumatakbo nang higit pa tulad ng nakikita mo sa screenshot sa ibaba.

Ngayon na gumagana ang script ng pagsubaybay sa temperatura, kopyahin natin ito / usr / basurahan direktoryo Sa ganoong paraan, mapapatakbo mo ito tulad ng anumang iba pang mga utos ng Linux.

Upang kopyahin ang script tempmon.sh sa / usr / basurahan direktoryo, patakbuhin ang sumusunod na utos:

$sudo cptempmon.sh/usr/am/tempmon

Tulad ng nakikita mo, maaari kong patakbuhin ang script ng pagsubaybay sa temperatura tulad ng pagpapatakbo ng karaniwang mga utos ng Linux.

Pagbabago tempmon para sa Pag-print ng Data ng Temperatura sa Fahrenheit:

Madali mong mababago ang data ng temperatura mula sa Celsius patungong Fahrenheit.

Ang malawak na kilalang pormula para sa pagkalkula ng temperatura sa Fahrenheit mula sa Celsius ay,

F =(9/5)*C +32
O kaya naman
F =1.8 *C +32

Ngunit ang problema ay, ang bash shell ay walang kinakailangang mga pagpapaandar upang maisagawa ang mga pagkalkula ng lumulutang na punto. Kaya, kailangan mong umasa sa ilang iba pang mga programa tulad ng bc .

bc ay hindi naka-install sa Raspbian bilang default. Ngunit madali mong mai-install ito sa sumusunod na utos:

$sudoapti-install bc

bc dapat na mai-install.

Ngayon, kailangan mong baguhin ang script ng pagsubaybay sa temperatura at gumawa ng mga kinakailangang kalkulasyon upang ma-convert ang temperatura sa Fahrenheit mula sa Celsius na may bc .

I-edit ang tempmon.sh script na may sumusunod na utos:

$nanotempmon.sh

Ngayon, gawin ang mga pagbabago tulad ng minarkahan sa screenshot sa ibaba.

Dito, sa linya 4, nag-print ako TEMP (F) sa halip na TEMP (degC) .

Sa linya 9, binago ko ang variable mula sa temp sa tempC .

Sa linya 10, idinagdag ko ang resulta ng pag-convert ng Celsius sa Fahrenheit sa isang variable tempF .

Panghuli, nai-print ko ang halaga ng tempF variable sa halip na temp sa linya 12.

Ngayon, patakbuhin ang script tulad ng sumusunod:

$./tempmon

Tulad ng nakikita mo, ang temperatura ay nakalimbag sa yunit ng Fahrenheit.

Kaya't paano mo subaybayan ang temperatura sa Raspberry Pi. Salamat sa pagbabasa ng artikulong ito.