В доме живёт фикус по имени Кактус. Почему он, будучи фикусом, имеет собственное имя Кактус история долгая и к этому рассказу отношения не имеющая. Факт в том, что дерево заслуженное, с историей.
В общем он жил, не тужил, но случилось, так, что нам пришлось надолго уехать. Поливать фикус некому, таскать с собой двухметровое дерево как-то неловко, а обречь его на верную погибель рука не поднялась.
Быстро пробежав по рынку систем автополива понял, что ни одна из них меня, по большому счёту, не устраивает. Подключать к водопроводу было боязно - случись что - зальёт весь дом. Сколько льют - непонятно. С какой частотой настраивать полив - хорошо бы мерять влажность почвы и т.д.
Тут взгляд упал на стоящую без дела 19 литровую бутылку из-под питьевой воды. Решил констрyировать поливалку из того, что было под руками и палок.
«Под руками», кроме вышеупомянутой бутыли оказались:
Электрическая помпа от него — 300 рублей
Плата Wemos D1 mini — $ 2
Самая мелкая из нашедшихся в доме автомобильная кнопка
Датчик влажности почвы YL-38
Клеммники 2.54
Провода цветные 0.35
Опционально: Датчик 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)
alex-open-plc
31.01.2023 09:28Текущий датчик влажности почвы - в мусорку.
Использовать: https://aliexpress.ru/item/32892951369.html?sku_id=65724085289&spm=a2g2w.productlist.search_results.2.6bac4aa6D1j7WcSnakeSolid
31.01.2023 09:56+2Недавно такие заказывал, тоже для поливалки. Оказалось, что у них резистор R4 - висит в воздухе из-за чего аналоговые входы контроллера читают показания как получится. Пришлось на всех датчиках припаивать провод R4-GND, чтобы хоть что-то работало. Насколько я понял - такая проблема именно у датчиков с надписью v2.0 встречается.
alex-open-plc
31.01.2023 11:53Может быть. Китайцы же... У меня, сколько ни покупал, проблем не было.
У датчика автора - жуткий электролиз. Довольно быстро плюсовой электрод деградирует. И почва хорошо насытится медью.
ghans Автор
31.01.2023 13:44Пробовал когда -то такой использовать - показывает погоду на Марсе, курс зимбавийской валюты и т.п. Возможно - просто попался неудачный экземпляр. Думаю, в версии 2.0 воткнуть два штыря из нержавейки.
DonAgosto
31.01.2023 10:43+2скрит перевода в человеческие единицы
Compensation sensor специально для таких проблем придумали
d2ab
31.01.2023 14:11Оценить из практики, сколько в среднем поливается за неделю, тонкой трубкой с зажимом отрегулировать капанье примерно похоже, слегка заклубить трубку в землю, чтобы впитывалось, а не высыхало и готово. Правда статьи не получится.
mikkrob
31.01.2023 18:16+1При таком раскладе, резервуар с водой должен стоять на возвышении, что не очень удобно для 19л бака. Скорость капанья, вероятно, нужно будет подстраивать в зависимости от температуры, влажности, интенсивности солнечного света и, возможно, ещё каких-то внешних факторов. Так что не только статьи бы не получилось, но так же и нормального полива, который можно оставить на длительное время.
ghans Автор
31.01.2023 19:26Именно так. Основной лайфхак здесь это именно использование стандартной 19 литровой бутыли и стандартной трехсотрублёвой помпы. Всё остальное, по большому счёту, описано стотыячпятьсот раз.
ghans Автор
31.01.2023 19:23Не знаю. Мне показалось так проще и быстрее, чем проводить исследование. Да и время поджимало.
safari2012
31.01.2023 17:48+1В доме живёт фикус по имени Кактус. Почему он, будучи фикусом, имеет собственное имя Кактус история долгая и к этому рассказу отношения не имеющая.
Дайте-ка отгадаю: сильно колючий?
anti4ek
Без фото главного героя Кактуса - незачёт.
csharpreader
Автор, отличная лаконичная статья с обаянием тру Хабра.
Но поддержу anti4ek – фото главного героя со смонтированным поливом действительно не хватило )
ghans Автор
Самое обидное, что полное ощущение, что фотографировал. Но куда-то делось с телефона. Теперь уже по возвращению.