本チュートリアルでは、Unit Watering 静電容量式土壌水分検出・調節ユニットを Home Assistant に統合し、スマートな土壌モニタリングと自動灌水制御を実現する方法を説明します。
Unit Watering は単独のセンサープラットフォームであるため、Home Assistant に統合するには Atom シリーズ・Stamp シリーズ・Stick シリーズ・Core/Basic シリーズなどの別途メインコントローラーが必要です。
静電容量式土壌水分センサーは電圧/ADC 値を報告するため、使用するメインコントローラーに合わせて ADC コンポーネントを有効化・設定する必要があります。
# Example configuration entry
sensor:
- platform: adc
pin: GPIOXX
name: "xxxx"
update_interval: 60s 例えば Atom Lite を使用する場合:
# Example configuration entry
sensor:
- platform: adc
pin: GPIO32
name: "xxxx"
update_interval: 60s ウォーターポンプのスイッチを設定します:
switch:
- platform: gpio
pin: GPIO26
name: "Water pump" これにより、Home Assistant のフロントエンドからモーターのオン/オフを制御して給水を行うことができます。
完全な設定例:
sensor:
- platform: adc
pin: GPIO32
id: voltage
name: "Voltage"
attenuation: auto
update_interval: 10s
- platform: template
id: adc_reading
name: "ADC Reading"
lambda: |-
return roundf( id(voltage).state * 1000.0f );
update_interval: 10s
text_sensor:
- platform: template
name: "Soil Moisture"
icon: "mdi:water-percent"
lambda: |-
const int ADC_DRY = 1550; // Dry threshold
const int ADC_WET = 1450; // Wet threshold
if ( id(adc_reading).state >= ADC_DRY) {
return {"Dry"};
} else if ( id(adc_reading).state >= ADC_WET) {
return {"Wet"};
} else {
return {"Saturated"};
}
update_interval: 10s
switch:
- platform: gpio
pin: GPIO26
id: water_pump
name: "Water pump"
icon: "mdi:water-pump"
restore_mode: RESTORE_DEFAULT_OFF template センサーは、実際の計測データに基づいて変更可能で、数値の範囲に応じて土壌の水分状態を報告します。
const int ADC_DRY = 1550; // Dry threshold
const int ADC_WET = 1450; // Wet threshold 一般的に、土壌が乾燥しているほど値は大きくなり、湿潤しているほど値は小さくなります。センサーの読み取り値を元にオートメーションを作成し、ポンプのオン/オフを制御することで、タイマー設定または土壌の水分量に応じた自動灌水を実現できます。
ESPHome でタイマーによるスイッチのオン制御を実装する場合は、time コンポーネントを参照してください。
例えば、平日の毎朝 7 時 30 分にポンプを起動し、1 分間給水した後に停止する設定:
# Example configuration entry
time:
- platform: homeassistant
id: homeassistant_time
on_time:
# Every morning on weekdays
- seconds: 0
minutes: 30
hours: 7
days_of_week: MON-FRI
then:
- switch.turn_on: water_pump
- delay: 60s
- switch.turn_off: water_pump 設定が完了すると、Home Assistant でセンサーデータを確認できます:
