1-Wire の温度センサで遊ぶ

2013年3月22日 1-Wire 温度センサ

先日,東京に行った時に何故か 1-Wire の温度センサを衝動買いしました.自分の力で扱えるかどうかも調べずに….

家に帰ってきて調べたらどうやら Raspberry Pi で簡単に扱えるそうで,今回はそれで動かしてみることにしました.

温度センサは Maxim の DS18B20+ です.

デジタル温度センサ(1wire)DS18B20+: センサ一般 秋月電子通商 電子部品 ネット通販

1-Wire と呼ばれるプロトコルで通信するデジタル温度センサで,最小で GND と他 1 本の計 2 本の線で接続できるそうです. Raspberry Pi で扱うにあたり,以下のサイトを参考に,というかぱk(ryさせていただきました.ありがとうございます.

RaspberryPI DS1820 – Webshed
RasPiで1-wire温度計を使ってみよう – @SRCHACK.ORG(えす・あーる・しー・はっく)

配線は参考にしたウェブサイトの通り,温度センサの 1 番, 2 番, 3 番をそれぞれ Raspberry Pi の 6 番, 7 番, 1 番につなぎ,温度センサの 2 番と 3 番の間に 4.7k の抵抗を入れる感じですかね. Raspberry Pi の GPIO については以下のサイトが参考になると思います.

RPi Low-level peripherals – eLinux.org

まあそんなこんなで接続した写真です.

2013年3月22日 Raspberry Pi と温度センサにつながる線

気温を測りたかったので,温度センサ自体は線で外に伸ばしてます.まあ,この線どう見ても LAN ケーブルから取り出したものですw線は 3 本使ってます.

センサ自体はこんな感じ.

2013年3月22日 防水処理した温度センサ

自己融着テープをぐるぐる巻きにして,エアコンの室外機の裏で浮いてます.もっといろんな影響を受けない場所に設置しないと…だめですね.

そして, Raspberry Pi に接続してコマンドを叩きます.まずはモジュールの読み込み.

$ sudo modprobe wire
$ sudo modprobe w1-gpio
$ sudo modprobe w1-therm

そして以下のコマンドで接続されている 1-Wire デバイスの数が分かります.

$ cat /sys/bus/w1/devices/w1_bus_master1/w1_master_slave_count
1

デバイスの ID を知りたいなら以下のコマンドを.

$ cat /sys/bus/w1/devices/w1_bus_master1/w1_master_slaves
28-000003b7298d

デバイスにアクセスして温度を知るなら以下のコマンドです.

$ cat /sys/bus/w1/devices/28-000003b7298d/w1_slave
e4 00 4b 46 7f ff 0c 10 ae : crc=ae YES
e4 00 4b 46 7f ff 0c 10 ae t=14250

見ればわかると思いますが,この場合の温度は 14.25 度です.

とまあ,こんな感じで簡単にできました.やろうと思ってからここまでほとんど時間をかけずにできた気がします.最初は 1-Wire プロトコルを知るところからかと考えていたので拍子抜けしましたw


1-Wire の温度センサで遊ぶ” に1件のフィードバックがあります

  1. 五島雅弘

    突然のご連絡で失礼いたします。
    五島と申します。

    こちらのブログにございましたロガーとタイプが異なるのですが
    同じマキシムのiButtonですが
    このロガーにプログラミングを請け負っていただいた方が
    音信不通となり困っております。

    現在あるロガーのプログラムを読み取っていただき、同じ内容を
    新しいロガーに書き込みをお願いしたいのですが、、、、

    具体的には
    ロガーとPCにつなぐデバイスやソフトウエアなど必要なものは
    すべて準備いたします。
    プログラミングの手数料をお支払いたします。

    まずは詳しくご相談をさせていただければと存じます。

    よろしくお願いいたします。

コメントを残す

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