12
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

ラズパイ(Linux) からUSB温度計で温度を測る

部屋が寒い :scream: のでいろいろ調べた。
うちではラズパイ:strawberry: が常時動いているので、これで温度が測れれば良い。
1-wire で動くDS18B20 などの温度センサーを使って電子工作する方法もあるが(前にやった)、はんだ付けとか 1-wire 設定とか結構面倒くさい。

今回はもっとお手軽に USB温度計 thermometer-528018 を使ってみる。980円ぐらい。

USBで挿してlinuxから温度を取得できる。
Windowsでも専用アプリで温度は取れるけれど使い勝手は悪い。
Windowsは、ここからTEMPer用をダウンロード 現時点ではv26が最新

USBなので、Raspberry Pi の様に I/O ポートがないLinuxマシンでも温度が測れるので、サーバー室なんかに置いても良いかも。

gitからソースをクローンする。
libusb-dev がないとエラーになる。gcc は既に入っていればインストールの必要なし。
chmod u+s temper で権限を付与しないと root でしか使えなくなるので権限を追加しておく。
実行すると、日時と温度を表示する。

$ sudo git clone git://github.com/bitplane/temper.git
  Cloning into 'temper'...
   :
$ cd temper/
$ sudo apt-get install gcc libusb-dev
$ sudo make
   :
$ sudo chmod u+s temper
$ ./temper 
28-Feb-2018 10:46,14.387618 

TIPS.1 ローカルタイムにする

そのままだと日付がグリニッジ標準なので、タイムゾーンに合わせる

temper.c
- utc = gmtime(&t);
+ utc = localtime(&t);

TIPS.2 ラズパイの罠

ラズベリーパイのUSBポートに直挿しした場合、本体の温度が回り込んで5℃ぐらい温度が高くなる。
100均のUSB方向転換器なんかを間にかませると大丈夫。

後は cron から呼び出して温度を見て IFTTT に投げるなり、シェルスクリプトでなんやかやするなり応用は無限大 ∞ 。

その他参考になりそうなサイト

Ambient
IOTデータの可視化サービス。ライブラリを入れてちょっと修正の必要はあるけれど、グラフ化することができます。
Google Homeにセンサーの値を言ってもらう
言ってもらうと嬉しいよね。
Raspberry Pi Zero用 赤外線 + 環境センサ 拡張ボード「RPZ-IR-Sensor」(端子未実装)
USBでなくてもこんなのもあります。ボード直付けなので、ボードの温度に影響されそうなのでキャリブレーションは必須かな?

単純にラズパイだけでCPU温度を測るには

cat /sys/class/thermal/thermal_zone0/temp

の値を 1/1000 すればいい。結構熱いのでビックリするかも:grimacing:

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
12
Help us understand the problem. What are the problem?