Автоматическая система полива с Arduino для ваших растений, сада или огорода

Лейка для полива растений

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

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

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

Что тебе нужно?

материалы, необходимые для вашей автоматической системы полива являются:

  • Товар не был найден., хотя другие стоили бы.
  • Макетная плата или печатная плата если вы хотите его припаять и сделать постоянным.
  • Датчик температуры и влажности Товар не был найден.
  • Кабели
  • датчик YL-69 влажность на земле с помощью гигрометра, чтобы воткнуть в горшок или землю.
  • Мининасос Подводная вода 3V и примерный расход 120 л / ч.
  • Диод 1N4007
  • Биполярный транзистор PN2222
  • 3 резистора: 1x 220 Ом, 1x 1 кОм, 1x фоторезист ЛДР
  • Водный танк, это может быть бочка или бутылка на 5 и более литров и т. д.
  • Tubo для подключения к мининасосу и вывода на завод / с

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

Как настроить систему автоматического полива

Схема сборки во фрицинге

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

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

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

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

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

программирование

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

Загрузите код из код-орошение-автополивочный автомат для вашего сада

#include <SimpleDHT.h>
#include <SPI.h>
#define humidity_sensor_pin A0
#define ldr_pin A5
//Bibliotecas para los módulos sensores usados necesarias
//Y definición de variables para los sensores de humedad y LDR en los pines A0 y A5

int pinDHT11 = 2;
SimpleDHT11 dht11;
int ldr_value = 0;
int water_pump_pin = 3;
int water_pump_speed = 255;
//Aquí puedes dar valores desde 0 a 255 para la velocidad a la que trabajará la minibomba
//Haz pruebas previas del caudal y configura la. Yo he //elegido 255 pero ustedes pueden elegir la que estimen conveniente. A más velocidad, mayor //bombeo de agua
void setup() {
  Serial.begin(9600);
}
void loop() {
// Mide la temperatura y humedad relativa y muestra resultado
  Serial.println(“*******************************”);
  Serial.println(“Muestra DHT11…”);
  
  byte temperature = 0;
  byte humidity_in_air = 0;
  byte data[40] = {0};
  if (dht11.read(pinDHT11, &temperature, &humidity_in_air, data)) {
    Serial.print(“Lectura del sensor DHT11 fallida”);
    return;
  }
  
  Serial.print(“Muestra RAW Bits: “);
  for (int i = 0; i < 40; i++) { Serial.print((int)data[i]); if (i > 0 && ((i + 1) % 4) == 0) {
      Serial.print(‘ ‘);
    }
  }
  Serial.println(“”);
  
  Serial.print(“Muestra OK: “);
  Serial.print(“Temperatura: “);Serial.print((int)temperature); Serial.print(” *C, “);
  Serial.print(“Humedad relativa en aire: “);Serial.print((int)humidity_in_air); Serial.println(” %”);
  
  int ground_humidity_value = map(analogRead(humidity_sensor_pin), 0, 1023, 100, 0);
  Serial.print(“Humedad en suelo: “);
  Serial.print(ground_humidity_value);
  Serial.println(“%”);

  int ldr_value = map(analogRead(ldr_pin), 1023, 0, 100, 0);
  Serial.print(“Luz: “);
  Serial.print(ldr_value);
  Serial.println(“%”);
   Serial.println(“*******************************”);

//**************************************************************
// Condiciones de riego 
// Si la humedad en el suelo es igual o inferior al 60%, si la luminosidad es inferior al 30%,
// Si la temperatura es inferior al 35%, entonces el sistema de riego riega. 
// En caso de que no se  cumpla alguno o ninguno de los 3 requisitos anteriores,
// el sistema de riego no riega
//**************************************************************
//Aquí puedes variar los parámetros que necesites de 60, 35 y 30, e incluso usar otros operandos <>=...
 if( ground_humidity_value <= 60 && ldr_value<30 && temperature<35) {
 digitalWrite(water_pump_pin, HIGH);
 Serial.println(“Irrigación”);
 analogWrite(water_pump_pin, water_pump_speed);

 }
 else{
 digitalWrite(water_pump_pin, LOW);
 Serial.println(“Riego detenido”);

 }
 delay (2000); 
// Ejecuta el código cada 2000 milisegundos, es decir, 2 segundos. Puedes variar la frecuencia de muestreo
}

Больше информации - Курс программирования Arduino (бесплатный PDF)

Источники

Больше информации - Жардуино


36 комментариев, оставьте свой

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

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   РОДЖЕР ФЕРНАНДО ASTO BONIFACIO сказал

    ПОЧЕМУ Я ВЫЙТИ из статуса выхода 1
    #include ожидает "FILENAME" или ESO ON LOAD

    1.    Исаак сказал

      Привет,
      Эта ошибка связана с синтаксической проблемой в коде. Я прошел через это и получил ошибку. Теперь все должно быть в порядке.
      Приветик!

  2.   нет источников сказал

    Здравствуйте, добрый день, у меня тоже такая же проблема:
    проект: 3:10: ошибка: #include ожидает "FILENAME" или

    #include <SimpleDHT.h>

    ^

    проект: 4:10: ошибка: #include ожидает "FILENAME" или

    #include <SPI.h>

    ^

    статус выхода 1
    #include ожидает "FILENAME" или

  3.   Кевином сказал

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

  4.   Samanta сказал

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

    1.    Исаак сказал

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

  5.   Саманта Вега любит сказал

    Здравствуйте, появляется такая ошибка, как ее решить?

    ошибка: SimpleDHT.h: нет такого файла или каталога

    #включают

    ^ ~~~~~~~~~~~~

    компиляция прекращена.

    статус выхода 1
    SimpleDHT.h: нет такого файла или каталога

    1.    Исаак сказал

      Привет Саманта,
      Эта ошибка связана с тем, что IDE Arduino, похоже, не обнаруживает библиотеку SimpleDHT.h. Правильно ли он у вас установлен? Если он у вас есть, попробуйте использовать более новую версию Arduino IDE, если она старше ...
      Вы можете просмотреть дополнительную информацию здесь:
      https://www.arduino.cc/en/Guide/Libraries
      И получить библиотеку отсюда:
      https://github.com/adafruit/DHT-sensor-library
      Приветик!

  6.   перец сказал

    Во-первых, спасибо за сообщение, которое очень интересно и очень актуально, но я прочитал это:

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

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

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

    спасибо за пост !!!

    1.    Исаак сказал

      Привет Пепе,
      Спасибо за ваш вклад. Я живу в сельской местности, и иногда, когда очень жарко, полив растений в жаркие часы может их убить. Я сам это проверил (к тому же он не тот в зависимости от географического района, где вы находитесь, у меня на земле очень жарко). Причин может быть несколько:
      1-Потому что капли воды на листьях действуют как стекло, сжигая их солнечным светом, как увеличительное стекло.
      2-У растений есть устьица, которые закрываются, чтобы не обезвоживаться в солнечную погоду. Если полить их, они раскроются и могут стать причиной обезвоживания.
      3-Если они в пластиковом горшке, эффект может быть еще хуже.
      Приветик!

  7.   Андрес Каро сказал

    HELLO!
    Мне очень понравился проработанный проект, у меня есть собственный сад, и я тестирую этот проект на личном опыте, без получения прибыльной выгоды, я просто хотел спросить вас, не поможете ли вы мне с кодом, так как он дает мне ошибку , У меня есть библиотека DHT, но при ее проверке она выдает ошибку в конце кода: {Serial.println ("Полив остановлен");} и сообщает мне, что это: stray '\ 342' в программе.
    Я очень мало осведомлен об этом вопросе, я исследовал, но не смог его решить.
    Буду признателен, если вы мне поможете. Спасибо 😀

    1.    Исаак сказал

      Привет,
      Код правильный? То есть опечаток в нем нет?
      С другой стороны, вы можете узнать больше об этой ошибке здесь:
      https://forum.arduino.cc/index.php?topic=386225.0
      приветствия

  8.   Хосе Арредондо сказал

    Здравствуйте, Добрый день, извините, я не знаю, есть ли способ связаться с вами, это то, что он дает мне много ошибок с этим кодом в arduino

    1.    Исаак сказал

      Привет всем,
      Я очистил код и написал его снова, чтобы проверить, не возникла ли по какой-либо причине ошибка в коде, отображаемом в Интернете. Чтобы его можно было загрузить, я оставил новый код в ссылке для загрузки непосредственно перед кодом, который появляется в Интернете. Если вы нажмете здесь, вы сможете скачать его в текстовом формате. Надеюсь, проблем больше нет.
      Приветик!

  9.   Чаки сказал

    Как добавить модуль Wi-Fi? и можно ли будет контролировать это, подав заявку?

  10.   Чаки сказал

    Как еда тоже: c?

    1.    Луис Альберто Альварадо сказал

      Привет, Чаки! Я пытаюсь сделать то же самое, что и вы, не могли бы вы мне помочь, если вы закончили свой код ????

  11.   Nerea сказал

    Вопрос, какой компонент будет между платой Arduino и датчиком DHT11?
    Огромное спасибо!!

    1.    Исаак сказал

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

  12.   Jannet сказал

    Здравствуйте, у вас есть видео о том, как была ваша система полива.?

  13.   Алехандро Баррос сказал

    извините работает только для arduino uno или также для Arduino Mega

  14.   Эммануэль сказал

    Здравствуйте, доброе утро, извините, я хотел задать вопрос, почему, когда я открываю монитор Arduino ide, я получаю неудавшееся считывание датчика dht11?
    Вся программа хорошо скомпилирована и хорошо загружена, подробности - когда я открываю монитор, и появляется эта легенда.
    Что это может быть?

  15.   ДАНИЭЛЬ АЛЬФРЕДО РИВАС МЕДИНА сказал

    ПРИВЕТ ДРУГ ОТЛИЧНАЯ РАБОТА, НО У МЕНЯ ОШИБКА В ЭТОЙ ЧАСТИ Нет такого файла или каталога

    #включают
    ЧТО ЭТО БУДЕТ? Я был бы признателен за вашу помощь

  16.   Изабелл сказал

    ПРИВЕТ, ЭТО ПУБЛИЧНОЕ, НО НЕ ВАЖНО, Я ДЕЙСТВИТЕЛЬНО ХОЧУ БЛАГОДАРЮ ЧЕЛОВЕКУ ИЛИ ЛЮДЯМ, УЧАСТВОВАННЫМ В РАЗРАБОТКЕ ЭТОГО ПРОЕКТА, МОЖЕТ БЫТЬ ПО МНОГОМУ ЭТО ДУРА, НО ВЫ СПАСИЛИ МОЮ ЖИЗНЬ, ТАК БОЛЬШОЕ СПАСИБО ШКОЛА, К КОТОРОЙ Я НЕ ХОЧУ ПРИНАДЛЕЖАТЬ, И ПРАВДА, КОТОРАЯ НЕ ЖАЛЬ, Я УЧИЛСЯ, СПАСИБО ЗА ВАШУ СТРАНИЦУ, ЖЕЛАЮ ВАМ НАИЛУЧШЕГО.

  17.   Айелен сказал

    Как добавить модуль Wi-Fi? и можно ли будет контролировать это, подав заявку?

  18.   Брайан сказал

    #include "DHT.h"
    DHT dht (2, DHT11);
    int valueLDR;
    инт pinLDR = A5;
    ИНТ МОТОР = 8;
    // —————————————————————————————————————————————
    установка void ()
    {
    Serial.begin (9600);
    значениеLDR = 0;
    Serial.begin (9600);
    Serial.println («ТЕСТ ОРОСИТЕЛЬНОЙ СИСТЕМЫ»);
    dht.begin ();
    pinMode (ДВИГАТЕЛЬ, ВЫХОД);
    Serial.println («Значение датчика влажности»);
    }
    // —————————————————————————————————————————————
    пустой цикл ()
    {
    Serial.println («============================================== = ========================== »);
    int влажность = analogRead (A0);
    Serial.print ("Прочитать:");
    Serial.println (влажность);
    if (влажность> = 0 & влажность> = 1000) {
    Serial.println («Датчик в сухой почве»);
    } else if (влажность> 500 и влажность <= 1000) {
    Serial.println («Датчик во влажной почве»);
    } else if (влажность <= 500) {
    Serial.println («Датчик в воде»);
    }
    valueLDR = аналоговое чтение (pinLDR);
    Serial.print ("СВЕТ (");
    Serial.print (значениеLDR);
    Serial.println (")");
    Задержка (2000);
    float h = dht.readHumidity ();
    float t = dht.readTemperature ();
    if (isnan (h) || isnan (t)) {
    Serial.println («Не удалось прочитать датчик DHT11!»);
    вернуться;
    }
    Serial.print ("Влажность:");
    Серийный отпечаток (ч);
    Serial.print ("%");
    Serial.print ("Температура:");
    Serial.print (t);
    Serial.println ("* C");
    if (h <= 50 && значение LDR <70 && t = 1000) {
    digitalWrite (ДВИГАТЕЛЬ, ВЫСОКИЙ);
    Serial.println («Надо поливать»);
    }
    еще {
    digitalWrite (МОТОР, НИЗКИЙ);
    Serial.println («НЕ поливать»);
    }
    Задержка (1000);
    }

    Я использовал только
    -DTH температуры и влажности на контакте 2
    -фоторезист LDR на выводе А5
    -двигатель на выводе 8
    -датчик влажности почвы на штыре А0
    это мой код, я надеюсь, и он работает для вас

    -датчик влажности почвы

  19.   Хосе Л. сказал

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

    sketch_nov12c: 1: 10: фатальная ошибка: SimpleDHT.h: нет такого файла или каталога

    #включают

    ^ ~~~~~~~~~~~~

    компиляция прекращена.

    статус выхода 1

    SimpleDHT.h: нет такого файла или каталога

    Я хотел бы, чтобы вы помогли мне решить эту проблему, так как я новичок в этом, я не знаю, как это работает очень хорошо. Спасибо.

  20.   Хуан сказал

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

  21.   Брайан сказал

    #include "DHT.h"
    DHT dht (2, DHT11);
    int valueLDR;
    инт pinLDR = A5;
    ИНТ МОТОР = 8;
    // —————————————————————————————————————————————
    установка void ()
    {
    Serial.begin (9600);
    значениеLDR = 0;
    Serial.begin (9600);
    Serial.println («ТЕСТ ОРОСИТЕЛЬНОЙ СИСТЕМЫ»);
    dht.begin ();
    pinMode (ДВИГАТЕЛЬ, ВЫХОД);
    Serial.println («Значение датчика влажности»);
    }
    // —————————————————————————————————————————————
    пустой цикл ()
    {
    Serial.println («============================================== = ========================== »);
    // —————————————————————————————–
    // ———– Датчик влажности, почвы ——————————————————–
    int влажность = analogRead (A0);
    Serial.print ("Прочитать:");
    Serial.println (влажность);
    if (влажность> = 0 & влажность> = 1000) {
    Serial.println («Датчик в сухой почве»);
    } else if (влажность> 500 и влажность <= 1000) {
    Serial.println («Датчик во влажной почве»);
    } else if (влажность <= 500) {
    Serial.println («Датчик в воде»);
    }
    // —————————————————————————————–
    // ————— Фото сопротивление ———————————————————-
    valueLDR = аналоговое чтение (pinLDR);
    Serial.print ("СВЕТ (");
    Serial.print (значениеLDR);
    Serial.println (")");
    Задержка (2000);
    // —————————————————————————————–
    // ————— Датчик DTH11 температуры и влажности в воздухе —————————–
    float h = dht.readHumidity ();
    float t = dht.readTemperature ();
    if (isnan (h) || isnan (t)) {
    Serial.println («Не удалось прочитать датчик DHT11!»);
    вернуться;
    }
    Serial.print ("Влажность:");
    Серийный отпечаток (ч);
    Serial.print ("%");
    Serial.print ("Температура:");
    Serial.print (t);
    Serial.println ("* C");
    // —————————————————————————————–
    // ———— Состояние для воды или без воды ———————————————-
    // (AirHumidity) (Фоторезист) (Температура) (EarthHumidity)
    if (h <= 50 && значение LDR <70 && t = 1000) {
    digitalWrite (ДВИГАТЕЛЬ, ВЫСОКИЙ);
    Serial.println («Надо поливать»);
    }
    еще {
    digitalWrite (МОТОР, НИЗКИЙ);
    Serial.println («НЕ поливать»);
    }
    Задержка (1000);
    }

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

  22.   Эрик сказал

    Я получаю ошибку в этой части кода »пустой цикл () {» может мне помочь

  23.   Андрес П. сказал

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

  24.   Андрес Гусман сказал

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

    В файле из C: \ Users \ User \ Documents \ Arduino \ TEST_1 \ TEST_1.ino: 5: 0:
    C: \ Program Files (x86) \ Arduino \ libraries \ DHT-sensor-library-master / DHT_U.h: 36:10: фатальная ошибка: Adafruit_Sensor.h: нет такого файла или каталога
    #включают
    ^ ~~~~~~~~~~~~~~~~~~
    компиляция прекращена.
    статус выхода 1
    Ошибка компиляции карты Arduino Uno.

    Я не уверен, нужен ли мне другой книжный магазин, если кто-нибудь может мне помочь.

  25.   ПЕПЕ ГОНЗАЛЕС сказал

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

  26.   Рауса сказал

    Здравствуйте, у меня есть несколько проблем, не могли бы вы мне помочь, и если у кого-то есть видео, или я нашел подробное видео, которое я могу посмотреть

  27.   Себастьян сказал

    У меня вопрос, куда поставить ток и какой ток можно использовать.

  28.   Адриан сказал

    Можете ли вы добавить схему с более высоким разрешением? некоторые соединения не видны четко