DS18B20温度センサーで水温を測って, Home Assistantに表示する

ベランダ水耕栽培用に水温計を設置したいと考えていたところ、アリエクの金額調整にちょうどよかったのでポチッとしたのがこちら。

最近のアリエクは、迅速配達(1週間ぐらいで届く)ができるものがそこそこあるのですが、条件が合計1,500円以上となっています。なので、アリエク内ではちょっと高めでしたが、こちらをポチッと。

またもアリエクで買ったESP32-C3 Super Mini(488円)に付けて、ベランダに設置します。

必要なもの

DS18B20温度センサー
ESP32
4.7kΩの抵抗

手順

1. センサーの接続

DS18B20のVCC(赤)は、ESPの3.3Vへ。
DS18B20のGND(黒)は、ESPのGNDへ。
DS18B20のDQ(黄)は、ESPのGPIO4へ。
DQと3.3Vの間に4.7kΩの抵抗を入れます。

ブレッドボードの上で抵抗を入れるならすぐにイメージはできたのですが、はんだ付けしちゃうならどんな感じか? 図解するとこうなります。

実際出来上がったものは、こんな小汚い感じ。ちゃんと動作するし、熱収縮チューブで見た目はきれいにしています。

2. ESPにインストールする

Home AssistantのESPHomeで、「+NEW DEVICE」からESPの追加を行います。「EDIT」では、以下のようにしました。

esphome:
  name: ds18b20
  platform: ESP32
  board: esp32-c3-devkitm-1

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: " ESPHomeのNEW DEVICEで生成されます。 "

ota:
  password: " ESPHomeのNEW DEVICEで生成されます。 "

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

# Enable the DS18B20 sensor
dallas:
  - pin: GPIO4

sensor:
  - platform: dallas
    index: 0  # addressフィールドの代替
    name: "Plant water temperature"
    id: plant_water_temperature

    on_value:
      then:
        - homeassistant.event:
            event: esphome.temperature
            data_template:
              temperature: "{{ id(plant_water_temperature).state }}"

今回は、はじめてESP32-C3 Super Miniを使ったので、なかなか手こずりました。この書き方で正しいのかちょっと不安ですが、まあセンサーは動作しています。

3. 防水措置

防水という商品を買ったのですが、防水が甘すぎて水が侵入。途中でセンサーが接続されていないと言われました。中の水分を出し、乾かした後に動作確認。動いているのでシーリングをしました。まあ、液肥の水が入ったので、いずれは錆びるだろうから追加注文はしました。