SHT31センサ+Arduino+Tera TermでRaspberry Pi 4ケース内の温度推移を記録

Raspberry Pi 4(以下、ラズパイ4)+DAC(SB32+PRO DoP)+Volumio2の構成でハイレゾ連続再生時のラズパイ4のCPU温度は約60℃でした。今回、ケース内部(ラズパイ4とDAC基板の間の空間)の温度変化を測定しました。温度測定は長時間になるので、Arduino+SHT31センサモジュールを簡易的なデータロガーとして使えるように、温度データをテキスト形式でPCに保存できる設定にしました。

目次

SHT31温度センサをArduinoのI/Oピンからラズパイ4ケースまでケーブル延長

SHT31センサモジュールにはプルアップ抵抗が内蔵されていますが、バッファ無しでI/Oピンからケーブル延長するとノイズを受けやすくなるので短く配線します

SHT31センサをラズパイとDAC基板の間の中間地点で固定となるように、SHT31センサ基板のセンサから離れた端子側の両面に被覆チューブ(白いパイプ状の筒)をクッション材として挟んで間隔調整しました。

ArduinoからSHT31温度センサモジュールまでケーブル4本(SCL、SDA、3.3V、GND)を配線
SHT31温度センサの基板両面に被覆チューブ(白いパイプ状の筒)をクッション材として挟んで固定
SHT31温度センサの基板両面に被覆チューブ(白いパイプ状の筒)をクッション材として挟んで固定
DAC基板を被せてSHT31温度センサを固定。バッファ無しでケーブル延長したので短かく配線
DAC基板を被せてSHT31温度センサを固定。バッファ無しでケーブル延長したので短かく配線
SHT31温度センサをラズパイとDAC基板の間の中間地点で固定となるように調整
SHT31温度センサをラズパイとDAC基板の間の中間地点で固定となるように調整
Arduinoとつないで温度測定。測定データはTera Termのログ(テキスト)としてPCに保存
Arduinoとつないで温度測定。測定データはTera Termのログ(テキスト)としてPCに保存

スケッチ:Arduinoプログラムの出力形式変更

SHT31センサモジュール動作させるスケッチから、
 ・LCDモジュール用のライブラリとコードを除去
 ・測定データをEXCELに取り込んでグラフ化しやすいように「カンマ」セパレータ形式のCSV出力
に変更しました。

「AE_SHT31.h」は秋月電子通商の「SHT31使用 高精度温湿度センサモジュールキット」サイトに掲載の「Arduinoスケッチ」zipのインストールでライブラリを追加できます。「Arduino.h」と「Wire.h」は「Arduino IDE」に含まれてるI2C用ライブラリです。

SHT31_Sample_CSV.ino
※ここをクリックするとコード表示を開閉できます。
#include <Arduino.h>
#include <Wire.h>
#include "AE_SHT31.h"

// SHT31のアドレスを設定
AE_SHT31 SHT31 = AE_SHT31(0x45);

void setup() {
  // シリアル通信を9600bpsに設定
  Serial.begin(9600);
  // SHT31をソフトリセット
  SHT31.SoftReset();
  // 内蔵ヒーター 0:OFF 1:ON
  SHT31.Heater(0);
}

void loop()
{
  // SHT31から温湿度データを取得
  SHT31.GetTempHum();
  // カンマ挿入
  Serial.print(",");   
  // SHT31.Temperature() より温度データ取得
  Serial.print(SHT31.Temperature());
  // カンマ挿入
  Serial.print(",");
  // SHT31.Humidity() より相対湿度データ取得
  Serial.println(SHT31.Humidity());
  // 待ち時間
  delay(800);
}

Tera Termのシリアル通信で温度データをPCに保存

Arduino IDEのシリアルモニタの代わりに、Tera Termでシリアル通信を行い、TeraTermのログとして時刻を加えた測定データをテキスト形式でPCに保存できるように設定します。

(1)Tera Termの接続画面で「シリアル」のチェックボックスを選択します。

Arduino IDEのシリアルモニタとTera Termのシリアル通信は同時には利用できません。

(2)Tera Termのログ出力はメニューで「ログ(L)」を選択。初回接続時にログ(テキストファイル)の出力先とファイル名を指定します。

Tera Termでシリアル通信
Tera Termでシリアル通信

(3)Tera Termのログに時刻(タイムスタンプ)を加える設定です。
・C:\Program Files (x86)\teraterm フォルダ内の「TERATERM.INI」を編集
 358行付近にある LogTimestamp= を on に変更

・日付の形式を変更するときは下記を変更(任意)。今回は時刻のみの記録に変更
 565行付近にある LogTimestampFormat= を %H:%M:%S.%N に変更 

PCにテキスト保存した測定データをEXCELでグラフ化

TetaTermのログファイルとして受信したケース内温度の測定データからTera Termが追加した時刻の両側の ” [ ”、” ]” やスペースをテキストエディタで一括削除して整形した後EXCELに取り込みます。
EXCELでグラフ化すると、ケース内温度は30分程度で約45℃に達し、それ以降は平衡状態でした。
夏場に向けて顕著な温度上昇がみられるようであれば、このケースの底面には空きスペースがあるので冷却ファンの実装を検討しようと思っています。

整形後のログファイル。時刻、温度、湿度が記録されている。
整形後のログファイル(時刻、温度、湿度)
EXCELに取り込んでグラフ化
EXCELに取り込んでグラフ化。ケース内温度は約45℃でほぼ平衡状態。CPU温度はこちらの測定結果をマージ
よかったらシェアしてね!
  • URLをコピーしました!
目次