КОНТРОЛЛЕР ТЕПЛИЦЫ

09.05.19 Версия 1.1: первоначальная, вроде бы стабильная версия
12.05.19 Версия 1.2: несколько доработок, смотри ниже
14.05.19 Версия 1.3: несколько доработок, смотри ниже
25.05.19 Версия 1.3.3: исправлена критическая ошибка в режиме Timer RTC!

подписаться на обновления
  • Версия 1.1 – начальная версия
  • Версия 1.2
    • Оптимизация Flash памяти для дальнейших доработок
      • 5% за счёт упрощения логики работы EEPROM
      • 1% за счёт оптимизации вывода на дисплей
      • 7% за счёт избавления от класса String
    • Добавлен автоматический переход в окно DEBUG по таймеру неактивности
      • В этот же момент настройки автоматически сохраняются
    • Исправлена критическая ошибка в построении графиков
    • Добавлена настройка периода графика (сутки, час, минута)
    • График меняется в реальном времени
    • К режиму “по сенсору” добавлен гистерезис
      • В настройках режима «Sensor» вместо настройки Threshold (как в версии 1.1) теперь две настройки – minV и maxV. Обе настройки отвечают за пороговое значение с гистерезисом. Логика такая: если величина с датчика больше maxV – канал включается, если меньше minV – выключается.
    • Добавлен режим навигации “кликнул-изменил-кликнул”
    • Настройки в начале скетча:
      • SETT_TIMEOUT – таймаут неактивности (секунд), после которого автоматически откроется окно DEBUG и сохранятся настройки. Работает при всех активных окнах кроме DEBUG, SERVICE и окон графиков.
      • CONTROL_TYPE – тип управления энкодером
        • 0 – удерживание и поворот для изменения значения
        • 1 – клик для входа в изменение, повторный клик для выхода (стрелочка меняется на галочку)
  • Версия 1.3
    • Добавлены настройки SERVO1_RELAY и SERVO2_RELAY, позволяющие использовать каналы серво как реле
    • Исправлен баг в управлении CONTROL_TYPE 1
    • Добавлена поддержка датчика температуры ds18b20 на порту сенсора 1 (SENS1)
    • Добавлена поддержка термисторов на всех портах сенсоров (SENS1-SENS4)
      • Рассчитано на 10 кОм-ные NTC термисторы. Коэффициент b можно настроить
  • Версия 1.3.1
    • Поправлено несколько багов с приводом
  • Версия 1.3.2
    • Энкодер теперь работает на МЕГЕ
  • Версия 1.3.3
    • Исправлена критическая ошибка в режиме Timer RTC
Описание системы
Компоненты, ссылки
Схемы проекта
печатная плата
Прошивка и др. файлы
галерея, чертежи
FAQ (вопросы и ответы)
скачать документацию
скачать документацию v1.2
группа вконтакте
сообщить об ошибке
обсудить на форуме
коллективный заказ плат

ОПИСАНИЕ СИСТЕМЫ

GyverControl – универсальный контроллер-таймер для теплицы и других мест, где нужна автоматизация по таймеру или показателям микроклимата/другим датчикам, имеет 10 отдельно настраиваемых каналов управления, собран из недорогих китайских компонентов и заменяет несколько “магазинных” контроллеров разного назначения: управление поливом, освещением, открытием дверей и многого другого.

Данный проект полностью открытый, то есть любой из вас может сделать себе контроллер для теплицы своими руками, GyverControl сочетает в себе контроллер полива, освещения, проветривания и многого многого другого. Самое главное, что сделать себе такой контроллер умной теплицы можно по себестоимости, т.е. по розничной стоимости китайских компонентов. А это очень дёшево.

Железо:

  • Arduino Nano (ATmega 328p) как главный контроллер системы
  • 7 каналов с логическим выходом 5V, к которым можно подключать обычное реле, твердотельное реле, силовые ключи (транзисторы, модули на основе транзисторов)
  • 2 канала сервоприводов, подключаются обычные модельные серво больших и маленьких размеров
  • 1 канал управления линейным электроприводом с концевиками ограничения движения и с работой по тайм-ауту
  • Датчик температуры воздуха (BME280)
  • Датчик влажности воздуха (BME280)
  • 4 аналоговых датчика (влажности почвы или других)
  • Модуль опорного (реального) времени RTC DS3231 с автономным питанием
  • Большой LCD дисплей (LCD 2004, 20 столбцов, 4 строки)
  • Орган управления – энкодер

Программные фишки:

  • Хранение всех настроек в энергонезависимой памяти (не сбрасываются при перезагрузке)
  • Датчики влажности почвы (все аналоговые датчики) не находятся под постоянным напряжением, оно подаётся только на момент опроса, что позволяет продлить жизнь даже самым дешёвым датчикам влажности почвы (напряжение подаётся за 50 мс до опроса и выключается через 50 мс после).
  • Оптимизированный вывод данных на дисплей
  • Каждый из 10 каналов (7 реле, 2 серво и 1 привод) имеет индивидуальные настройки и может работать по таймеру или по датчикам
  • 4 режима работы каждого канала: три разных таймера и работа по условию с датчиков
  • Серво работает с моей библиотекой ServoSmooth, это обеспечивает плавное их движение: плавный разгон и торможение с ограничением максимальной скорости, а также отсутствие рывков и незапланированных движений при старте системы
  • Линейный привод имеет концевики, внешние кнопки для управления и настройку скорости движения. Частота ШИМ драйвера – 31 кГц, т.е. не пищит
  • Экран отладки, где отображается вся текущая информация о состоянии железа и датчиков
  • Графики температуры и влажности воздуха и показаний с аналоговых датчиков за последние сутки
  • Сервисное меню, позволяющее вручную управлять каждой железкой

Применение как контроллер теплицы/бокса:

  • Периодичный полив (реле)
    • Схема с индивидуальными помпами/клапанами
    • Схема с одной помпой и несколькими клапанами
  • Полив на основе показаний датчиков влажности почвы
  • Управление освещением (реле) с привязкой ко времени суток
  • Проветривание (привод открывает окно/серво открывает заслонку) по датчику температуры или влажности воздуха
  • Увлажнение (включение увлажнителя) по датчику влажности воздуха
  • Обогрев (включение обогревателя) по датчику температуры
  • Выполнение действий сервоприводом (нажатие кнопок на устройствах, поворот рукояток, поворот заслонок, перемещение предметов) по датчику или таймеру

Другие применения:

  • Система поддерживает 4 аналоговых датчика, это не обязательно должны быть датчики влажности почвы, у китайцев полно других «датчиков-модулей», которые точно так же подключаются к схеме:
    • Датчик света: «умная» система освещения, резервное освещение
    • Термистор (до 80 градусов): контроль нагрева объекта
    • Датчик звука: закрывание окна при сильном шуме снаружи (почему нет? =) )
    • Датчик ИК излучения (датчик пожара) – разные варианты сигнализации, или даже тушения (включаем помпу с водой, открываем кран сервой)
    • Датчик дождя: закрытие окон, сигнализирование, включение помп на откачку
    • Датчик уровня воды/датчик наличия воды: автоматическое наполнение резервуара, автоматическая откачка воды помпой из ёмкости/подвала, перекрытие водяных магистралей при протечке, сигнализация о протечке
    • Газоанализаторы в ассортименте: сигнализатор или даже проветривание (открываем окно) по уровню угарного газа и других промышленных газов
    • Оптический датчик препятствия: тут нужна фантазия
    • Потенциометр: как дополнительный орган контроля системы
  • Сервопривод довольно универсальная штука, может открывать/закрывать заслонки, может нажимать кнопки других устройств, вращать ручки регулировки других устройств, с приделанным шатуном получает возможность линейно перемещать предметы/ползунки других устройств. Сервоприводы есть разных размеров, от микро (2 кг/см) и средних (13 кг/см) до весьма мощных (50 кг/см)
  • Реле умеет замыкать контакты питания и управлять любыми устройствами, также реле может включить блок питания (например светодиодной ленты). Реле можно поставить параллельно проводам к кнопке другого устройства, и оно будет его включать или выключать.
  • Основным органом управления является энкодер, рукоятку которого может вращать и нажимать (она является кнопкой). При запуске системы мы попадаем на настройку канала 0. Вращая рукоятку энкодера можно перемещать курсор выбора (стрелочка) по пунктам меню. Чтобы изменить значение выбранного пункта, нужно нажать рукоятку энкодера и повернуть её, удерживая нажатой. Удержанный поворот при выбранном имени канала – смена канала для настройки. Листаем направо и у нас будет по порядку 7 каналов реле, два серво и линейный привод.
  • Чтобы перейти к настройке режима, нужно навести на него курсор и кликнуть кнопкой, не поворачивая. Откроется окно настройки режима, выйти из которого можно кликнув по надписи BACK (назад). Удерживая и вращая рукоятку на выбранном названии режима можно сменить режим, всего их 4.
  • В корне меню (выбор каналов) листая налево от канала 0 будет экран отладки (DEBUG) и сервисный режим (SERVICE). На экране отладки показаны все текущие положения реле, приводов и показания с датчиков. Вращая рукоятку на экране отладки последовательно листаются суточные графики показаний с датчиков: температура воздуха, влажность и показания с аналоговых датчиков. Деления на графике имеют шаг 1.6 часа. На экране сервиса можно управлять любым каналом в ручном режиме, при активном экране сервиса автоматика не работает, система находится полностью в ручном режиме. Поворотом рукоятки можно выбрать нужный канал, положение серво или настройку текущего времени, и удержанным поворотом её изменить.
  • Если включить систему с зажатой рукояткой энкодера, произойдёт полный сброс настроек каналов и режимов.

Режимы работы каналов

  1. Таймер – простой периодичный таймер: задаются периоды ПАУЗЫ и время РАБОТЫ в формате ЧЧ:ММ:СС. С периодом ПАУЗЫ совершается выбранное действие и выполняется в течение периода РАБОТЫ. Например, ПАУЗА стоит 1 час, РАБОТА – 10 секунд. Каждый час будет совершаться действие в течение 10 секунд, то есть если выбран канал реле, то реле включится и выключится через 10 секунд, затем снова включится через час и выключится через 10 секунд и так далее. Как канал ведёт себя на участке РАБОТЫ задаётся в параметре НАПРАВЛЕНИЕ, то есть это может быть вкл/выкл и выкл/вкл (реле), направо/налево и налево/направо (серво) и открыть/закрыть и закрыть/открыть (линейный привод). Данный режим не имеет привязки к реальному времени, перезагрузка системы сбрасывает текущий таймер. Внимание! РАБОТА не должна быть дольше ПАУЗЫ!
    • Мин. значение: 1 секунда
    • Макс. значение: 999 часов
    • Привязка к реальному времени: нет
    • Применение: полив в гидропонных системах, проветривание без датчика
  1. Таймер RTC – периодичный таймер, в отличие от предыдущего обладает привязкой к реальному времени, имеет настройку ПЕРИОДА включения и продолжительности РАБОТЫ (в секундах), которая будет совершаться, и СТАРТ – начального часа, с которого начинается отсчёт периода (для периодов больше 2 часов). Например, период 15 минут, работа 10 секунд: каждые 15 минут будет производиться действие продолжительностью 10 секунд. Привязка к реальному времени работает следующим образом: действие будет совершаться с выбранным периодом от начала часа, то есть если выбран 15 минутный, то действие будет в 0, 15, 30 и 45 минут каждого часа. Если выбранный ПЕРИОД больше часа (от двух и более) то можно выбрать час СТАРТА, от которого пойдёт отсчёт. Все периоды кратны 24 часам, поэтому работа начинается в одни и те же часы каждого дня! Пример: ПЕРИОД 8 часов, начальный час 0. Действие будет выполнено в 0, 8 и 16 часов каждого дня. Если поставить начальный час (СТАРТ) 3 часа, то действие будет выполнено в 3, 11 и 19 часов каждого дня. При сбросе питания следующее действие будет совершено в ближайшее время «будильника». Внимание! РАБОТА не должна быть дольше ПЕРИОДА!
    • Периоды на выбор: каждые 1, 5, 10, 15, 20, 30, 60 минут и 1, 2, 3, 4, 6, 8, 12, 24 часа
    • Привязка к реальному времени: да
    • Применение: полив в гидропонных системах, проветривание без датчика
Период Раз в сутки Когда срабатывает
1 мин 1440 Каждую минуту
3 мин 480 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57 мин. каждого часа
5 мин 288 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55 мин. каждого часа
10 мин 144 0, 10, 20, 30, 40, 50 мин. каждого часа
15 мин 96 0, 15, 30, 45 мин. каждого часа
30 мин 48 0, 30 мин. каждого часа
1 час 24 Каждый час
2 часа 12 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22 часа каждого дня (+ сдвиг на стартовый час)
3 часа 8 0, 3, 6, 9, 12, 15, 18, 21 час каждого дня (+ сдвиг на стартовый час)
4 часа 6 0, 4, 8, 12, 16, 20 часов каждого дня (+ сдвиг на стартовый час)
6 часов 4 0, 6, 12, 18 часов каждого дня (+ сдвиг на стартовый час)
8 часов 3 0, 8, 16 часов каждого дня (+ сдвиг на стартовый час)
12 часов 2 0, 12 часов каждого дня (+ сдвиг на стартовый час)
24 часа 1 0 часов каждого дня (+ сдвиг на стартовый час)
  1. Сутки – простой таймер на одно действие с привязкой к реальному времени, имеет настройку СТАРТ (0-23 часа) – время, с которого действие активно, и СТОП (0-23 часа) – время, с которого действие не активно. При перезагрузке действие вернётся в нужное положение согласно текущему времени. Пример: таймер настроен на 6 и 20 часов (СТАРТ и СТОП). Соответствующее текущему каналу и параметру НАПРАВЛЕНИЕ действие будет активно с 6 до 20 часов, и неактивно с 20 до 6 часов утра следующего дня. При внезапной перезагрузке система совершит действие так, как оно должно быть на этом отрезке времени, то есть из прошлого примера если в промежуток между 6 и 20 часами произойдёт внезапная перезагрузка, при запуске система активирует действие по каналу. Внимание! СТАРТ должен быть меньше СТОПа!
    • Выбор времени: 0-23 часа, кратно 1 часу
    • Привязка к реальному времени: да
    • Применение: идеальный режим для освещения
  1. Датчик – действие на основе датчика. С периодом опроса ПЕРИОД опрашивается выбранный датчик под названием ДАТЧИК и при превышении порогового значения ПОРОГ выполняется действие согласно выбранному каналу (реле/серво/привод). ПЕРИОД опроса опроса задаётся в секундах или минутах (по мере увеличения). Датчик выбирается из списка: Т.ВЗД. – температура воздуха, В.ВЗД. – влажность воздуха и 4 аналоговых датчика (влажности почвы) с SENS_1 по SENS_4. ПОРОГовое значение задаётся с 0 до 1023 с шагом 1 до значения 50 и с шагом 10 начиная от 50 (датчики влажности почвы имеют диапазон значений 0-1023). Например, выбран датчик температуры воздуха, период опроса 1 час и пороговое значение 25. Каждый час система проверяет температуру, при превышении 25 градусов будет выполнено соответствующее каналу действие (включить реле, открыть окно). Через час будет снова произведена проверка.
    • Применение: открытие/закрытие створок по температуре/влажности (привод), полив по влажности почвы, управление вентилятором/увлажнителем (реле) или заслонками (серво) по температуре/влажности.

Настройки каналов реле

  1. Направление – как ведёт себя реле при активации по таймеру/датчику. ВКЛ-ВЫКЛ или ВЫКЛ-ВКЛ
  2. ТИП – логика работы реле
    • Реле – канал реле ведёт себя как обычное реле, может использоваться для управления любой нагрузкой постоянного или переменного тока (управлять сетевыми устройствами): полив индивидуальными помпами, полив индивидуальными клапанами от источника воды под давлением, управления увлажнителями, обогревателями, вентиляторами, приборами освещения и всем другим подобным. Не зависит от других каналов.
    • Клапан – тип канала реле для системы, где есть общая помпа/клапан от источника воды и несколько индивидуальных клапанов на полив разных участков. Канал реле, настроенный как клапан, одновременно со своей активацией (по таймеру/датчику) активирует другой канал/каналы, настроенный как общий.
    • Общий – тип канала реле для системы, где есть общая помпа/клапан от источника воды и несколько индивидуальных клапанов на полив разных участков. Канал реле, настроенный как общий, не имеет настроек режима. Вместо этого он активируется сам одновременно с любым другим каналом, настроенным как клапан. Автоматически сам деактивируется при отсутствии неактивных каналов клапанов.

Настройки каналов серво

  1. Направление – как ведёт себя серво при активации по таймеру/датчику. Поворот в направлении МИН-МАКС угол или наоборот, МАКС-МИН угол
  2. Пределы – углы поворота серво от 0 до 180 градусов с шагом 10
  3. Дополнительно: в скетче в секции настроек есть настройка максимальной скорости движения сервоприводов (SERVO1_SPEED и SERVO2_SPEED) и их ускорение на разгон и торможение (SERVO1_ACC и SERVO2_ACC). Я не стал вносить их в настройки сервисного меню и каналов, т.к. они не так часто нужны.

Настройки канала привода

  1. Направление – как ведёт себя привод при активации по таймеру/датчику, ОТКРЫТЬ-ЗАКРЫТЬ или ЗАКРЫТЬ-ОТКРЫТЬ
  2. Таймаут – время, которое будет подаваться сигнал на движение привода. Концевик (если он есть) прервёт движение привода

Главное меню, уровень вложенности 0

  1. Service (Сервис)
  2. Debug (Экран отладки)
  3. Channel 0 – Channel 6 (Каналы реле 0-6)
    • Mode (Режим) – клик для перехода в настройки режима
    • Direction (Направление работы)
      • On-Off
      • Off-On
    • Type (Тип канала реле)
      • Relay (Реле)
      • Valve (Клапан)
      • Common (Общий)
  1. Servo 1 – Servo 2 (Каналы серво 1 и 2)
    • Mode (Режим) – клик для перехода в настройки режима
    • Direction (Направление работы)
      • Min-Max
      • Max-Min
    • Limits (Пределы поворота)
      • Min
      • Max
  1. Drive (Канал привода)
    • Mode (Режим) – клик для перехода в настройки режима
    • Direction (Направление работы)
      • Open-Close
      • Close-Open
    • Timeout (Время движения)

Настройка режима, уровень вложенности 1

  1. Timer (Простой периодичный таймер)
    • Period (Время паузы, оно же период работы)
    • Work (Время работы)
    • Left (Осталось до следующего включения)
  2. Timer RTC (Периодичный таймер с привязкой ко времени)
    • Period (Период работы)
    • Work (Время работы)
    • Start from (Час, начиная с которого считается период)
  3. Day (Суточный таймер)
    • Start (Час начала работы)
    • Stop (Час окончания работы)
  4. Sensor (Датчик)
    • Period (Период опроса)
    • Sensor (Выбор датчика)
    • Threshold (Пороговое значение)

ПОДРОБНОЕ ВИДЕО ПО ПРОЕКТУ

  • В данном видео показан полный и максимально подробный процесс разработки и изготовления устройства, а также обзор его возможностей и функций.

  • Понятные схемы, OpenSource прошивки с комментариями и подробные инструкции это очень большая работа. Буду рад, если вы поддержите такой подход к созданию Ардуино проектов! Основная страница пожертвовать – здесь.

МАТЕРИАЛЫ И КОМПОНЕНТЫ

Первые ссылки ведут по возможности на одинаковые магазины, т.е. можно заказать большинство компонентов одной посылкой. Если вместо товаров у вас открывается вата/кофта/штаны – на вашем айфоне вирус! Используйте ПК или Андроид.

Железо контроллера

Датчики вл. почвы

Аналоговые датчики

Модули реле

Сервоприводы

Линейные приводы

Железки для теплицы

Разное

В наших магазинах

Железо контроллера

ARDUINO NANO

Главный мозг системы. Микроконтроллер – ATmega 328p. 168 не подходит!

aliexpress
aliexpress
aliexpress

ЭНКОДЕР

Орган управления. Подходят и другие энкодеры, но плата сделана под этот

aliexpress
aliexpress
aliexpress

ДИСПЛЕЙ 2004

Дисплей с переходником на шину i2c. Цвет – на свой вкус

aliexpress
aliexpress

МОДУЛЬ ВРЕМЕНИ

Источник времени с резервным питанием. Опционально

aliexpress
aliexpress
aliexpress

ДАТЧИК ВОЗДУХА

Датчик температуры и влажности воздуха. Нужна версия 5V !!!

aliexpress
aliexpress

ДРАЙВЕР ПРИВОДА

Драйвер с пиковым током 3А. Если привод не ставите – драйвер не нужен

aliexpress
aliexpress

Аналоговые датчики

ВЛАЖНОСТИ ПОЧВЫ

Обычный самый дешёвый окисляющийся датчик, драйвер отдельной платой

aliexpress
aliexpress

ВЛАЖНОСТИ ПОЧВЫ

“Позолоченный” датчик, окисляется медленнее. Драйвер встроен в плату

aliexpress
aliexpress

ВЛАЖНОСТИ ПОЧВЫ

Самый хороший “ёмкостный” датчик. Не окисляется. Драйвер встроен в плату

aliexpress
aliexpress
aliexpress

ОСВЕЩЁННОСТИ

«Умная» система освещения, резервное освещение

aliexpress
aliexpress
aliexpress

ТЕРМИСТОР

До 80 градусов, контроль нагрева объекта

aliexpress
aliexpress

ЗВУК

Закрывание окна при сильном шуме снаружи (почему нет? =) )

aliexpress
aliexpress

ИК ИЗЛУЧЕНИЕ

Датчик пожара – разные варианты сигнализации, или даже тушения (включаем помпу с водой, открываем кран сервой)

aliexpress

ДОЖДЯ

Закрытие окон, сигнализирование, включение помп на откачку

aliexpress
aliexpress

УРОВНЯ ВОДЫ

Включение помп на откачку

aliexpress
aliexpress

ГАЗ

Сигнализатор или даже проветривание (открываем окно) по уровню угарного газа и других промышленных газов

дым, метан, пропан
угарный газ

Внимание!!1 Датчики газа потребляют большой ток (в районе 100 мА) и не могут быть запитаны от основной линии датчиков. Подключите их отдельно на 5V и GND питания, а логический провод подключите куда и все датчики.

Модули реле

МОДУЛИ РЕЛЕ

Модули реле на 1/2/4/8 каналов. Реле с оптической развязкой. Брать версию 5V. Для серьёзных нагрузок не подходят, сильно искрят с индуктивной нагрузкой. Читайте рекомендации по реле ниже, в схемах

aliexpress
aliexpress
aliexpress
aliexpress

МОДУЛИ РЕЛЕ

Модули более качественных и не искрящих твердотельных реле на 1/2/4/8 каналов, пиковый ток 2А (400 Ватт). High/Low – неважно

aliexpress
aliexpress
aliexpress
aliexpress

МОЩНАЯ ТВЕРДОТЕЛКА

Мощное твердотельное реле на 1 канал, ток 10/25/40/50 А

aliexpress
aliexpress

Серво и линейные приводы

СЕРВО 2 КГ*СМ

aliexpress
aliexpress

СЕРВО 13 КГ*СМ

aliexpress
aliexpress

СЕРВО 20 КГ*СМ

aliexpress
aliexpress

СЕРВО 50 КГ*СМ

aliexpress

ЛИНЕЙНЫЙ ПРИВОД

100 mm
20/30/50 mm
150/200 mm

Линейные приводы отличаются по длине штока, напряжению питания, а также скорости и силе тяги, которые друг от друга зависят (чем меньше скорость, тем больше сила). В видео использовался привод 12V 200N 45mm s.
В данном приводе концевики уже встроены во внутрь корпуса, ничего городить-подключать не нужно!

Железки для теплицы

СРЕДНЯЯ ПОМПА

12 Вольтовая помпа на 600 л/ч со входом и выходом на резьбу 1/2″

aliexpress
aliexpress
aliexpress

МОЩНАЯ ПОМПА

Несколько разных помп высокого давления (70 PSI) на 12 Вольт. Выход под шланг

aliexpress
aliexpress
aliexpress
aliexpress

СОЛЕНОИДНЫЙ КЛАПАН

Электромагнитный клапан на давление до 8 атмосфер, выход на резьбу 1/2″

aliexpress
aliexpress
aliexpress

ПОЛНОСПЕКТРОВЫЕ ЛАМПЫ

Лампочки с полным спектром на 220 Вольт под обычный патрон

aliexpress
aliexpress
aliexpress

ПОЛНОСПЕКТРОВЫЕ МАТРИЦЫ

Полноспектровые сетевые матрицы разной мощности. РАДИАТОР ОБЯЗАТЕЛЕН

aliexpress
aliexpress

ГОТОВЫЕ СВЕТИЛЬНИКИ

Готовые полноспектровые сетевые светильники, повесил-забыл

aliexpress
aliexpress
aliexpress

Питание, сборка, разное

БЛОК ПИТАНИЯ

Блок питания нужен 5V 1A питание на питание логики (можно и зарядник от мобилы взять), на питание реле и серво можно взять 5V 2A, при использовании больших серво лучше взять 5V 3A или больше. Для китайского привода хватит 12V 3A, для других приводов лучше сначала замерить ток потребления.

aliexpress
aliexpress
aliexpress

ПРОВОДОЧКИ

Провода берём мама-мама, для удобной сборки макета

aliexpress
aliexpress

КНОПКИ, КОНЦЕВИКИ

Памятка: концевики должны быть нормально-замкнуты, кнопки управления приводом – нормально-разомкнуты!

кнопки н. замкнутые
кнопки н. открытые
герметичный концевик
герметичный концевик

КЛЕММНЫЙ БЛОК

Нам нужны двухместные

aliexpress
aliexpress

КОНТАКТНАЯ РЕЙКА

aliexpress
чип и дип

РЕЙКА УГЛОВАЯ

aliexpress
banggood
чип и дип

Вам скорее всего пригодится

всё для пайки
аккумы, bms
arduino, модули
мультиметры
инструменты
бп и модули

СХЕМЫ ПРОЕКТА

Схема проекта

Схема проекта

Карта платы

Кнопки

Реле привода

Датчик ds18b20

Термистор

Типичная схема реле

Типичная схема реле

Защита диодом

Защита RC цепью

Синие модули реле подкупают своей ценой, но нужно понимать, что серьёзную нагрузку (>2кВт) они не потянут. Можно при помощи этих реле управлять другими, более мощными контакторами. Для управления сетевым оборудованием рекомендуется использовать твердотельные реле. “Синие” реле также очень сильно искрят и спокойно станут причиной зависаний контроллера! Обязательно почитайте про искрогасящие цепи ниже!

Твердотельные реле хороши, но греются. Для коммутации мощностей выше 600-1000 Ватт даже большой твердотелке придётся поставить радиатор, для этого нижняя её часть представляет собой металлическую пластину.

Несмотря на простоту и очевидность подключения нагрузки через реле, можно столкнуться с практически «магическими» проблемами, проявляющимися как глюки в системе контроллера, вплоть до зависания и перезагрузки, и неадекватное поведение дисплея.

Таким образом реле может управлять практически чем угодно, но проблемы возникают именно с индуктивной нагрузкой, причём как постоянного, так и переменного тока. При резком включении и отключении индуктивной нагрузки создаётся выброс, напряжение которого может в несколько раз превышать напряжение питания цепи, этот выброс провоцирует электромагнитные наводки в электрических цепях, которые приводят к сбоям в работе микроконтроллера и других компонентов. Индуктивной нагрузкой являются моторы (приводы, помпы) и соленоиды (электромагниты, соленоидные клапаны и проч.). Коммутация такой нагрузки без защиты от выбросов будет приводить к сбоям в работе контроллера, поэтому давайте рассмотрим несколько способов более-менее защиты от таких проблем.

Что почитать по теме:

Постоянный ток

Самые жизненные примеры – помпа и клапан на 12V, которые управляются от блока питания. Самый первый и обязательный шаг к защите от индуктивных выбросов – диод, установленный встречно-параллельно индуктивной нагрузке. Диод рекомендуется припаивать как можно ближе к нагрузке, а не к реле, чтобы между нагрузкой и диодом было как можно меньше проводов. Это рекомендация, совсем необязательно резать провод у помпы под корень и ставить туда диод – можно разместить диод непосредственно у выводов реле, такой вариант тоже будет работать, но хуже. Смотрите схему выше.

Постоянный и переменный ток

Очень распространённым способом защиты цепи является RC цепь (она же искрогасящая цепь, снаббер), представляющая собой резистор и конденсатор. RC цепь можно поставить параллельно выводам реле (т.е. последовательно с нагрузкой), что очень удобно. Смотрите схему и выбор номиналов выше.

Переменный ток

Для цепей переменного тока есть ещё один совет: используйте твердотельные реле с детектором перехода через ноль (zero detection, zero-cross), они также называются «бесшумные» реле, т.к. в них коммутация происходит в момент перехода напряжения через ноль, и выброс практически равен нулю.

ПЕЧАТНАЯ ПЛАТА

Плата разведена в онлайн редакторе EasyEda. Открыв редактор по ссылке, можно сделать файл/экспорт/PDF и сохранить документ для изготовления ЛУТом или другими наколеночными способами. Можно сохранить Gerber файл (актуальная версия всегда доступна по кнопке ниже) и заказать плату на JLCPCB, изготовление 10-ти плат любого цвета стоит $2.

Плата односторонняя, имеет три перемычки. Не забываем их запаять!

По изготовлению плат своими руками смотрите мои видосы:

проект на easyeda
плата на easyeda
скачать gerber
заказать на jlcpcb
коллективный заказ плат

ПРОШИВКА И НАСТРОЙКА

Загружать прошивку желательно до подключения компонентов, чтобы убедиться в том, что плата рабочая. После сборки можно прошить ещё раз, плата должна спокойно прошиться. В проектах с мощными потребителями в цепи питания платы 5V (адресная светодиодная лента, сервоприводы, моторы и проч.) необходимо подать на схему внешнее питание 5V перед подключением Arduino к компьютеру, потому что USB не обеспечит нужный ток, если например лента его потребует. Это может привести к выгоранию защитного диода на плате Arduino. Гайд по скачиванию и загрузке прошивки можно найти под спойлером на следующей строчке.

1. Если это ваше первое знакомство с Arduino, внимательно изучите гайд для новичков и установите необходимые для загрузки прошивки программы.

2. Скачайте архив со страницы проекта. Если вы зашли с GitHub – кликните справа вверху Clone or download, затем Download ZIP. Это тот же самый архив!

3. Извлеките архив. Содержимое папки libraries перетащите в пустое место папки с библиотеками Arduino C:/Program Files (x86)/Arduino/libraries/

4. Папку с прошивкой из firmware положите по пути без русских букв. Если в папке с прошивкой несколько файлов – это вкладки, они откроются автоматически.

5. Настройте прошивку (если нужно), выберите свою плату, процессор. Подключите Arduino к компьютеру, выберите её COM порт и нажмите загрузить.

6. При возникновении ошибок или красного текста в логе обратитесь к 5-ому пункту гайда для новичков – “Разбор ошибок загрузки и компиляции“.

Содержимое папок в архиве

  • libraries – библиотеки проекта. Заменить имеющиеся версии
  • firmware – прошивки для Arduino
  • schemes – схемы подключения компонентов
  • docs – документация, картинки
  • PCB – файлы печатной платы
скачать архив
страница на github

Настройки в прошивке

#define ENCODER_TYPE 1      // тип энкодера (0 или 1). Если энкодер работает некорректно (пропуск шагов/2 шага), смените тип
#define ENC_REVERSE 0       // 1 - инвертировать направление энкодера, 0 - нет
#define DRIVER_LEVEL 1      // 1 или 0 - уровень сигнала на драйвер/реле для привода
#define LCD_ADDR 0x3f       // адрес дисплея 0x27 или 0x3f . Смени если не работает!!

ПРИМЕРЫ, ФОТКИ, ЧЕРТЕЖИ

ОТВЕТЫ НА ВОПРОСЫ

  • Возможно ли купить готовый контроллер?
    На данный момент продажи контроллеров не планируется
  • Время полива “по датчику” задаётся периодом опроса датчика?
    Всё верно, если поставить период слишком большим – зальёт. В версии 1.2 был добавлен гистерезис для режима “Датчик”, это позволит повысить стабильность работы системы даже на небольших периодах опроса

  • Как задать режим работы для нагревателя?
    Точно так же, как для охладителя: реле в режиме Sensor. Вспоминаем, что реле переключает контакты, то есть может отключать или включать нагрузку. Для твердотельных реле у вас есть дополнительная настройка Direction, устанавливающая логику срабатывания реле при превышении порога по датчику.

  • Как в режиме суток (Day) задать время например с 20 вечера до 6 утра?
    Это то же самое, что задать с 6 утра до 20 вечера, и поставить направление работы (Direction) в другую сторону. Или подключить нагрузку к другим контактам реле.

Контроллер теплицы своими руками
5 (100%) 1 vote[s]
2019-05-29T11:42:24+03:00