Kesä on aika, jolloin monet yleensä lomailevat ulkona ja kasvit ovat ongelma, koska ne eivät voi olla kastele niitä päiviä, jolloin et ole kotona. Lisäksi puutarhakaupoissa myydään yleensä eräänlaista geeliä, joka kosteuttaa ja ravitsee kasvia noin kuukauden ajan. Mutta kuumuudessa, joka on tai jos lähdet yli kuukaudeksi, tarvitset jonkin verran paremman järjestelmän, jotta palatessasi he ovat edelleen elossa ja voimakkaita.
Jotta tämä olisi mahdollista, olemassa oleva ratkaisu on ostaa a automaattinen kastelujärjestelmä jonka voit ohjelmoida tai jos olet valmistaja ja pidät DIY: stä, voit tehdä sen itse Arduinolla. Tarvitsemasi materiaalit, Arduino-levyä lukuun ottamatta, ovat helposti löydettävissä ja melko halpoja, joten ne eivät aiheuta liian suuria kustannuksia. Joillekin elementeille, kuten vesisäiliölle jne., Voit käyttää kierrätettyjä materiaaleja ...
Jos selaat verkkoa hieman, löydät erilaisia tämän tyyppisiä hankkeita, mutta ehkä mielenkiintoisin on puutarha. Siksi innostun tästä projektista, koska katson, että muut kastelujärjestelmät, jotka käyttävät vain kosteusantureita eikä mitään muuta, eivät ole niin täydellisiä.
Mitä tarvitset
Los automaattiseen kastelujärjestelmään tarvittavat materiaalit ääni:
- Tuotteita ei löytynyt., vaikka muutkin olisivat sen arvoisia.
- Leipälauta tai PCB jos haluat juottaa sen ja tehdä siitä pysyvän.
- Lämpötila- ja kosteusanturi Tuotteita ei löytynyt.
- Kaapelit
- Tunnistin YL-69 kosteus maahan kosteusmittarilla, joka tarttuu ruukkuusi tai maaperään.
- Minipumppu 3V upotettava vesi ja arvioitu virtaus 120 l / h.
- Diodi 1N4007
- Bipolaarinen transistori PN2222
- 3 vastusta: 1x 220 ohmia, 1x 1k, 1x fotoresisti LDR
- Vesisäiliö, joka voi olla rumpu tai vähintään 5 litran pullo jne.
- Tubo yhdistää minipumppuun ja viedä laitokseen / s
Como vaihtoehtoisia ideoita, Sanoisin, että voit myös käyttää Sonoffia tai WiFi-moduulia aktivoidaksesi sen Internetin kautta missä tahansa oletkin, tai parantaa sitä lisäämällä myös automaattinen venttiili hanaan ohjelmoidaksesi vesisäiliön täyttämisen, kun se tyhjenee , jne.
Automaattisen kastelujärjestelmän asentaminen
Kokoonpano on melko yksinkertainen. Sinä voit käytä yllä olevaa kaaviota kaikkien yhteyksien luomiseen. Sijoita järjestelmäsi paikkaan, joka on lähellä ikkunaa tai jossa kasteltava kasvi sijaitsee, ja kiinnitä kosteusanturin kaksi kärkeä kasvin maaperään, varren lähelle.
Arduinon automaattinen kastelujärjestelmä kastelee aina, kun se havaitsee a sarja ympäristöoloja. Esimerkiksi, kun se havaitsee heikon valon tai pimeyden, ilman lämpötila on konkreettinen, jonka määritämme Arduino IDE -piirroksessa, ja maan kosteus on alhainen. Sillä hetkellä hän aktivoi moottorin kastelemaan laitosta.
On suositeltavaa kastella kasveja yöllä, kun se on vähemmän kuumaa, koska se tekemällä voimakkaita kuumia päiviä voi vahingoittaa enemmän kuin hyötyä ...
Muista, että sinun täytyy aseta minipumppu veden alle säiliössä, jonka olet määrittänyt kasteluun, ja jolla pitäisi olla riittävästi kapasiteettia pitääkseen päivät, joita et ole siellä. Voit tehdä aikaisempia testejä tietääksesi kuinka kauan se kestää, ja sinun pitäisi jättää hieman enemmän vettä, jos se haihtuu voimakkaan lämmön kanssa ...
On sanomattakin selvää, että putki on kiinnitettävä laitokseen niin, että se ei liiku tuulen mukana tai vesi voi pudota ja tuhlata. Ja mielestäni ei ole tarpeen muistaa, että joudut ylläpitämään nykyistä tarvetta Arduino-kortille, jotta se toimisi ...
ohjelmointi
Nyt on aika kirjoittaa tarvitaan koodi Arduino IDE: ssä pystyä ohjelmoimaan mikrokontrolleri, joka hallitsee käyttämääsi laitteistoa. Tämä on aika mukauttaa sopivat lämpötila-, kosteus- ja valoarvot alueesi vedelle, koska ne voivat vaihdella sijaintisi mukaan. Mutta esimerkki, jota voit käyttää pohjana, on (olen jättänyt kommentteja, joissa voit muokata arvoja, loput voit jättää sen näin):
Lataa koodi osoitteesta koodi-kastelu-autokastelu-auto puutarhaan
#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 }
Lisää tietoa - Arduino-ohjelmointikurssi (ilmainen PDF)
lähteet
Lisää tietoa - puutarha
MIKSI poistun poistumistilasta 1
#include odottaa, että "FILENAME" tai ESO ON LOAD
Hei,
Tämä virhe johtuu koodin syntaksiongelmasta. Olen käynyt läpi sen ja minulla on virhe. Nyt sen pitäisi olla kunnossa.
Tervehdys!
Hei, hyvää iltapäivää, minulla on myös sama ongelma:
projekti: 3:10: error: #include odottaa "FILENAME" tai
#Sisällytä <SimpleDHT.h>
^
projekti: 4:10: error: #include odottaa "FILENAME" tai
#sisällytä <SPI.h>
^
poistumistila 1
#include odottaa "FILENAME" tai
Hei, anteeksi, voitko auttaa minua koodissa esiintyvässä virheessä
Samalla tavalla minulla on virhe koodissa, voisitko auttaa minua tässä ongelmassa
Hei,
Jätä tiedot virheestäsi, jotta voin auttaa. Jos en tiedä virheen sisältöä, minun on vaikea auttaa sinua tai etsiä ongelman sijaintia ...
tervehdys
Hei, tämä virhe ilmestyy, kuinka voin ratkaista sen?
virhe: SimpleDHT.h: Ei tällaista tiedostoa tai hakemistoa
#sisältää
^ ~~~~~~~~~~~~
kokoelma päättyi.
poistumistila 1
SimpleDHT.h: Ei tällaista tiedostoa tai hakemistoa
Hei Samantha,
Tämä virhe johtuu siitä, että Arduino IDE ei tunnu tunnistavan SimpleDHT.h-kirjastoa. Onko sinulla se asennettu oikein? Jos sinulla on sitä, kokeile käyttää uudempaa versiota Arduino IDE: stä, jos se on vanhempi ...
Voit katsoa lisätietoja täältä:
https://www.arduino.cc/en/Guide/Libraries
Ja hanki kirjasto täältä:
https://github.com/adafruit/DHT-sensor-library
Tervehdys!
Ensinnäkin kiitos viestistä, joka on erittäin mielenkiintoinen ja erittäin pätevä, mutta olen lukenut tämän:
"On suositeltavaa kastella kasveja yöllä, kun se on vähemmän kuumaa, koska se tekemällä voimakkaita kuumia päiviä voi vahingoittaa enemmän kuin hyötyä ..."
Olen kuullut tämän monta kertaa, mutta haluaisin, että joku selittää minulle selvästi, kuinka se heille sattuu ... Olen kasvattanut kasveja yli 20 vuoden ajan, ja kun on hyvin kuuma, he eivät arvosta muuta kuin hyvää kastelua ja voidakseen olla sprinklerillä kastelemalla lehtiä.
Tämä on myytti, että se vain saa kasvit kärsimään ... Odotatko yötä juoda, kun olet kuuma ja janoinen? ... ajattele sitä
kiitos postista !!!
Hei Pepe,
Kiitos panoksestasi. Asun maassa ja joskus, kun lämpö on erittäin voimakasta, kasvien kastelu kuumina aikoina voi tappaa ne. Olen tarkistanut sen itse (lisäksi se ei ole sama maantieteellisen alueen mukaan, missä olet, maassani se on erittäin kuuma). Se voi johtua useista syistä:
1 - Koska vesipisarat lehdillä toimivat kuin lasi, polttavat ne auringonvalolla kuin suurennuslasi.
2-Kasveilla on stomat, jotka sulkeutuvat, jotta ne eivät kuivu, kun on aurinkoista. Jos kastelet niitä, ne avautuvat ja voivat aiheuttaa niiden kuivumisen.
3-Jos ne ovat muovipannussa, vaikutus voi olla vielä pahempi.
Tervehdys!
Hola !!
Pidin todella hyvin valmistellusta projektista, minulla on oma puutarha ja testaan tätä projektia henkilökohtaisena kokemuksena, saamatta tuottoisaa hyötyä, halusin vain kysyä, auttaisitko minua koodissa, koska se antaa minulle virheen , Minulla on DHT-kirjasto, mutta tarkistettaessa sitä heitän virheen koodin loppuun: {Serial.println ("Kastelu loppui");} ja kertoo minulle, että se on: harhaileva '\ 342' ohjelmassa.
Minulla on hyvin vähän tietoa asiasta ja olen tutkinut enkä ole pystynyt ratkaisemaan sitä.
Olisin kiitollinen, jos autat minua. Kiitos 😀
Hei,
Onko koodi oikea? Eli sillä ei ole kirjoitusvirheitä?
Toisaalta voit tarkistaa lisää virheestä täältä:
https://forum.arduino.cc/index.php?topic=386225.0
tervehdys
Hei Hyvää iltapäivää, anteeksi, en tiedä onko tapaa ottaa sinuun yhteyttä, se on, että se antaa minulle monia virheitä tämän koodin kanssa arduinossa
Hei kaikille,
Olen puhdistanut koodin ja kirjoittanut sen uudelleen nähdäksesi, onko verkossa näytetyssä koodissa jostain syystä virheitä. Jotta se voidaan ladata, olen jättänyt uuden koodin latauslinkkiin juuri ennen verkossa näkyvää koodia. Napsauttamalla sitä voit ladata sen tekstimuodossa. Toivon, ettei enää ole ongelmia.
Tervehdys!
Kuinka voin lisätä wifi-moduulin? ja olisiko mahdollista hallita sitä tekemällä sovellus?
Kuinka ruoka myös: c?
Hei Chaqui! Yritän tehdä samoin kuin sinäkin, voisitko auttaa minua, jos olet valmis koodisi ????
Kysymys, mikä komponentti olisi Arduino-kortin ja DHT11-anturin välillä?
Kiitos paljon!!
Hei Nerea,
Tarkoitatko diodia ja vastusta? Huomaa, että kaavion edellisessä osassa on luettelo kaikista komponenteista ...
Tervehdys!
Hei, sinulla on video kastelujärjestelmääsi.?
anteeksi, että vain työskentelen arduino uno tai myös arduino megalle
Hei hyvää huomenta, anteeksi, halusin kysyä kysymyksen, miksi kun avaan Arduino ide -monitorin, saan epäonnistuneen dht11-anturin lukeman?
Koko ohjelma koottu hyvin ja ladattu hyvin, yksityiskohdat ovat, kun avaan näytön ja tuo legenda ilmestyy.
Mitä se voi olla?
HELLO YSTÄVÄ SUURI TYÖ, MUTTA VIRHEEN TÄMÄN OSAA Ei sellaista tiedostoa tai hakemistoa
#sisältää
MITÄ se tulee olemaan? Kiitän apuasi
Hei, TÄMÄ ON JULKINEN, MUTTA TÄSTÄ ON, HALUAN KIINNITTÄÄ HENKILÖTÄ JA HENKILÖITÄ, JOTKA OSALLISTUivat TÄMÄN PROJEKTIN KEHITTÄMISEEN, VOI OLLA PALJON SE ON VAIKEA, MUTTA PELASTAT ELÄMÄNI, PALJON PALJON KOULU, johon en halua kuulua, ja totuus, jota en valitettavasti ole oppinut, kiitän Sivua, toivotan sinulle parasta.
Kuinka voin lisätä wifi-moduulin? ja olisiko mahdollista hallita sitä tekemällä sovellus?
#include "DHT.h"
DHT dht (2, DHT11);
int-arvoLDR;
int pinLDR = A5;
int MOOTTORI = 8;
// ———————————————————————————————————————————————-
void setup ()
{
Sarja-aloitus (9600);
arvoLDR = 0;
Sarja-aloitus (9600);
Serial.println ("KASTELUJÄRJESTELMÄN TESTI");
dht. alku ();
pinMode (MOOTTORI, LÄHTÖ);
Serial.println ("Kosteusanturin arvo");
}
// ———————————————————————————————————————————————-
void loop ()
{
Sarja.println («============================================== ========================== »);
int kosteus = analoginen luku (A0);
Serial.print ("Lue:");
Sarja.println (kosteus);
jos (kosteus> = 0 ja kosteus> = 1000) {
Serial.println ("Anturi kuivassa maaperässä");
} else if (kosteus> 500 ja kosteus <= 1000) {
Serial.println ("Anturi märässä maaperässä");
} else if (kosteus <= 500) {
Serial.println ("anturi vedessä");
}
arvoLDR = analogRead (pinLDR);
Sarja.tulos ("LIGHT (");
Sarja.tulos (arvoLDR);
Serial.println (")");
viive (2000);
uimuri h = dht. lukea kosteus ();
kelluva t = dht. lukemislämpötila ();
jos (isnan (h) || isnan (t)) {
Serial.println ("DHT11-anturin lukeminen epäonnistui!");
palata;
}
Sarja.tulos ("Kosteus:");
Sarjaprintti (h);
Sarjaprintti ("%");
Serial.print ("Lämpötila:");
Sarjaprintti (t);
Serial.println ("* C");
jos (h <= 50 && LDRarvo <70 && t = 1000) {
digitalWrite (MOOTTORI, KORKEA);
Serial.println ("Täytyy vettä");
}
else {
digitalWrite (MOOTTORI, LOW);
Serial.println ("EI saisi kastella");
}
viive (1000);
}
Käytin vain
-Nastan 2 lämpötilan ja kosteuden DTH
- LDR-fotoresisti tapissa A5
-moottori tapissa 8
-anturi maaperän kosteudelle tapissa A0
toivon tämän koodini ja se toimii sinulle
-kosteusanturi maaperään
Hyvää huomenta, minulla on ongelmia tämän saamani koodin kanssa ja käytän uusinta ohjelmistoa:
sketch_nov12c: 1: 10: kohtalokas virhe: SimpleDHT.h: Ei tällaista tiedostoa tai hakemistoa
#sisältää
^ ~~~~~~~~~~~~
kokoelma päättyi.
poistumistila 1
SimpleDHT.h: Ei tällaista tiedostoa tai hakemistoa
Haluaisin, että autatte minua ratkaisemaan tämän, kiitos, koska en ole uusi tässä, en tiedä miten se toimii hyvin. Kiitos.
Hei, voisitko jättää paremman kuvan siitä, kuinka piiri on kytketty? Sitä ei arvosteta hyvin, millä jännitteellä sitä syötetään? Kiitos
#include "DHT.h"
DHT dht (2, DHT11);
int-arvoLDR;
int pinLDR = A5;
int MOOTTORI = 8;
// ———————————————————————————————————————————————-
void setup ()
{
Sarja-aloitus (9600);
arvoLDR = 0;
Sarja-aloitus (9600);
Serial.println ("KASTELUJÄRJESTELMÄN TESTI");
dht. alku ();
pinMode (MOOTTORI, LÄHTÖ);
Serial.println ("Kosteusanturin arvo");
}
// ———————————————————————————————————————————————-
void loop ()
{
Sarja.println («============================================== ========================== »);
// —————————————————————————————–
// ———– Kosteus, maaperän anturi ——————————————————–
int kosteus = analoginen luku (A0);
Serial.print ("Lue:");
Sarja.println (kosteus);
jos (kosteus> = 0 ja kosteus> = 1000) {
Serial.println ("Anturi kuivassa maaperässä");
} else if (kosteus> 500 ja kosteus <= 1000) {
Serial.println ("Anturi märässä maaperässä");
} else if (kosteus <= 500) {
Serial.println ("anturi vedessä");
}
// —————————————————————————————–
// ————— Valokuvien vastus ————————————————————-
arvoLDR = analogRead (pinLDR);
Sarja.tulos ("LIGHT (");
Sarja.tulos (arvoLDR);
Serial.println (")");
viive (2000);
// —————————————————————————————–
// ————— Anturin DTH11 lämpötila ja kosteus ilmassa —————————–
uimuri h = dht. lukea kosteus ();
kelluva t = dht. lukemislämpötila ();
jos (isnan (h) || isnan (t)) {
Serial.println ("DHT11-anturin lukeminen epäonnistui!");
palata;
}
Sarja.tulos ("Kosteus:");
Sarjaprintti (h);
Sarjaprintti ("%");
Serial.print ("Lämpötila:");
Sarjaprintti (t);
Serial.println ("* C");
// —————————————————————————————–
// ———— Kunto vedessä vai ei vedessä —————————————————-
// (Ilmankosteus) (Fotoresisti) (Lämpötila) (Maankosteus)
jos (h <= 50 && LDRarvo <70 && t = 1000) {
digitalWrite (MOOTTORI, KORKEA);
Serial.println ("Täytyy vettä");
}
else {
digitalWrite (MOOTTORI, LOW);
Serial.println ("EI saisi kastella");
}
viive (1000);
}
// heti kun tapit tarkista vain, että pumppu on pwm-tappi ja
// LDR-fotoresistin vastaavuus on analoginen ja myös maaperän kosteuden vastaava tappi
// analoginen ja ilman lämpötila- ja kosteusanturin dth11-arvo
// digitaaliset nastat voivat edelleen perustua tämän sivun alkuperäiseen koodiin
// liittää nastat
// toimii 5v: n kanssa
Saan virheen koodin tässä osassa »tyhjä silmukka () {» voi auttaa minua
Hei, voisitteko kertoa minulle, mitkä kirjastot tai mikä on heidän nimensä niiden asentamiseksi, koska kun liitän koodin, se kertoo minulle, että tarvitsen DTH-kirjaston
Hei, järjestelmä näyttää erittäin hyvältä. Yritin luoda sen uudelleen, mutta koodin ja vastaavan kirjaston sisällyttämisen yhteydessä seuraava näkyy.
Tiedostossa, joka on peräisin 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: kohtalokas virhe: Adafruit_Sensor.h: Ei tällaista tiedostoa tai hakemistoa
#sisältää
^ ~~~~~~~~~~~~~~~~~~
kokoelma päättyi.
poistumistila 1
Kortin kääntövirhe Arduino Uno.
En ole varma, tarvitsenko muuta kirjakauppaa, jos joku voi auttaa minua.
Erittäin hyvä projekti, mutta kun koodi on tarkistettu, koottu ja ladattu, sarjamonitorissa näkyy vain "DHT11-lukeminen epäonnistui", mutta se ei ylitä sitä kohtaa
Hei, minulla on useita ongelmia, voisitteko auttaa minua ja jos jollain on video tai löysin yksityiskohtaisen videon, jonka voin nähdä
Minulla on kysymys, mihin virta laitetaan ja minkä tyyppistä virtaa voidaan käyttää.
Voitko lisätä korkeamman resoluution ääriviivat? jotkin liitännät eivät ole selvästi näkyvissä