Automatisk vanningsanlegg med Arduino for planter, frukthage eller hage

Vannkanne vanning planter

Sommeren er en tid da mange pleier å feriere ute og planter er et problem, siden de ikke kan være det vann de dagene du ikke er hjemme. I tillegg selger hagebutikker vanligvis en slags gel som hydrerer og nærer planten i omtrent en måned. Men med varmen det er, eller hvis du drar i mer enn en måned, vil du trenge et noe bedre system slik at når du kommer tilbake, er de fortsatt i live og kraftige.

For at det skal være mulig, er løsningen som er å kjøpe en automatisk vanningsanlegg som du kan programmere, eller hvis du er produsent og liker DIY, kan du gjøre det selv med Arduino. Materialene du trenger, bortsett fra Arduino-brettet, er enkle å finne og ganske billige, så de innebærer ikke for store utgifter. For noen elementer som vanntanken osv. Kan du også bruke resirkulerte materialer ...

Hvis du surfer litt på nettet, finner du det forskjellige prosjekter av denne typen, men kanskje det mest interessante er hage. I og med at jeg vil bli inspirert til dette prosjektet, siden jeg anser at andre vanningsanlegg som bare bruker fuktighetssensorer og ingenting annet ikke er så komplette.

Hva trenger du

den materialene som trengs for ditt automatiske vanningsanlegg er:

  • Ingen produkter funnet., selv om andre ville være verdt.
  • Brettbrett eller PCB hvis du vil lodde det og gjøre det permanent.
  • Sensor for temperatur og fuktighet Ingen produkter funnet.
  • kabler
  • Sensor YL-69 fuktighet på bakken med et hygrometer for å stikke i potten / jorda.
  • Minipumpe 3V nedsenkbart vann og omtrentlig flyt på 120 l / t.
  • Diode 1N4007
  • Bipolar transistor PN2222
  • 3 motstander: 1x 220 ohm, 1x 1k, 1x fotoresist LDR
  • Vanntank, som kan være en trommel eller en flaske på 5 eller flere liter osv.
  • Tubo for å koble til minipumpen og ta til anlegget / rene

Como alternative ideer, Jeg vil fortelle deg at du også kan bruke en sonoff eller en WiFi-modul for å aktivere den over Internett hvor du enn er, eller forbedre den ved å legge til en automatisk ventil i kranen for å programmere fyllingen av vanntanken når den tømmes , etc.

Hvordan sette opp det automatiske vanningsanlegget

Skjematisk oversikt over forsamlingen i Fritzing

Montering er ganske enkel. Du kan bruk skjemaet ovenfor for å lage alle tilkoblingene. Du bør plassere systemet ditt på et sted i nærheten av vinduet eller der planten du vil vanne, ligger og stikke de to spissene på fuktighetssensoren i jorda til planten, nær stammen.

Det automatiske vanningssystemet med Arduino vil vanne når det oppdager en rekke miljøforhold. For eksempel, når den oppdager lite lys eller mørke, er lufttemperaturen en konkret som vi vil konfigurere i Arduino IDE-skissen, og fuktigheten på bakken er lav. I det øyeblikket ville han aktivere motoren for å vanne anlegget.

Det er tilrådelig å vanne plantene om natten når det er mindre varmt, siden det kan skade mer enn fordel å gjøre det under intense varme dager ...

Husk at du må introdusere minipumpen under vann i tanken du har bestemt for vanning, og som skal ha nok kapasitet til å holde de dagene du ikke er der. Du kan gjøre tidligere tester for å vite hvor lenge det varer, og du bør legge igjen litt mer vann i tilfelle det fordamper med den intense varmen ...

Det sier seg selv at røret må festes til planten slik at den ikke beveger seg med vinden, ellers kan vannet falle ut og bli bortkastet. Og jeg tror det ikke ville være nødvendig å huske at du må opprettholde en strømforsyning til Arduino-kortet for at det skal fungere ...

Programmering

Nå er det når du skal skrive kode som kreves i Arduino IDE for å kunne programmere mikrokontrolleren som administrerer maskinvaren du har brukt. Dette er tiden for å tilpasse passende temperatur, fuktighet og lysverdier til vann i ditt område, da det kan variere avhengig av hvor du er. Men eksemplet du kan bruke som base er (jeg har lagt igjen kommentarer der du kan endre verdiene, resten kan du la det være slik):

Last ned koden fra kode-vanning-autovanning-auto for hagen din

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

Mer informasjon - Arduino programmeringskurs (gratis PDF)

Kilder

Mer informasjon - hage


36 kommentarer, legg igjen dine

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   ROGER FERNANDO ASTO BONIFACIO sa

    HVORFOR SLUTTER JEG avslutningsstatus 1
    #include forventer "FILENAME" eller ESO ON LOAD

    1.    Isaac sa

      Hei,
      Denne feilen skyldes noe syntaksproblem i koden. Jeg har gått gjennom det og hatt en feil. Nå skal det være greit.
      En hilsen!

  2.   noe kilder sa

    Hei, god ettermiddag, jeg har også det samme problemet:
    prosjekt: 3:10: feil: #include forventer "FILENAME" eller

    # inkluderer <SimpleDHT.h>

    ^

    prosjekt: 4:10: feil: #include forventer "FILENAME" eller

    # inkluderer <SPI.h>

    ^

    utgangsstatus 1
    #include forventer "FILENAME" eller

  3.   Kevin sa

    Hei, unnskyld meg, kan du hjelpe meg med en feil som oppstår i koden

  4.   Samanta sa

    På samme måte har jeg en feil i koden, kan du hjelpe meg med det problemet, vær så snill

    1.    Isaac sa

      Hei,
      Legg igjen informasjon om feilen du har, slik at jeg kan hjelpe. Hvis jeg ikke vet innholdet av feilen, er det vanskelig for meg å hjelpe deg eller finne ut hvor problemet er ...
      En hilsen

  5.   samantha vega elsker sa

    Hei, denne feilen vises, hvordan kan jeg løse den?

    feil: SimpleDHT.h: Ingen slik fil eller katalog

    #include

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

    samlingen avsluttet.

    utgangsstatus 1
    SimpleDHT.h: Ingen slik fil eller katalog

    1.    Isaac sa

      Hei Samantha,
      Den feilen er fordi Arduino IDE ikke ser ut til å oppdage SimpleDHT.h-biblioteket. Har du den riktig installert? Hvis du har det, kan du prøve å bruke en nyere versjon av Arduino IDE hvis den er eldre ...
      Du kan se mer informasjon her:
      https://www.arduino.cc/en/Guide/Libraries
      Og få biblioteket herfra:
      https://github.com/adafruit/DHT-sensor-library
      En hilsen!

  6.   Pepe sa

    Først takk for innlegget som er veldig interessant og veldig gyldig, men jeg har lest dette:

    "Det er tilrådelig å vanne plantene om natten når det er mindre varmt, siden det kan skade mer enn fordel å gjøre det under intense varme dager ..."

    Jeg har hørt dette mange ganger, men jeg vil at noen skal forklare meg tydelig hvordan det gjør vondt for dem ... Jeg har dyrket planter i mer enn 20 år, og når det er veldig varmt, er det ingenting de setter mer pris på enn god vanning og å kunne være sammen med en sprinkler som fukter bladene.

    Dette er en myte om at alt det gjør er å få plantene til å lide ... Når du er varm og tørst, venter du til natten med å drikke? ... tenk på det

    takk for innlegget !!!

    1.    Isaac sa

      Hei Pepe,
      Takk for innspillene dine. Jeg bor i landet, og noen ganger når varmen er veldig intens, kan vanning av plantene i varme timer drepe dem. Jeg har sjekket det selv (i tillegg er det ikke det samme avhengig av hvilket geografisk område du er, i mitt land er det veldig varmt). Det kan være av flere grunner:
      1-Fordi vanndråpene på bladene fungerer som et glass, brenner du dem med sollys som et forstørrelsesglass.
      2-Plantene har stomata som lukkes for ikke å dehydrere når det er sol. Hvis du vanner dem, åpnes de og kan føre til at de blir dehydrert.
      3-Hvis de er i en plastgryte, kan effekten bli enda verre.
      En hilsen!

  7.   andrew dyrt sa

    HALLO!!
    Jeg likte virkelig det utdypede prosjektet, jeg har min egen hage og jeg tester dette prosjektet som en personlig opplevelse, uten å oppnå en lukrativ fordel, jeg ville bare spørre deg om du ville hjelpe meg med koden, siden det gir meg en feil , Jeg har DHT-biblioteket, men når jeg bekrefter det, kaster det en feil på slutten av koden: {Serial.println ("Vanning stoppet");} og forteller meg at det er: stray '\ 342' i programmet.
    Jeg har veldig lite kunnskap om saken, og jeg har undersøkt og har ikke klart å løse det.
    Jeg vil sette pris på om du hjelper meg. Takk 😀

    1.    Isaac sa

      Hei,
      Er koden riktig? Det vil si at den ikke har noen skrivefeil?
      På den annen side kan du sjekke mer om feilen her:
      https://forum.arduino.cc/index.php?topic=386225.0
      En hilsen

  8.   Joseph Arredondo sa

    Hei God ettermiddag, beklager, jeg vet ikke om det er en måte å kontakte deg på, det er at det gir meg mange feil med denne koden i arduino

    1.    Isaac sa

      Hei alle sammen,
      Jeg har renset koden og har skrevet den igjen for å se om det av en eller annen grunn var noen feil i koden som vises på nettet. For at den skal kunne lastes ned, har jeg lagt igjen den nye koden i en nedlastningskobling like før koden som vises på nettet. Hvis du klikker der kan du laste den ned i tekstformat. Jeg håper det ikke er flere problemer.
      En hilsen!

  9.   Chaki sa

    Hvordan kan jeg legge til wifi-modulen? og ville det være mulig å kontrollere det ved å lage en søknad?

  10.   Chaki sa

    Hvordan er maten også: c?

    1.    Luis Alberto Alvarado sa

      Hei Chaqui! Jeg prøver å gjøre det samme som deg, kan du hjelpe meg hvis du er ferdig med koden din ????

  11.   Nerea sa

    Et spørsmål om hvilken komponent som vil være den mellom Arduino-kortet og DHT11-sensoren?
    Tusen takk!!

    1.    Isaac sa

      Hei Nerea,
      Du mener dioden og motstanden? Legg merke til at det i delen før diagrammet er en liste over alle komponentene ...
      En hilsen!

  12.   Jannet sa

    Hei, du har en video av hvordan vanningsanlegget ditt var.?

  13.   Alejandro Barros sa

    unnskyld meg fungerer bare for arduino uno eller også for arduino mega

  14.   Emmanuel sa

    Hei god morgen, beklager at jeg ønsket å stille et spørsmål hvorfor når jeg åpner Arduino ide-skjermen, får jeg en mislykket dht11-sensoravlesning?
    Hele programmet kompilerte godt og lastet godt inn, detaljene er når jeg åpner skjermen og den legenden vises.
    Hva kan det være?

  15.   DANIEL ALFREDO RIVAS MEDINA sa

    HELLO VENN STOR JOBB MEN MEG FÅR FEIL I DENNE DELEN Ingen slik fil eller katalog

    #include
    HVA SKAL DET VÆRE? Jeg vil sette pris på din hjelp

  16.   Isabell sa

    Hallo, dette er offentlig, men det betyr ikke noe, jeg vil virkelig takke den personen eller de som deltok i utviklingen av dette prosjektet, kanskje for mange er det dårlige, men du har reddet livet mitt, så jeg takker deg veldig SKOLE SOM JEG IKKE ØNSKER Å HØRE OG SANNHETEN JEG IKKE BEKLAGER JEG HAR LÆRT, TAKK FOR SIDEN DIN, JEG ØNSKER DEG BEST.

  17.   Ayelen sa

    Hvordan kan jeg legge til wifi-modulen? og ville det være mulig å kontrollere det ved å lage en søknad?

  18.   Brian sa

    # inkluderer "DHT.h"
    DHT dht (2, DHT11);
    int verdiLDR;
    int pinLDR = A5;
    int MOTOR = 8;
    // ———————————————————————————————————————————————-
    ugyldig oppsett ()
    {
    Serial.begin (9600);
    verdiLDR = 0;
    Serial.begin (9600);
    Serial.println ("TEST FOR IRRIGASJONSSYSTEM");
    dht.begin ();
    pinMode (MOTOR, UTGANG);
    Serial.println ("Verdi for fuktighetssensor");
    }
    // ———————————————————————————————————————————————-
    ugyldig sløyfe ()
    {
    Serial.println («================================================ = =========================== »);
    int fuktighet = analogRead (A0);
    Serial.print ("Les:");
    Serial.println (fuktighet);
    hvis (fuktighet> = 0 og fuktighet> = 1000) {
    Serial.println ("Sensor i tørr jord");
    } annet hvis (fuktighet> 500 og fuktighet <= 1000) {
    Serial.println ("Sensor i våt jord");
    } annet hvis (fuktighet <= 500) {
    Serial.println ("Sensor i vann");
    }
    valueLDR = analogRead (pinLDR);
    Serial.print ("LIGHT (");
    Serial.print (valueLDR);
    Serial.println (")");
    forsinkelse (2000);
    flyte h = dht.readHumidity ();
    flyte t = dht.readTemperature ();
    hvis (isnan (h) || isnan (t)) {
    Serial.println ("Kunne ikke lese DHT11-sensoren!");
    tilbake;
    }
    Serial.print ("Fuktighet:");
    Serial.print (h);
    Serial.print ("%");
    Serial.print ("Temperatur:");
    Serial.print (t);
    Serial.println ("* C");
    hvis (h <= 50 && LDRverdi <70 && t = 1000) {
    digitalWrite (MOTOR, HØY);
    Serial.println ("Må vannes");
    }
    ellers{
    digitalWrite (MOTOR, LAV);
    Serial.println ("skal IKKE vanne");
    }
    forsinkelse (1000);
    }

    Jeg brukte bare
    -DTH av temperatur og fuktighet på pinne 2
    -LDR-fotoresist på pinne A5
    -motor på pinne 8
    -føler for jordfuktighet på stift A0
    dette er koden min, håper jeg, og den fungerer for deg

    -fuktighetssensor for jord

  19.   Jose L. sa

    God morgen, jeg har problemer med koden jeg får dette, og jeg bruker den nyeste programvaren:

    sketch_nov12c: 1: 10: dødelig feil: SimpleDHT.h: Ingen slik fil eller katalog

    #include

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

    samlingen avsluttet.

    utgangsstatus 1

    SimpleDHT.h: Ingen slik fil eller katalog

    Jeg vil at du skal hjelpe meg med å løse dette takket være, da jeg er ny på dette, vet jeg ikke hvordan det fungerer veldig bra. Takk skal du ha.

  20.   Juan sa

    Hei, kan du legge igjen et bedre bilde av hvordan kretsen er koblet til? Det blir ikke verdsatt godt, med hvilken strømspenning blir den matet? Takk

  21.   Brian sa

    # inkluderer "DHT.h"
    DHT dht (2, DHT11);
    int verdiLDR;
    int pinLDR = A5;
    int MOTOR = 8;
    // ———————————————————————————————————————————————-
    ugyldig oppsett ()
    {
    Serial.begin (9600);
    verdiLDR = 0;
    Serial.begin (9600);
    Serial.println ("TEST FOR IRRIGASJONSSYSTEM");
    dht.begin ();
    pinMode (MOTOR, UTGANG);
    Serial.println ("Verdi for fuktighetssensor");
    }
    // ———————————————————————————————————————————————-
    ugyldig sløyfe ()
    {
    Serial.println («================================================ = =========================== »);
    // ———————————————————————————————–
    // ———– Fuktighet, jordføler ——————————————————–
    int fuktighet = analogRead (A0);
    Serial.print ("Les:");
    Serial.println (fuktighet);
    hvis (fuktighet> = 0 og fuktighet> = 1000) {
    Serial.println ("Sensor i tørr jord");
    } annet hvis (fuktighet> 500 og fuktighet <= 1000) {
    Serial.println ("Sensor i våt jord");
    } annet hvis (fuktighet <= 500) {
    Serial.println ("Sensor i vann");
    }
    // ———————————————————————————————–
    // ————— Fotomotstand ————————————————————-
    valueLDR = analogRead (pinLDR);
    Serial.print ("LIGHT (");
    Serial.print (valueLDR);
    Serial.println (")");
    forsinkelse (2000);
    // ———————————————————————————————–
    // ————— Sensor DTH11 temperatur og fuktighet i luften ——————————–
    flyte h = dht.readHumidity ();
    flyte t = dht.readTemperature ();
    hvis (isnan (h) || isnan (t)) {
    Serial.println ("Kunne ikke lese DHT11-sensoren!");
    tilbake;
    }
    Serial.print ("Fuktighet:");
    Serial.print (h);
    Serial.print ("%");
    Serial.print ("Temperatur:");
    Serial.print (t);
    Serial.println ("* C");
    // ———————————————————————————————–
    // ———— Tilstand til vann eller ikke til vann ————————————————-
    // (Luftfuktighet) (fotoresist) (temperatur) (jordfuktighet)
    hvis (h <= 50 && LDRverdi <70 && t = 1000) {
    digitalWrite (MOTOR, HØY);
    Serial.println ("Må vannes");
    }
    ellers{
    digitalWrite (MOTOR, LAV);
    Serial.println ("skal IKKE vanne");
    }
    forsinkelse (1000);
    }

    // så snart pinnene bare sjekker at pumpen er en pwm-pinne og
    // at av LDR-fotoresist er analog, og også jordfuktighet tilsvarer en stift
    // analog og de fra dth11 av lufttemperatur og fuktighetssensor uansett
    // digitale pinner kan fremdeles være basert på den opprinnelige koden på denne siden
    // for å koble til pinnene
    // fungerer med 5v

  22.   Erick sa

    Jeg får en feil i denne delen av koden »tom sløyfe () {» kan hjelpe meg

  23.   Andrew P. sa

    Hei, kan du fortelle meg hvilke biblioteker eller hva heter de for å installere dem siden når jeg limer inn koden, forteller det meg at jeg trenger DTH-biblioteket

  24.   Andres Guzman sa

    Hei, systemet virker veldig bra. Jeg prøvde å gjenskape den, men da jeg inkluderte koden og det tilhørende biblioteket, vises følgende.

    I filen inkludert fra C: \ Users \ User \ Documents \ Arduino \ TEST_1 \ TEST_1.ino: 5: 0:
    C: \ Program Files (x86) \ Arduino \ biblioteker \ DHT-sensor-bibliotek-master / DHT_U.h: 36:10: dødelig feil: Adafruit_Sensor.h: Ingen slik fil eller katalog
    #include
    ^ ~~~~~~~~~~~~~~~~~
    samlingen avsluttet.
    utgangsstatus 1
    Kompileringsfeil for kort Arduino Uno.

    Jeg er ikke sikker på om jeg trenger noen annen bokhandel hvis noen kan hjelpe meg.

  25.   PEPE-GONZALER sa

    Veldig bra prosjekt, men etter å ha bekreftet koden, kompilert den og lastet den opp, er det eneste som vises på seriell skjerm "DHT11-lesing mislyktes", det går ikke utover det punktet

  26.   Rouss sa

    Hei, jeg har flere problemer. Kan du hjelpe meg, og hvis noen har en video eller jeg fant en detaljert video som jeg kan se

  27.   Sebastian sa

    Jeg har et spørsmål, hvor jeg skal sette strømmen og hvilken type strøm som kan brukes.

  28.   Adrian sa

    Kan du legge til en høyere oppløsning? noen sammenhenger er ikke tydelig synlige