Automatický zavlažovací systém s Arduino pro vaše rostliny, ovocné sady nebo zahradu

Konev zalévání rostlin

Léto je čas, kdy mnozí mají tendenci chodit na dovolenou ven a rostliny jsou problém, protože nemohou být zalévat ty dny, kdy nejsi doma. Kromě toho zahradní obchody obvykle prodávají druh gelu, který rostlinu hydratuje a vyživuje asi měsíc. Ale s tím teplem, které to je, nebo pokud odejdete na více než měsíc, budete potřebovat poněkud lepší systém, aby po návratu byli stále naživu a energičtí.

Aby to bylo možné, existujícím řešením je koupit a automatický zavlažovací systém že můžete programovat nebo pokud jste výrobce a máte rádi kutilství, můžete to udělat sami pomocí Arduina. Materiály, které potřebujete, kromě desky Arduino, lze snadno najít a jsou poměrně levné, takže s nimi nejsou spojeny příliš velké náklady. U některých prvků, jako je nádrž na vodu atd., Můžete také použít recyklované materiály ...

Pokud trochu procházíte webem, najdete různé projekty tohoto typu, ale možná nejzajímavější je zahrada. V tom se budu inspirovat pro tento projekt, protože se domnívám, že ostatní zavlažovací systémy, které používají pouze čidla vlhkosti a nic jiného, ​​nejsou tak úplné.

Co potřebuješ

L materiály potřebné pro váš automatický zavlažovací systém Zvuk:

  • Nebyly nalezeny žádné produkty., i když ostatní by stáli za to.
  • Nepájivá deska nebo PCB chcete-li jej pájet natrvalo.
  • Čidlo teploty a vlhkosti Nebyly nalezeny žádné produkty.
  • Kabely
  • Senzor YL-69 vlhkost na zemi pomocí vlhkoměru, který se drží ve vaší nádobě nebo půdě.
  • Minipumpa 3V ponorná voda a přibližný průtok 120 l / h.
  • Dioda 1N4007
  • Bipolární tranzistor PN2222
  • 3 rezistory: 1x 220 ohmů, 1x 1k, 1x fotorezist LDR
  • Nádrž na vodu, což může být sud nebo láhev o objemu 5 a více litrů atd.
  • Trubice připojit se k minipumpě a odvézt do zařízení

Como alternativní nápadyŘekl bych vám, že můžete také použít sonoff nebo modul WiFi k aktivaci přes internet, ať jste kdekoli, nebo jej vylepšit také přidáním automatického ventilu do kohoutku, který naprogramuje plnění nádrže na vodu, když se vyprázdní , atd.

Jak nastavit automatický zavlažovací systém

Schéma shromáždění ve Fritzing

Montáž je poměrně jednoduchá. Můžeš pomocí výše uvedeného schématu proveďte všechna připojení. Systém byste měli umístit na místo blízko okna nebo na místo, kde chcete umístit rostlinu, kterou chcete zalévat, a přilepit dva hroty čidla vlhkosti do půdy rostliny, blízko stonku.

Automatický zavlažovací systém s Arduino zavlažuje, kdykoli zjistí a řada podmínek prostředí. Například, když detekuje slabé světlo nebo tmu, je teplota vzduchu konkrétní, kterou nakonfigurujeme v náčrtu Arduino IDE, a vlhkost na zemi je nízká. V tu chvíli aktivoval motor, aby rostlinu zalil.

Doporučuje se zalévat rostliny v noci, kdy je méně horka, protože by to během intenzivních horkých dnů mohlo škodit více než prospět ...

Pamatujte, že musíte představte mini čerpadlo pod vodou v nádrži, kterou jste určili k zavlažování, a která by měla mít dostatečnou kapacitu pro udržení dnů, kdy tam nejste. Můžete udělat předchozí testy, abyste věděli, jak dlouho to trvá, a měli byste nechat trochu více vody pro případ, že by se odpařila intenzivním teplem ...

Je samozřejmé, že trubka musí být k rostlině připevněna tak, aby se nepohybovala větrem nebo aby mohla voda vypadnout a zbytečně ji plýtvat. A myslím, že by nebylo nutné pamatovat na to, že musíte udržovat aktuální napájení desky Arduino, aby to fungovalo ...

programování

Nyní byste měli napsat kód potřebný v Arduino IDE abyste mohli programovat mikrokontrolér, který spravuje hardware, který jste použili. Nastal čas přizpůsobit vhodnou teplotu, vlhkost a světelné hodnoty vodě ve vaší oblasti, protože se může lišit v závislosti na tom, kde se nacházíte. Příklad, který můžete použít jako základnu, je (nechal jsem komentáře, kde můžete upravit hodnoty, zbytek můžete nechat takhle):

Stáhněte si kód z kód-zavlažování-autozavlažovací auto pro vaši zahradu

#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
}

Více informací - Kurz programování Arduino (PDF zdarma)

Zdroje

Více informací - zahrada


36 komentářů, nechte svůj

Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   ROGER FERNANDO ASTO BONIFACIO řekl

    PROČ KONČÍ stav ukončení 1
    #include očekává „FILENAME“ nebo ESO ON LOAD

    1.    Isaac řekl

      Dobrý den,
      Tato chyba je způsobena problémem se syntaxí v kódu. Prošel jsem to a došlo k chybě. Nyní by to mělo být v pořádku.
      Zdravím!

  2.   noe zdroje řekl

    Dobrý den, dobré odpoledne, mám také stejný problém:
    project: 3:10: error: #include očekává "FILENAME" nebo

    #include <SimpleDHT.h>

    ^

    project: 4:10: error: #include očekává "FILENAME" nebo

    #include <SPI.h>

    ^

    stav ukončení 1
    #include očekává "FILENAME" nebo

  3.   Kevin řekl

    Dobrý den, omluvte mě, můžete mi pomoci s chybou, která se vyskytne v kódu

  4.   SAMANTA řekl

    Stejným způsobem mám chybu v kódu, mohl byste mi prosím pomoci s tímto problémem

    1.    Isaac řekl

      Dobrý den,
      Nechte prosím informace o chybě, kterou máte, abych vám mohl pomoci. Pokud neznám obsah chyby, je pro mě obtížné vám pomoci nebo najít místo, kde je problém ...
      pozdravy

  5.   Samantha Vega miluje řekl

    Dobrý den, tato chyba se objeví, jak ji mohu vyřešit?

    chyba: SimpleDHT.h: Žádný takový soubor nebo adresář neexistuje

    #include

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

    kompilace ukončena.

    stav ukončení 1
    SimpleDHT.h: Žádný takový soubor nebo adresář neexistuje

    1.    Isaac řekl

      Ahoj Samantho,
      Tato chyba spočívá v tom, že se zdá, že IDE Arduino nedetekuje knihovnu SimpleDHT.h. Máte to správně nainstalované? Pokud ji máte, zkuste použít aktuální verzi Arduino IDE, pokud je starší ...
      Více informací si můžete prohlédnout zde:
      https://www.arduino.cc/en/Guide/Libraries
      A získejte knihovnu odtud:
      https://github.com/adafruit/DHT-sensor-library
      Zdravím!

  6.   Pepe řekl

    Nejprve děkuji za příspěvek, který je velmi zajímavý a velmi platný, ale přečetl jsem si toto:

    „Je vhodné zalévat rostliny v noci, kdy je méně horka, protože by to během intenzivních horkých dnů mohlo škodit více než prospět ...“

    Slyšel jsem to mnohokrát, ale byl bych rád, kdyby mi někdo jasně vysvětlil, jak to bolí ... Chovám rostliny už více než 20 let a když je velmi teplo, není nic, co by ocenili víc než dobré zalévání a možnost být zavlažovačem zvlhčujícím listy.

    To je mýtus, že vše, co dělá, je, aby rostliny trpěly ... Když jste horkí a žízní, počkáte s pitím do noci? ... přemýšlejte o tom

    děkuji za příspěvek !!!

    1.    Isaac řekl

      Ahoj Pepe,
      Děkujeme za váš příspěvek. Žiji na venkově a někdy, když je velmi silné teplo, zalévání rostlin v horkých hodinách je může zabít. Zkontroloval jsem to sám (navíc to není stejné v závislosti na zeměpisné oblasti, kde se nacházíte, v mé zemi je to velmi horké). Může to být z několika důvodů:
      1 - Protože kapky vody na listech fungují jako sklo a pálí je slunečním zářením jako lupa.
      2-Rostliny mají průduchy, které se uzavírají, aby nedošlo k dehydrataci, když je slunečno. Pokud je zaléváte, otevírají se a mohou způsobit dehydrataci.
      3 - Pokud jsou v plastovém květináči, účinek by mohl být ještě horší.
      Zdravím!

  7.   Andres Caro řekl

    HELLO !!
    Vypracovaný projekt se mi opravdu líbil, mám vlastní zahradu a testuji tento projekt jako osobní zkušenost, aniž bych získal lukrativní výhodu, jen jsem se vás chtěl zeptat, jestli mi s kódem pomůžete, protože mi dává chybu , Mám knihovnu DHT, ale při jejím ověřování vrhnu na konec kódu chybu: {Serial.println ("Zavlažování zastaveno");} a řekne mi, že je: zbloudilý '\ 342' v programu.
    O této věci mám jen velmi málo znalostí, vyšetřoval jsem a nebyl jsem schopen ji vyřešit.
    Ocenil bych, kdybyste mi pomohli. Díky 😀

    1.    Isaac řekl

      Dobrý den,
      Je kód správný? To znamená, že nemá překlepy?
      Na druhou stranu zde můžete zkontrolovat více o této chybě:
      https://forum.arduino.cc/index.php?topic=386225.0
      pozdravy

  8.   Jose Arredondo řekl

    Dobrý den, dobré odpoledne, omlouvám se, nevím, jestli existuje způsob, jak vás kontaktovat, je to, že mi dává mnoho chyb s tímto kódem v Arduinu

    1.    Isaac řekl

      Ahoj všichni,
      Vyčistil jsem kód a znovu jsem jej napsal, abych zjistil, zda v kódu zobrazeném na webu z nějakého důvodu nedošlo k nějaké chybě. Aby bylo možné jej stáhnout, nechal jsem nový kód v odkazu ke stažení těsně před kódem, který se objeví na webu. Pokud tam kliknete, můžete si jej stáhnout v textovém formátu. Doufám, že už nebudou žádné problémy.
      Zdravím!

  9.   Chaki řekl

    Jak mohu přidat modul wifi? a bylo by možné jej ovládat podáním žádosti?

  10.   Chaki řekl

    Jak je jídlo také: c?

    1.    Luis Alberto Alvarado řekl

      Ahoj Chaqui! Snažím se udělat totéž jako vy, mohl byste mi pomoci, pokud jste dokončili svůj kód?

  11.   Nerea řekl

    Otázka, která součást by byla mezi deskou Arduino a snímačem DHT11?
    Díky moc !!

    1.    Isaac řekl

      Ahoj Nerea,
      Myslíš diodu a rezistor? Všimněte si, že v části před diagramem je seznam všech komponent ...
      Zdravím!

  12.   Jannet řekl

    Dobrý den, máte video o tom, jaký byl váš zavlažovací systém.?

  13.   Alejandro Barros řekl

    promiňte, funguje pouze pro arduino uno nebo také pro arduino mega

  14.   Emmanuel řekl

    Dobrý den dobré ráno, omlouvám se, že jsem se chtěl zeptat na otázku, proč se mi při otevření monitoru Arduino ide zobrazí chybné čtení senzoru dht11?
    Celý program se dobře zkompiloval a dobře načetl, detail je, když otevřete monitor a objeví se ta legenda.
    Co to může být?

  15.   DANIEL ALFREDO RIVAS MEDINA řekl

    HELLO FRIEND GREAT JOB BUT ME GETS ERROR IN THIS PART Žádný takový soubor nebo adresář

    #include
    CO TO BUDE? Ocenil bych vaši pomoc

  16.   Isabell řekl

    Ahoj, toto je veřejnost, ale na tom nezáleží, SKUTEČNĚ CHCI DÍKY OSOBĚ NEBO LIDÍM, KTERÉ SE ZÚČASTNILI NA ROZVOJI TOHOTO PROJEKTU, MOŽNO PRO MNOHO JE TO LÉČIVÉ, ALE ZACHRÁNILI jste mi život, VELMI DĚKUJEM ŠKOLA, NA KTEROU NECHCEM PATŘIT A PRAVDU NEPOLUDUJEM, NAUČIL JSEM SE, DĚKUJEME ZA VÁŠ STRÁNKU, PŘEJEME VÁM NEJLEPŠÍ

  17.   Ayelen řekl

    Jak mohu přidat modul wifi? a bylo by možné jej ovládat podáním žádosti?

  18.   Brian řekl

    #include „DHT.h“
    DHT dht (2, DHT11);
    int hodnotaLDR;
    int pinLDR = A5;
    int MOTOR = 8;
    // ——————————————————————————————————————————————-
    neplatné nastavení ()
    {
    Serial.begin (9600);
    hodnotaLDR = 0;
    Serial.begin (9600);
    Serial.println ("TEST ZÁVLAHOVÉHO SYSTÉMU");
    dht.begin ();
    pinMode (MOTOR, VÝSTUP);
    Serial.println ("hodnota snímače vlhkosti");
    }
    // ——————————————————————————————————————————————-
    neplatná smyčka ()
    {
    Serial.println («============================================ = =========================== »);
    int vlhkost = analogRead (A0);
    Serial.print ("Číst:");
    Serial.println (vlhkost);
    pokud (vlhkost> = 0 a vlhkost> = 1000) {
    Serial.println ("Senzor v suché půdě");
    } else if (vlhkost> 500 & vlhkost <= 1000) {
    Serial.println ("Senzor ve vlhké půdě");
    } else if (vlhkost <= 500) {
    Serial.println ("Senzor ve vodě");
    }
    valueLDR = analogRead (pinLDR);
    Serial.print ("LIGHT (");
    Serial.print (valueLDR);
    Serial.println (")");
    zpoždění (2000);
    float h = dht.readHumidity ();
    float t = dht.readTemperature ();
    if (isnan (h) || isnan (t)) {
    Serial.println ("Nepodařilo se přečíst senzor DHT11!");
    návrat;
    }
    Serial.print ("Vlhkost:");
    Sériový tisk (h);
    Serial.print ("%");
    Serial.print ("Teplota:");
    Serial.print (t);
    Serial.println ("* C");
    if (h <= 50 && LDRvalue <70 && t = 1000) {
    digitalWrite (MOTOR, VYSOKÝ);
    Serial.println ("Must water");
    }
    else {
    digitalWrite (MOTOR, LOW);
    Serial.println ("neměl by vodu");
    }
    zpoždění (1000);
    }

    Použil jsem pouze
    -DTH teploty a vlhkosti na kolíku 2
    - fotorezist LDR na pinu A5
    -motor na kolíku 8
    -senzor vlhkosti půdy na čepu A0
    toto je můj kód, doufám, a funguje to pro vás

    - snímač vlhkosti půdy

  19.   Jose L. řekl

    Dobré ráno, mám problémy s kódem, který dostanu, a používám nejnovější software:

    sketch_nov12c: 1: 10: fatal error: SimpleDHT.h: No such file or directory

    #include

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

    kompilace ukončena.

    stav ukončení 1

    SimpleDHT.h: Žádný takový soubor nebo adresář neexistuje

    Chtěl bych, abyste mi pomohli, jak to vyřešit, prosím, protože jsem v tomto nový, nevím, jak to funguje velmi dobře. Děkuju.

  20.   John řekl

    Dobrý den, můžete zanechat lepší představu o tom, jak je obvod připojen? Není to dobře oceněno, s jakým napájecím napětím je napájeno? dík

  21.   Brian řekl

    #include „DHT.h“
    DHT dht (2, DHT11);
    int hodnotaLDR;
    int pinLDR = A5;
    int MOTOR = 8;
    // ——————————————————————————————————————————————-
    neplatné nastavení ()
    {
    Serial.begin (9600);
    hodnotaLDR = 0;
    Serial.begin (9600);
    Serial.println ("TEST ZÁVLAHOVÉHO SYSTÉMU");
    dht.begin ();
    pinMode (MOTOR, VÝSTUP);
    Serial.println ("hodnota snímače vlhkosti");
    }
    // ——————————————————————————————————————————————-
    neplatná smyčka ()
    {
    Serial.println («============================================ = =========================== »);
    // ——————————————————————————————–
    // ———– Vlhkost, senzor půdy —————————————————–
    int vlhkost = analogRead (A0);
    Serial.print ("Číst:");
    Serial.println (vlhkost);
    pokud (vlhkost> = 0 a vlhkost> = 1000) {
    Serial.println ("Senzor v suché půdě");
    } else if (vlhkost> 500 & vlhkost <= 1000) {
    Serial.println ("Senzor ve vlhké půdě");
    } else if (vlhkost <= 500) {
    Serial.println ("Senzor ve vodě");
    }
    // ——————————————————————————————–
    // ————— Foto odpor ————————————————————-
    valueLDR = analogRead (pinLDR);
    Serial.print ("LIGHT (");
    Serial.print (valueLDR);
    Serial.println (")");
    zpoždění (2000);
    // ——————————————————————————————–
    // ————— Teplota a vlhkost vzduchu DTH11 ve vzduchu —————————–
    float h = dht.readHumidity ();
    float t = dht.readTemperature ();
    if (isnan (h) || isnan (t)) {
    Serial.println ("Nepodařilo se přečíst senzor DHT11!");
    návrat;
    }
    Serial.print ("Vlhkost:");
    Sériový tisk (h);
    Serial.print ("%");
    Serial.print ("Teplota:");
    Serial.print (t);
    Serial.println ("* C");
    // ——————————————————————————————–
    // ———— Podmínka do vody nebo do vody ————————————————
    // (Vlhkost vzduchu) (Fotorezist) (Teplota) (Vlhkost Země)
    if (h <= 50 && LDRvalue <70 && t = 1000) {
    digitalWrite (MOTOR, VYSOKÝ);
    Serial.println ("Must water");
    }
    else {
    digitalWrite (MOTOR, LOW);
    Serial.println ("neměl by vodu");
    }
    zpoždění (1000);
    }

    // jakmile kolíky zkontrolují pouze to, zda je čerpadlo kolíkem pwm a
    // fotorezist LDR je analogický a také půdní vlhkost se rovná kolíku
    // analogové a ty z dth11 snímače teploty a vlhkosti vzduchu bez ohledu na to
    // digitální piny mohou stále vycházet z původního kódu této stránky
    // pro připojení pinů
    // pracuje s 5v

  22.   Erick řekl

    V této části kódu se mi zobrazuje chyba »prázdná smyčka () {» mi může pomoci

  23.   Andrew P. řekl

    Dobrý den, mohl byste mi říct, jaké knihovny nebo jak se jmenují, abych je nainstaloval, protože když vložím kód, řekne mi, že potřebuji knihovnu DTH

  24.   Andres Guzman řekl

    Dobrý den, systém vypadá velmi dobře. Snažil jsem se to znovu vytvořit, ale v době zahrnutí kódu a odpovídající knihovny se objeví následující.

    V souboru zahrnutém z 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: fatal error: Adafruit_Sensor.h: Žádný takový soubor nebo adresář
    #include
    ^ ~~~~~~~~~~~~~~~~~~~~
    kompilace ukončena.
    stav ukončení 1
    Chyba kompilace pro kartu Arduino Uno.

    Nejsem si jistý, jestli potřebuji nějaké další knihkupectví, jestli mi někdo může pomoci, prosím.

  25.   PEPE GONZÁLY řekl

    Velmi dobrý projekt, ale po ověření kódu, jeho kompilaci a nahrání se na sériovém monitoru objeví pouze „čtení DHT11 selhalo“, nepřekračuje tento bod

  26.   Roous řekl

    Dobrý den, mám několik problémů, mohli byste mi prosím pomoci a pokud má někdo video nebo jsem našel podrobné video, které vidím

  27.   Sebastian řekl

    Mám dotaz, kam zařadit proud a jaký typ proudu lze použít.

  28.   Adrian řekl

    Můžete přidat obrys ve vyšším rozlišení? některé spoje nejsou jasně viditelné