色々便利なんではないか?と思いセンサーと抵抗を購入してもらいました。
下記を参考にさせて頂きました。ありがとうございます。
Raspberry Piと1-Wireステンレス防水温度センサ(DS18B20)を使って水温を計る
[コラム] 第9回『1-wire温度センサーで部屋の温度を測定しよう』
センサーは水温も計測したいのでDS18B20の防水タイプ。抵抗はなんとなく4.7kΩ。
道具はそろいました。
防水タイプのもののケーブルの色は
- 赤 VDD 3.3V (Pin#1)
- 黄色 DQ GPIO4 (Pin#7)
- 黒 GND Ground (Pin#9)
電源投入。
% sudo modprobe w1-gpio && sudo modprobe w1_therm
% ls -l /sys/bus/w1/devices/
…無反応です。
本当は28-00000xxxxxxとか固有のIDが見つかるはずなのですが。
たまたま会社に在籍していた電気のプロ(どんな種類の電気技術が得意なのかは不明)、
モリヤーニを呼んできて、結線やら仕組みやらを散々教えてもらったのですが解決せず。
私の環境はB+。
はて、どうしたものか?
すかさずネットで検索。公式で見つけたのが以下の記事でした。
Temperature Probe Problem
要するに、GPI4(pin#7)に黄色を挿して /boot/config.txtに
dtoverlay=w1-gpio-pullup
を追加して再起動してみろ、と。でもう一度
% sudo modprobe w1-gpio && sudo modprobe w1_therm
% ls -l /sys/bus/w1/devices/
% cat /sys/bus/w1/devices/w1_bus_master1/28-00000xxxxxx/w1_slave
73 01 4b 46 7f ff 0d 10 41 : crc=41 YES
73 01 4b 46 7f ff 0d 10 41 t=23187
出来ました、温度が計れました!
ちなみにGPIO4(pin#7)以外の場合は/boot/config.txtに
dtoverlay=w1-gpio-pullup,gpiopin=x
を追加、さらにプルアップ(?)を追加するなら
dtoverlay=w1-gpio-pullup,gpiopin=x,pullup=y
だそうです。