ラズパイでUSB温度計TEMPerをキャリブレーションしてみた。

室内の温度を手軽に計測する目的でUSBスティック型のTEMPer528018を購入しました。

PCのUSBポートに差しても使えるようですが、やはりラズパイ3で使う予定です。

で、この温度計のドライバのインストールとキャリブレーションを下記のページを参考にしながら、別の温度計であるBME280を使って行いました。

参考サイト1)Raspberry Piと980円USB温度センサーで北海道の冬をロギングしてみる

参考サイト2)TEMPer under Linux (perl) with Cacti

下の写真で真ん中に見えるのがTEMPerです。その下方に見えるのがBME280です。

DSCN1324

ではドライバーなどをインストールしましょう。ほとんど参考サイト1)の方法で良いです。
まずgithubからソースコードをダウンロードします。適当なディレクトリ内にcdしてから、

で、ダウンロードします。次にこのソフトのmakeに必要なライブラリをインストールします。

続いてmakeする前に、キャリブレーションのためにソースのパラメータを若干いじります。

temper.cの12,3行目にある二つのパラメータを1と0にします。

これでmakeします。

make installすると/usr/bin/にインストールされますが、そこまでの必要はないでしょう。

生成された実行ファイルtemperへのアクセス権を変更します。

実行してみます。

以下のように表示されればOKです。

このプログラムを10秒おきに実行し、Zabbixサーバに投げるスクリプトを書きます。今までこのブログで紹介してきたpythonスクリプトをそのまま流用できます。

過去記事:ラズパイにZabbixをインストールし設定してみた。

過去記事:ラズパイのSenseHATで計ったデータをZabbixサーバに送信して記録してみた。

ではまずは恒例の冷蔵庫から。w

DSCN1321

今回は優しめに冷凍庫には入れず野菜室だけにしました。ロギングの結果が下のグラフです。

なおBME280のようなセンサーがない場合は普通の温度計でも十分です。

SS 2016-04-01 17.59.40

ほぼ温度がこなれた最新値をこの後のキャリブレーションで使います。

次にコタツに放り込みます。

DSCN1323

結果が下のグラフです。

SS 2016-04-01 16.07.00

これもまた最新値を使います。

最後に常温で計測しました。結果が下のグラフです。これも最新値を使います。

SS 2016-04-01 18.47.43

それではキャリブレーションの簡単な計算をしてみましょう。

それぞれの最新値は以下の表のようになっています。

  冷蔵庫  常温  コタツ
 BME280  11.01  23.16  56.55
 TEMPer  16.50  29.69  58.81

まずはスケールファクターからです。BME280とTEMPerそれぞれの温度の幅を引き算で求め、これらから比率を出します。
BME280: 56.55 – 11.01 = 45.54
TEMPer:  58.81 – 16.50 = 42.31
42.31 / 45.54 = 0.92907

次にオフセット値を求めます。オフセット値は常温から求めるのがバランスがいいでしょう。
23.16 – (29.69 * 0.92907) = -4.42

この二つの値を先ほどのソースコードに埋め込みます。

これでmakeします。

仕上げに権限を設定します。

これでキャリブレーションは完了です。結果を常温で見てみましょう。

SS 2016-04-01 20.47.00

キャリブレーション前は30℃近くあった値が、BME280とほぼ同じような値まで下がっています。まずまずの成功と言えるでしょう。

今日のところはこの辺で。☕️

スポンサーリンク
  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です