Groveの単線温度センサ(DS18B20)を自作してみた話

娘が可愛がっている我が家のメダカちゃんの水槽の水温監視してみようかな？と思ったのがキッカケ．

# 熱電対での実現を考えてみたけど...

最初は熱電対で水温計測しようかとも考えたのだけど...
熱電対を使うとなると，熱電対計測モジュールも必要になって割高...(というかオーバースペック

- https://www.switch-science.com/catalog/5345/
- https://www.switch-science.com/catalog/4102/

# 安価な防水温度センサ DS18B20
となったで，なんか良いモノないかな？とググってみるとDS18B20ってなセンサなら水温計測用のパッケージ品があって，しかもお手頃価格で良い感じらしい．Arduinoなどの作例がザクザク出てくる．

![d4dfd35829d7623848fac457d5ccd750.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304878/673ed173-072b-c55a-12f4-a619072bda13.png)

- https://www.amazon.co.jp/dp/B083TTCB9Q

Amazonで5個セットで約1000円．単価250円とか買いでしょ！
しかし，one wareな通信らしい．センサからマイコンまでの配線は長くなりがちなのでアナログ出力ではないのは仕方がないのかもしれない．けど，WioNodeとワンセットで使いたかったのでちょい微妙．

# WioNodeにもバッチリ対応．というかGroveモジュールがあるらしい
WioNodeでサクッとIoT化したいんだけど...と考えながらWioLinkアプリを覗いてみたところ，普通に対応してた．もといGroveモジュールには**単線温度センサー - One Wire Temperature Sensor**という名称でラインナップされてた（知らんカッター

![96e618415602a1e6c46f8cbd6b10605f.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304878/56ef6886-6d1d-54d1-2a1a-65602872a92e.png)


![77b02e699386c7eee1cb03f8df09d6ab.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304878/a9bc3b08-dcb0-3aa7-a04b-0eeb16e93907.png)

- https://jp.seeedstudio.com/One-Wire-Temperature-Sensor-p-1235.html

残念ながら国内の販社さんでは取り扱いがないっぽいので，Amazonで買って自作Groveモジュール化することに．
→ (@matsujirushi さんのコメントより) chip1さんで[取り扱いがある](https://www.chip1stop.com/product/detail?partId=SEED-0000490)みたいです！743円．工数考えたらコッチの方が安いぞ！

# 抵抗を挟んで熱収縮チューブでエイヤ！で完成
⓪ Amazonで買った怪しいDS18B20なので，どの線がVccでGndで信号線なのかワカラン．色から推測もつくけど念の為...ということでSeeeduino(Arduino UNO)の互換品で動作確認．

![PXL_20211222_154157355 - コピー.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304878/13ac35e1-ac8e-0c40-eb5f-b22f25e384c4.jpeg)

バッチリ動いて，赤：Vcc, 黒：GND, 黄：信号線 だと分かりました．ココからはGroveモジュール化する為に切った貼ったします．

![1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304878/44a74cf8-480f-b5f7-6db0-1e0f58c7a248.jpeg)

① まずは，どこのご家庭にもあるGroveケーブルを半分に切って，赤・黒・黄だけ被覆を向いて，予備半田．
DS18B20は信号線を抵抗でプルアップしておく必要があるので，とりま10kΩの抵抗を赤と黄に繋ぎます．この時，熱収縮チューブを先に通しておくことを忘れずに．

![2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304878/7d91e8f9-40f7-6ee4-a5d8-f3c2f53878a4.jpeg)

② 続いて，DS18B20と繋ぎ込みます．DS18B20の各種線は予備半田しておきましょう．

![3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304878/81cff6fd-427e-91cf-3284-1905eb0644d0.jpeg)

③適当に繋ぎました．ちょっと汚いですが，今回はこれでヨシ！
あとは，赤と黄の線に通しておいた熱収縮チューブで絶縁した後に...


![4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304878/00828d24-01ca-8510-93e2-9080c9382319.jpeg)

④ 全体覆う太めの熱収縮チューブでヨシ！この熱収縮チューブは③の時に通しておきましょう．

![PXL_20211222_162118872.MP - コピー.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304878/9a6e2422-045f-fd96-e3cd-c3af54e2d502.jpeg)

⑤ ひゅー！できた！


# 最後はSeeeduinoで動作確認
![InkedPXL_20211222_162920732 - コピー_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304878/a4654519-d681-034b-a46c-4c83ad425db4.jpeg)

バッチリ動いて，ペットボトルの中の水の水温をそれっぽく拾えました！やったね！
(ちなみにWioNodeでも動作確認してますが，写真撮ってなかったです．


というわけで，Groveの単線温度センサ(DS18B20)を自作してみた話でした．
少し手間はかかりますが，手ごろな価格の防水温度センサなのでGroveモジュール化して一個持っておくと便利かも．


# オマケ：3Dプリンタで水槽のふちにひっかける固定治具つくったったー
![PXL_20211223_122639863.MP (2).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304878/1867ba31-b8d1-6e36-aaa4-c25f131ac9bf.jpeg)

3dプリンタで作りました．インサートナットを半田ごてで押し込むの楽しいっすね！ひゅー！