Описание проекта
Контроллер управления поливом является основной частью системы автоматического полива. Функция контроллера автоматического полива заключается в определении периодичности, начала времени полива и продолжительности полива индивидуально для каждого электромагнитного клапана. Контроллер управления поливом требует индивидуальных настроек длительности и периодичности для разных типов растений.
Контроллер автоматического полива, описанный в данной статье, был собран на основе микроконтроллера ATMEGA16. Программная оболочка написана в CodeVisionAVR на языке Си. Все элементы собраны на плате 15×10 см. Печатная плата спроектирована в программе Sprint Layout. Предполагается установить данный контроллер в коробку IP65 с дверцей, для быстрого доступа. Данный контроллер работает с электромагнитными клапанами 24 В постоянного тока, но в случае необходимости, может быть модернизирован для использования электромагнитных клапанов 24 В переменного тока. Контроллер тестировался на протяжении 3-х месяцев, и в течение указанного срока, в том числе и на момент написания настоящей статьи работал и продолжает работать стабильно.
Технические характеристики и возможности устройства
- Входное напряжение: 24 В постоянного тока
- 8 выходных каналов: ~23 В постоянного тока
- Сохранение пользовательских настроек в EEPROM микроконтроллера
- Поддержка хода часов при потере питания
- Три режима работы: «Автоматический режим», «Ручной запуск» и «Отключен»
- Три настраиваемые программы, которые можно назначить к каждому каналу индивидуально
- Типы программ: «Ежедневный полив», «Полив каждый второй день», «Полив каждый третий день», «Полив по заданным дням недели»
- Три таймера в активный день
- Минимальная длительность активности канала: 1 мин
- Максимальная длительность активности канала: 23 часа 59 мин
- Глобальное изменение длительности полива в %
- Язык интерфейса меню: Английский
Принципиальная схема контроллера
Ниже указана дополнительная информация о компонентах, указанных в схеме:
- В устройстве используется микроконтроллер ATMEGA16 (IC1)
- Для индикации информации и настройки контроллера используется символьный ЖК-дисплей 16х2 (LCD1)
- В устройстве присутствуют четыре тактовые кнопки (B1-B4): «Ввод / Меню», «Отмена / Назад», «Влево / -«, «Вправо/ +»
- В устройстве используются часы реального времени DS1307 (IC6). Микроконтроллер опрашивает DS1307, для сравнения текущего времени и даты с ранее сохраненными настройками программ и таймеров, для своевременного включения/ отключения каналов
- Индикацию активных каналов отражают светодиоды (LED1-LED8)
- Включение каналов по сигналу микроконтроллера обеспечивают четыре составных транзистора Дарлингтона ULN2803 (IC2, IC3, IC4, IC5). Каждый канал (электромагнитный клапан) подключается через четыре запараллеленных контакта, тем самым увеличивая предел возможной пропускной силы тока
- В устройстве используется готовый модуль для понижения напряжения от 24 В до 5 В (VR1)
Ниже приведена схема контроллера:
Печатная плата
- Плата спроектирована в программе Sprint Layout
- Размер платы: 10х15 см
- Тип: односторонняя печатная плата
- В архиве вложена печатная плата в формате *.pdf и *.lay
Рисунок планы указан ниже:
Инструкция к пользованию
По ссылке указанной ниже можно ознакомиться с картой меню контроллера:
Ниже указаны описания всех категорий меню и их перевод на русский язык:
Дежурный экран контроллера отображает текущие дату и время в первой строке, а также режим работы во второй строке.
Главное меню
При нажатии на кнопку «Ввод / Меню» с позиции дежурного экрана, открывается главное меню контроллера, при использовании кнопок навигации «Влево / -«, «Вправо/ +», происходит перелистывание пунктов данного меню:
- Mode Select — Выбор режима
- Auto Settings — Настройки автоматического режима
- Date/Time Settings — Настройка даты и времени
Подменю Mode Select — Выбор режима
При выборе пункта меню «Mode Select», происходит вход в подменю, при использовании кнопок навигации можно обнаружить следующие режимы:
- Off — Выключен
- Auto — Автоматический режим
- Manual — Ручной запуск
При выборе режима «Off» или «Auto», и последующем подтверждении сохранения настроек, выбранный режим будет активирован, и произойдет возобновление дежурного экрана.
Важно: при завершении сохранения, каких-либо настроек, всегда активируется дежурный экран контроллера.
При выборе пункта меню «Manual», требуется ввести дополнительные параметры перед запуском данного режима.
Подменю «Manual» — «Ручной запуск»
При выборе данного пункта меню, пользователь должен выбрать желаемые каналы для включения, для этого, нужно изменить статус «Off» (Выключен) на статус «On» (Включен). После указания статусов для каждого канала, требуется указать длительность полива в минутах. Минимальная продолжительность полива при ручном запуске — 1 минута, а максимальная продолжительность полива — 240 минут. Следующим пунктом настройки является подтверждение запуска программы.
Важно: После завершения процесса полива, режим контроллера будет изменен на режим, который был указан до ручного запуска полива.
Подменю «Auto Settings» — «Настройки Автоматического режима»
Подменю «Auto Settings» разделен на три пункта:
- Program Setup — Настройки программ
- Zone Setup — Настройки каналов
- Duration Adjustment — Корректировка длительности
Подменю «Program Setup» — «Настройки программ»
Войдя в данный раздел, пользователь должен выбрать одну из 3-х доступных программ для последующего редактирования:
- Программа A
- Программа B
- Программа C
После выбора одной из 3-х программ, пользователь должен выбрать в какие дни запускать данную программу. Доступны четыре типа настройки периодичности:
- Everyday — полив каждый день
- Second Day — полив каждый второй день
- Third Day — полив каждый третий день
- DOW Select — полив по указанию дней недели
Режим «Everyday» — Полив каждый день
Данный режим не содержит каких-либо дополнительных настроек, после выбора пункта «Done» (Готово) и подтверждения, настройки будут сохранены.
Режим «Second Day» и «Third Day» — Полив каждый второй день и каждый третий день
После выбора данного режима, пользователь должен дополнительно указать текущий день для запуска счетчика данной программы:
- First Day — Первый день
- Second Day — Второй день
- Third Day — Третий день (данный пункт доступен для режима «Полив каждый третий день»)
Важно: Алгоритм изменения текущего дня, для данных 2-х режимов срабатывает ежедневно, ровно в 00.00.
Режим «DOW Select» — Полив по указанию дней недели
После выбора данного режима, пользователь должен указать в какие дни недели, он желает запускать данную программу, изменив статус с «Off» (Выключено) на статус «On» (Включено).
Подменю «Zone Setup» — «Настройка Зон»
После входа на данный уровень иерархии меню, пользователь должен выбрать канал для последующего редактирования.
После выбора одного из восьми каналов, пользователь должен произвести следующие настройки:
- Program Assign — Назначить программу. Требуется указать одну из 3-х программ (A,B,C). В данном списке также присутствует опция «Off» (Отключить), которая в свою очередь отключает выбранный канал
- Timers Count — Количество таймеров в активный день. Возможно указать до 3-х включений
- Timer #1,2,3 On — время включения канала для таймеров 1,2,3
- Timer #1,2,3 Off — время выключения канала для таймеров 1,2,3
Важно: Максимальная длительность, которую можно указать для таймера, не может превышать 23 часа 59 минут. Таймер невозможно активировать с 23.59 до 00.00 (последнюю минуту дня).
Важно: Время включения таймера не может быть позже времени выключения таймера. В этом случае контроллер укажет на ошибку и перейдет на пункт указания времени включения канала для первого таймера, для корректировки.
Подменю «Duration Adjustment» — «Корректировка длительности«
В данном подменю пользователь может отрегулировать длительность всех существующих таймеров. Данная опция актуальна при сезонных изменениях. Корректировка указывается в процентах.
Важно: Если при настройке корректировки длительности, завершение полива переходит на следующий календарный день, то полив будет приостановлен в 23.59 текущего дня.
Подменю «Date/Time Settings» — «Настройка даты и времени»
При выборе данного подменю пользователь, может настроить текущие дату и время.
Важно: Опция авто-перехода на летнее/зимнее время отсутствует.
Настройка Fuse битов
Для корректной работы порта А, требуется отключить JTAG, потому что указано на рисунке ниже:
Фотографии устройства
Применение датчиков на срабатывание клапанов (дополнение от 14-03-2015)
В данной секции я опишу возможность подключения датчиков влажности почвы, температуры и прочих. Метод описанный мною ниже позволяет использовать данные датчики, как дополнительное условие на срабатывание клапанов, не изменяя прошивки микроконтроллера. В своем примере я буду использовать датчик влажности почвы и модуль с компаратором LM393. Данные два элемента свободно продаются во многих онлайн магазинах и обычно идут в комплекте.
Данный модуль имеет два вывода с одной стороны, для подключения непосредственно к датчику, и четыре вывода с другой стороны, это VCC (+5 В), GND (земля), DO (цифровой вывод, при срабатывании датчика, вывод начинает проводить землю), AO (аналоговый вывод, в нашем примере данный вывод не рассматривается, обычно используется при подключении напрямую к АЦП микроконтроллера). Порог срабатывания датчика настраивается при использовании переменного резистора, на плате модуля опытным путем.
Так же в своем примере, я буду использовать модуль с восемью реле, для того, чтобы учесть интересы другой части пользователей, которые будут использовать электромагнитные клапаны 24 В переменного тока. Данный модуль также свободно продается и часто используется любителями платформы Arduino. На плате модуля находятся десять выводов, это GND (земля), восемь выводов IN1-IN8 (при подключении земли к данным выводам, срабатывает соответствующее реле на плате) и вывод VCC (+5 В)
Схема подключения следующая:
Вывод базы транзистора 2N7000 подключен через резистор к +5 В, в таком положении транзистор всегда открыт. Минуя резистор, к базе транзистора подключается вывод датчика влажности почвы. Напомним, что при срабатывании датчика, на данный вывод подается земля. Соответственно, если датчик сработал, транзистор закроется.
В открытом состоянии, транзистор 2N7000 проводит через себя «общую землю» к выводу «9» составного транзистора Дарлингтона, и все каналы клапанов работают в штатном режиме, если же 2N7000 закрывается (датчик сработал), ULN2803 перестает функционировать и передавать негативные сигналы на модуль реле.
Изменение схемы контроллера под свои нужды, позволяют отказаться от использования некоторых компонентов, и использовать альтернативные компоненты. Схема указанная ниже, не отображает полную картину подключения контроллера и не является завершенным проектом, а лишь является вспомогательным инструментом для модернизации контроллера.
Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот
МикроконтроллерIC1
МК AVR 8-битATmega161
DIP40ТранзисторыIC2-IC5
Составной транзисторULN28034
DIP18Часы реального времени и кварцIC6
Часы реального времени (RTC)DS13071
DIP8ZQ1
Кварцевый резонатор32.768 кГц1
2х6 (мм)РезисторыR1-R4
Резистор10 кОм4
SMD1206R5, R6
Резистор4.7 кОм2
SMD1206R7-R15
Резистор1 кОм9
SMD1206ИндикацияLCD1
LCD-дисплейLCD16021
LED1 -LED8
СветодиодGreen ~3 В, 25 мА8
2х5х7 (мм)УправлениеB1B4
Кнопка тактоваяTSQG-2L4
12х12х7 (мм)ПрочееZ1- Z9
Клеммник винтовой разъемный2EDGK-5.08-02P9
BH1
Фиксатор аккумулятораJtron CR2025 / CR20321
Вилка штыреваяPLS-401
для пайки LCD1602 к плате и модуля регулятора напряжения
DIP-разъемDIP-401
для IC1
DIP-разъемDIP-81
для IC6Питание и модуль регулировки напряженияBAT1
Литиевый источник питанияCR20251
VR1
DC/DC импульсный конвертерLM25961
5 В; 3 А. Не забудьте отрегулировать на 5 В перед пайкой! Размеры: 43х21х14 (мм)Добавить все
Скачать список элементов (PDF)
Прикрепленные файлы:
- IrrigationController_v2_1.rar (100 Кб)