Select Your Language

免責事項

  • 本サイトの情報の利用、内容、サービスによって、利用者にいかなる損害、被害が生じても、著者は一切の責任を負いません。ユーザーご自身の責任においてご利用いただきますようお願いいたします。

    本サイトで頒布している基板およびキットは、技術者、またはそれに準ずる電気的知識をお持ちの電子工作ファンの方のためのものです。一般のオーディオファンの方のためのものではありません。
    また、頒布基板およびキットは、いかなる条件でも動作を保証するものではございませんので、あらかじめご了承ください。

    電子工作では、火傷、感電、火災などの可能性があります。十分に注意をして作業して下さい。

    営利目的のご使用は認めておりません。 記事の転載や、基板・キットの商用利用の方は、ご連絡ください。学生やサークルの学習目的でまとめてご購入する場合は特別価格でご提供させていただきます。
無料ブログはココログ

スポンサー

« RaspberryPi 4の発熱問題 ホントところは? | トップページ | RaspberryPi 4 オーディオ専用放熱ケース »

2019年12月 7日 (土)

RaspberryPi4 温度上昇を定量的に計測

温度が飽和したかな?

と思われるときにコマンドでCPU温度を見てたのですが、本当に飽和したのか分かりにくいですね。

そこで、スクリプトを走らせて温度をログ記録として残そうと思いました。

 

cronで10秒ごとにスクリプトを起動
      ↓
温度監視スクリプト -> log記録

 

実は、恥ずかしながらcronを今まで使ったことがありませんでしたので、その勉強も兼ねています。

 

温度、クロック周波数

RaspberryPi(Raspbian)には、

vcgencmd measure_temp  現在の温度を表示
vcgencmd measure_clock arm
 現在のCPUクロックを表示

というコマンドがあります。便利ですね。

 

ただし、volumioには vcgencmd が入っていなかった(aptでもインストール不可)ので従来の方法で見てみました。

cat /sys/class/thermal/thermal_zone0/temp   現在の温度を表示
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq 現在のクロックを表示

こちらは情報を表示できました。

 

温度取得 -> Log保存スクリプト

スクリプトは以下のようにしました。

#!/bin/bash

date=(`date +"%m/%d"`)
time=(`date +"%H:%M:%S"`)
temp=(`cat /sys/class/thermal/thermal_zone0/temp`)
freq=(`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq`)
str=$date" "$time" "$freq" "$temp
echo $str >> temp_log

 

これを  temp.sh として保存。実行権限を与えます。

sudo chmod +x temp.sh   

ここまでで、下ごしらえは完了です。

 

指定時間で実行 cronの設定

cronという一定時間でコマンドを実行するプログラムがLinuxには備わっています。volumioには入っていなかったため導入しました。

sudo apt-get update

sudo apt-get install cron

これでOK。

 

crontab -e  というコマンドでcronを設定します。設定ファイルをnanoで開いてくれます。

# m h dom mon dow command
* * * * * /home/volumio/temp.sh

こうすれば、1分毎にスクリプトが実行されます。

* の部分、左から「分」「時」「日」「月」「曜日」を指定するようになっています。

* * * * *  1分毎に実行
*/10 * * * * 10分毎に実行
0 * * * *  毎時 0分に実行(0:00、1:00、2:00・・・)
30 * * * *  毎時 30分に実行(0:30、1:30、2:30・・・)
0 12 1 * *  毎月1日の12:00に実行

みたいな感じで指定するようです。曜日も指定できるため週末にバックアップを取るなんてのも得意。

 

cronを秒単位で実行

1分未満、秒単位で実行すようとすると、ちょっとだけおまじないが必要です。

# m h dom mon dow command
* * * * * for i in `seq 0 10 59`;do (sleep ${i} ; /home/volumio/temp.sh) & done

10秒スリープを挿入するように実行するのが定番のようです。細かい説明は割愛させていただいて実行結果を見てみましょう。

 

実行結果

logから温度の数値を拾ってLibreofficeでグラフにしました。本当のLinux使いの方はgnuplotでグラフを描くんでしょうけども、すみませんです。

数値は1/1000で温度になります。60000なら60℃。時間軸はひとマス10分。45~50分で温度上昇が止まっている(温度が飽和している)のが分かりますね。

Pi4_temp1

SB32+PRO DoPはPCM変換せずにDSD再生できるのですが、ここでは敢えて負荷が増えるDSD-PCM変換再生を行いました。

 

部屋の気温はちょっと寒めで、16~18℃くらいです。夏場(26~28℃)なら+10℃ですから75℃に達すると思われます。以下のようにケースの蓋を閉めていません。DAC基板は乗せています。

Pi4_temp0

一応クロック周波数もログに残していますが1500で固定です。現在のvolumio2はPi4なら1500MHz実行になっているようでした。

force_turbo=1 でも入れているかと思ったのですが、/boot/config.txtには入っていません。

 

 

ヒートシンクを付けてみる

Tinkerboard Sの純正ヒートシンクがあったので取り付けてみました。

基板を挿すと接触するのでテープで保護しています。また、GPIO端子は奥まで挿せず1mmくらい浮いています。

Pi4_temp2

先ほどと同様にケースの蓋は締めず、同じ環境でDSD変換再生をしてみます。

 

上の実験後、5分くらいで再開したため、完全には冷めきっていない状態からスタート。その影響で最初のカーブが異なりますが、飽和はおおよそ30~40分でした。細かく見ると2℃くらいのフラツキがあるようです。

Pi4_temp6

ヒートシンクを付けても2~3℃しか下がっていません。

これはケースの外に熱を逃がせていない、熱がこもっている状態なのだと思います。

 

ケース自体が熱を外に逃がす構造のモノが必要そうです。もしくは、ヒートシンクに風を当てるか。でも、オーディオ用途ではFANは付けたくないですよね。

ラズパイを立てて、自然に空気の流れを作る(ヒートシンクから熱を外に逃がす)というのも一つの手段です。

 

一体、何℃まで許容するか?

という部分が最大のポイントですね。個人的には、最も熱くなる条件で70℃、普段は50℃以下にしたいですね。

 

 

ちなみに、これを書いているデスクトップPCのCPU温度は。。。

I9_9900k_temp

i9 9900Kという8コアのCPUなんですけども20℃でした。室温+3~5℃くらいです。ベンチマークソフトを走らせると95℃とか行っていたと思います。90℃超えはさすがに怖いです。

 

 

 

※参考にさせていただいたサイト様

ラズパイの温度をcronで定期的に記録する

cronを秒単位で指定する方法

 

 

にほんブログ村 PC家電ブログ PCオーディオへ にほんブログ村

ブログランキングに参加中です。 めざせ1位! 

もしよろしければ「ぽちっと」お願いします。 

 

 

« RaspberryPi 4の発熱問題 ホントところは? | トップページ | RaspberryPi 4 オーディオ専用放熱ケース »

Raspberry Pi」カテゴリの記事

Pi4の放熱」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« RaspberryPi 4の発熱問題 ホントところは? | トップページ | RaspberryPi 4 オーディオ専用放熱ケース »

サイト内検索(new)

2021年10月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31