RaspberryPi2にDS18B20をつなげて温度測定できる状態まで作ってみました。
①DS18B20をつなぐ
防水加工のDS18B20は3色のケーブルがあります。
赤:VDD(pin#1)
黄:DQ GPIO4(pin#7)
黒:GND (pin#6)
ひとまずブレッドボードにつなぎます。
②プルアップ抵抗をつなぐ
赤と黄には、raspberry本体のケーブルとの間にプルアップ抵抗を差し込みます。
抵抗値は仕様では2.2kΩらしいのですが、手元になかったので10kΩをつなぎました。
(結論から言えば、10kΩでも動きましたが、本来は仕様通りの抵抗をつなぐべきです。)
③raspberryからブレッドボードにケーブルをつなぐ。
上記①に対応したピンでケーブルをつなぎます。
ひとまず配線作業はこれで終わりですが、DS18B20は1-Wireデバイスのため
raspberryにて1-wireを認識するようにしなければなりません。
④/boot/config.txtに以下を追加
dtoverlay=w1-gpio-pullup,gpiopin=4
⑤/etc/modulesに以下を追加
w1-gpio
w1-therm
⑥raspberryの再起動
これでDS18B20で計測した温度が見えるようになります。
具体的には以下。
⑦/sys/bus/w1/devices/28-xxxxxxxxxxx/w1_slave
このファイルにDS18B20センサー出力がリアルタイムに反映されます。
イメージ
60 01 4b 46 7f ff 10 10 b5 : crc=b5 YES
60 01 4b 46 7f ff 10 10 b5 t=22000
「t=22000」が計測値です。1000で割った数値が摂氏温度になるようです。
w1_slaveは普通のファイルとして扱えるので、
適宜文字操作スクリプトを組んで、cronなどで仕込めば常時監視できそうです。