В доме живёт фикус по имени Кактус. Почему он, будучи фикусом, имеет собственное имя Кактус история долгая и к этому рассказу отношения не имеющая. Факт в том, что дерево заслуженное, с историей.

В общем он жил, не тужил, но случилось, так, что нам пришлось надолго уехать. Поливать фикус некому, таскать с собой двухметровое дерево как-то неловко, а обречь его на верную погибель рука не поднялась.

Быстро пробежав по рынку систем автополива понял, что ни одна из них меня, по большому счёту, не устраивает. Подключать к водопроводу было боязно - случись что - зальёт весь дом. Сколько льют - непонятно. С какой частотой настраивать полив - хорошо бы мерять влажность почвы и т.д.

Тут взгляд упал на стоящую без дела 19 литровую бутылку из-под питьевой воды. Решил констрyировать поливалку из того, что было под руками и палок.

«Под руками», кроме вышеупомянутой бутыли оказались:

  1. Электрическая помпа от него — 300 рублей

  2. Плата Wemos D1 mini  — $ 2

  3. Самая мелкая из нашедшихся в доме автомобильная кнопка

  4. Датчик влажности почвы YL-38

  5. Клеммники 2.54

  6. Провода цветные 0.35

  7. Опционально: Датчик BME260

Все фото из интернета.
Все фото из интернета.

Верхняя белая крышка насоса закреплена на двух винтах и одной защелке. Сняв, её мы видим плату, аккумулятор и водяную помпу. На аккумуляторе 4.6В. Опытным путём выяснилось, что Вемосу это более, чем достаточно.

Плата управления крепится к помпе. Там же есть площадки питания помпы. Для включения помпы необходимо одну из площадок замкнуть на землю.

Плата управления помпой
Плата управления помпой

Настоящий схемотехник сделал бы собственную плату. Поскольку «я не настоящий сварщик»® я воткнул ESP8266 и первое попавшееся реле.

Удивительно, но Wemos с припаянными клеммниками встала, как родная между помпой и аккумулятором. Для реле нашлось место внизу. Питание взято от аккумулятора. Дополнительно, из обрезков макетки была спаяна плата коммутации. Просто по пять клеммников 3.3v и Gnd  для того, чтобы уменьшить количество «соплей».

На клемму En заведена кнопка для принудительной перезагрузки, на A0 — датчик влажности почвы. На GPIO 4 и 5 I2C датчик температуры BMP280. Мне как раз не хватало датчика температуры в этой комнате.

Датчик влажности почвы состоит из двух частей: собственно датчик, состоящий, в свою очередь из двух электродов и плата преобразования сигнала датчика в аналоговое напряжение. Поскольку сигнал датчика представляет собой, по сути, токовую петлю, я не счёл предосудительным обрезать родной проводок и сделать соединение между платой и датчиком полутораметровым кабелем сечением 0.5. Плату примотал к помпе - рядышком с Wemos.

В родной крышке сзади было просверлено два отверстия - 8 мм под кнопку и 4 мм под провод датчика влажности почвы. После установки крышки на место всего этого безобразия не видно. Только сзади выходит аккуратный тонкий провод и идет в горшок к датчику. В Leroy Merlin был куплен метровый отрезок пласткового шланга для полива внутренним диаметром 8мм. Шланг одним концом надел на железный излив помпы, другой конец закрепил в горшке.

Прошито Esphome. Что это такое и как с ним работать - есть куча статей. Лично для меня наиболее понятные статьи у Павла Пшенникова и у Ивана Бессарабова.

В Home Assistant в интерации Esphome появились три сенсора, один бинарный сенсор и переключатель помпы. Влажность меряется в вольтах. :). 1 вольт обозначает, что всё сыро, как в тропическом лесу. Собираюсь написать скрит перевода в человеческие единицы, но никак не соберусь. Раз в неделю заглядываю посмотреть, как дела дома и, при необходимости, поливаю заслуженное дерево.

JAML конфиг:

esphome:
  platform: ESP8266
  board: d1_mini                    # Модель ESP, в данном случае WEMOS D1 mini
  name: "132-pompa-fikus-kaktus"    # имя
  name_add_mac_suffix: false       
# автоматизация выключения помпы при загрузке на всякий случай
  on_boot:     
  - priority: 600                   # При загрузке 
    then:
      - switch.turn_off: pompa
  - priority: 200                   # При включении Wifi контрольный
    then:
      - switch.turn_off: pompa

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:     # Закрепленный IP используется, в том числе, как ID устройства в таблицах
    static_ip: 192.168.1.132
    gateway: 192.168.1.1
    subnet: 255.255.255.0

logger:   

api:
  password: "12345"

web_server: 
  port: 80 

ota:
  password: "12345"
  on_progress:
    then:
      - logger.log:
          format: "OTA progress %0.1f%%"
          args: ["x"]

# Инициализация I2C шины
i2c:
  sda: D2    # GPIO 5
  scl: D1    # GPIO 4
  scan: True
  id: bus_a

#   Универсальный сенсор BMP280 на I2c
sensor:           
  - platform: bmp280
    temperature:
      name: "132 Temperature"
      oversampling: 16x
    pressure:
      name: "132 Pressure"
    address: 0x76
    update_interval: 20s

#  Аналоговый сенсор влажности почвы
  - platform: adc
    pin: A0
    name: "132 Terra Humidity"
    update_interval: 60s
    id: terrahumidity

# Цифровой сенсор влажности да\нет пороговое значение настроивается на плате. Пусть будет
binary_sensor:
  - platform: gpio
    name: "132_Humidity_D"
    pin: 
      number: D6  #  GPIO 12
      mode:
        input: true
#       pullup: true
      inverted: false    
    id: ficusgrowhumiditydigit

#
switch:
  - platform: gpio
    name: "132_pompa"
    icon: "mdi:sprinkler"
    pin:
      number: D5  # GPIO 14
    id: pompa
    inverted: True           # При подаче 0 реле включается, поэтому инверт
    restore_mode: ALWAYS_OFF # При перезагрузке всегда выключен
    on_turn_on:
     - logger.log: "Поливалка включилась"
     - delay: 30s            # Ради безопасности при случайном включении
     - switch.turn_off: pompa
    on_turn_off:
     - logger.log: "Поливалка выключилась"

Комментарии (17)


  1. anti4ek
    31.01.2023 09:07
    +8

    Без фото главного героя Кактуса - незачёт.


    1. csharpreader
      31.01.2023 17:52
      +1

      Автор, отличная лаконичная статья с обаянием тру Хабра.

      Но поддержу anti4ek – фото главного героя со смонтированным поливом действительно не хватило )


    1. ghans Автор
      31.01.2023 19:28
      +1

      Самое обидное, что полное ощущение, что фотографировал. Но куда-то делось с телефона. Теперь уже по возвращению.


  1. alex-open-plc
    31.01.2023 09:28

    Текущий датчик влажности почвы - в мусорку.
    Использовать: https://aliexpress.ru/item/32892951369.html?sku_id=65724085289&spm=a2g2w.productlist.search_results.2.6bac4aa6D1j7Wc


    1. SnakeSolid
      31.01.2023 09:56
      +2

      Недавно такие заказывал, тоже для поливалки. Оказалось, что у них резистор R4 - висит в воздухе из-за чего аналоговые входы контроллера читают показания как получится. Пришлось на всех датчиках припаивать провод R4-GND, чтобы хоть что-то работало. Насколько я понял - такая проблема именно у датчиков с надписью v2.0 встречается.


      1. alex-open-plc
        31.01.2023 11:53

        Может быть. Китайцы же... У меня, сколько ни покупал, проблем не было.
        У датчика автора - жуткий электролиз. Довольно быстро плюсовой электрод деградирует. И почва хорошо насытится медью.


    1. ghans Автор
      31.01.2023 13:44

      Пробовал когда -то такой использовать - показывает погоду на Марсе, курс зимбавийской валюты и т.п. Возможно - просто попался неудачный экземпляр. Думаю, в версии 2.0 воткнуть два штыря из нержавейки.


  1. DonAgosto
    31.01.2023 10:43
    +2

    скрит перевода в человеческие единицы
    Compensation sensor специально для таких проблем придумали


  1. Didimus
    31.01.2023 13:08
    +1

    Мне кажется, степень полива для медленнорастущих лучше определять по весу горшка с растением.


    1. ghans Автор
      31.01.2023 13:50

      Кстати, классная идея. Надо будет попробовать.


  1. d2ab
    31.01.2023 14:11

    Оценить из практики, сколько в среднем поливается за неделю, тонкой трубкой с зажимом отрегулировать капанье примерно похоже, слегка заклубить трубку в землю, чтобы впитывалось, а не высыхало и готово. Правда статьи не получится.


    1. mikkrob
      31.01.2023 18:16
      +1

      При таком раскладе, резервуар с водой должен стоять на возвышении, что не очень удобно для 19л бака. Скорость капанья, вероятно, нужно будет подстраивать в зависимости от температуры, влажности, интенсивности солнечного света и, возможно, ещё каких-то внешних факторов. Так что не только статьи бы не получилось, но так же и нормального полива, который можно оставить на длительное время.


      1. d2ab
        31.01.2023 18:42

        Фикус очень неприхотливое растение. Зато надежность решения выше.


      1. ghans Автор
        31.01.2023 19:26

        Именно так. Основной лайфхак здесь это именно использование стандартной 19 литровой бутыли и стандартной трехсотрублёвой помпы. Всё остальное, по большому счёту, описано стотыячпятьсот раз.


    1. ghans Автор
      31.01.2023 19:23

      Не знаю. Мне показалось так проще и быстрее, чем проводить исследование. Да и время поджимало.


  1. safari2012
    31.01.2023 17:48
    +1

    В доме живёт фикус по имени Кактус. Почему он, будучи фикусом, имеет собственное имя Кактус история долгая и к этому рассказу отношения не имеющая.

    Дайте-ка отгадаю: сильно колючий?


    1. DWM
      03.02.2023 01:36

      Либо, как вариант, на него когда-то сели.