Automatisch bewateringssysteem met Arduino voor uw planten, boomgaard of tuin

Gieter planten water geven

De zomer is een tijd waarin velen de neiging hebben om buiten op vakantie te gaan en planten vormen een probleem, omdat dat niet zo kan zijn geef water op die dagen dat je niet thuis bent. Bovendien verkopen tuinwinkels meestal een soort gel die de plant ongeveer een maand lang hydrateert en voedt. Maar met de hitte die het is of als je langer dan een maand weggaat, heb je een wat beter systeem nodig, zodat ze bij terugkeer levend en krachtig blijven.

Om dat mogelijk te maken, is de oplossing die er bestaat om een automatisch irrigatiesysteem die je kunt programmeren of als je een maker bent en je houdt van DIY, dan kun je het zelf doen met Arduino. De materialen die je nodig hebt, afgezien van het Arduino-bord, zijn gemakkelijk te vinden en redelijk goedkoop, zodat ze niet al te hoge kosten met zich meebrengen. Ook voor sommige elementen, zoals de watertank, enz., Kunt u gerecyclede materialen gebruiken ...

Als je een beetje op internet surft, zul je ontdekken verschillende projecten van dit type, maar misschien wel het meest interessante is tuin. Daarin zal ik geïnspireerd worden voor dit project, aangezien ik van mening ben dat andere irrigatiesystemen die alleen vochtigheidssensoren gebruiken en niets anders niet zo compleet zijn.

Wat heb je nodig?

De materialen die nodig zijn voor uw automatische irrigatiesysteem zijn:

  • Geen producten gevonden., hoewel anderen de moeite waard zouden zijn.
  • Breadboard of PCB als je het wilt solderen en permanent wilt maken.
  • Temperatuur- en vochtigheidssensor Geen producten gevonden.
  • Kabels
  • Sensor YL-69 vochtigheid op de grond met een hygrometer om in je pot (en) of aarde te steken.
  • Minipomp 3V onderdompelbaar water en een geschatte stroom van 120 l / u.
  • Diode 1N4007
  • Bipolaire transistor PN2222
  • 3 weerstanden: 1x 220 ohm, 1x 1k, 1x fotoresist LDR
  • Watertank, dat kan een vat zijn of een fles van 5 of meer liter, enz.
  • buis om verbinding te maken met de minipomp en naar de plant (en) te brengen

Como alternatieve ideeën, Ik zou je willen zeggen dat je ook een sonoff- of een WiFi-module kunt gebruiken om het via internet te activeren, waar je ook bent, of het kunt verbeteren door ook een automatische klep aan de kraan toe te voegen om het vullen van de watertank te programmeren wanneer deze leegloopt , enz.

Hoe het automatische irrigatiesysteem op te zetten

Schematische voorstelling van de montage in Fritzing

De montage is vrij eenvoudig. Je kan gebruik het bovenstaande schema om alle verbindingen te maken. Plaats uw systeem op een plek bij het raam of waar de plant die u wilt bewateren zich bevindt en steek de twee uiteinden van de vochtigheidssensor in de grond van de plant, vlakbij de stam.

Het automatische bewateringssysteem met Arduino zal water geven wanneer het een reeks omgevingsomstandigheden. Wanneer het bijvoorbeeld weinig licht of duisternis detecteert, is de luchttemperatuur concreet die we zullen configureren in de Arduino IDE-schets en is de luchtvochtigheid op de grond laag. Op dat moment zou hij de motor activeren om de plant water te geven.

Het is raadzaam om de planten 's nachts, wanneer het minder warm is, water te geven, aangezien dit tijdens intens warme dagen meer kan schaden dan alleen maar voordelen ...

Onthoud dat u moet introduceer de minipomp onder water in de tank die je hebt bestemd voor irrigatie, en die voldoende capaciteit moet hebben om de dagen dat je er niet bent vast te houden. U kunt eerdere tests doen om te weten hoe lang het duurt en u moet wat meer water laten staan ​​voor het geval het verdampt door de intense hitte ...

Het spreekt voor zich dat de buis zo aan de plant moet worden bevestigd dat deze niet met de wind meebeweegt of dat het water eruit kan vallen en verloren gaat. En ik denk dat het niet nodig zou zijn om te onthouden dat je een stroomtoevoer naar het Arduino-bord moet behouden om het te laten werken ...

programmering

Dit is het moment waarop u het code nodig in Arduino IDE om de microcontroller te kunnen programmeren die de hardware beheert die je hebt gebruikt. Dit is het moment om de juiste temperatuur, vochtigheid en lichtwaarden aan te passen aan het water in uw omgeving, aangezien dit kan variëren afhankelijk van waar u zich bevindt. Maar het voorbeeld dat je als basis kunt gebruiken is (ik heb opmerkingen achtergelaten waarin je de waarden kunt wijzigen, de rest kun je zo laten):

Download de code van code-irrigatie-autobewateringsauto voor uw tuin

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

Meer informatie - Arduino-programmeercursus (gratis pdf)

Fuentes

Meer informatie - tuin


36 reacties, laat de jouwe achter

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   ROGER FERNANDO ASTO BONIFACIO zei

    WAAROM krijg ik de exitstatus 1
    # include verwacht "FILENAME" of ESO ON LOAD

    1.    Isaac zei

      Hallo,
      Deze fout is te wijten aan een syntaxisprobleem in de code. Ik ben er doorheen gegaan en heb een fout gehad. Nu zou het in orde moeten zijn.
      Groeten!

  2.   noe bronnen zei

    Hallo, goedemiddag, ik heb ook hetzelfde probleem:
    project: 3:10: fout: #include verwacht "FILENAME" of

    # include <SimpleDHT.h>

    ^

    project: 4:10: fout: #include verwacht "FILENAME" of

    # include <SPI.h>

    ^

    exit-status 1
    # include verwacht "FILENAME" of

  3.   Kevin zei

    Hallo, neem me niet kwalijk, kunt u me helpen met een fout die in de code voorkomt

  4.   Samanta zei

    Op dezelfde manier krijg ik een fout in de code te zien, kunt u me alsjeblieft met dat probleem helpen?

    1.    Isaac zei

      Hallo,
      Laat informatie achter over de fout die u heeft, zodat ik u kan helpen. Als ik de inhoud van de fout niet weet, is het moeilijk voor mij om u te helpen of te achterhalen waar het probleem zit ...
      groeten

  5.   samantha vega houdt van zei

    Hallo, deze fout verschijnt, hoe kan ik deze oplossen?

    fout: SimpleDHT.h: bestand of map bestaat niet

    #include

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

    compilatie beëindigd.

    exit-status 1
    SimpleDHT.h: bestand of map bestaat niet

    1.    Isaac zei

      Hallo Samantha,
      Die fout komt doordat de Arduino IDE de SimpleDHT.h-bibliotheek niet lijkt te detecteren. Is het correct geïnstalleerd? Als je het hebt, probeer dan een meer actuele versie van Arduino IDE te gebruiken als deze ouder is ...
      U kunt hier meer informatie bekijken:
      https://www.arduino.cc/en/Guide/Libraries
      En haal de bibliotheek hier vandaan:
      https://github.com/adafruit/DHT-sensor-library
      Groeten!

  6.   peper zei

    Allereerst bedankt voor de post die erg interessant en zeer geldig is, maar ik heb dit gelezen:

    "Het is raadzaam om de planten 's nachts water te geven, wanneer het minder warm is, aangezien dit tijdens intens warme dagen meer kan schaden dan voordelen ..."

    Ik heb dit vaak gehoord, maar ik zou graag willen dat iemand me duidelijk uitlegt hoe het hen pijn doet…. Ik kweek al meer dan 20 jaar planten en als het erg warm is, is er niets dat ze meer waarderen dan goed water geven en met een sproeier de bladeren nat kunnen maken.

    Dit is een mythe dat het alleen maar de planten doet lijden ... Als je het warm en dorstig hebt, wacht je dan tot de avond met drinken? ... denk er eens over na

    bedankt voor de post !!!

    1.    Isaac zei

      Hallo Pepe,
      Bedankt voor je bijdrage. Ik woon op het platteland en soms, als de hitte erg intens is, kan het doden van de planten tijdens hete uren de planten doden. Ik heb het zelf gecontroleerd (bovendien is het niet hetzelfde, afhankelijk van het geografische gebied waar je bent, in mijn land is het erg heet). Dit kan verschillende redenen hebben:
      1-Omdat de druppels water op de bladeren werken als glas en ze met zonlicht verbranden zoals een vergrootglas dat zou doen.
      2-De planten hebben huidmondjes die sluiten om niet uit te drogen als het zonnig is. Als je ze water geeft, gaan ze open en kunnen ze uitdrogen.
      3-Als ze zich in een plastic pot bevinden, kan het effect nog erger zijn.
      Groeten!

  7.   Andres Caro zei

    HELLO !!
    Ik vond het uitgewerkte project erg leuk, ik heb mijn eigen tuin en ik test dit project als een persoonlijke ervaring, zonder een lucratief voordeel te behalen, ik wilde je gewoon vragen of je me wilt helpen met de code, omdat het me een fout geeft , Ik heb de DHT-bibliotheek, maar bij het verifiëren gooi ik een fout aan het einde van de code: {Serial.println ("Watering stop");} en vertelt me ​​dat het is: verdwaalde '\ 342' in het programma.
    Ik heb heel weinig kennis van de kwestie en ik heb het onderzocht en ik heb het niet kunnen oplossen.
    Ik zou het op prijs stellen als je me helpt. Bedankt 😀

    1.    Isaac zei

      Hallo,
      Is de code correct? Dat wil zeggen, het heeft geen typefouten?
      Aan de andere kant kunt u hier meer over die fout controleren:
      https://forum.arduino.cc/index.php?topic=386225.0
      groeten

  8.   Jose Arredondo zei

    Hallo Goedemiddag, sorry, ik weet niet of er een manier is om contact met u op te nemen, het is dat het me veel fouten geeft met deze code in de arduino

    1.    Isaac zei

      Hallo iedereen,
      Ik heb de code opgeruimd en heb hem opnieuw geschreven om te zien of er om welke reden dan ook een fout zat in de code die op internet werd weergegeven. Om het te kunnen downloaden, heb ik de nieuwe code in een downloadlink achtergelaten net voor de code die op internet verschijnt. Als je daar klikt, kun je het downloaden in tekstformaat. Ik hoop dat er geen problemen meer zijn.
      Groeten!

  9.   Chaki zei

    Hoe kan ik de wifi-module toevoegen? en zou het mogelijk zijn om het te controleren door een aanvraag in te dienen?

  10.   Chaki zei

    Hoe is het eten ook: c?

    1.    Luis Alberto Alvarado zei

      Hallo Chaqui! Ik probeer hetzelfde te doen als jij, kun je me helpen als je je code hebt uitgelezen?

  11.   Nerea zei

    Een vraag welk onderdeel zou het onderdeel zijn tussen het Arduino-bord en de DHT11-sensor?
    Dank je wel!

    1.    Isaac zei

      Hallo Nerea,
      Bedoel je de diode en weerstand? Merk op dat er in het gedeelte voor het diagram een ​​lijst staat van alle componenten ...
      Groeten!

  12.   Jannet zei

    Hallo, je hebt een video van hoe je irrigatiesysteem eruit zag

  13.   Alejandro Barros zei

    excuseer me werkt alleen voor arduino uno of ook voor arduino mega

  14.   Emmanuel zei

    Hallo, goedemorgen, sorry dat ik een vraag wilde stellen, waarom krijg ik een mislukte dht11-sensoruitlezing als ik de Arduino ide-monitor open?
    Het hele programma is goed gecompileerd en goed geladen, het detail is wanneer ik de monitor open en die legenda verschijnt.
    Wat kan het zijn?

  15.   DANIEL ALFREDO RIVAS MEDINA zei

    HALLO VRIEND GEWELDIG BAAN, MAAR GEEFT ME FOUT IN DIT DEEL Geen bestand of directory

    #include
    WAT ZAL HET ZIJN? Ik zou uw hulp op prijs stellen

  16.   Isabell zei

    HALLO, DIT IS PUBLIEK, MAAR DOET ER NIETS, IK WIL ECHT DE PERSOON OF MENSEN DIE DEELNEMEN AAN DE ONTWIKKELING VAN DIT PROJECT, MISSCHIEN VOOR VELE DINGEN, MAAR JE HEBT MIJN LEVEN GERED, DUS IK DANK JE ZEER SCHOOL WAAR IK NIET WIL BEHOREN EN DE WAARHEID DIE IK NIET HEB GELEERD, DANK U VOOR UW PAGINA, IK WENS U HET BESTE.

  17.   Ayelen zei

    Hoe kan ik de wifi-module toevoegen? en zou het mogelijk zijn om het te controleren door een aanvraag in te dienen?

  18.   Brian zei

    # include "DHT.h"
    DHT dht (2, DHT11);
    int waardeLDR;
    int pinLDR = A5;
    int MOTOR = 8;
    // ————————————————————————————————————————————————-
    leegte setup ()
    {
    Serial.begin (9600);
    waardeLDR = 0;
    Serial.begin (9600);
    Serial.println ("IRRIGATIESYSTEEM TEST");
    dht.begin ();
    pinMode (MOTOR, UITGANG);
    Serial.println ("Waarde vochtigheidssensor");
    }
    // ————————————————————————————————————————————————-
    leegte lus ()
    {
    Serial.println («============================================ = ========================== »);
    int vochtigheid = analogRead (A0);
    Serial.print ("Lezen:");
    Serial.println (vochtigheid);
    if (vochtigheid> = 0 & vochtigheid> = 1000) {
    Serial.println ("Sensor in droge grond");
    } else if (vochtigheid> 500 & vochtigheid <= 1000) {
    Serial.println ("Sensor in natte grond");
    } else if (vochtigheid <= 500) {
    Serial.println ("Sensor in water");
    }
    valueLDR = analogRead (pinLDR);
    Serial.print ("LIGHT (");
    Serial.print (waardeLDR);
    Serial.println (")");
    vertraging (2000);
    zweven h = dht.readHumidity ();
    zweven t = dht.readTemperature ();
    if (isnan (h) || isnan (t)) {
    Serial.println ("Kan DHT11-sensor niet lezen!");
    terug te keren;
    }
    Serial.print ("Vochtigheid:");
    Serial.print (h);
    Serial.print ("%");
    Serial.print ("Temperatuur:");
    Serial.print (t);
    Serial.println ("* C");
    if (h <= 50 && LDRwaarde <70 && t = 1000) {
    digitalWrite (MOTOR, HIGH);
    Serial.println ("Must water");
    }
    anders{
    digitalWrite (MOTOR, LOW);
    Serial.println ("mag GEEN water geven");
    }
    vertraging (1000);
    }

    Ik heb alleen de
    -DTH van temperatuur en vochtigheid op pin 2
    -de LDR fotoresist op pin A5
    -motor op pin 8
    -sensor voor bodemvocht op pin A0
    dit is mijn code hoop ik en het werkt voor jou

    -vochtigheidssensor voor grond

  19.   Jose L. zei

    Goedemorgen, ik heb problemen met de code die ik krijg en ik gebruik de nieuwste software:

    sketch_nov12c: 1:10: fatale fout: SimpleDHT.h: bestand of map bestaat niet

    #include

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

    compilatie beëindigd.

    exit-status 1

    SimpleDHT.h: bestand of map bestaat niet

    Ik zou graag willen dat je me helpt om dit op te lossen, aangezien ik nieuw ben, weet ik niet hoe het zo goed werkt. Dank u.

  20.   John zei

    Hallo, kunt u een beter beeld geven van hoe het circuit is aangesloten? Het wordt niet goed gewaardeerd, met welke voedingsspanning wordt het gevoed? Bedankt

  21.   Brian zei

    # include "DHT.h"
    DHT dht (2, DHT11);
    int waardeLDR;
    int pinLDR = A5;
    int MOTOR = 8;
    // ————————————————————————————————————————————————-
    leegte setup ()
    {
    Serial.begin (9600);
    waardeLDR = 0;
    Serial.begin (9600);
    Serial.println ("IRRIGATIESYSTEEM TEST");
    dht.begin ();
    pinMode (MOTOR, UITGANG);
    Serial.println ("Waarde vochtigheidssensor");
    }
    // ————————————————————————————————————————————————-
    leegte lus ()
    {
    Serial.println («============================================ = ========================== »);
    // —————————————————————————————–
    // ———– Vocht-, bodemsensor —————————————————–
    int vochtigheid = analogRead (A0);
    Serial.print ("Lezen:");
    Serial.println (vochtigheid);
    if (vochtigheid> = 0 & vochtigheid> = 1000) {
    Serial.println ("Sensor in droge grond");
    } else if (vochtigheid> 500 & vochtigheid <= 1000) {
    Serial.println ("Sensor in natte grond");
    } else if (vochtigheid <= 500) {
    Serial.println ("Sensor in water");
    }
    // —————————————————————————————–
    // ————— Fotoweerstand ———————————————————-
    valueLDR = analogRead (pinLDR);
    Serial.print ("LIGHT (");
    Serial.print (waardeLDR);
    Serial.println (")");
    vertraging (2000);
    // —————————————————————————————–
    // ————— Sensor DTH11 temperatuur en vochtigheid in de lucht —————————–
    zweven h = dht.readHumidity ();
    zweven t = dht.readTemperature ();
    if (isnan (h) || isnan (t)) {
    Serial.println ("Kan DHT11-sensor niet lezen!");
    terug te keren;
    }
    Serial.print ("Vochtigheid:");
    Serial.print (h);
    Serial.print ("%");
    Serial.print ("Temperatuur:");
    Serial.print (t);
    Serial.println ("* C");
    // —————————————————————————————–
    // ———— Toestand aan water of geen water ———————————————-
    // (AirHumidity) (Photoresist) (Temperature) (EarthHumidity)
    if (h <= 50 && LDRwaarde <70 && t = 1000) {
    digitalWrite (MOTOR, HIGH);
    Serial.println ("Must water");
    }
    anders{
    digitalWrite (MOTOR, LOW);
    Serial.println ("mag GEEN water geven");
    }
    vertraging (1000);
    }

    // zodra de pinnen gewoon controleren of de pomp een pwm-pin is en
    // die van de LDR-fotolak is analoog en ook die van bodemvocht is gelijk aan een speld
    // analoog en die van de dth11 van de luchttemperatuur- en vochtigheidssensor wat dan ook
    // digitale pinnen kunnen nog steeds worden gebaseerd op de originele code van deze pagina
    // om de pinnen te verbinden
    // werkt met 5v

  22.   Erick zei

    Ik krijg een foutmelding in dit deel van de code »lege lus () {» kan me helpen

  23.   Tegen Andrés P. zei

    Hallo, kun je me vertellen welke bibliotheken of wat hun naam is om ze te installeren, want als ik de code plak, wordt me verteld dat ik de DTH-bibliotheek nodig heb

  24.   Andres Guzman zei

    Hallo, het systeem lijkt erg goed. Ik heb geprobeerd het opnieuw te maken, maar op het moment dat ik de code en de bijbehorende bibliotheek toevoeg, verschijnt het volgende.

    In bestand opgenomen in 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: fatale fout: Adafruit_Sensor.h: Bestand of directory bestaat niet
    #include
    ^ ~~~~~~~~~~~~~~~~~~
    compilatie beëindigd.
    exit-status 1
    Compileerfout voor kaart Arduino Uno.

    Ik weet niet zeker of ik een andere boekwinkel nodig heb als iemand me alsjeblieft kan helpen.

  25.   PEPE GONZALES zei

    Zeer goed project, maar nadat de code is geverifieerd, gecompileerd en geüpload, is het enige dat op de seriële monitor verschijnt "DHT11 lezen mislukt", het gaat niet verder dan dat punt

  26.   Rous zei

    Hallo, ik heb verschillende problemen, kun je me alsjeblieft helpen en als iemand een video heeft of ik een gedetailleerde video heb gevonden die ik kan zien

  27.   Sebastian zei

    Ik heb een vraag, waar moet ik de stroom zetten en welk type stroom kan ik gebruiken.

  28.   Adrian zei

    Kun je een overzicht met hogere resolutie toevoegen? sommige verbindingen zijn niet duidelijk zichtbaar