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

Полива за поливане на растения

Лятото е време, когато мнозина са склонни да излизат на почивка навън и растенията са проблем, тъй като не могат да бъдат поливайте онези дни, когато не сте у дома. Освен това градинските магазини обикновено продават вид гел, който хидратира и подхранва растението за около месец. Но с горещината, която е или ако напуснете за повече от месец, ще ви трябва малко по-добра система, така че когато се върнете, те да са все още живи и енергични.

За да е възможно това, съществуващото решение е да си купите автоматична напоителна система че можете да програмирате или ако сте производител и харесвате „Направи си сам“, можете да го направите сами с Arduino. Материалите, от които се нуждаете, освен дъската Arduino, са лесни за намиране и доста евтини, така че не включват твърде големи разходи. Също така за някои елементи като резервоара за вода и т.н. можете да използвате рециклирани материали ...

Ако сърфирате малко в мрежата, ще намерите различни проекти от този тип, но може би най-интересното е Джардуино. В това ще се вдъхновя за този проект, тъй като считам, че други напоителни системи, които използват само сензори за влажност и нищо друго, не са толкова пълни.

Какво ви трябва

Лос материали, необходими за вашата автоматична напоителна система звук:

  • Няма намерени продукти, въпреки че други биха си стрували.
  • Макет или ПХБ ако искате да го запоите и да го направите постоянен.
  • Сензор за температура и влажност Няма намерени продукти
  • Кабели
  • Sensor YL-69 влага на земята с хигрометър, който да залепите във вашите саксии или пръст.
  • Минипомпа 3V потопяема вода и приблизителен дебит от 120 l / h.
  • Диодо 1N4007
  • Биполярен транзистор PN2222
  • 3 Резистори: 1x 220 ома, 1x 1k, 1x Няма намерени продукти
  • Резервоар за вода, което може да бъде барабан или бутилка от 5 или повече литра и т.н.
  • тръба за да се свържете с минипомпата и да отведете до централата / ите

Como алтернативни идеи, Бих ви казал, че можете също да използвате соноф или WiFi модул, за да го активирате през интернет, където и да сте, или да го подобрите, като добавите и автоматичен клапан към крана, за да програмирате пълненето на резервоара за вода, когато се изпразни и т.н.

Как да настроите системата за автоматично напояване

Схема на събранието във Фрицинг

Сглобяването е доста просто. Може използвайте горната схема, за да направите всички връзки. Трябва да позиционирате системата си на място близо до прозореца или там, където се намира растението, което искате да поливате, и да залепите двата върха на сензора за влажност в почвата на растението, близо до стъблото.

Автоматичната система за напояване с Arduino ще напоява всеки път, когато открие a поредица от условия на околната среда. Например, когато открие слаба светлина или тъмнина, температурата на въздуха е конкретна, която ще конфигурираме в скицата на 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
    #include очаква "FILENAME" или ESO ON LOAD

         Isaac каза той

      Здравейте,
      Тази грешка се дължи на някакъв проблем със синтаксиса в кода. Преминах през него и имах грешка. Сега трябва да се оправи.
      Поздрави!

      ное източници каза той

    Здравейте, добър ден, аз също имам същия проблем:
    проект: 3:10: грешка: #include очаква "FILENAME" или

    #include <SimpleDHT.h>

    ^

    проект: 4:10: грешка: #include очаква "FILENAME" или

    #включете <SPI.h>

    ^

    изходен статус 1
    #include очаква "FILENAME" или

      Кевин каза той

    Здравейте, извинете, можете ли да ми помогнете с грешка, която се появява в кода

      Samanta каза той

    По същия начин ми се представя грешка в кода, бихте ли ми помогнали с този проблем, моля

         Isaac каза той

      Здравейте,
      Моля, оставете информация за грешката, която имате, за да мога да помогна. Ако не знам съдържанието на грешката, ми е трудно да ви помогна или да намеря къде е проблемът ...
      поздравления

      Саманта Вега обича каза той

    Здравейте, появява се тази грешка, как мога да я разреша?

    грешка: SimpleDHT.h: Няма такъв файл или директория

    #include

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

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

    изходен статус 1
    SimpleDHT.h: Няма такъв файл или директория

         Isaac каза той

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

      Pepe каза той

    Първо благодаря за публикацията, която е много интересна и много валидна, но прочетох това:

    „Препоръчително е да поливате растенията през нощта, когато е по-малко горещо, тъй като това по време на интензивни горещи дни може да навреди повече, отколкото да носи полза ...“

    Чувал съм това много пъти, но бих искал някой да ми обясни ясно как ги боли .... Отглеждам растения повече от 20 години и когато е много горещо, няма нищо, което те оценяват повече от доброто поливане и да могат да бъдат с пръскачка, мокреща листата.

    Това е мит, че всичко, което прави, е да кара растенията да страдат ... Когато сте горещи и жадни, чакате ли до нощта, за да пиете? ... помислете за това

    благодаря за поста !!!

         Isaac каза той

      Здравей Пепе,
      Благодаря за вашето мнение. Живея на село и понякога, когато жегата е много силна, поливането на растенията в горещи часове може да ги убие. Проверил съм го сам (освен това не е същото в зависимост от географския район, където се намирате, в моята земя е много горещо). Може да е по няколко причини:
      1-Тъй като капките вода върху листата действат като стъкло, изгаряйки ги със слънчева светлина като лупа.
      2-Растенията имат устици, които се затварят, за да не се дехидратират, когато е слънчево. Ако ги поливате, те се отварят и могат да доведат до обезводняване.
      3-Ако са в пластмасова саксия, ефектът може да бъде още по-лош.
      Поздрави!

      Андрес Каро каза той

    ЗДРАВЕЙ!!
    Наистина ми хареса разработеният проект, имам собствена градина и тествам този проект като личен опит, без да получа доходоносна изгода, просто исках да ви попитам дали бихте ми помогнали с кода, тъй като той ми дава грешка , Имам DHT библиотека, но когато я проверявам, извежда грешка в края на кода: {Serial.println ("Поливането е спряно");} и ми казва, че е: stray '\ 342' в програмата.
    Имам много малко познания по въпроса и съм разследвал и не съм успял да го разреша.
    Ще се радвам да ми помогнете. Благодаря 😀

         Isaac каза той

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

      Хосе Арреондон каза той

    Здравейте Добър ден, извинете, не знам дали има начин да се свържа с вас, това е, че ми дава много грешки с този код в arduino

         Isaac каза той

      Здравейте всички,
      Почистил съм кода и съм го написал отново, за да видя дали има грешки по някаква причина в кода, който се показва в мрежата. За да може да се изтегли, оставих новия код в линка за изтегляне точно преди кода, който се появява в мрежата. Ако кликнете там, можете да го изтеглите в текстов формат. Надявам се да няма повече проблеми.
      Поздрави!

      Чаки каза той

    Как мога да добавя wifi модула? и би ли било възможно да се контролира чрез подаване на заявление?

      Чаки каза той

    Как е и храната: c?

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

      Здравей Чаки! Опитвам се да направя същото като вас, бихте ли ми помогнали, ако сте завършили кода си ????

      Nerea каза той

    Въпрос кой компонент ще бъде този между платката Arduino и сензора DHT11?
    Много благодаря!!

         Isaac каза той

      Здравей, Нерея,
      Имате предвид диода и резистора? Забележете, че в раздела преди диаграмата има списък на всички компоненти ...
      Поздрави!

      Jannet каза той

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

      Алехандро Барос каза той

    извинете само работи за arduino uno или също за arduino mega

      Емануел каза той

    Здравейте, добро утро, извинете, исках да задам въпрос, защо когато отворя монитора Arduino ide, получавам неуспешно четене на dht11 сензор?
    Цялата програма се компилира добре и се зареди добре, подробностите са, когато отворя монитора и се появи тази легенда.
    Какво може да бъде

      ДАНИЕЛ АЛФРЕДО РИВАС МЕДИНА каза той

    ЗДРАВЕТЕ ПРИЯТЕЛ СТРАХОТНА РАБОТА, НО ДАВА МИ ГРЕШКА В ТАЗИ ЧАСТ Няма такъв файл или директория

    #include
    КАКВО ЩЕ БЪДЕ? Ще се радвам на вашата помощ

      Изабел каза той

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

      Айелен каза той

    Как мога да добавя wifi модула? и би ли било възможно да се контролира чрез подаване на заявление?

      Брайън каза той

    #include "DHT.h"
    DHT dht (2, DHT11);
    int стойностLDR;
    int pinLDR = A5;
    int ДВИГАТЕЛ = 8;
    // —————————————————————————————————————————————-
    настройка за невалидност ()
    {
    Serial.begin (9600);
    стойностLDR = 0;
    Serial.begin (9600);
    Serial.println ("ИЗПИТВАНЕ НА СИСТЕМА ЗА НАПРАВЯВАНЕ");
    dht.begin ();
    pinMode (МОТОР, ИЗХОД);
    Serial.println ("Стойност на сензора за влажност");
    }
    // —————————————————————————————————————————————-
    void loop ()
    {
    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 (")");
    забавяне (2000);
    float h = dht.readHuminity ();
    float t = dht.readTemperature ();
    ако (isnan (h) || isnan (t)) {
    Serial.println („Неуспешно четене на сензор DHT11!“);
    се върнат;
    }
    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 ("Трябва вода");
    }
    друго {
    digitalWrite (MOTOR, LOW);
    Serial.println („НЕ трябва да полива“);
    }
    забавяне (1000);
    }

    Използвах само
    -DTH на температура и влажност на щифт 2
    -LDR фоторезистът на щифт A5
    -мотор на щифт 8
    -сензор за влага в почвата на щифт A0
    това е моят код, надявам се и работи за вас

    -влажник за почвата

      Хосе Л. каза той

    Добро утро, имам проблеми с кода, който получавам, и използвам най-новия софтуер:

    sketch_nov12c: 1: 10: фатална грешка: SimpleDHT.h: Няма такъв файл или директория

    #include

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

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

    изходен статус 1

    SimpleDHT.h: Няма такъв файл или директория

    Бих искал да ми помогнете как да разреша това, моля, тъй като аз съм нов в това, не знам как работи много добре. Благодаря ти.

      Джон каза той

    Здравейте, бихте ли могли да оставите по-добро изображение на това как е свързана веригата? Не се оценява добре, с какво захранващо напрежение се захранва? Благодаря

      Брайън каза той

    #include "DHT.h"
    DHT dht (2, DHT11);
    int стойностLDR;
    int pinLDR = A5;
    int ДВИГАТЕЛ = 8;
    // —————————————————————————————————————————————-
    настройка за невалидност ()
    {
    Serial.begin (9600);
    стойностLDR = 0;
    Serial.begin (9600);
    Serial.println ("ИЗПИТВАНЕ НА СИСТЕМА ЗА НАПРАВЯВАНЕ");
    dht.begin ();
    pinMode (МОТОР, ИЗХОД);
    Serial.println ("Стойност на сензора за влажност");
    }
    // —————————————————————————————————————————————-
    void loop ()
    {
    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 (")");
    забавяне (2000);
    // —————————————————————————————–
    // ————— Сензор DTH11 температура и влажност във въздуха —————————–
    float h = dht.readHuminity ();
    float t = dht.readTemperature ();
    ако (isnan (h) || isnan (t)) {
    Serial.println („Неуспешно четене на сензор DHT11!“);
    се върнат;
    }
    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 ("Трябва вода");
    }
    друго {
    digitalWrite (MOTOR, LOW);
    Serial.println („НЕ трябва да полива“);
    }
    забавяне (1000);
    }

    // веднага след като щифтовете само проверят дали помпата е pwm щифт и
    // този на LDR фоторезиста е аналогов, а също и този на почвената влага, равен на щифт
    // аналогови и тези на dth11 на сензора за температура и влажност на въздуха, каквото и да е
    // цифровите щифтове все още могат да се основават на оригиналния код на тази страница
    // за свързване на щифтовете
    // работи с 5v

      Erick каза той

    Получавам грешка в тази част на кода »празен цикъл () {» може да ми помогне

      Андрес П. каза той

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

      Андрес Гусман каза той

    Здравейте, системата изглежда много добра. Опитах се да го пресъздам, но по време на включване на кода и съответната библиотека се появява следното.

    Във файл, включен от 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: Няма такъв файл или директория
    #include
    ^ ~~~~~~~~~~~~~~~~~~
    компилацията прекратена.
    изходен статус 1
    Грешка при компилиране за карта Arduino Uno.

    Не съм сигурен дали имам нужда от друга книжарница, ако някой може да ми помогне, моля.

      ПЕПЕ ГОНЗАЛИ каза той

    Много добър проект, но след проверка на кода, компилирането му и качването му, единственото нещо, което се появява на серийния монитор е "DHT11 чтенето не е успешно", той не надхвърля тази точка

      Рус каза той

    Здравейте, имам няколко проблема, може ли да ми помогнете и ако някой има видео или аз намерих подробен видеоклип, който мога да видя

      Себастиан каза той

    Имам въпрос къде да сложа тока и какъв вид ток може да се използва.

      Adrian каза той

    Можете ли да добавите контур с по-висока разделителна способност? някои връзки не се виждат ясно