Меню

Arduino для управления за теплицей

Контроллер для теплицы на Arduino

Контроллер для теплицы на Arduino.

Ссылки на компоненты:

ЖК-дисплей LCD1602 (синий экран) — http://ali.pub/alnru

Модуль расширителя интерфейса (I2C) — http://ali.pub/dwj5n

4- х канальный релейный модуль — http://ali.pub/1z8ol3

2-ух канальный релейный модуль — http://ali.pub/2cl1ai

Датчик Температуры — DS18B20

Контроллер для теплицы на Arduino.

Оставьте комментарий:

Навигация по сайту:

Юный Технарь:

Помощь проекту:

Деньги можно перечислить на карту Сбербанка России:

4276 5400 2194 5088

Поиск

Последние статьи

Ультразвуковой сканер пространства для с…

Ультразвуковой сканер пространства для слабо зрячих.

Посылка из Китая

Посылка из Китая.

Мой канал на YouTube

Подпишитесь!

2015, Arduinoprom.ru — блог Чилингаряна Грачика. Все авторские права на тексты принадлежат ему.

При размещении текстов и видеоматериалов на сторонних ресурсах активная гиперссылка ОБЯЗАТЕЛЬНА.

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

Источник статьи: http://arduinoprom.ru/arduino/347-kontroller-dlya-teplicy-na-arduino.html

Умная теплица на Arduino- делаем первые шаги

Умная теплица на Arduino- делаем первые шаги

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

Многие с удовольствием занялись подобным хозяйством, вот только ни сил, ни времени для этого нет. И только мечта подсказывает: вот бы такую конструкцию, которая бы настолько умной, что делала бы все сама. Такая теплица окажется востребованной теми, кто не хочет тратить много времени на уход за растениями, а также может не иметь для этого возможности в случае длительного отсутствия — командировок, отпуска и т.п.
Мы и приступим к созданию подобной теплицы, назовем ее умной. А поможет нам создавать умную теплицу контроллер Arduino. Какие же функции будет выполнять умная теплица?
Во-первых, необходимо оперативно получать всю необходимую информацию об климатических параметрах нашей теплицы: температура и влажность воздуха, температура и увлажненность почвы, освещенность теплицы. Т.е. осуществлять мониторинг климатических параметров теплицы.

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

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

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

Рисунок 1. Схематическое изображение умной теплицы

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

  1. температура воздуха;
  2. влажность воздуха;
  3. увлажненность почвы;
  4. освещенность цветка.

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

  1. Arduino Uno;
  2. Кабель USB;
  3. Плата прототипирования;
  4. Провода «папа-папа» – 15 шт;
  5. Фоторезистор – 1 шт;
  6. Резистор 10 кОм – 1 шт;
  7. Датчик температуры TMP36 – 1 шт;
  8. Модуль температуры и влажности воздуха DHT11 – 1 шт
  9. Модуль влажности почвы – 1 шт.

Позиции 1-6 имеются в наборах серии «Дерзай» («Базовый», « Изучаем Arduino » и «Умный дом»), датчик температуры TMP36 имеется в наборах «Базовый» и «Изучаем Arduino». Ссылки на позиции 8 и 9 будут даны в конце статьи.
Сначала познакомимся с датчиками, которые будем использовать для функции мониторинга параметров нашего проекта.
C помощью фоторезистора (рисунок 2) осуществляют измерение освещенности. Дело в том, что в темноте сопротивление фоторезистора весьма велико, но когда на него попадает свет, это сопротивление падает пропорционально освещенности.

Рисунок 2. Фоторезистор

Аналоговый датчик температуры TMP36 (рисунок 2) позволяет легко преобразовать выходной уровень напряжения в показания температуры в градусах Цельсия. Каждые 10 мВ соответствуют 1 0С, Вы можете написать формулу для преобразования выходного напряжения в температуру.

Смещение -500 для работы с температурами ниже 0 0C.

Рисунок 3. Аналоговый датчик температуры TMP36

Датчик DHT11 состоят из емкостного датчика влажности и термистора. Кроме того датчик содержит в себе простенький АЦП для преобразования аналоговых значений влажности и температуры. Будем использовать датчик в варианте модуля для Arduino (рисунок 4).

Рисунок 4. Модуль DHT11

Модуль влажности почвы (рисунок 5) предназначен для определения влажности земли, в которую он погружен. Он позволяет узнать о недостаточном или избыточном поливе ваших домашних или садовых растений. Модуль состоит из двух частей: контактного щупа YL-28 и датчика YL-38, щуп YL-28 соединен с датчиком YL-38 по двум проводам. Между двумя электродами щупа YL-28 создаётся небольшое напряжение. Если почва сухая, сопротивление велико и ток будет меньше. Если земля влажная — сопротивление меньше, ток — чуть больше. По итоговому аналоговому сигналу можно судить о степени влажности.

Читайте также:  Как оформить место возле беседки

Рисунок 5. Модуль влажности почвы

Теперь соберем на макетной плате схему, представленную на рисунке 6.

Рисунок 6. Схема соединения для мониторинга параметров для «Домашний цветок «.

Приступим к написанию скетча. Фоторезистор, датчик температуры TMP36 и модуль влажности почвы – обычные аналоговые датчики. Для датчика TMP36 мы можем преобразовать аналоговые значения в показания температуры в градусах Цельсия. Для работы с модулем DHT11 будем использовать Arduino библиотеку DHT (Скачать). Данные будем измерять с интервалом 5 секунд и значения выводить пока в последовательный порт Arduino.
Создадим в Arduino IDE новый скетч, занесем в него код из листинга 1 и загрузим скетч на на плату Arduino. Напоминаем, что в настройках Arduino IDE необходимо выбрать тип платы (Arduino UNO) и порт подключения платы.

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

Рисунок 7. Вывод значений с показаниями наших датчиков в монитор последовательного порта Arduino.

А вот и наш выращиваемый цветок (рисунок 8).

Рисунок 8. Проект «Домашний цветок»

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

Источник статьи: http://playarduino.ru/uroki-arduino/umnaya-teplitsa-na-arduino-delaem-pervye-shagi/

Умная теплица на 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