Разработка модели автоматизированной системы орошения для теплицы

XXIV Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Разработка модели автоматизированной системы орошения для теплицы

Ипатова А.В. 1Саитова А.И. 1
1Муниципальное бюджетное общеобразовательное учреждение "Средняя общеобразовательная школа №2"
Лялина О.А. 1Яшкин А.В. 1
1Муниципальное бюджетное общеобразовательное учреждение "Средняя общеобразовательная школа №2"
Автор работы награжден дипломом победителя III степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

Цель работы: Разработка модели автоматизированной системы орошения для теплицы с целью повышения урожайности и снижения труда на полив.

Проблема:

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

Задачи:

  1. Исследовать современные технологии полива

  2. выбрать необходимое оборудование

  3. Изучить среду программирования

  4. разработать программное обеспечение

  5. Изготовить прибор

  6. провести тестирование системы

Целевая аудитория

Садоводы, агрономы, любители цветоводства и овощеводства, а также студенты и специалисты в области агрономии.

Ресурсы

Необходимое оборудование (датчики, насосы, контроллеры), программное обеспечение, временные ресурсы на разработку и тестирование.

Продукт

Модель системы автоматизированной системы орошения теплиц

Актуальность:

Тема проекта по изготовлению модели автоматизированной системы орошения теплиц является крайне актуальной в современном мире.

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

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

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

Сборка модели автоматизированной системы орошения теплиц

Проект представляет собой систему автоматизации для теплицы, созданную на базе Arduino Nano. Она предназначена для контроля микроклимата и автоматизации процессов полива, проветривания, а также отображения параметров среды.

  1. Функционал

  • Автоматическое включение насоса для полива на основе показаний датчика влажности почвы.

  • Автоматическое открытие дверей на сервоприводах при достижении критической температуры.

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

  • Отображение текущих параметров на LCD-дисплее.

2. Компоненты

  1. Arduino Nano - центральный контроллер.

  2. Датчик температуры и влажности DHT11 - мониторинг температуры и влажности воздуха.

  3. Датчик влажности почвы HW-080 - измерение влажности почвы.

  4. LCD-дисплей 1602A с I2C модулем - вывод текущих параметров.

  5. ИК-приемник - управление режимами и настройками с пульта.

  6. Два сервопривода SG90 - управление открытием/закрытием дверей.

  7. Модуль MOSFET IRF520 - управление насосом.

  8. Насос 12 В, 5 Вт - для полива.

  9. Источники питания:

    • 5 В для сервоприводов (внешний аккумулятор).

    • 12 В для насоса (внешний аккумулятор).

Название составляющей

Изображение

Стоимость

Насос ардуино

 

799 рублей

Блок питания для насоса

 

400 рублей

Обратный клапан

 

156 рублей

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

 

350 рублей

LCD1602A дисплей

 

478 рублей

Комплект кабелей для ардуино

 

334 рубля

Автомобильные форсунки

 

5 рублей 1 шт. – 8 шт

Шланг d=0,5мм

 

495 рублей

Датчик влажности воздуха

 

241 рубль

Датчик влажности воздуха YL -69 (FC-28)

 

156 рублей

Макетная плата

 

202 рубля

Мини теплица

 

1528 рублей

Мини петли

 

152 рубля

Итого

5031 рубль

3. Подключение компонентов

  1. Arduino Nano
    Используется как центральный контроллер для управления всеми компонентами. Подключение осуществляется через USB для питания и загрузки программы.

  2. Датчик температуры и влажности воздуха DHT11

  • Пин сигнала: Подключите к цифровому выводу D3.

  • Питание: VCC к 5V на Arduino, GND к GND.

  • Резистор на 10 кОм подключается между выводами VCC и сигнала для подтяжки.

  1. Датчик влажности почвы HW-080

  • Пин сигнала: Подключите к аналоговому выводу A7.

  • Питание: VCC к 5V на Arduino, GND к GND.

  1. LCD-дисплей 1602A с I2C адаптером

  • SDA: Подключите к A4 (SDA на Arduino Nano).

  • SCL: Подключите к A5 (SCL на Arduino Nano).

  • Питание: VCC к 5V, GND к GND.

  1. ИК-приемник для управления пультом

  • Пин сигнала: Подключите к цифровому выводу D2.

  • Питание: VCC к 5V на Arduino, GND к GND.

  1. Два сервопривода SG90 для управления дверьми

  1. Серво 1 (левый):

    • Пин сигнала к аналоговому выводу A2.

  2. Серво 2 (правый):

    • Пин сигнала к аналоговому выводу A3.

  1. Оба серво подключаются к внешнему источнику питания 5V с общей землёй (GND соединяется с GND Arduino).

7. Насос 12V 5W для полива

MOSFET модуль управления насосом:

    • Пин управления (Gate) к цифровому выводу D7.

    • Питание насоса:

      • Положительный вывод к внешнему источнику питания 12V.

      • Отрицательный вывод через MOSFET к GND внешнего источника.

    • MOSFET модуль и Arduino должны иметь общую землю.

8. Источник питания для Arduino и других компонентов

  • Arduino Nano питается через USB.

  • Остальные компоненты получают питание от Arduino (5V) или от внешнего источника.

4. Программные особенности

  • Используемые библиотеки:

  • #include <IRremote.h>

  • #include <Servo.h>

  • #include <iarduino_DHT.h>

  • #include <Wire.h>

  • #include <LiquidCrystal_I2C.h>

  • Логика работы:

    • Периодическое обновление данных каждые 5 секунд.

    • Управление устройствами (насос, сервоприводы) на основе показаний датчиков.

    • Интерактивное изменение пороговых значений через ИК-пульт.

    • Режим отображения текущих параметров и режим настройки порогов.

Анализ существующих автоматизированных систем орошения: основные минусы и плюсы

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

Название системы

Описание работы

Стоимость

«Водомерка»

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

4500р.

«ПоливНаДаче»

Набор капельного типа с возможностью настройки влажности с помощью регулируемых тумано- образователей. Система работает от водопровода. Управление осуществляется механическим способом (с помощью вентилей).

2275 рублей

DEKO

Автоматическая система полива с таймером и электронным дисплеем, а также возможностью установки интервала подачи воды 

4000 рублей

Плюсы:

  1. Экономия воды.

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

  1. Повышение урожайности.

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

  1. Снижение трудозатрат.

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

  1. Улучшение качества полива.

Автоматические системы могут обеспечивать более равномерное распределение воды по полю или саду, что улучшает качество полива и способствует более эффективному усвоению влаги растениями.

Минусы:

  1. Высокая стоимость установки.

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

  1. Сложность настройки и обслуживания.

Для эффективной работы системы требуется тщательная настройка параметров полива, а также регулярное обслуживание и обновление программного обеспечения.

  1. Технические проблемы.

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

  1. Влияние на окружающую среду.

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

Код для ардуино «Орошение теплицы»

#include <IRremote.h> // Библиотека для работы с ИК-пультом

#include <Servo.h> // Библиотека для управления сервоприводами

#include <iarduino_DHT.h> // Библиотека для работы с датчиком температуры и влажности

#include <Wire.h> // Библиотека для работы с I2C-интерфейсом

#include <LiquidCrystal_I2C.h> // Библиотека для управления LCD-дисплеем через I2C

// --- Настройка пинов и объектов ---

#define DHTPIN 3 // Пин, к которому подключен датчик DHT11

#define MOISTURE_SENSOR_PIN A7 // Аналоговый пин для датчика влажности почвы

#define MOSFET_PIN 7 // Пин для управления насосом через MOSFET

iarduino_DHT dht(DHTPIN); // Создаем объект для работы с DHT11

Servo servo1; // Первый сервопривод

Servo servo2; // Второй сервопривод

// --- Настройка пинов ИК-приемника ---

const int recv_pin = 2; // Пин, к которому подключен ИК-приемник

// --- Инициализация дисплея и ИК-приемника ---

LiquidCrystal_I2C lcd(0x27, 16, 2); // Настраиваем дисплей (адрес 0x27 или 0x3F)

IRrecv irrecv(recv_pin); // Создаем объект для работы с ИК-пультом

// --- Параметры системы ---

int mode = 0; // 0 - режим отображения, 1 - режим настройки

int currentSetting = 1; // Текущий параметр настройки

int maxTemperature = 25; // Максимальная температура для закрытия дверей

int maxHumidity = 80; // Максимальная влажность воздуха

int maxSoilMoisture = 500; // Порог влажности почвы для включения насоса

// --- Переменные для хранения данных с датчиков ---

int temperature = 0; // Текущая температура

int humidity = 0; // Текущая влажность воздуха

int soilMoisture = 0; // Текущая влажность почвы

// --- Таймер для периодического чтения данных ---

unsigned long previousMillis = 0; // Время последнего обновления

const long interval = 5000; // Интервал обновления данных (5 секунд)

// --- Настройка начальных параметров ---

void setup() {

servo1.attach(A2); // Подключаем первый сервопривод

servo2.attach(A3); // Подключаем второй сервопривод

pinMode(MOISTURE_SENSOR_PIN, INPUT); // Настройка пина датчика влажности почвы

pinMode(MOSFET_PIN, OUTPUT); // Настройка пина управления насосос

lcd.init(); // Инициализация LCD-дисплея

lcd.backlight(); // Включение подсветки

lcd.clear(); // Очистка экрана

Serial.begin(9600); // Запуск последовательной передачи данных

dht.read(); // Инициализация датчика DHT11

irrecv.enableIRIn(); // Запуск ИК-приемника}

// --- Основной цикл программы ---

void loop() {

// Проверка времени для обновления данных

unsigned long currentMillis = millis();

if (currentMillis - previousMillis >= interval) {

previousMillis = currentMillis;

// Чтение данных с датчиков

dht.read(); // Обновление температуры и влажности

temperature = dht.tem;

humidity = dht.hum;

soilMoisture = analogRead(MOISTURE_SENSOR_PIN); // Чтение влажности почвы

soilMoisture = map(soilMoisture, 0, 1023, 1023, 0); // Инверсия значения

// Управление насосом

if (soilMoisture < maxSoilMoisture) {

digitalWrite(MOSFET_PIN, HIGH); // Включаем насос

} else {digitalWrite(MOSFET_PIN, LOW); // Выключаем насос }

// Обновление дисплея в режиме отображения

if (mode == 0) { displayValues(); }

// Управление сервоприводами в зависимости от температуры

if (temperature > maxTemperature - 5 && temperature <= maxTemperature) {

smoothMove(servo1, servo1.read(), 90); // Открытие дверей

smoothMove(servo2, servo2.read(), 90);

} else {smoothMove(servo1, servo1.read(), 0); // Закрытие дверей

smoothMove(servo2, servo2.read(), 0);}}

// Обработка сигналов с ИК-пульта

if (irrecv.decode()) { long code = irrecv.decodedIRData.decodedRawData; // Чтение кода кнопки

// Обработка кнопок и режимов...

irrecv.resume();}}

// --- Функция отображения текущих значений на LCD ---

void displayValues() {

lcd.clear(); // Очищаем экран перед выводом новых данных

// Первая строка: температура

lcd.setCursor(0, 0);

lcd.print("Temp: ");

lcd.print(temperature); // Отображение температуры

lcd.print("C");

// Вторая строка: влажность воздуха и почвы

lcd.setCursor(0, 1);

lcd.print("VV:"); // Влажность воздуха

lcd.print(humidity);

lcd.print("%");

lcd.setCursor(8, 1);

lcd.print("VP:"); // Влажность почвы

lcd.print(soilMoisture);}

// --- Функция отображения параметров настройки ---

void displaySettings() {

lcd.clear();

// Вывод текущего параметра

lcd.setCursor(0, 0);

lcd.print("Setting: ");

lcd.print(currentSetting); // Номер текущей настройки

// Вторая строка: параметр и его значение

lcd.setCursor(0, 1);

if (currentSetting == 1) {lcd.print("Soil Moist: ");

lcd.print(maxSoilMoisture); // Порог влажности почвы

} else if (currentSetting == 2) { lcd.print("Temp: ");

lcd.print(maxTemperature); // Максимальная температура

} else if (currentSetting == 3) { lcd.print("Humidity: ");

lcd.print(maxHumidity); // Максимальная влажность воздуха

}

}

// --- Функция уменьшения значения текущего параметра ---

void decreaseValue() {

if (currentSetting == 1) {

maxSoilMoisture -= 10; // Уменьшаем порог влажности почвы

} else if (currentSetting == 2) {

maxTemperature--; // Уменьшаем максимальную температуру

} else if (currentSetting == 3) {

maxHumidity--; // Уменьшаем максимальную влажность воздуха

}

}

// --- Функция увеличения значения текущего параметра ---

void increaseValue() {

if (currentSetting == 1) {

maxSoilMoisture += 10; // Увеличиваем порог влажности почвы

} else if (currentSetting == 2) {

maxTemperature++; // Увеличиваем максимальную температуру

} else if (currentSetting == 3) {

maxHumidity++; // Увеличиваем максимальную влажность воздуха

}

}

// --- Функция переключения на следующий параметр настройки ---

void nextSetting() {

currentSetting++;

if (currentSetting > 3) {

currentSetting = 1; // Возвращаемся к первому параметру, если достигнут конец списка

}

}

// --- Функция переключения на предыдущий параметр настройки ---

void previousSetting() {

currentSetting--;

if (currentSetting < 1) {

currentSetting = 3; // Возвращаемся к последнему параметру, если достигнут начало списка

}

}

// --- Функция плавного перемещения сервопривода ---

void smoothMove(Servo &servo, int startAngle, int endAngle) {

int steps = 50; // Количество шагов для плавного движения

int delayTime = 20; // Задержка между шагами в миллисекундах

for (int i = 0; i <= steps; i++) {

int angle = startAngle + (endAngle - startAngle) * i / steps; // Вычисляем текущий угол

servo.write(angle); // Устанавливаем угол сервопривода

delay(delayTime); // Пауза между шагами

}

}

Сборка модели теплицы

Д ля сборки нам понадобится мини теплица, на теплице вырезаем форточки и крепим к ним сервоприводы – для открывания форточек для проветривания.

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

Соединяем всю систему вместе (рис.3). Проводим опытные испытания.

Источники информации:

  1. Arduino Official Website - https://www.arduino.cc/

  2. Официальный сайт Arduino с документацией, библиотеками, форумами и примерами проектов 0- https://arduino.ru/Reference

  3. Сообщество DIY-проектов, где можно найти множество пошаговых руководств по созданию проектов на Arduino - https://nnov.profi.ru/repetitor/prog/yazyki-programmirovaniya/arduino/?seamless=1&tabName=ORDER&utm_campaign=59741767.spx_vr_profi_search_russia_services_medium_AOV&utm_term=28132160708.10374058047.0&utm_content=premium_---autotargeting_none&utm_source=yandex_cpc&utm_medium=cpc&yclid=7509918065186045951

  4. Изучение Arduino на ChipEnable Подробные учебные материалы, примеры и схемы на русском - https://all-arduino.ru/arduino-dlya-nachinayushhih/

  5. Школа авто полива- проектирование https://polivtec.ru/blog/kak-proektirovat-sistemu-avtomaticheskogo-poliva?ysclid=m56knr7t4965746890

  6. VK Arduino Community- Сообщество Arduino во ВКонтакте с обсуждениями и проектами.

  7. Мой Домашний Arduino - Ресурс для домашних проектов на Arduino с пошаговыми инструкциями.

  8. YouTube каналы: AlexGyver: Пошаговые инструкции и проекты Arduino. KrazyKit: Простые и интересные проекты с Arduino.

  9. Электроника для начинающих (ЭФН)

  10. Обучение Arduino и основам электроники с простыми примерами.

  11. Системы автополива - https://www.kp.ru/expert/sad-i-ogorod/luchshie-sistemy-avtopoliva/?ysclid=m56ktzb77e404302865

Просмотров работы: 23