HomeAssistant 環境を構築する 3
ESP32-C3 でセンサーデバイスを作る
センサーデバイスを作る
HomeAssistant にはたくさんのセンサーなどが登録されていますが、日本国内で販売されている製品はあまりありません。 とりあえず、温湿度センサーと赤外線リモコンができることを目的に、センサーデバイスを作っていきます。
センサーデバイスの構成
一番安価な ESP32-C3 でESPHome で制御させます。 温湿度センサーは以前 seeed のセールで購入した Grove AM2302 モジュール を使います。 赤外線については、よくある赤外線 LED と、赤外線リモコン受信モジュールを用意しました。
LED はどのくらいつければいいのかわからないので、とりあえず 1個。 受信モジュールは信号学習用に 1 台のみつける予定です。
- IO04 → AM2302
- IO05 → LED 出力
- IO06 → 受信モジュール入力
ESP32-C3 の登録
ESPHome に ESP32-C3 を登録します。 やり方は、前回と同じです。 内蔵 USB-CDC 経由でも同じやり方で初期化できます。 特に何もしていませんが、ESP32-C3 として認識されています。
AM2302 の登録
まずは AM2302 センサーを登録します。 ESPHome の DHT センサーを使います。 設定に以下を追記します。
sensor:
- platform: dht
pin: GPIO4
temperature:
name: "Temperature"
humidity:
name: "Humidity"
update_interval: 60s
インストールすると、HomeAssistant から見えるようになります。
赤外線 LED の登録
赤外線リモコンは ESPHome の remote_tansmitter
を使います。
ついでにダメ元でエアコンの設定も
remote_transmitter:
pin: GPIO5
carrier_duty_percent: 50%
climate:
- platform: toshiba
model: GENERIC
name: "AC"
まぁ。そんなに簡単にはいきませんよね…。
あ、動いた…。
さすがに LED 1 個では光量不足のようでしたので、最終的には FET で 4 個の LED をドライブしています。 手持ちに 100Ω未満の抵抗がなかったので、あとで交換しないと…。
リモコン受信機の登録
送信機と同様に remore_rceiver
を使います。
esp32-c3 だとなぜかデフォルトが rmt_channel: 1
になるようなので、明示的に 2 を指定します。
まずは学習データを取るために dump を設定するのですが…。
remote_receiver:
pin:
number: GPIO6
inverted: true
rmt_channel: 2
dump: all
ノイズが載ってるのかまともにデータが取れませんでした。
[I][remote.pronto:234]: Received Pronto: data=
[I][remote.pronto:236]: 0000 006D 0003 0000 0002 0047 0004 0113 000E 0181 06C3
[I][remote.pronto:234]: Received Pronto: data=
[I][remote.pronto:236]: 0000 006D 0005 0000 0002 006C 0004 00AA 0002 0030 0007 01D5 0181 06C3
[I][remote.pronto:234]: Received Pronto: data=
[I][remote.pronto:236]: 0000 006D 0002 0000 0002 017F 0003 0181 06C3
[I][remote.pronto:234]: Received Pronto: data=
[I][remote.pronto:236]: 0000 006D 0002 0000 0005 0192 0181 06C3
というわけで、別のリモコン受信モジュールを調達して次回トライしたいと思います。 (HomeAssitant 対応のリモコン買った方が速い気もしてきた…)