Automatski sustav zalijevanja Arduinom za vaše biljke, voćnjak ili vrt

Zalivač zalijevanje biljaka

Ljeto je vrijeme kada mnogi imaju tendenciju odlaska na odmor vani, a biljke predstavljaju problem, jer to ne mogu biti zalijevajte one dane kad niste kod kuće. Uz to, u vrtnim trgovinama obično se prodaje vrsta gela koji vam omogućuje hidrataciju i njegu biljke oko mjesec dana. Ali s vrućinom koja je ili ako odete dulje od mjesec dana, trebat će vam nešto bolji sustav, tako da će po povratku i dalje biti živi i poletni.

Da bi to bilo moguće, rješenje koje postoji je kupnja a automatski sustav navodnjavanja koje možete programirati ili ako ste proizvođač i volite samostalno izrađivati, možete to učiniti sami s Arduinom. Potrebne materijale, osim ploče Arduino, lako je pronaći i prilično su jeftini, tako da ne uključuju prevelike troškove. Također, za neke elemente poput spremnika za vodu itd. Mogli biste koristiti reciklirane materijale ...

Ako malo pregledavate web, naći ćete razni projekti ove vrste, ali možda je najzanimljivije vrt. U tom ću smislu biti nadahnut za ovaj projekt, budući da smatram da drugi sustavi za navodnjavanje koji koriste samo senzore vlažnosti i ništa drugo nisu toliko cjeloviti.

Što trebate?

The materijali potrebni za vaš automatski sustav navodnjavanja zvuk:

  • Nije pronađen nijedan proizvod., iako bi drugi vrijedili.
  • Breadboard ili PCB ako ga želite zalemiti i učiniti trajnim.
  • Osjetnik temperature i vlage Nije pronađen nijedan proizvod.
  • Kabeli
  • Senzor IL-69 vlaga na tlu higrometrom za zalijepiti u vaše posude ili tlo.
  • Minipumpa 3V podvodna voda i približni protok od 120 l / h.
  • Dioda 1N4007
  • Bipolarni tranzistor PN2222
  • 3 otpornika: 1x 220 ohma, 1x 1k, 1x fotorezist LDR
  • Spremnik za vodu, što može biti bubanj ili boca od 5 ili više litara itd.
  • tubo za spajanje na mini pumpu i odlazak u postrojenje / postrojenja

Como alternativne ideje, Rekao bih vam da biste također mogli koristiti sonoff ili WiFi modul da ga aktivirate putem Interneta odakle god se nalazili ili ga poboljšali dodavanjem automatskog ventila na slavinu za programiranje punjenja spremnika za vodu kada se prazni itd.

Kako postaviti automatski sustav navodnjavanja

Shema montaže fritzinga

Montaža je prilično jednostavna. Možete koristite gornju shemu da napravite sve veze. Trebali biste postaviti svoj sustav na mjesto blizu prozora ili tamo gdje se nalazi biljka koju želite zalijevati i zalijepiti dva vrha senzora vlažnosti u tlo biljke, blizu stabljike.

Automatski sustav zalijevanja s Arduinom zalijevat će kad god otkrije a niz uvjeta okoliša. Primjerice, kad otkrije slabo svjetlo ili tamu, temperatura zraka je konkretna koju ćemo konfigurirati u Arduino IDE skici, a vlaga na tlu je niska. U tom bi trenutku aktivirao motor za zalijevanje postrojenja.

Poželjno je biljke zalijevati noću, kad je manje vruće, jer bi to tijekom jakih vrućih dana moglo više štetiti nego koristiti ...

Ne zaboravite da morate predstavite mini pumpu pod vodom u spremniku koji ste namijenili za navodnjavanje i koji bi trebao imati dovoljan kapacitet za držanje dana kada vas nema. Možete napraviti prethodne testove kako biste znali koliko traje i trebali biste ostaviti malo više vode u slučaju da isparava uz jaku vrućinu ...

Podrazumijeva se da cijev mora biti pričvršćena na biljku kako se ona ne bi kretala s vjetrom ili bi voda mogla ispasti i izgubiti se. I mislim da ne bi bilo potrebno sjetiti se da morate održavati trenutnu opskrbu ploče Arduino da bi ona mogla raditi ...

programiranje

Sada je vrijeme kada biste trebali napisati kod potreban u Arduino IDE-u kako biste mogli programirati mikrokontroler koji upravlja hardverom koji ste koristili. Ovo je vrijeme da prilagodite odgovarajuće vrijednosti temperature, vlažnosti i svjetlosti vodi u vašem području, jer ona može varirati ovisno o tome gdje se nalazite. No, primjer koji možete koristiti kao osnovu je (ostavio sam komentare gdje biste mogli izmijeniti vrijednosti, ostalo možete ostaviti ovako):

Preuzmite kod sa kod-navodnjavanje-autozalijevanje-auto za vaš vrt

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

Više informacija - Tečaj programiranja Arduino (besplatni PDF)

izvori

Više informacija - vrt


36 komentara, ostavi svoj

Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   ROGER FERNANDO ASTO BONIFACIO dijo

    ZAŠTO IZLAZIM s statusa izlaza 1
    #include očekuje "FILENAME" ili ESO ON LOAD

    1.    Isaac dijo

      Pozdrav,
      Ova je pogreška nastala zbog problema sa sintaksom u kodu. Prošao sam kroz to i imao sam pogrešku. Sad bi trebalo biti u redu.
      Pozdrav!

  2.   noe izvori dijo

    Pozdrav, dobar dan, i ja imam isti problem:
    projekt: 3:10: pogreška: #include očekuje "FILENAME" ili

    #include <SimpleDHT.h>

    ^

    projekt: 4:10: pogreška: #include očekuje "FILENAME" ili

    #uključi <SPI.h>

    ^

    izlazni status 1
    #include očekuje "FILENAME" ili

  3.   Kevin dijo

    Pozdrav, oprostite, možete li mi pomoći s pogreškom koja se javlja u kodu

  4.   Samanta dijo

    Na isti način na koji mi se prikazuje pogreška u kodu, možete li mi pomoći s tim problemom, molim vas

    1.    Isaac dijo

      Pozdrav,
      Molimo ostavite podatke o vašoj pogrešci kako bih vam mogao pomoći. Ako ne znam sadržaj pogreške, teško mi je pomoći vam ili locirati gdje je problem ...
      pozdravi

  5.   samantha vega voli dijo

    Pozdrav, pojavljuje se ova pogreška, kako je mogu riješiti?

    pogreška: SimpleDHT.h: Nema takve datoteke ili direktorija

    #include

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

    kompilacija prekinuta.

    izlazni status 1
    SimpleDHT.h: Nema takve datoteke ili direktorija

    1.    Isaac dijo

      Pozdrav Samantha,
      Ta je pogreška zato što čini se da Arduino IDE ne prepoznaje knjižnicu SimpleDHT.h. Imate li ispravno instaliran? U slučaju da ga imate, pokušajte upotrijebiti noviju verziju Arduino IDE-a ako je starija ...
      Više informacija možete pogledati ovdje:
      https://www.arduino.cc/en/Guide/Libraries
      I preuzmite knjižnicu odavde:
      https://github.com/adafruit/DHT-sensor-library
      Pozdrav!

  6.   Pepe dijo

    Prvo hvala na postu koji je vrlo zanimljiv i vrlo valjan, ali pročitao sam ovo:

    "Poželjno je biljke zalijevati noću, kada je manje vruće, jer bi to tijekom jakih vrućih dana moglo više štetiti nego koristiti ..."

    To sam čuo mnogo puta, ali volio bih da mi netko jasno objasni kako ih to boli .... Uzgajam biljke više od 20 godina, a kad je jako vruće, ništa ne cijene više od dobrog zalijevanja i mogućnosti da prskalicom kvase lišće.

    Ovo je mit da sve što čini je da biljke trpe ... Kad vam je vruće i žedno, čekate li noć da popijete? ... razmislite o tome

    hvala na postu !!!

    1.    Isaac dijo

      Pozdrav Pepe,
      Hvala na unosu. Živim na selu i ponekad kad je vrućina vrlo jaka, zalijevanje biljaka u vrućim satima može ih ubiti. Sam sam to provjerio (također, nije isto ovisno o zemljopisnom području u kojem se nalazite, u mojoj zemlji je vrlo vruće). To može biti iz nekoliko razloga:
      1-Budući da kapljice vode na lišću djeluju poput stakla, izgarajući ih sunčevom svjetlošću poput povećala.
      2-Biljke imaju stomate koji se zatvaraju kako ne bi dehidrirali kad je sunčano. Ako ih zalijevate, otvaraju se i mogu prouzročiti dehidraciju.
      3 -Ako su u plastičnoj posudi, učinak bi mogao biti i gori.
      Pozdrav!

  7.   Andres Caro dijo

    HOLA !!
    Jako mi se svidio razrađeni projekt, imam svoj vrt i testiram ga kao osobno iskustvo, bez stjecanja unosne koristi, samo sam vas htio pitati biste li mi pomogli s kodom, jer dobivam pogrešku, Imam DHT biblioteku, ali prilikom provjere baca pogrešku na kraj koda: {Serial.println ("Zalijevanje zaustavljeno");} i kaže mi da je u programu: zalutalo '\ 342'
    O tom pitanju imam vrlo malo znanja, istraživao sam i nisam ga uspio riješiti.
    Bio bih zahvalan ako mi pomognete. Hvala 😀

    1.    Isaac dijo

      Pozdrav,
      Je li kod točan? Odnosno, nema pogreške u kucanju?
      S druge strane, više o toj pogrešci možete provjeriti ovdje:
      https://forum.arduino.cc/index.php?topic=386225.0
      pozdravi

  8.   Joseph Arredondo dijo

    Pozdrav Dobar dan, izvinite, ne znam postoji li način da vas kontaktiram, jer mi stvara brojne pogreške s ovim kodom u arduinu

    1.    Isaac dijo

      Pozdrav svima,
      Očistio sam kôd i ponovno ga napisao kako bih provjerio postoje li pogreške iz nekog razloga u kodu koji je prikazan na webu. Kako bih ga mogao preuzeti, novi kôd ostavio sam u poveznici za preuzimanje neposredno prije koda koji se pojavljuje na webu. Ako kliknete tamo, možete ga preuzeti u tekstualnom formatu. Nadam se da više neće biti problema.
      Pozdrav!

  9.   Čaki dijo

    Kako mogu dodati wifi modul? i bi li ga bilo moguće kontrolirati podnošenjem prijave?

  10.   Čaki dijo

    Kakva je i hrana: c?

    1.    Luis Alberto Alvarado dijo

      Bok Chaqui! Pokušavam učiniti isto kao i vi, možete li mi pomoći ako ste dovršili kod?

  11.   Nerea dijo

    Pitanje koja bi komponenta bila ona između ploče Arduino i senzora DHT11?
    Puno ti hvala!!

    1.    Isaac dijo

      Bok Nerea,
      Mislite na diodu i otpornik? Primijetite da se u odjeljku prije dijagrama nalazi popis svih komponenata ...
      Pozdrav!

  12.   Džennet dijo

    Pozdrav, imate video kako je izgledao vaš sustav za navodnjavanje.?

  13.   Alejandro Barros dijo

    oprostite samo radi za arduino uno ili također za arduino mega

  14.   Emmanuel dijo

    Pozdrav, dobro jutro, oprostite, htio sam postaviti pitanje zašto kad otvorim monitor Arduino ide, dobijem neuspješno očitavanje dht11 senzora?
    Cijeli program je dobro kompiliran i dobro se učitao, detalj je kada otvorim monitor i pojavi se ta legenda.
    Što može biti?

  15.   DANIEL ALFREDO RIVAS MEDINA dijo

    POZDRAV PRIJATELJU SJAJAN POSAO ALI DAJE GREŠKU U OVOJ DIJELU Nema takve datoteke ili direktorija

    #include
    ŠTO ĆE TO BITI? Bila bih zahvalna na vašoj pomoći

  16.   Isabell dijo

    POZDRAV, OVO JE JAVNO, ALI NIJE VAŽNO, ZAISTA ŽELIM ZAHVALITI OSOBI ILI LJUDIMA KOJI SU SUDJELOVALI U RAZVOJU OVOG PROJEKTA, MOŽDA JE DA JE MNOGO BESEDNO, ALI STE MI SPASILI ŽIVOT ŠKOLA U KOJU NE ŽELIM PRIPADI I ISTINU KOJA SE NE ŽALIM DA SAM NAUČILA, HVALA NA STRANICI, ŽELIM VAM NAJBOLJE.

  17.   Ayelen dijo

    Kako mogu dodati wifi modul? i bi li ga bilo moguće kontrolirati podnošenjem prijave?

  18.   Brian dijo

    #include "DHT.h"
    DHT dht (2, DHT11);
    int vrijednostLDR;
    int pinLDR = A5;
    int MOTOR = 8;
    // —————————————————————————————————————————————-
    void postavljanje ()
    {
    Serijski počet (9600);
    vrijednostLDR = 0;
    Serijski počet (9600);
    Serial.println ("TEST SUSTAVA NAVODNJAVANJA");
    dht.begin ();
    pinMode (MOTOR, IZLAZ);
    Serial.println ("Vrijednost senzora vlažnosti");
    }
    // —————————————————————————————————————————————-
    petlja void ()
    {
    Serial.println («============================================== = ========================== »);
    int vlažnost = analogRead (A0);
    Serial.print ("Čitanje:");
    Serial.println (vlaga);
    ako (vlažnost> = 0 i vlaga> = 1000) {
    Serial.println ("Senzor u suhom tlu");
    } else if (vlaga> 500 i vlaga <= 1000) {
    Serial.println ("Senzor u mokrom tlu");
    } inače ako (vlažnost <= 500) {
    Serial.println ("Senzor u vodi");
    }
    valueLDR = analogRead (pinLDR);
    Serial.print ("LIGHT (");
    Serial.print (valueLDR);
    Serial.println (")");
    kašnjenja (2000);
    plutajuće h = dht.readHumidity ();
    float t = dht.readTemperature ();
    ako (isnan (h) || isnan (t)) {
    Serial.println ("Pročitavanje senzora DHT11 nije uspjelo!");
    povratak;
    }
    Serial.print ("Vlaga:");
    Serial.print (h);
    Serial.print ("%");
    Serial.print ("Temperatura:");
    Serial.print (t);
    Serial.println ("* C");
    ako (h <= 50 && LDRvrijednost <70 && t = 1000) {
    digitalWrite (MOTOR, VISOKO);
    Serial.println ("Mora se zalijevati");
    }
    inače {
    digitalWrite (MOTOR, LOW);
    Serial.println ("NE smije zalijevati");
    }
    kašnjenja (1000);
    }

    Koristio sam samo
    -DTH temperature i vlažnosti na zatiču 2
    -LDR fotootpor na pin A5
    -motor na zatiču 8
    -senzor za vlažnost tla na zatik A0
    ovo je moj kod, nadam se i radi za vas

    -senzor vlage za tlo

  19.   Jose L. dijo

    Dobro jutro, imam problema s kodom koji dobivam i koristim najnoviji softver:

    sketch_nov12c: 1: 10: fatalna pogreška: SimpleDHT.h: Nema takve datoteke ili direktorija

    #include

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

    kompilacija prekinuta.

    izlazni status 1

    SimpleDHT.h: Nema takve datoteke ili direktorija

    Molim vas da mi pomognete kako to riješiti, budući da sam novi u tome, ne znam kako to jako dobro funkcionira. Hvala vam.

  20.   Jovan dijo

    Pozdrav, možete li ostaviti bolju sliku o tome kako je sklop spojen? Ne cijeni se dobro, s kojim se naponom napaja? Hvala

  21.   Brian dijo

    #include "DHT.h"
    DHT dht (2, DHT11);
    int vrijednostLDR;
    int pinLDR = A5;
    int MOTOR = 8;
    // —————————————————————————————————————————————-
    void postavljanje ()
    {
    Serijski počet (9600);
    vrijednostLDR = 0;
    Serijski počet (9600);
    Serial.println ("TEST SUSTAVA NAVODNJAVANJA");
    dht.begin ();
    pinMode (MOTOR, IZLAZ);
    Serial.println ("Vrijednost senzora vlažnosti");
    }
    // —————————————————————————————————————————————-
    petlja void ()
    {
    Serial.println («============================================== = ========================== »);
    // —————————————————————————————–
    // ———– Vlaga, senzor tla —————————————————–
    int vlažnost = analogRead (A0);
    Serial.print ("Čitanje:");
    Serial.println (vlaga);
    ako (vlažnost> = 0 i vlaga> = 1000) {
    Serial.println ("Senzor u suhom tlu");
    } else if (vlaga> 500 i vlaga <= 1000) {
    Serial.println ("Senzor u mokrom tlu");
    } inače ako (vlažnost <= 500) {
    Serial.println ("Senzor u vodi");
    }
    // —————————————————————————————–
    // ————— Fotootpor ————————————————————-
    valueLDR = analogRead (pinLDR);
    Serial.print ("LIGHT (");
    Serial.print (valueLDR);
    Serial.println (")");
    kašnjenja (2000);
    // —————————————————————————————–
    // ————— Senzor DTH11 temperature i vlažnosti u zraku —————————–
    plutajuće h = dht.readHumidity ();
    float t = dht.readTemperature ();
    ako (isnan (h) || isnan (t)) {
    Serial.println ("Pročitavanje senzora DHT11 nije uspjelo!");
    povratak;
    }
    Serial.print ("Vlaga:");
    Serial.print (h);
    Serial.print ("%");
    Serial.print ("Temperatura:");
    Serial.print (t);
    Serial.println ("* C");
    // —————————————————————————————–
    // ———— Stanje vode ili ne vode ———————————————--
    // (Vlažnost zraka) (Fotootpor) (Temperatura) (Vlažnost Zemlje)
    ako (h <= 50 && LDRvrijednost <70 && t = 1000) {
    digitalWrite (MOTOR, VISOKO);
    Serial.println ("Mora se zalijevati");
    }
    inače {
    digitalWrite (MOTOR, LOW);
    Serial.println ("NE smije zalijevati");
    }
    kašnjenja (1000);
    }

    // čim pinovi samo provjere je li crpka pwm iglica i
    // LDR fotorezist je analogan, a također je i vlage u tlu jednak igli
    // analogni i oni dth11 osjetnika temperature i vlage zraka bilo što
    // digitalne igle i dalje se mogu temeljiti na izvornom kodu ove stranice
    // za spajanje pinova
    // radi s 5v

  22.   Erick dijo

    Dobivam pogrešku u ovom dijelu koda »empty loop () {» može mi pomoći

  23.   Andrew P. dijo

    Pozdrav, možete li mi reći koje knjižnice ili kako se zovu da ih instaliram, jer kad zalijepim kod, govori mi da trebam DTH knjižnicu

  24.   Andres Guzman dijo

    Pozdrav, sustav se čini vrlo dobrim. Pokušao sam ga ponovno stvoriti, ali u vrijeme uključivanja koda i odgovarajuće knjižnice pojavljuje se sljedeće.

    U datoteci uključenoj iz 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: fatalna pogreška: Adafruit_Sensor.h: Nema takve datoteke ili direktorija
    #include
    ^ ~~~~~~~~~~~~~~~~~~
    kompilacija prekinuta.
    izlazni status 1
    Pogreška sastavljanja za karticu Arduino Uno.

    Nisam siguran trebam li neku drugu knjižaru ako mi netko može pomoći.

  25.   PEPE GONZALE dijo

    Vrlo dobar projekt, međutim nakon provjere koda, sastavljanja i prijenosa, jedino što se na serijskom monitoru pojavljuje je "DHT11 čitanje nije uspjelo", on ne prelazi tu točku

  26.   Rouss dijo

    Poštovani, imam nekoliko problema, možete li mi pomoći i ako netko ima video ili sam pronašao detaljan video koji mogu vidjeti

  27.   Sebastian dijo

    Imam pitanje gdje staviti struju i koja vrsta struje se može koristiti.

  28.   Adrian dijo

    Možete li dodati obris veće rezolucije? neke veze nisu jasno vidljive