Automatisk vandingssystem med Arduino til dine planter, frugtplantage eller haven

Vandkande vandingsplanter

Sommeren er en tid, hvor mange har en tendens til at tage på ferie udenfor, og planter er et problem, da de ikke kan være vand de dage, hvor du ikke er hjemme. Derudover sælger havebutikker normalt en slags gel, der fugter og nærer planten i cirka en måned. Men med den varme, det er, eller hvis du rejser i mere end en måned, har du brug for et noget bedre system, så når du vender tilbage, er de stadig i live og energiske.

For at dette skal være muligt, er den løsning, der findes, at købe en automatisk vandingssystem at du kan programmere, eller hvis du er en producent, og du kan lide DIY, kan du gøre det selv med Arduino. De materialer, du har brug for, bortset fra Arduino-kortet, er nemme at finde og ret billige, så de medfører ikke for store omkostninger. Også for nogle elementer som vandtanken osv. Kan du bruge genbrugsmaterialer ...

Hvis du surfer lidt på nettet, finder du det forskellige projekter af denne type, men måske det mest interessante er have. I det vil jeg blive inspireret til dette projekt, da jeg mener, at andre kunstvandingssystemer, der kun bruger fugtighedssensorer og intet andet, ikke er så komplette.

Hvad har du brug for

masse materialer, der er nødvendige til dit automatiske vandingssystem lyd:

  • Ingen produkter fundet., selvom andre ville være værd.
  • Brødbræt eller PCB hvis du vil lodde det og gøre det permanent.
  • Sensor for temperatur og fugtighed Ingen produkter fundet.
  • Kabler
  • Sensor YL-69 fugtighed på jorden med et hygrometer til at stikke i din gryde / jord eller jord.
  • Minipumpe 3V nedsænket vand og omtrentligt flow på 120 l / t.
  • diodo 1N4007
  • Bipolar transistor PN2222
  • 3 modstande: 1x 220 ohm, 1x 1k, 1x Ingen produkter fundet.
  • Vandtank, som kan være en tromle eller en flaske på 5 eller flere liter osv.
  • Tubo at oprette forbindelse til minipumpen og tage til anlægget / rene

Como alternative ideer, Ville jeg fortælle dig, at du også kunne bruge en sonoff eller et WiFi-modul til at aktivere det over internettet, uanset hvor du er, eller forbedre det ved også at tilføje en automatisk ventil til vandhanen for at programmere fyldningen af ​​vandtanken, når den tømmes , etc.

Sådan opsættes det automatiske vandingssystem

Skematisk af forsamlingen i Fritzing

Samlingen er ret enkel. Du kan Brug ovenstående skema til at oprette alle forbindelser. Du skal placere dit system et sted i nærheden af ​​vinduet, eller hvor planten, du vil vandre, er placeret og fastgøre de to spidser af fugtighedsføleren i plantens jord nær stammen.

Det automatiske vandingssystem med Arduino vil vandre, når det registrerer en række miljøforhold. For eksempel, når det registrerer svagt lys eller mørke, er lufttemperaturen en konkret, som vi konfigurerer i Arduino IDE-skitse, og luftfugtigheden på jorden er lav. I det øjeblik ville han aktivere motoren for at vande planten.

Det tilrådes at vandre planterne om natten, når det er mindre varmt, da det under intense varme dage kan skade mere end gavn ...

Husk, at du skal introducer minipumpen under vand i tanken, som du har bestemt til kunstvanding, og som skal have tilstrækkelig kapacitet til at holde de dage, du ikke er der. Du kan lave tidligere tests for at vide, hvor længe det varer, og du bør lade lidt mere vand, hvis det fordamper med den intense varme ...

Det siger sig selv, at røret skal fastgøres til planten, så det ikke bevæger sig med vinden, eller vandet kan falde ud og blive spildt. Og jeg tror, ​​det ville ikke være nødvendigt at huske, at du er nødt til at opretholde en strømforsyning til Arduino-kortet, for at den kan fungere ...

programmering

Det er nu, når du skal skrive kode krævet i Arduino IDE for at kunne programmere den mikrocontroller, der administrerer den hardware, du har brugt. Dette er tiden til at tilpasse passende temperatur, fugtighed og lysværdier til vand i dit område, da det kan variere afhængigt af hvor du er. Men eksemplet, som du kan bruge som base, er (jeg har efterladt kommentarer, hvor du kan ændre værdierne, resten kan du lade det være sådan her):

Download koden fra kode-kunstvanding-autovanding-auto til din have

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

Mere information - Arduino programmeringskursus (gratis PDF)

Fuentes

Mere information - have


36 kommentarer, lad dine

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

     ROGER FERNANDO ASTO BONIFACIO sagde han

    HVORFOR AFSLUTER jeg exit status 1
    #include forventer "FILENAME" eller ESO ON LOAD

        Isaac sagde han

      Hej,
      Denne fejl skyldes nogle syntaksproblemer i koden. Jeg har gennemgået det og haft en fejl. Nu skal det være fint.
      Greetings!

     Noe kilder sagde han

    Hej god eftermiddag, jeg har også det samme problem:
    projekt: 3:10: fejl: #include forventer "FILENAME" eller

    #include <SimpleDHT.h>

    ^

    projekt: 4:10: fejl: #include forventer "FILENAME" eller

    # inkluderer <SPI.h>

    ^

    udgangsstatus 1
    #include forventer "FILENAME" eller

     kevin sagde han

    Hej, undskyld mig, kan du hjælpe mig med en fejl, der opstår i koden

     Samanta sagde han

    På samme måde har jeg en fejl i koden, kan du hjælpe mig med det problem, tak

        Isaac sagde han

      Hej,
      Efterlad oplysninger om den fejl, du har, så jeg kan hjælpe. Hvis jeg ikke kender indholdet af fejlen, er det svært for mig at hjælpe dig eller finde, hvor problemet er ...
      hilsener

     samantha vega elsker sagde han

    Hej, denne fejl vises, hvordan kan jeg løse den?

    fejl: SimpleDHT.h: Ingen sådan fil eller mappe

    #include

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

    kompilering afsluttet.

    udgangsstatus 1
    SimpleDHT.h: Ingen sådan fil eller mappe

        Isaac sagde han

      Hej Samantha,
      Denne fejl skyldes, at Arduino IDE ikke ser ud til at opdage SimpleDHT.h-biblioteket. Har du det installeret korrekt? Hvis du har det, kan du prøve at bruge en mere aktuel version af Arduino IDE, hvis den er ældre ...
      Du kan se mere information her:
      https://www.arduino.cc/en/Guide/Libraries
      Og få biblioteket herfra:
      https://github.com/adafruit/DHT-sensor-library
      Greetings!

     Pepe sagde han

    Første tak for det indlæg, der er meget interessant og meget gyldigt, men jeg har læst dette:

    "Det tilrådes at vande planterne om natten, når det er mindre varmt, da det under meget varme dage kan skade mere end gavn ..."

    Jeg har hørt dette mange gange, men jeg vil gerne have, at nogen forklarer mig tydeligt, hvordan det gør ondt for dem .... Jeg har dyrket planter i mere end 20 år, og når det er meget varmt, er der intet, at de værdsætter mere end en god vanding og at være i stand til at være sammen med en sprinkler, der fugter bladene.

    Dette er en myte om, at alt, hvad det gør, er at få planterne til at lide ... Når du er varm og tørstig, venter du til natten med at drikke? ... tænk over det

    tak for stillingen !!!

        Isaac sagde han

      Hej Pepe,
      Tak for dit input. Jeg bor på landet og nogle gange, når varmen er meget intens, kan vanding af planterne i varme timer dræbe dem. Jeg har selv tjekket det (derudover er det ikke det samme afhængigt af det geografiske område, hvor du er, i mit land er det meget varmt). Det kan være af flere grunde:
      1-Fordi vanddråberne på bladene fungerer som et glas, brænder de dem med sollys som et forstørrelsesglas ville gjort.
      2-Planterne har stomata, der lukker for ikke at tørre ud, når det er solrigt. Hvis du vander dem, åbner de sig og kan få dem til at blive dehydreret.
      3-Hvis de er i en plastikpotte, kan effekten blive endnu værre.
      Greetings!

     andrew dyrt sagde han

    HEJ!!
    Jeg kunne virkelig godt lide det udførlige projekt, jeg har min egen have, og jeg tester dette projekt som en personlig oplevelse uden at opnå en lukrativ fordel, jeg ville bare spørge dig, om du ville hjælpe mig med koden, da det giver mig en fejl , Jeg har DHT-biblioteket, men når jeg bekræfter det, kaster jeg en fejl i slutningen af ​​koden: {Serial.println ("Vanding stoppet");} og fortæller mig, at det er: stray '\ 342' i programmet.
    Jeg har meget lidt kendskab til sagen, og jeg har undersøgt, og jeg har ikke været i stand til at løse det.
    Jeg ville sætte pris på, hvis du hjælper mig. Tak 😀

        Isaac sagde han

      Hej,
      Er koden korrekt? Det vil sige, det har ingen skrivefejl?
      På den anden side kan du kontrollere mere om denne fejl her:
      https://forum.arduino.cc/index.php?topic=386225.0
      hilsener

     Joseph Arredondo sagde han

    Hej God eftermiddag, undskyld, jeg ved ikke, om der er en måde at kontakte dig på, det er, at det giver mig mange fejl med denne kode i arduino

        Isaac sagde han

      Hej alle,
      Jeg har renset koden og har skrevet den igen for at se, om der af en eller anden grund var fejl i koden, der vises på nettet. For at den kan downloades har jeg efterladt den nye kode i et downloadlink lige før den kode, der vises på internettet. Hvis du klikker der, kan du downloade det i tekstformat. Jeg håber, der ikke er flere problemer.
      Greetings!

     Chaki sagde han

    Hvordan kan jeg tilføje wifi-modulet? og ville det være muligt at kontrollere det ved at lave en ansøgning?

     Chaki sagde han

    Hvordan er maden også: c?

        Luis Alberto Alvarado sagde han

      Hej Chaqui! Jeg prøver at gøre det samme som dig, kan du hjælpe mig, hvis du er færdig med din kode ????

     Nerea sagde han

    Et spørgsmål hvilken komponent ville være den mellem Arduino-kortet og DHT11-sensoren?
    Mange tak!!

        Isaac sagde han

      Hej Nerea,
      Du mener dioden og modstanden? Bemærk, at der i afsnittet før diagrammet er en liste over alle komponenter ...
      Greetings!

     Jannet sagde han

    Hej, du har en video af, hvordan dit vandingssystem var.?

     Alejandro Barros sagde han

    undskyld mig fungerer kun for arduino uno eller også for arduino mega

     Emmanuel sagde han

    Hej god dag, undskyld, jeg ville stille et spørgsmål, hvorfor når jeg åbner Arduino ide-skærmen, får jeg en mislykket læsning af dht11-sensoren?
    Hele programmet er kompileret godt og indlæst godt, detaljen er, når jeg åbner skærmen, og denne forklaring vises.
    Hvad kan det være?

     DANIEL ALFREDO RIVAS MEDINA sagde han

    HELLO VENNER STOR JOB, MEN MIG GIVER FEJL I DENNE DEL Ingen sådan fil eller bibliotek

    #include
    HVAD BLIVER DET? Jeg ville sætte pris på din hjælp

     Isabell sagde han

    Hej, dette er offentligt, men betyder ikke noget, jeg vil virkelig takke den person eller de mennesker, der deltog i udviklingen af ​​dette projekt, måske for mange er det dårligt, men du har reddet mit liv, så jeg takker dig meget SKOLE, SOM JEG IKKE VIL VÆRE TILHØRE, OG SANDHEDEN, DET BEDRIFTER, JEG HAR LÆRT, TAK FOR DIN SIDE, JEG ØNSKER DU DET BEDSTE.

     Ayelen sagde han

    Hvordan kan jeg tilføje wifi-modulet? og ville det være muligt at kontrollere det ved at lave en ansøgning?

     Brian sagde han

    # inkluderer "DHT.h"
    DHT dht (2, DHT11);
    int værdiLDR;
    int pinLDR = A5;
    int MOTOR = 8;
    // ———————————————————————————————————————————————-
    ugyldig opsætning ()
    {
    Serial.begin (9600);
    værdiLDR = 0;
    Serial.begin (9600);
    Serial.println ("TEST TIL IRRIGATIONSSYSTEM");
    dht.begin ();
    pinMode (MOTOR, OUTPUT);
    Serial.println ("Fugtighedsfølerværdi");
    }
    // ———————————————————————————————————————————————-
    ugyldig sløjfe ()
    {
    Serial.println («=============================================== = ============================ »);
    int fugtighed = analogRead (A0);
    Serial.print ("Læs:");
    Serial.println (fugtighed);
    hvis (fugtighed> = 0 og fugtighed> = 1000) {
    Serial.println ("Sensor i tør jord");
    } ellers hvis (fugtighed> 500 og fugtighed <= 1000) {
    Serial.println ("Sensor i våd jord");
    } ellers hvis (luftfugtighed <= 500) {
    Serial.println ("Sensor i vand");
    }
    valueLDR = analogRead (pinLDR);
    Serial.print ("LIGHT (");
    Serial.print (valueLDR);
    Serial.println (")");
    forsinkelse (2000);
    flyde h = dht.readHumidity ();
    flyde t = dht.readTemperature ();
    hvis (isnan (h) || isnan (t)) {
    Serial.println ("Kunne ikke læse DHT11-sensor!");
    vende tilbage;
    }
    Serial.print ("Fugtighed:");
    Serial.print (h);
    Serial.print ("%");
    Serial.print ("Temperatur:");
    Serial.print (t);
    Serial.println ("* C");
    hvis (h <= 50 && LDRværdi <70 && t = 1000) {
    digitalWrite (MOTOR, HIGH);
    Serial.println ("Skal vandes");
    }
    andet{
    digitalWrite (MOTOR, LAV);
    Serial.println ("skal IKKE vandes");
    }
    forsinkelse (1000);
    }

    Jeg brugte kun
    -DTH af temperatur og fugtighed på pin 2
    -LDR fotoresist på pin A5
    -motor på pin 8
    -sensor for jordfugtighed på pin A0
    dette er min kode, håber jeg, og det fungerer for dig

    -fugtighedssensor til jord

     Jose L. sagde han

    Godmorgen, jeg har problemer med koden, jeg får dette, og jeg bruger den nyeste software:

    sketch_nov12c: 1: 10: fatal fejl: SimpleDHT.h: Ingen sådan fil eller katalog

    #include

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

    kompilering afsluttet.

    udgangsstatus 1

    SimpleDHT.h: Ingen sådan fil eller mappe

    Jeg vil gerne have, at du hjælper mig med at løse dette tak, da jeg er ny på dette, ved jeg ikke, hvordan det fungerer meget godt. Tak skal du have.

     John sagde han

    Hej, kunne du efterlade et bedre billede af, hvordan kredsløbet er tilsluttet? Det værdsættes ikke godt, med hvilken strømspænding tilføres det? Tak

     Brian sagde han

    # inkluderer "DHT.h"
    DHT dht (2, DHT11);
    int værdiLDR;
    int pinLDR = A5;
    int MOTOR = 8;
    // ———————————————————————————————————————————————-
    ugyldig opsætning ()
    {
    Serial.begin (9600);
    værdiLDR = 0;
    Serial.begin (9600);
    Serial.println ("TEST TIL IRRIGATIONSSYSTEM");
    dht.begin ();
    pinMode (MOTOR, OUTPUT);
    Serial.println ("Fugtighedsfølerværdi");
    }
    // ———————————————————————————————————————————————-
    ugyldig sløjfe ()
    {
    Serial.println («=============================================== = ============================ »);
    // ——————————————————————————————–
    // ———– Fugt, jordføler ——————————————————–
    int fugtighed = analogRead (A0);
    Serial.print ("Læs:");
    Serial.println (fugtighed);
    hvis (fugtighed> = 0 og fugtighed> = 1000) {
    Serial.println ("Sensor i tør jord");
    } ellers hvis (fugtighed> 500 og fugtighed <= 1000) {
    Serial.println ("Sensor i våd jord");
    } ellers hvis (luftfugtighed <= 500) {
    Serial.println ("Sensor i vand");
    }
    // ——————————————————————————————–
    // ————— Fotoresistens ———————————————————-
    valueLDR = analogRead (pinLDR);
    Serial.print ("LIGHT (");
    Serial.print (valueLDR);
    Serial.println (")");
    forsinkelse (2000);
    // ——————————————————————————————–
    // ————— Sensor DTH11 temperatur og fugtighed i luften —————————–
    flyde h = dht.readHumidity ();
    flyde t = dht.readTemperature ();
    hvis (isnan (h) || isnan (t)) {
    Serial.println ("Kunne ikke læse DHT11-sensor!");
    vende tilbage;
    }
    Serial.print ("Fugtighed:");
    Serial.print (h);
    Serial.print ("%");
    Serial.print ("Temperatur:");
    Serial.print (t);
    Serial.println ("* C");
    // ——————————————————————————————–
    // ———— Tilstand til vand eller ikke vand ———————————————-
    // (Luftfugtighed) (fotoresist) (temperatur) (jordfugtighed)
    hvis (h <= 50 && LDRværdi <70 && t = 1000) {
    digitalWrite (MOTOR, HIGH);
    Serial.println ("Skal vandes");
    }
    andet{
    digitalWrite (MOTOR, LAV);
    Serial.println ("skal IKKE vandes");
    }
    forsinkelse (1000);
    }

    // så snart stifterne kun kontrollerer, at pumpen er en pwm-stift, og
    // at af LDR-fotoresist er analog, og også jordfugtighed svarer til en stift
    // analog og dem fra dth11 af lufttemperatur- og fugtighedsføler uanset
    // digitale stifter kan stadig være baseret på den originale kode på denne side
    // for at forbinde stifterne
    // fungerer med 5v

     Erick sagde han

    Jeg får en fejl i denne del af koden »tom løkke () {» kunne hjælpe mig

     Andrew P. sagde han

    Hej, kan du fortælle mig, hvilke biblioteker eller hvad er deres navn, der skal installeres, da da jeg indsætter koden, fortæller det mig, at jeg har brug for DTH-biblioteket

     Andres Guzman sagde han

    Hej, systemet virker meget godt. Jeg forsøgte at genskabe det, men på tidspunktet for at inkludere koden og det tilsvarende bibliotek vises følgende.

    I filen inkluderet fra C: \ Brugere \ Bruger \ Dokumenter \ Arduino \ TEST_1 \ TEST_1.ino: 5: 0:
    C: \ Program Files (x86) \ Arduino \ biblioteker \ DHT-sensor-bibliotek-master / DHT_U.h: 36:10: fatalt fejl: Adafruit_Sensor.h: Ingen sådan fil eller bibliotek
    #include
    ^ ~~~~~~~~~~~~~~~~~
    kompilering afsluttet.
    udgangsstatus 1
    Kompileringsfejl for kort Arduino Uno.

    Jeg er ikke sikker på, om jeg har brug for nogen anden boghandel, hvis nogen kan hjælpe mig.

     PEPE GONZALER sagde han

    Meget godt projekt, men efter at have verificeret koden, kompileret den og uploadet den, er det eneste, der vises på den serielle skærm, "DHT11-læsning mislykkedes", det går ikke ud over dette punkt

     Rouss sagde han

    Hej, jeg har flere problemer. Kan du venligst hjælpe mig, og hvis nogen har en video, eller jeg fandt en detaljeret video, som jeg kan se

     Sebastián sagde han

    Jeg har et spørgsmål, hvor jeg skal sætte strømmen og hvilken type strøm der kan bruges.

     Adrian sagde han

    Kan du tilføje en kontur i højere opløsning? nogle forbindelser er ikke tydeligt synlige