Linuxボードで温度を測る。

CPU温度を測れる Linux の場合は

の値を 1/1000 すればいい。

ちなみに、うちの Raspberry Pi は、ヒートシンク追加、専用ケースにハウジングした条件で 57.3℃。
Intel Galileo は、むき身にヒートシンクを乗せただけ(貼ってはいない)の状態で 63℃。
Beaglebone Black はCPU温度は測れないけれど、ヒートシンクをつけてケースに入れた状態で触ったらちょっとあったかいレベルだった。

Raspberry Pi はUSBコネクタに熱が回り込んで、刺した Wifiドングルも熱くなっていた。

常時動かすなら Beaglebone Black に軍配かな?今や入手困難だけれど。(新しく Rev.C が出ました。)

こうなってくると NEST の様に室温を測って管理したくなってきたな。

アナログI/Oがあるマシン(BBBなど)

BeagleBone Blackなどの PWM I/Oがあってアナログ値を取得できる場合。
よく使われる温度センサは LM35DZ(0~100℃) とか LM61BIZ(-25~85℃) とか LM61CIZ(-30~100℃) だけど、部屋はマイナスになりえるから使うなら LM61BIZ かな?
(Raspberry Piは GOIOしか使えないので、上のは使えない。「DS18B20」などの1-Wireというのを使用する。)
ちなみに取得値から温度を取るには計算が必要。
ここら辺も参考に。実際はコンデンサも必要かな?

というわけで

秋月電子で LM61BIZ が見当たらなかったので LM61CIZ (4個入り 200円)を買ってきた。
Beaglebone Black に以下で結線

Debian なので、1行目を実行すれば2行目で値が取得できる。

863 とかの値が帰ってくるから (value – 600) /10.0 が温度っていうことで良いのかな?
データシートの表から見ると、上の計算式であっているんだよな。他のサイトを見ると計算式違うようだけど・・・。
追記:以前は12ビットの値がそのまま出力されていたが、現時点ではミリボルト単位で出力されるようになっているらしい。なので上のでOK。自分で変換する必要はない。

温度計のインターフェースも作ってみた。温度計を作る 習作1 Ajax版
取った値でグラフも書いてみた。温度計を作る 習作2 グラフ

残り3個も早くどこかに使わないと。

この前、ちょっと触ったら、温度センサーが抜けかかっていて、108℃とかの温度が出力されていた。
へー!、こんなになるんだね。グッっと挿しなおしたら元に戻りました。
ジャンパーピンに直接 温度センサーを挿すのではなく、ブレッドボードかはんだ付けしないとだめだね(^^;

Raspberry Pi とか

I2CとかSPIとかのインターフェースを使って値を取得するのが一般的。
raspberry pi で I2C を有効にするにはいくつか方法があるけれど
raspi-config → 8 Advanced Options → A7 I2C → Would you like the ARM I2C interface to be enabled? <はい> → <了解>
→ Would you like the I2C kernel module to be loaded by default? <はい> で有効にしておくのが簡単。

2017/02
raspi-config → 5 Interfacing Options → P5 I2C → Would you like the ARM I2C interface to be enabled? <はい> → <了解>

コマンドラインからの lsmod で i2c_bcm2708 が表示されればロードされている。
apt-get install i2c-tools で i2c-tools をインストール。
i2cdetect -y 1 とかで i2c デバイスが接続されていれば、情報が表示される。


コメントを残す

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