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

Лійка поливає рослини

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

Щоб це стало можливим, рішення, яке існує, - це придбання автоматична система зрошення що ви можете програмувати, або якщо ви виробник, і вам подобається робити самостійно, ви можете зробити це самостійно за допомогою Arduino. Потрібні матеріали, крім дошки Arduino, легко знайти і досить дешево, тому вони не вимагають занадто великих витрат. Крім того, для деяких елементів, таких як резервуар для води тощо, ви можете використовувати перероблені матеріали ...

Якщо ви трохи переглянете Інтернет, ви знайдете різні проекти цього типу, але, мабуть, найцікавішим є Ярдуїно. У цьому я буду натхненний цим проектом, оскільки я вважаю, що інші зрошувальні системи, які використовують лише датчики вологості і нічого іншого, не є настільки повноцінними.

Що вам потрібно

L матеріали, необхідні для вашої автоматичної системи зрошення звук:

  • Не знайдено жодної продукції, хоча інші були б вартими.
  • Протоборд або друкованої плати якщо ви хочете його припаяти і зробити постійним.
  • Датчик температури та вологості Не знайдено жодної продукції
  • кабелі
  • датчик YL-69 вологи на землю за допомогою гігрометра, щоб застрягти у вашому горщику / грунтах.
  • Міні-насос Занурювана вода 3В і приблизний витрата 120 л / год.
  • Діодо 1N4007
  • Біполярний транзистор PN2222
  • 3 резистори: 1x 220 Ом, 1x 1k, 1x фоторезист ЛДР
  • Бак для води, це може бути барабан або пляшка об’ємом 5 і більше літрів тощо.
  • тубо для підключення до міні-насоса та підведення до заводу / заводів

Como альтернативні ідеї, Я б сказав вам, що ви також можете використовувати соноф або модуль WiFi, щоб активувати його через Інтернет, де б ви не знаходились, або вдосконалити його, також додавши автоматичний клапан до крана, щоб запрограмувати наповнення резервуару для води, коли він спорожниться тощо

Як налаштувати автоматичну систему зрошення

Схема збірки у Фрітцінгу

Збірка досить проста. Ви можете скористайтеся наведеною вище схемою, щоб зробити всі з'єднання. Ви повинні розташувати свою систему в місці біля вікна або там, де знаходиться рослина, яку ви хочете поливати, і приклеїти дві кінчики датчика вологості в ґрунт рослини, біля стебла.

Автоматична система поливу з Arduino буде поливати, коли виявить ряд екологічних умов. Наприклад, коли він виявляє слабке світло або темряву, температура повітря є конкретною, яку ми налаштуємо в ескізі Arduino IDE, а вологість на землі низька. У той момент він активував двигун для поливу заводу.

Поливати рослини доцільно вночі, коли стає менш спекотно, оскільки це в інтенсивні спекотні дні може нашкодити більше, ніж принести користь ...

Пам'ятайте, що ви повинні ввести міні-насос під воду в резервуарі, який ви призначили для зрошення, і який повинен мати достатню ємність, щоб утримувати дні, коли вас там немає. Ви можете зробити попередні тести, щоб дізнатись, скільки це триває, і вам слід залишити трохи більше води на випадок, якщо вона випарується під сильним жаром ...

Само собою зрозуміло, що трубку потрібно закріпити на рослині, щоб вона не рухалася разом з вітром, або вода могла випасти і потратити впустую. І я думаю, що не потрібно було б пам’ятати, що для того, щоб він працював, вам потрібно підтримувати поточний запас до плати Arduino ...

програмування

Зараз вам слід написати код, необхідний в IDE Arduino щоб мати можливість запрограмувати мікроконтролер, який керує використовуваним вами обладнанням. Настав час адаптувати відповідні значення температури, вологості та освітленості до води у вашій місцевості, оскільки вона може змінюватися залежно від того, де ви перебуваєте. Але прикладом, який ви можете використовувати як основу, є (я залишив коментарі, де ви можете модифікувати значення, решту ви можете залишити так):

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

#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.   РОЖЕР ФЕРНАНДО АСТО БОНІФАЧІО - сказав він

    ЧОМУ Я ВИХОДЮ зі стану виходу 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.   Андрес Каро - сказав він

    ХОЛА !!
    Мені дуже сподобався розроблений проект, у мене є власний сад, і я тестую цей проект як особистий досвід, не отримуючи прибуткової вигоди, я просто хотів запитати вас, чи можете ви допомогти мені з кодом, оскільки я отримую помилку, У мене є бібліотека DHT, але під час перевірки вона видає помилку в кінці коду: {Serial.println ("Полив припинено");} і повідомляє мені, що це: блукаючий '\ 342' у програмі.
    Я дуже мало знаю цю справу, і я досліджував і не міг це вирішити.
    Буду вдячний, якщо ви мені допоможете. Дякую 😀

    1.    Ісаак - сказав він

      Привіт
      Чи правильний код? Тобто він не має помилок?
      З іншого боку, ви можете перевірити більше про цю помилку тут:
      https://forum.arduino.cc/index.php?topic=386225.0
      вітання

  8.   Хосе Арредондо - сказав він

    Привіт Доброго дня, вибачте, я не знаю, чи є спосіб зв’язатися з вами, це те, що це призводить до багатьох помилок з цим кодом в arduino

    1.    Ісаак - сказав він

      Привіт всім,
      Я очистив код і написав його ще раз, щоб перевірити, чи не було з якоїсь причини помилки в коді, що відображається в Інтернеті. Щоб його можна було завантажити, я залишив новий код у посиланні для завантаження безпосередньо перед кодом, який з’являється в Інтернеті. Якщо натиснути там, ви можете завантажити його у текстовому форматі. Сподіваюся, проблем більше не буде.
      Привіт!

  9.   Чакі - сказав він

    Як я можу додати модуль wifi? і чи можна було б цим керувати, подаючи заявку?

  10.   Чакі - сказав він

    Як їжа також: c?

    1.    Луїс Альберто Альварадо - сказав він

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

  11.   Nerea - сказав він

    Питання, який компонент буде компонентом між платою Arduino та датчиком DHT11?
    Дуже дякую!!

    1.    Ісаак - сказав він

      Привіт Нереа,
      Ви маєте на увазі діод і резистор? Зверніть увагу, що в розділі перед діаграмою є список усіх компонентів ...
      Привіт!

  12.   Jannet - сказав він

    Привіт, у вас є відео про те, як склалася ваша зрошувальна система.?

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

    вибачте, працює лише для arduino uno або також для arduino mega

  14.   Еммануель - сказав він

    Привіт, доброго ранку, вибачте, я хотів задати питання, чому, коли я відкриваю монітор Arduino ide, я отримую невдале читання датчика dht11?
    Вся програма складена добре і завантажена добре, деталь - це коли я відкриваю монітор і з’являється ця легенда.
    Що це може бути?

  15.   ДАНІЕЛЬ АЛЬФРЕДО РІВАС МЕДИНА - сказав він

    ПРИВІТИ ДРУГУ ВЕЛИКУ РОБОТУ, АЛЕ ВИДАЄ ПОМИЛКУ В ЦІЙ ЧАСТІ Немає такого файлу чи каталогу

    #включати
    ЩО ЦЕ БУДЕ? Буду вдячний вашій допомозі

  16.   Изабелл - сказав він

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

  17.   Айєлен - сказав він

    Як я можу додати модуль wifi? і чи можна було б цим керувати, подаючи заявку?

  18.   Брайан - сказав він

    #include "DHT.h"
    DHT dht (2, DHT11);
    int valueLDR;
    int pinLDR = A5;
    int ДВИГУН = 8;
    // —————————————————————————————————————————————-
    void setup ()
    {
    Serial.begin (9600);
    valueLDR = 0;
    Serial.begin (9600);
    Serial.println ("ТЕСТ ІРИГРАЦІЙНОЇ СИСТЕМИ");
    dht.begin ();
    pinMode (МОТОР, ВИХІД);
    Serial.println ("Значення датчика вологості");
    }
    // —————————————————————————————————————————————-
    цикл void ()
    {
    Serial.println («============================================== = ========================== »);
    int вологість = analogRead (A0);
    Serial.print ("Читати:");
    Serial.println (вологість);
    якщо (вологість> = 0 і вологість> = 1000) {
    Serial.println ("Датчик у сухому ґрунті");
    } ще якщо (вологість> 500 і вологість <= 1000) {
    Serial.println ("Датчик у вологому ґрунті");
    } ще якщо (вологість <= 500) {
    Serial.println ("Датчик у воді");
    }
    valueLDR = analogRead (pinLDR);
    Serial.print ("LIGHT (");
    Serial.print (valueLDR);
    Serial.println (")");
    delay (2000);
    float h = dht.readHumidity ();
    float t = dht.readTemperature ();
    якщо (isnan (h) || isnan (t)) {
    Serial.println ("Не вдалося прочитати датчик DHT11!");
    return;
    }
    Serial.print ("Вологість:");
    Serial.print (h);
    Serial.print ("%");
    Serial.print ("Температура:");
    Serial.print (t);
    Serial.println ("* C");
    якщо (h <= 50 && LDRзначення <70 && t = 1000) {
    digitalWrite (MOTOR, HIGH);
    Serial.println ("Обов’язково вода");
    }
    else {
    digitalWrite (MOTOR, LOW);
    Serial.println ("НЕ повинен поливати");
    }
    delay (1000);
    }

    Я використовував лише
    -DTH температури та вологості на штифті 2
    -фоторезист LDR на виводі A5
    -мотор на штифті 8
    -датчик вологості ґрунту на штифті A0
    це мій код, я сподіваюся, і він працює для вас

    - датчик вологи для ґрунту

  19.   Хосе Л. - сказав він

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

    sketch_nov12c: 1: 10: фатальна помилка: SimpleDHT.h: Немає такого файлу чи каталогу

    #включати

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

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

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

    SimpleDHT.h: Немає такого файлу чи каталогу

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

  20.   Джон - сказав він

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

  21.   Брайан - сказав він

    #include "DHT.h"
    DHT dht (2, DHT11);
    int valueLDR;
    int pinLDR = A5;
    int ДВИГУН = 8;
    // —————————————————————————————————————————————-
    void setup ()
    {
    Serial.begin (9600);
    valueLDR = 0;
    Serial.begin (9600);
    Serial.println ("ТЕСТ ІРИГРАЦІЙНОЇ СИСТЕМИ");
    dht.begin ();
    pinMode (МОТОР, ВИХІД);
    Serial.println ("Значення датчика вологості");
    }
    // —————————————————————————————————————————————-
    цикл void ()
    {
    Serial.println («============================================== = ========================== »);
    // —————————————————————————————–
    // ———– Волога, датчик ґрунту —————————————————–
    int вологість = analogRead (A0);
    Serial.print ("Читати:");
    Serial.println (вологість);
    якщо (вологість> = 0 і вологість> = 1000) {
    Serial.println ("Датчик у сухому ґрунті");
    } ще якщо (вологість> 500 і вологість <= 1000) {
    Serial.println ("Датчик у вологому ґрунті");
    } ще якщо (вологість <= 500) {
    Serial.println ("Датчик у воді");
    }
    // —————————————————————————————–
    // ————— Фотоопір ———————————————————-
    valueLDR = analogRead (pinLDR);
    Serial.print ("LIGHT (");
    Serial.print (valueLDR);
    Serial.println (")");
    delay (2000);
    // —————————————————————————————–
    // ————— Датчик температури DTH11 і вологості в повітрі —————————–
    float h = dht.readHumidity ();
    float t = dht.readTemperature ();
    якщо (isnan (h) || isnan (t)) {
    Serial.println ("Не вдалося прочитати датчик DHT11!");
    return;
    }
    Serial.print ("Вологість:");
    Serial.print (h);
    Serial.print ("%");
    Serial.print ("Температура:");
    Serial.print (t);
    Serial.println ("* C");
    // —————————————————————————————–
    // ———— Стан води чи не води ————————————————-
    // (Вологість повітря) (Фоторезист) (Температура) (Вологість Землі)
    якщо (h <= 50 && LDRзначення <70 && t = 1000) {
    digitalWrite (MOTOR, HIGH);
    Serial.println ("Обов’язково вода");
    }
    else {
    digitalWrite (MOTOR, LOW);
    Serial.println ("НЕ повинен поливати");
    }
    delay (1000);
    }

    // як тільки штифти перевіряють лише, чи насос є ШІМ-шпилькою і
    // цей показник фоторезисту LDR є аналогом, а також рівень вологості ґрунту, рівний штифту
    // аналоговий та аналогічний dth11 датчика температури та вологості повітря
    // цифрові шпильки все ще можуть базуватися на вихідному коді цієї сторінки
    // для з'єднання штифтів
    // працює з 5v

  22.   Erick - сказав він

    Я отримую помилку в цій частині коду »empty loop () {» може мені допомогти

  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.   Адріан - сказав він

    Чи можете ви додати контур з вищою роздільною здатністю? деякі з'єднання чітко не видно