#はじめに
この記事はRaspberryPiで温度監視とその応用について調べたり検証したりした時の副産物の一部です。
あまり詳しく書くつもりもないのでサラッと読んでいただけると幸いです。
(これから先は口調が砕けます。)
#今回の環境
・自室(室温16~23度)
・床に直に置かれたRaspberryPi3B+(RaspbianOS)
・金属製のケース(2000円弱)
・ファン無し
・周りに扇風機や発熱する機器の存在無し
・microSDカードあり
#何をしたか?
RaspberryPiって発熱凄いとか熱対策とかいるとかクロックダウンする(諸説あり)とか言われてる(言われてた)けど、どんな感じになるの?
ってことでCPU使用率を100%にした状態にするとRaspberryPiのCPUの温度と周波数はどうなるのかについて調べた。
#方法と結果
方法としてRaspberryPiのCPUの温度とクロック周波数情報を分刻みで自動取得してcsvファイルを生成するプログラムを使用した。
time.sleep関数を使ってるため,極端な話,刻みは一時間刻みでもいいが,今回は三分毎に追記していく.
そのプログラムの一部が下記。
下記の抜粋は日付が変わって初めてのcsvへの追記なら新しく生成して時間,温度,クロック周波数の順に書き込むよという感じ。
def add_data(info):
with open("log/" + info[1] + ".csv", "a") as f:
writer = csv.writer(f)
if(info[0] != info[1]):
writer.writerow( ["time", "cpu_temperature[℃]", "cpu_clock[Hz]"] )
writer.writerow( [info[2].replace(".", ":"), info[4], int(info[5])] )
その後は保存されているcsvファイルをExcelに持ってきて,オススメグラフの欄から折れ線と棒折れ線を選択(して補助線入れを)するだけでグラフが作成出来る(人力)
こんな感じに。
その結果としてこの様なグラフが出来上がった。
・温度が60度を超えた辺りからクロック周波数が1.2GHz以上(上限1.4GHz)出なくなった。
・ざっと一万個ぐらいのデータで計測している。
・温度が75~80度を超え続けるとフリーズして画面が動かなくなり,温度が72度くらいに下がるまで続く。
・ケースはそんなに熱くはなかったが出てくる空気が熱かった。
結果として重い処理を与え続けるとフリーズするし,寿命を縮めてしまうため,基本的に重い処理をする時は排熱がしやすいようにファンを付けるか,RaspberryPiの周りを冷やすことを勧める。
フリーズした時は室温21度くらいだったのでそれ以下に。
取得プログラムだけ走らせてCPU100%にしない場合は(室温によるが)45度~65度辺りを彷徨うだけだったので,軽く運用するだけなら別に気にしなくていいかもしれない。
#感想と得たもの
フリーズした時は熱で壊れたかと思ってホントに焦った。
RaspberryPi自体は燃えそうではなかったけど,USBレシーバーとか刺すスロットの部分が発熱しマウスのレシーバー差し替える時,かなり熱かった。
万が一を考えて冷ましたけど,レシーバーを冷ますという貴重な体験が出来たと思う。
あと,RaspberryPiの下の床がホカホカになるため寒い時に暖を取るのに丁度いいかもしれない。
#おわりに
ご覧下さりありがとうございました。これを真似してmicroSDカードが壊れても責任はとりません。