Умная теплица ардуино своими руками

Содержание
  1. Теплица на Ардуино своими руками – подробно об автоматике умного парника
  2. Шаг 1: Презентация
  3. Шаг 2: Список компонентов
  4. Шаг 3: Код
  5. Шаг 4: Установка
  6. Шаг 5: Электропроводка
  7. Шаг 6: Вебсайт и база данных
  8. Шаг 7: Время сберечь ваше время и ваши растения
  9. Умная теплица на Arduino с управлением/мониторингом по GSM/GPRS
  10. Описание:
  11. Видео:
  12. Логика:
  13. Нам понадобится:
  14. Подключение:
  15. Для начала подключим GSM/GPRS Shield к Piranha ULTRA:
  16. Подключим Trema Shield к GSM/GPRS Shield:
  17. Подключим к Trema Shield 4 Trema-кнопки:
  18. Подключим к Trema Shield Trema Зуммер:
  19. Подключим к Trema Shield Trema Датчик температуры:
  20. Подключим к Trema Shield емкостной Trema Датчик влажности почвы:
  21. Подключим к Trema Shield Trema Датчик освещённости:
  22. Подключим к Trema Shield Trema I2C Hub:
  23. Подключим к Trema I2C Hub через I2C Trema Часы реального времени:
  24. Подключим к Trema I2C Hub через I2C Trema Датчик температуры и влажности I2C-Flash:
  25. Подключим к Trema I2C Hub через I2C ЖК Дисплей:
  26. Подключим к Trema I2C Hub через I2C Flash электромеханическое реле:
  27. Подключим второе I2C Flash электромеханическое реле к первому:
  28. Подключим к первому реле мембранный насос:
  29. Подключим к первому реле светодиодную ленту:
  30. Подключим ко второму реле линейный толкатель:
  31. Скетч проекта:
  32. Алгоритм работы всех систем:
  33. Информационное табло.
  34. Освещение.
  35. Проветривание
  36. Полив.
  37. Дополнительные настройки:
  38. Работа с GSM/GPRS Shield:

Теплица на Ардуино своими руками – подробно об автоматике умного парника

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

Читайте также:  Станок для шлифовки дисков своими руками

Проект автоматизации теплицы был сделан для курса электроники и я хотел использовать в нём Распберри Пи и Ардуино.

Шаг 1: Презентация

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

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

Плата Ардуино подключается к Распберри пи 3 при помощи кабеля USB. Это соединение позволяет нам сохранять замеры и состояния приводов, а все данные отправлять в базу данных mysql. Скрипт на языке python позволяет управлять Ардуино Уно (связь ведущий / ведомый) и сохранить данные в базу, либо прочитать данные из базы и отправить новые данные на Врдуино.

Далее, установленный на Распберри Пи сервер Apache поддерживает вебсайт. При помощи PHP мы создаём мост между БД mysql и вебсайтом.

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

Шаг 2: Список компонентов

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

Шаг 3: Код

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

Программа для Ардуино:
В новой версии я исправили ошибки, при которых не открывалось окно и т.д.

Распберри:
Мы установили сервер MySQL и привязали к нему Python. Для вебсервера мы установили Apache 2.

Вебсайт:
Файлы .CSS доступны в архиве.

Скрипт для Распберри:
Для скрипта мы использовали библиотеку MySQLdb. Используется Python версии 2.7. Скрипт – это мост между Аржуино и Распберри Пи. Он позволяет сохранять данные сАрдуино в базу данных и отсылать невыет контрольные данные, установленные пользователем, в программу Ардуино.

Шаг 4: Установка

Шаг 5: Электропроводка

Шаг 6: Вебсайт и база данных

Наш вебсайт состоит из трёх страниц.
Первая страница – главная, на ней пользователь может узнать состояние устройств и показания датчиков.
Вторая страница – Команды и параметры, где пользователь может легко поменять режим устройств и включить\выключить их. На этой странице также можно задать контрольные числа для температуры и влажности.
На последней странице вы можете прочитать о создателях проекта.

База данных состоит из трёх таблиц. Таблица «measures» хранит в себе накопленные данные. Таблица «types» содержит параметры каждого измерения, а таблица «commandes» позволяет оправлять устройствами и знать их состояние.

Шаг 7: Время сберечь ваше время и ваши растения

Все готово. У вас есть все инструменты для создания автоматизированной теплицы! Посмотрите видео и увидите умный парник в действии.

Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.

Источник

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

Источник

Оцените статью