Реклама
Дачные самоделки

Система полива растений с управлением по Wi-Fi

В этой статье мы рассмотрим еще одну схему автоматизации процесса полива растений. Человек, сделавший эту систему, увлекается электроникой и разведением цветов.
Цветы растут в пяти ящиках в двух местах на террасе над водоемом. Расстояние от зеркала воды до цветов около 60 см. Задача была следующая:
Автоматический забор воды из пруда и полив с помощью капельной ленты в пяти цветочных горшках.
Два отдельных насоса, один для ящиков с цветами у перил, другой для ящиков на палубе.
Полив растений только в определенное время утром и вечером в течение короткого периода времени.
Полив растений только в теплые и солнечные дни.
При реализации этого проекта предполагается, что есть домашняя автоматизация (с погодной станцией) и установлен Home Assistant.
Инструменты и материалы:
-Компьютер;
-Паяльник;
-Клеевой пистолет;
-3D-принтер (опция);
-Плата ESP-Wroom-32;
-Блок питания, 12 В, 2 А;
-Разъем питания вилка / розетка;
-Модуль L298N;
-Самовсасывающий водяной насос 12 В — 2 шт;
-Водяной фильтр;
-Система микрокапельного орошения, включая шланг длиной 10 м;
-Корпус из АБС-пластика;
Шаг первый: схема
Схема работы устройства следующая:
Блок питания подает 12 вольт на драйвер двигателя.
Драйвер мотора подает 5 вольт на ESP32.
Драйвер мотора подает питание на оба водяных насоса.
ESP32 управляет драйвером двигателя через два вывода данных GPIO.

Шаг второй: плата драйвера двигателя L298N
Чтобы плата драйвера генерировала 5 вольт нужно установить перемычку рядом с входом 12 В. С установленной перемычкой плата драйвера двигателя L298N может также напрямую питать ESP32.
Драйвер двигателя имеет 6 цифровых входов, по 3 на каждый двигатель. ENA и ENB — это входы с широтно-импульсной модуляцией (ШИМ), которые определяют скорость двигателя. Входы In1 / In2 и In3 / In4 управляют направлением вращения двигателя. После проверки направления вращения двигателя ,входы In1, In2, In3 и In4 могут быть подключены к 5V / Gnd ESP32 соответственно. В данном случае подключение следующее:
In1 / In3 = high, In2 / In4 = low
ENA и ENB по умолчанию подключены к 5 В через две перемычки. Когда для установки скорости двигателей используется ШИМ, эти перемычки необходимо удалить.
Оба двигателя подключаются к выходным контактам двигателя на плате драйвера.

Реклама

Шаг третий: самовсасывающий мембранный насос
Первым насосом, который мастер попробовал в данной сборке, был простой и дешевый бесщеточный насос постоянного тока 12 В AD20P-1230C. Но этот насос не мог всасывать воду снизу. Для таких целей нужен так называемый «самовсасывающий» мембранный насос.
К основным параметрам этого насоса можно отнести:
Модель: диафрагменный насос постоянного тока R365
Рабочее напряжение: 12 В постоянного тока
Ток без нагрузки: 0,23 А
Максимальный расход: 2-3 л / мин.
Максимальное давление на выходе: 1-2,5 кг
Максимальный подъем: 1-2,5 метра
Максимальное всасывание: 2 метра
Таким образом, он может всасывать воду с глубины 2 метра, чего более чем достаточно, так как в данном случае нужно поднять воду только на 90 см вверх. Затем он должен протолкнуть воду еще на метр. В любом случае, этот насос удовлетворяет техническим требованиям.

Шаг четвертый: подключение ESP32
ESP32 — дешевый, но мощный чип от Espressif Systems. Его довольно часто используют в различных простых проектах беспроводной автоматизации. Особенности ESP32:
ESP32 имеет множество входных и выходных контактов.
ESP32 имеет встроенные Bluetooth и Wi-Fi для беспроводной передачи данных.
В сочетании с ESPHome ESP32 можно интегрировать в Home Assistant.
ESPHome обновляется по воздуху
ESPHome имеет простой локальный веб-сервер
Подключения следующее:
Питание 5 Вольт подключается от платы драйвера двигателя к выводу Vin ESP32.
Gnd подключена к Gnd
Контакт GPIO D14 подключен к ENA для ШИМ двигателя A
Контакт GPIO D32 подключен к ENB для ШИМ двигателя B

Шаг пятый: корпус
Устройство должно быть размещено в водонепроницаемом корпусе. Мастер разработал и напечатал на 3D-принтере, несущую конструкцию, которая удерживает все компоненты и которую можно легко установить в стандартный корпус из АБС-пластика.
Насосы и электронная часть находятся в разных отсеках корпуса. Разъем питания 12 В расположен сбоку.

Шаг шестой: программирование
Сначала нужно прописать некоторые параметры.
В esphome устанавливается название устройства, а также конкретная используемая плата ESP. Если контакты In1, In2, In3 и In4 платы драйвера двигателя подключены напрямую к 5V (In1, In3) и земле (In2, In4), вся запись on_boot может быть удалена.
В Wi-Fi необходимо указать сетевые учетные данные.
Запись api гарантирует, что Home Assistant найдет устройство.
Запись web_server создает веб-сервер, через который можно напрямую управлять устройством.
Запись ota позволяет обновлять данные через сеть Wi-Fi, а не через USB-соединение.
В output entry устанавливаются два контакта управления двигателем. Платформа ledc выбрана для управления ШИМ с частотой 1000 Гц. Если контакты In1, In2, In3 и In4 платы драйвера двигателя подключены напрямую к 5V (In1, In3) и земле (In2, In4), эти настройки не используются и могут быть удалены.
Запись sensor определяет уровень сигнала WiFi.
Код можно скачать ниже.

 Показать / Скрыть текст# # Smart WiFi Controlled Irrigation System Using Home Assistant and ESPHome # # Generic ESP32, name, platform and initial GPIO pin states esphome: name: waterpump platform: ESP32 board: esp-wrover-kit # The on_boot entry can be removed when pins In1, In2, In3 and In4 are directly # connected to 5V (In1, In3) and Gnd (In2, In4) respectively. on_boot: then: — output.turn_on: gpio_in1 — output.turn_off: gpio_in2 — output.turn_on: gpio_in3 — output.turn_off: gpio_in4 # WiFi, connect to network as defined in secrets.yaml file. wifi: ssid: !secret wifi_ssid password: !secret wifi_pass # I have preference for fixed IP address, comment out for dynamic IP address manual_ip: static_ip: 192.168.1.95 gateway: 192.168.1.1 subnet: 255.255.255.0 # fast_connect: true # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Waterpump Fallback Hotspot" password: "Waterpump" # Enable Captive Portal in case connection to defined WiFi network fails. captive_portal: # Enable logging logger: # Enable Home Assistant API, required to auto discover new ESPHome devices api: # Enable local web server for direct connection outside Home Assistant web_server: port: 80 # Enable over-the-air updates ota: # Define the output pins connected to the Motor Driver board # The entries for pins In1, In2, In3 and In4 can be removed when directly # connected to 5V (In1, In3) and Gnd (In2, In4) respectively. output: # Motor 1 — ENA, Enable A (= PWM) — platform: ledc pin: GPIO14 id: gpio_m1 frequency: "1000Hz" # Motor 1 — IN1 — platform: gpio pin: GPIO27 id: gpio_in1 # Motor 1 — IN2 — platform: gpio pin: GPIO26 id: gpio_in2 # Motor 2 — IN3 — platform: gpio pin: GPIO25 id: gpio_in3 # Motor 2 — IN4 — platform: gpio pin: GPIO33 id: gpio_in4 # Motor 2 — ENB, Enable B (= PWM) — platform: ledc pin: GPIO32 id: gpio_m2 frequency: "1000Hz" # Define two light switches in HA that control both water pumps light: # Motor 1 — platform: monochromatic output: gpio_m1 name: "Water pump 1" # Motor 1 — platform: monochromatic output: gpio_m2 name: "Water pump 2" # Define a WiFi strength sensor to indicate the WiFi strength of connection sensor: — platform: wifi_signal name: "Waterpump_WiFi_Signal" update_interval: 60s filters: — median: window_size: 7 send_every: 4 send_first_at: 3
Шаг седьмой: настройка в Home Assistant
Автоматика настроена так, что она запускается каждое утро в 7:00 и каждый вечер на закате. Но только когда небо ясное, туманное или частично облачное.

 Показать / Скрыть текстautomation: — alias: 'waterpump automation' trigger: # Every morning at 7:00 — platform: time at: "07:00:00" # every evening at sun set — platform: sun event: sunset condition: # Only run when sky is clear, cloudy or partly-cloudy — condition: or conditions: — condition: state entity_id: weather.waterfront state: 'clear' — condition: state entity_id: weather.waterfront state: 'cloudy' — condition: state entity_id: weather.waterfront state: 'partlycloudy' action: # Switch the pump on, and let it run for 3 minutes — service: light.turn_on entity_id: — light.water_pump_1 — light.water_pump_2 — delay: minutes: 3 — service: light.turn_off entity_id: — light.water_pump_1 — light.water_pump_2 # Just to be sure, switch it off once more — delay: seconds: 30 — service: light.turn_off entity_id: — light.water_pump_1 — light.water_pump_2

Источник

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть
Закрыть