DS18B20 Temperature Sensor

Raspberry PiにDS18B20を接続して温度を計測します。

1番ピン(GND)を接地、3番ピン(VDD)には電源、2番ピンは4.7kΩ程度の抵抗でプルアップします。

配線が長く(ただし30m以下)なる時には抵抗値を低くしましょう。

この石は複数個をパラレルに接続することもできます、その際でもプルアップ抵抗は1本でOKです。

マイコンで読み取ろうとすると意外と面倒な1 wireインターフェースですが、Raspberry-Piなら非常に簡単に読み出せます。

$ sudo raspi-config

9 Advance Options-> A8 1-WireでEnableにします。リブートすると,/sys/bus配下にw1というディレクトリができます。

このあと、GPIO_7(40ピンヘッダの7番ピンにDS18B20の1 wireインターフェースを接続します)。

$ cd /sys/bus/w1/devices で接続されているデバイスが確認できます。

$ ls -l

total 0

lrwxrwxrwx 1 root root 0 May 5 23:02 28-0316366fd4ff -> ../../../devices/w1_bus_master1/28-0316366fd4ff

lrwxrwxrwx 1 root root 0 May 5 22:58 w1_bus_master1 -> ../../../devices/w1_bus_master1

今回使ったデバイスは「28-0316366fd4ff」というIDでしたから、そのディレクトリに移動します。

$ cd 28-0316366fd4ff

$ cat w1_slave

af 01 4b 46 7f ff 0c 10 35 : crc=35 YES

af 01 4b 46 7f ff 0c 10 35 t=26937

これ温度が読めました。

t=26937は26.937度を示しています。

このデバイスは複数個を接続した場合でもユニークなID番号を返してきますので、それぞれディレクトリ別に温度を読み取ることができます。