Меню

Автоматизация теплицы своими руками arduino

Делаем умную теплицу на Ардуино своими руками

Автоматизация вездесуща. Различные механизмы создают комфортные температурные условия, помогают при готовке пищи, ухаживают за одеждой, включают и гасят свет, а также поддерживают чистоту помещения. Но использование их не ограничивается бытом человека. Вообще во всем окружении, на улице или производстве, при перевозках чего-либо, в магазинах или сельском хозяйстве — везде работают незримые помощники.

С развитием технологической базы вырастает и уровень автоматизации. Сейчас роботы или механизмы выполняют не просто последовательность заложенных действий. Их устройство теперь позволяет осуществлять своеобразный «выбор», в зависимости от изменившихся внешних условий. Самый простой пример — стиральная машина. Ее внутренняя начинка определяет температуру воды и при необходимости подогревает ее, следит за временем стирки и правильностью текущих циклов выполнения.

Кроме уже описанного, в нашу жизнь вошли «умные» дома, города, кварталы или улицы. Главное отличие их от обычных — присутствие взаимосвязанных между собой систем управления. Каждая из которых контролирует одно устройство из присутствующих в комплексе. Но, работу всех их определяет общая система, отправляя сведения необходимые для функционирования или указывающие команды.

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

Общие сведения об управляющих системах

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

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

Основой многих из подобных комплексов составляют контроллеры серии Arduino, STM, Ti MSP430, Netduino, Teensy, Particle Photon, ESP8266 или иных распространенных плат такого типа в мире. Кроме того, некоторые специалисты создают свои варианты микро — компьютеров, управляющих оборудованием — на основе устаревших ПК или каких-либо 8 разрядных процессоров, к примеру, Z80.

Чего бы хотелось

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

Мониторинг и настройка

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

Управление

В соответствии с желаниями, необходимо организовать автоматическое управление отоплением пола (как основы подогрева посадок), открытия форточек, увлажнением почвы. Хороша будет система контроля освещения, которая зажигает его, если на улице темно.

Реализация в «железе»

Ничего сложного в реализации проекта нет. Достаточно применить плату Arduino, в комплексе с несколькими датчиками (влажности, температуры, освещенности, наполнения бака полива и концевых контактов окон проветривания), а также парой двигателей для вентиляции и смонтировать систему «теплый пол».

Но сначала требуется сделать саму теплицу. Для основы была создана такая модель:

Вот ее перенос в реальность:

Мониторинг и настройка

Визуализация информации, а также пункты меню настройки выводятся на LCD1602 дисплей, с конвертором в IIC/I2C UC-146 для подключения его к Arduino.

Для выбора параметров используются 4 клавиши. Все это вместе желательно разместить в общем контрольном ящике.

Кроме визуального, для удаленного контроля будет использоваться модуль WIFI связи ESP8266 LoLin NodeMCU2, с помощью которого информация с использованием UDP протокола будет передаваться на домашний компьютер с настроенным web-сервером и базой данных. Которые впоследствии, можно будет получить на любом устройстве в общей сети — смартфоне, цифровом телевизоре или планшете.

Подключаться модуль к ардуино уно будет через серийный порт (RX/TX). Причем электрический контакт производится напрямую TX(модема)-TX(Arduino) и RX аналогично. Почему это важно — зачастую рекомендуют делать соединение перекрестным RX-TX. В прилагаемой схеме это не нужно.

Полив

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

Так он выглядит в реальности (вместе с системой подачи воды на грядки):

Его схема работы:

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

Отопление

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

Читайте также:  Веранды своими руками с карбоната

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

Вентиляция

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

Освещение

Чтобы обеспечить растения постоянным притоком света, используются китайские светодиодные ленты, которые включаются в зависимости от таймера и уровня освещенности.

На приведенной ниже схеме оно подключается к выводам резерв (освещение).

Управляющая электрическая схема

Ну и конечно самая главная часть — принципиальная схема «мозгов» всей этой конструкции.

Маленькое примечание: мощности для обогревателей (воздуха и почвы) у реле Arduino не хватает. Дополнительно к ним используются в качестве посредников токовые, высокоамперные варианты, подключаемые уже непосредственно к потребителям.

Программная часть

С оборудованием все понятно. Осталось разобраться с программами, которые им управляют и контролируют состояние всей системы. Так как в комплексе есть два высокоинтеллектуальных устройства — ESS8266 и сам Arduino. Соответственно для обоих нужны свои программы. Помещение их в память устройств, в обоих случаях производится через Arduino IDE.

Мониторинг

Скетч, который необходимо выгрузить в ESP8266 LoLin NodeMCU, для обеспечения его связи с Arduino и WIFI роутером.

Управление

Ну и в финале, большой скетч управления самой теплицей, который выгружается в Arduino.

Замечания по конструкции

Датчик DN11 желательно заменить на DN22, который хоть и стоит дороже, но более точен и функционирует без проблем свойственных своему младшему тезке. Для питания контуров управления можно использовать компьютерный блок питания, желательно форм-фактора AT.

Заключение

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

Видео по теме

Источник статьи: http://vashumnyidom.ru/komfort/uxod/umnaya-teplica-na-arduino-svoimi-rukami.html

Умная теплица на Arduino с управлением/мониторингом по GSM/GPRS

Описание:

В данном проекте мы создадим умную теплицу, которая способна управлять освещением, проветриванием и автополивом, имеет на борту часы реального времени и GSM/GPRS Shield для удалённого управления всей системой, а так же для мониторинга текущего состояния.

Видео:

Логика:

Данное устройство позволит вам организовать полностью автоматический режим работы вашей теплицы или гроу-бокса (на случай, если вы выращиваете овощи/фрукты зимой в домашних условиях). Система позволяет управлять сразу 3 важными параметрами: освещение, температура, орошение.

Логика довольна проста:

  • Датчик освещённости фиксирует количество света, попадающего на растение и при понижении его ниже критической отметки — включает дополнительное освещение;
  • Датчики влажности и температуры фиксируют влажность и температуру как воздуха, так и земли, благодаря чему вовремя происходит проветривание или закрытие теплицы, дабы урожай не вымерз и не сгорел;
  • Наличие модуля часов реального времени позволит задать точное время дня (или ночи), когда насос будет подавать воду к растению. При этом длительность полива тоже можно задать!
  • И дополнением к данной системе станет наш GSM/GPRS Shield, благодаря которому вы сможете как следить за состоянием вашего зелёного друга, так и вовремя задать требуемый режим или выполнить команду просто отправив смс на устройство;

Следуя инструкциям нашего урока в скором времени вы сможете обзавестить своей собственной «умной теплицей», которая будет радовать вас круглый год!

Нам понадобится:

  • 1x Piranha ULTRA;
  • 1х GSM/GPRS Shield;
  • 1х Trema Shield;
  • 1х Trema-модуль Зуммер;
  • 1х Trema-модуль Pull switch UP/DOWN;
  • 1х Trema-модуль I2C-FLASH датчик температуры и влажности;
  • 1х Датчик температуры DS18B20;
  • 1x Trema-модуль Емкостной датчик влажности почвы;
  • 1x Trema-модуль Датчик освещенности;
  • 1х Trema-модуль Часы реального времени DS3231;
  • 4х Trema-модуль Кнопка;
  • 2х Flash-модуль Электромеханическое I2c-реле;
  • 1х I2C-Hub;
  • 1х I2C-LCD-дисплей;
  • 1х Мембранный насос;
  • 1х Светодиодная или УФ-лента;
  • 1х Линейный привод;
  • 1х провод красный;
  • 1х провод чёрный;
  • 1х Источник питания (12В);
  • 1х Силиконовый шланг;

Для реализации проекта необходимо установить следующие библиотеки:

О том, как устанавливать библиотеки, Вы можете ознакомиться на странице Wiki — Установка библиотек в Arduino IDE.

Подключение:

Для удобства подключения мы воспользуемся Trema Shield для Arduino.

Для начала подключим GSM/GPRS Shield к Piranha ULTRA:

Стоит добавить, что в том, случае, если вы не будете использовать в проекте GSM/GPRS Shield, для нормальной работы устройства будет достаточно и версии Arduino/Piranha UNO.

Подключим Trema Shield к GSM/GPRS Shield:

Подключим к Trema Shield 4 Trema-кнопки:

Кнопка «НАЗАД» Trema Shield
S D5
V VCC
G GND
Кнопка «ВПЕРЁД» Trema Shield
S D6
V VCC
G GND
Кнопка «ПРИНЯТЬ/ВОЙТИ» Trema Shield
S D9
V VCC
G GND
Кнопка «ОТМЕНИТЬ/ВЫЙТИ» Trema Shield
S D10
V VCC
G GND

Подключим к Trema Shield Trema Зуммер:

Зуммер Trema Shield
S D4
V VCC
G GND

Подключим к Trema Shield Trema Датчик температуры:

Датчик температуры DS18B20 Модуль PULL SWITCH UP/DOWN Trema Shield
Жёлтый провод 2 D2
Красный провод V VCC
Синий провод G GND

Подключим к Trema Shield емкостной Trema Датчик влажности почвы:

Датчик влажности почвы Trema Shield
S A0
V VCC
G GND

Подключим к Trema Shield Trema Датчик освещённости:

Датчик освещённости Trema Shield
S A1
V VCC
G GND

Подключим к Trema Shield Trema I2C Hub:

I2C Hub Trema Shield
SCL SCL
SDA SDA
Vcc Vcc
GND Gnd

Подключим к Trema I2C Hub через I2C Trema Часы реального времени:

Часы реального времени I2C Hub
SCL SCL
SDA SDA
Vcc Vcc
GND Gnd

Подключим к Trema I2C Hub через I2C Trema Датчик температуры и влажности I2C-Flash:

По умолчанию все модули FLASH-I2C имеют установленный адрес 0х09.

— Перед подключением 1 модуля к шине I2C настоятельно рекомендуется изменить адрес модуля.

— При подключении 2 и более FLASH-I2C модулей к шине необходимо в обязательном порядке предварительно изменить адрес каждого модуля, после чего уже подключать их к шине.

Более подробно о том, как это сделать, а так же о многом другом, что касается работы FLASH-I2C модулей, вы можете прочесть в этой статье.

Датчик температуры и влажности I2C Hub
SCL SCL
SDA SDA
Vcc Vcc
GND Gnd

Подключим к Trema I2C Hub через I2C ЖК Дисплей:

ЖК Дисплей I2C Hub
SCL SCL
SDA SDA
Vcc Vcc
GND Gnd

Подключим к Trema I2C Hub через I2C Flash электромеханическое реле:

По умолчанию все модули FLASH-I2C имеют установленный адрес 0х09.

— Перед подключением 1 модуля к шине I2C настоятельно рекомендуется изменить адрес модуля.

— При подключении 2 и более FLASH-I2C модулей к шине необходимо в обязательном порядке предварительно изменить адрес каждого модуля, после чего уже подключать их к шине.

Более подробно о том, как это сделать, а так же о многом другом, что касается работы FLASH-I2C модулей, вы можете прочесть в этой статье.

Электромеханическое реле I2C Hub
SCL SCL
SDA SDA
Vcc Vcc
GND Gnd

Подключим второе I2C Flash электромеханическое реле к первому:

По умолчанию все модули FLASH-I2C имеют установленный адрес 0х09.

— Перед подключением 1 модуля к шине I2C настоятельно рекомендуется изменить адрес модуля.

— При подключении 2 и более FLASH-I2C модулей к шине необходимо в обязательном порядке предварительно изменить адрес каждого модуля, после чего уже подключать их к шине.

Более подробно о том, как это сделать, а так же о многом другом, что касается работы FLASH-I2C модулей, вы можете прочесть в этой статье.

Электромеханическое реле Электромеханическое реле
SCL SCL
SDA SDA
Vcc Vcc
GND Gnd

Подключим к первому реле мембранный насос:

Подключим к первому реле светодиодную ленту:

Подключим ко второму реле линейный толкатель:

Скетч проекта:

Алгоритм работы всех систем:

Всю логику работы теплицы можно разбить на несколько частей:

  • Информационное табло;
  • Освещение;
  • Проветривание;
  • Полив;

Рассмотрим работу каждой части более подробно.

Информационное табло.

После подачи питания на устройство, происходит:

  • настройка сенсоров и датчиков;
  • устанавливаются режимы работы всех систем, взятые либо из постоянной памяти (должны были быть записаны в массив CurrentResumeOrBorderSettingValue при предыдущем запуске), либо из массива с настройками по умолчанию ( DefaultResumeOrBorderSettingValue );
  • опрос всех датчиков и вывод их значений на ЖК-дисплей. Обратите внимание, что на дисплее поочерёдно отображаются 2 страницы, а время смены страниц задано переменной CHANGE_DEFAULT_SCREEN_TIME :
    • 1 страница отображает показатели температуры и влажности земли и воздуха;
    • 2 страница отображает время, значение освещённости и состояние установленных режимов работы каждой из систем (освещение, проветривание, полив);
  • дополнительно в скетч добавлена функция автовозврата к стартовому табло при простое устройства дольше, чем указано в DEFAULT_SCREEN_RETURNING_TIME ;

Освещение.

После нажатия на любую клавишу, кроме ESC , на дисплей выводится меню. И первым разделом на экране будет «Настройка работы системы освещения«. При нажатии на кнопку ОК вы перейдёте во внутреннее меню данной настройки. Что она в себя включает:

  • Настройка режима работы системы освещения. Варианты значений: Выкл/Вкл/Авто
    • Выкл — выключить питание реле, отвечающее за подачу напряжения на освещение;
    • Вкл — включить питание реле, отвечающее за подачу напряжения на освещение;
    • Авто — перевести работу системы в автоматический режим, где освещение будет включаться или выключаться самостоятельно по условию. Про само условие и его настройку будет сказано далее.
  • Настройка границы минимальной освещённости. Интервал значений: от 0 до 1023
    • Условие работы системы освещения в автоматическом режиме, где заданное число будет являться нижней границей, при переходе которой сверху вниз на реле будет подано питание и освещение будет включено.
    • Дополнительно, в условие добавлен порог HUMIDITY_GAP , который исключит переключения питания реле на границе освещённости.
  • Реальный показатель освещённости. В правом верхнем углу дисплея отображается реальное значение освещённости в настоящий момент. Это сделано для удобства установки порога освещённости, так как в этом случае есть на что ориентироваться.

Проветривание

Вторым пунктом основного меню после «Настройка работы системы освещения» идёт «Настройка работы системы проветривания«. При нажатии на кнопку ОК вы переходите во внутреннее меню настройки, включающее:

  • Настройка режима работы системы проветривания. Варианты значений: Выкл/Открыть/Закрыть/Авто
    • Выкл — выключить питание реле, отвечающее за подачу напряжения на линейный толкатель;
    • Открыть — включить питание реле, отвечающее за подачу напряжения на линейный толкатель для открытия окна;
    • Закрыть — включить питание реле, отвечающее за подачу напряжения на линейный толкатель для закрытия окна;
    • Авто — перевести работу системы в автоматический режим, где проветривание будет включаться или выключаться самостоятельно по условию.
  • Настройка минимальной температуры. Интервал значений: от 0 до 49
    • Условие закрытия окна в автоматическом режиме при переходе установленного значения сверху вниз.
    • Если установлено значение, превышающее значение установленной максимальной температуры, то значение будет автоматически снижено до значения (Максимальная температура — 1);
  • Настройка максимальной температуры. Интервал значений: от 1 до 50
    • Условие открытия окна в автоматическом режиме при превышении установленного значения.
    • Если установлено значение меньше, чем значение установленной минимальной температуры, то значение будет автоматически увеличено до значения (Минимальная температура + 1);

Полив.

Следующим пунктом меню будет «Настройка работы системы полива«. При нажатии кнопки ОК на дисплей будет выведено внутреннее меню, состоящее из следующих пунктов:

  • Настройка режима работы системы полива. Варианты значений: Выкл/Вкл/Авто
    • Выкл — выключить питание реле, отвечающее за подачу напряжения на насос;
    • Вкл — включить питание реле, отвечающее за подачу напряжения на насос;
    • Авто — перевести работу системы в автоматический режим, где полив будет включаться по условию.
  • Настройка времени суток для старта полива (час). Интервал значений: от 0 до 23
    • Параметр, отвечающий за время дня (конкретный час), когда полив будет включен автоматически.
  • Время (длительность) работы полива (в секундах). Интервал значений: от 10 до 300
    • Параметр, отвечающий за продолжительность работы насоса.

Дополнительные настройки:

Последним в списке меню идёт раздел «Дополнительные настройки«. Раздел включает в себя:

  • Настройки часов реального времени. Включает в себя 6 подразделов, с помощью которых можно выставить все необходимые значения:
    • Часы. Интервал значений: от 0 до 23
    • Минуты. Интервал значений: от 0 до 59
    • Секунды. Интервал значений: от 0 до 59
    • День недели. Интервал значений: от 0 до 6
    • День месяца. Интервал значений: от 1 до 31
    • Месяц. Интервал значений: от 1 до 12
    • Год. Интервал значений: от 0 до 99
  • Тест реле. В данный пункт входит 4 подпункта, ассоциированные с каждым из 4-х каналов I2C-реле. При выборе необходимого канала и подтверждения включения тестовой проверки, на реле будет подаваться напряжение в течении времени, указанного в RELE_TEST_FULL_TIME ;
  • Настройки работы системы оповещения (зуммер). Данный пункт отвечает за настройку звукового оповещения. Варианты значений: Выкл/Вкл/Авто
    • Выкл — выключить зуммер;
    • Вкл — включить зуммер;
    • Авто — перевести работу системы в автоматический режим, где звуковое оповещение будет включаться или выключаться по следующему условию:
      • Если хотя бы 1 из вышеперечисленных систем (освещение, проветривание, полив) установлена НЕ в автоматический режим работы, то после перевода работы зуммера в автоматический режим будет производиться отслеживание всех необходимых значений датчиков и при превышении или критическом понижении значений относительно установленных границ зуммер будет издавать прерывистый звук (время включения и выключения зуммера задано в ZUMMER_WORKING_TIME и ZUMMER_NOT_WORKING_TIME ) до тех пор, пока параметр не вернётся в допустимый диапазон значений;
      • Если хотя бы 1 из вышеперечисленных систем (освещение, проветривание, полив) установлена в ручном режиме на включение, то зуммер так же будет издавать прерывистый звук, сигнализирующий о том, что система включена в ручном режиме;
      • Для того, чтобы зуммер не издавал звуков ни в одной из вышеперечисленных ситуаций, достаточно перевести его в режим «Выкл«;

Работа с GSM/GPRS Shield:

Приятным дополнением ко всей системе «умной» теплицы будет использование GSM/GPRS Shield для её удалённого мониторинга и управления.

В скетче есть возможность с помощью флага GSM_USING_FLAG включить или полностью выключить поддержку работы данной платы расширения, тем самым сократив количество используемой памяти:

  • Размеры скетча при выключенной поддержке GSM/GPRS:
    • FLASH: 25802 байт;
    • ОЗУ: 1050 байт;
  • Размеры скетча при включенной поддержке GSM/GPRS:
    • FLASH: 45526 байт;
    • ОЗУ: 1680 байт;

Далее мы рассмотрим те возможности, которые предоставляет эта плата расширения в данном проекте.

Всего в проекте есть 10 команд, помощью которых можно управлять всей системой или получать от неё данные. Вот эти команды (при отправке кавычки не указываются!):

  • Настройка режима работы системы освещения: команда «LR +» (интервал значений: -/+/A)
  • Настройка минимального значения освещённости: команда «LMIN 200» (интервал значений: 0-1023)
  • Настройка режима работы системы проветривания: команда «ARR A» (интервал значений: -/O/C/A)
  • Настройка минимальной температуры: команда «ARMIN 0» (интервал значений: 0-49)
  • Настройка максимальной температуры: команда «ARMAX 29» (интервал значений: 1-50)
  • Настройка режима работы полива: команда «APR +» (интервал значений: -/+/A)
  • Настройка времени включения полива: команда «APTIME 20» (интервал значений: 0-23)
  • Настройка продолжительности работы команда «APDELAY 150» (интервал значений: 10-300)
  • Задать время для часов реального времени: команда «TIME 12:43» (интервал значений: 0-23:0-59)
  • Получить данные о состоянии системы: команда «INFO«
  • Полный список команд: команда «HELP«

Источник статьи: http://lesson.iarduino.ru/page/smart_greenhouse

Adblock
detector