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番号を返してきますので、それぞれディレクトリ別に温度を読み取ることができます。