Realizăm udarea automată a plantelor folosind Arduino. Udarea automată a plantelor de interior folosind Arduino Ce se mai poate face


ArdSistemul automat de udare automatizează munca de îngrijire a florilor de interior. În magazinele tematice vând acest design la un preț nebun. Cu toate acestea, lucrul merită, deoarece mașina reglează în mod independent „porțiile” de umiditate pentru plantă.

Acest articol invită cititorul să-și creeze propriul sistem automat de udare folosind Arduino. Microcontrolerul în acest caz acționează ca un sistem de control pentru dispozitivele periferice.

Instrumente și periferice necesare pentru implementarea proiectului „Autowatering” bazat pe microcontrolerul Arduino

Irigatorul este un dispozitiv care controlează umiditatea solului. Dispozitivul transmite date către un senzor de umiditate, care va indica sistemului de udare automat proiectat să înceapă să funcționeze. Limbajul de programare C++ este folosit pentru a compila programul.

Masa cu materialele necesare:

Componentă Descriere
Microcontroler Arduino Uno Platforma conectează dispozitive periferice și constă din 2 părți: software și hardware. Codul pentru crearea aparatelor de uz casnic este programat folosind un mediu liber - Arduino IDE.

Pentru a crea și implementa un program pe un microcontroler, trebuie să achiziționați un cablu USB. Pentru funcționare autonomă, ar trebui să cumpărați o sursă de alimentare de 10 V.

Există 12 pini pe platformă, al căror rol este intrarea și ieșirea digitală. Utilizatorul selectează individual funcțiile fiecărui pin.

cablu USB Obligatoriu în proiectarea „sistemului de udare automată pe Arduino” pentru transferul codului.
Placă de conectare a senzorului – Troyka Shield Placa conectează perifericele senzoriale folosind cabluri obișnuite. De-a lungul marginilor există 3 contacte pini - S + V + G.
Împingeți blocul de borne Servește ca clemă pentru firele grupate. Structura este fixată cu ajutorul unui buton pe un arc.
Sursa de alimentare echipata cu intrare USB

Analizor de umiditate a solului

Ideal pentru platforme de conectare. Designul include o lanternă care indică începutul lucrărilor.

Aparatul dă semnale dacă solul este excesiv sau insuficient umezit. Conexiunea la placa se face folosind 3 fire.

● Adâncime MAX pentru scufundare în pământ – 4 cm;

● Consum de energie MAX – 50 mA;

● Tensiune de alimentare – până la 4 V.

Pompă cu tub pentru scufundare în apă Gestionarea se realizează cu ajutorul unui comutator. Lungimea cablului ajunge la 2 metri.
Tasta de pornire Proiectat pentru a închide și deschide un circuit electric. Dacă utilizați dispozitivul când construiți un sistem de udare automată Arduino, nu este necesară lipire suplimentară. Conexiunea la panoul principal se realizează și cu 3 fire.
Cablu de conectare – „tată-tată” Mai multe fire conectează dispozitivele periferice.
Cablu de conectare - „mamă-tată” Cablajul conectează și dispozitivele periferice.
Floare de interior Sistemul este potrivit pentru diferite tipuri de plante de interior.

Diagrama de conectare și algoritmul de lucru în proiectul „Autowatering” bazat pe microcontroler Arduino

Mai jos este algoritmul și diagrama de conectare pentru proiectul pe platforma Arduino. Udarea automată este construită după cum urmează:

  1. Amplasăm placa senzorului pe microcontroler.
  2. Conectăm analizorul de umiditate folosind placa descrisă mai sus la un pin similar - A0.
  3. Conectăm senzorul la microcontroler:
    1. Pinul CS este conectat la pinul nr. 9 de pe placă.
    2. Pinii SPI de afișare sunt conectați la antetul corespunzător de pe aceeași placă.
  4. Introducem cheia de pornire în pinul nr. 4.
  5. Conectăm întrerupătorul la comutatorul de alimentare în conectorii desemnați prin literele p+, p-.
  6. Acum conectăm pompa de apă cu un tub folosind un bloc terminal la contactele cu literele l+ și l-. Treptat, o diagramă va fi construită în fața persoanei care proiectează.
  7. Lipim un panou tactil care analizează umiditatea într-un ghiveci de flori.
  8. Introducem capătul tubului cu apă în sol. Daca planta impreuna cu ghiveciul nu cantareste mai mult de 2 kg, atasam furtunul separat. În caz contrar, o picătură de apă poate doborî floarea.
  9. Puneți pompa de apă într-o sticlă plină cu apă.
  10. Conectăm structura la energie electrică.

Mai jos vă oferim două scheme alternative pentru dispozitivul nostru:

Senzorul analizează starea de umiditate determinând aciditatea solului. Înainte de a introduce irigatorul în sistem, este necesar să testați și să calibrați echipamentul:

  1. Înregistrăm informațiile afișate pe afișaj. În acest caz, senzorul este înfipt într-un vas uscat. Aceasta este desemnată ca umiditate minimă.
  2. Udăm solul cu planta. Așteptăm ca apa să sature complet solul. Ecranul tactil va afișa apoi un nivel. Este necesar să se înregistreze informațiile primite. Aceasta înseamnă umiditate maximă.
  3. Într-un bloc de note, fixăm constantele HUM_MIN și HUM_MAX cu valoarea care a fost obținută în urma calibrării. Scriem valorile în program, pe care apoi le transferăm la microcontroler.

Cele de mai sus descriu designul udării automate pentru o floare. Cu toate acestea, pentru iubitorii de plante de interior, casa este mobilată cu ghivece cu flori. Pe de o parte, această întrebare pare complicată: trebuie să conectați mai multe pompe și analizoare de umiditate a solului. Dar există o soluție mai ieftină și mai simplă pentru proiectarea udării automate.

Se fac gauri de 25 cm in furtunul de la pompa cu ajutorul unei pungi. Bucăți de rezerve de pix sunt înfipte în găurile rezultate. Rezultatul este:

  • ghivece cu plante sunt aliniate pe pervaz;
  • tubul este instalat pe ghiveciul de flori, astfel încât apa să curgă din fiecare gaură într-un ghiveci separat;
  • voilà: invenția udă toate plantele în același timp.

Utilizatorul alege independent timpul pentru udare, dar numai pentru o floare. Adesea, florile sunt aceleași ca greutate și dimensiune. În consecință, solul din ghivece se usucă în același timp. Pentru aceasta, a fost inventată o metodă combinată: numărul de oale este împărțit în grupuri de greutate și dimensiune egală.

Exemplu de cod pentru Arduino pentru proiectul Autowatering

Să trecem la programarea codului:

//Descărcați biblioteca pentru afișaj și conectați-o la programul #include "QuadDisplay2.h"; //Creează o constantă care indică contactul la care este conectată pompa de apă #define VODPOMPA_PIN 4; // Creați o constantă care indică contactul la care este conectat analizatorul de umiditate la pământ #define HUM_PIN A0; //Min pentru umiditate #define HUM_MIN 200; // Max prin umiditate #define HUM_MAX 700; //Timp între verificări de udare #define INTER 60000 * 3; //Declară o variabilă în care valoarea umidității va fi stocată fără semn int hum = 0; //Vom stoca perioada de timp în această variabilă unsigned long Time = 0; //Declarați un obiect din clasa QuadDisplay, apoi treceți plăcuța de înmatriculare //a contactului CS QuadDisplay display(9); //Creați o metodă responsabilă pentru funcționarea afișajului void setup(void) ( //Rularea metodei begin(); //Declarați o funcție care va fi responsabilă pentru ieșirea pompei de apă de la //contact pinMode(VODPOMPA_PIN, OUTPUT ); //Pe display se aprinde numărul - 0 displayInt(0) //Creează o metodă responsabilă pentru indicatorul de umiditate curent void loop(void) ( //Calculează indicatorul de umiditate curent int humNow = analogRead(HUM_PIN); ); // Dacă indicatorul de valoare nu este egal cu cel anterior, atunci... if(humNow != hum) ( //Salvează valoarea primită acum hum= humNow; //Afișează valoarea pe ecran displayInt(humNow) ) ) //Setați condițiile: dacă o perioadă de timp specificată de utilizator a trecut și //starea de umiditate în sol este mai mică decât este necesar, atunci... dacă ((Timp == 0 || millis()); - Ora > INTER) && hum< HUM_MIN) { // Даем сигнал о начале работы водяной помпы digitalWrite(VODPOMPA_PIN, HIGH); //Объявляем потом, длящийся 2 секунды delay(2000); // Завершаем работу помпы digitalWrite(POMP_PIN, LOW); // Ставим в значение переменной Time текущее время и добавляем 3 минуты Time = millis(); } }

În plus, puteți viziona câteva videoclipuri interesante de la colegii noștri.

Astăzi, diferite sisteme de irigare sunt folosite pentru a facilita îngrijirea plantelor, acestea fac posibilă controlul cantității de apă pentru fiecare tip de plantă, utilizarea irigației prin picurare sau aspersoare. Se economisește apa și se creează cele mai favorabile condiții de dezvoltare pentru plante. Singurul dezavantaj al unor astfel de sisteme este necesitatea unei monitorizări constante pornirea/oprirea se face manual. Aceasta este o sarcină destul de neplăcută, durata udării, în funcție de tipul de plantă, condițiile climatice și sistemul specific, poate ajunge la două ore. Pentru a rezolva această problemă, ar trebui să instalați un temporizator de udare pentru sistemele gravitaționale.

În primul rând, trebuie să explicați conceptul de „sisteme de curgere gravitațională”, altfel în unele surse puteți găsi explicații amuzante ale principiilor funcționării lor și o neînțelegere completă a hidrodinamicii.

Sisteme automate de udare a gradinii - schema

Există experți care susțin că cronometrele de irigare pentru sistemele gravitaționale sunt atât de bune încât pot funcționa la presiunea apei de la 0 la 6 atmosfere. Vor lucra la presiune zero, dar nimic nu va fi udat. Fluxul gravitațional nu este un concept fizic, ci unul pur zilnic. Și asta nu înseamnă absența presiunii, ci absența pompelor de apă care funcționează constant. În sistemele gravitaționale, pompa furnizează apă doar rezervorului de stocare, care este situat la o anumită distanță de sol. Din cauza diferenței de înălțime dintre nivelul superior al apei și locul în care aceasta iese, se creează presiune, ceea ce obligă curgerea apei să se miște.

De ce sunt folosite cronometrele în majoritatea cazurilor pentru sistemele cu flux gravitațional? Deoarece nu pot lucra la presiuni mari, supapele lor de închidere sunt prea fragile și mecanismul lor de antrenare este slab. Pentru majoritatea dispozitivelor, presiunea maximă a apei nu poate depăși 0,5 atm pentru o astfel de presiune, recipientul cu apă trebuie să fie situat la o distanță de cinci metri de suprafața pământului. Marea majoritate a sistemelor de irigare au rezervoare de stocare situate mult mai jos.

Tipuri de cronometre

În prezent, pot fi achiziționate trei tipuri de cronometre:

  • mecanic. Cele mai simple sunt sistemele de control semiautomate. Acestea pornesc manual și se opresc automat după o anumită perioadă de timp (până la 120 de minute). Nu necesita surse de alimentare; supapa de inchidere este actionata de un arc. Avantaje: cost redus și fiabilitate ridicată. Dezavantaje - nu puteți face fără prezența oamenilor în timpul pornirii;

  • electronic cu control mecanic. Modurile de irigare sunt complet automatizate, programul de udare poate fi ajustat pentru o perioadă de șapte zile, iar durata de udare este de până la 120 de minute. Avantaje: cost relativ scăzut, ușurință în crearea și gestionarea programelor. Dezavantaje – incapacitatea de a conecta echipamente suplimentare;

  • electronic cu control program. Cele mai moderne dispozitive au capacitatea de a instala până la 16 funcții speciale. Dezavantaje - cost ridicat. În plus, poate fi dificil pentru utilizatorii neinstruiți să instaleze programe.

Temporizatoarele mecanice sunt rareori folosite, sistemele de irigare sunt controlate de unul dintre tipurile de dispozitive electronice. Alimentarea cu apă este reglată folosind o supapă solenoid (solenoid) sau o supapă cu bilă.

Cronometru pentru irigare pe 2 linii, mecanic „Expert Garden”

  1. Supapă electromagnetică. La un anumit moment, bobina electromagnetică este furnizată cu energie, sub influența câmpului electromagnetic, miezul este atras în solenoid și blochează fluxul de apă. Dacă puterea se oprește, miezul este împins în sus de un arc și lumenul țevii se deschide. În temporizatoare, principiul de funcționare poate fi opus - fără tensiune, supapa se închide cu un arc, iar când apare un câmp magnetic puternic, se deschide. Datorită acestui principiu de funcționare, bateria este economisită. Puteți distinge funcționarea electrovalvei printr-un clic caracteristic în timpul deschiderii/închiderii.
  2. Supapă cu bilă. Deschiderea/închiderea se realizează printr-o cutie de viteze acţionată de un motor electric. Pentru a economisi energia bateriei, este, de asemenea, constant în poziția închisă, se deschide numai când sistemul de udare este pornit. Când se declanșează cronometrul supapei cu bilă, se aude un zgomot scurt al motorului electric și al cutiei de viteze.

Important. De îndată ce există riscul de îngheț, cronometrul trebuie oprit. De ce? În timpul pornirii, în înfășurările statorului apar curenți mari de îndată ce rotorul începe să se rotească, puterea curentului scade la condițiile de funcționare. În timpul înghețurilor, supapa cu bilă poate îngheța puțin puterea motorului electric nu este suficientă pentru a-l rupe. Aceasta înseamnă că curenții de pornire vor curge prin înfășurări pentru o lungă perioadă de timp, ceea ce va duce inevitabil la supraîncălzirea și scurtcircuitul acestora. Și cutia de viteze în sine nu este proiectată să reziste la forțe semnificative, angrenajele de antrenare pot defecta. Astfel de defecțiuni necesită reparații complexe sau înlocuirea completă a dispozitivului.

Temporizatoare electronice cu control mecanic (tip comutator basculant)

Dispozitive foarte ușor de operat, fiabile și durabile. Pentru a selecta modurile de funcționare ale sistemului de irigare, trebuie să efectuați următorii pași:

  • Deșurubați capacul superior din plastic transparent. Trebuie să lucrați cu atenție, nu pierdeți garnitura de etanșare, aceasta poate cădea;
  • Utilizați comutatorul basculant din stânga pentru a seta frecvența de pornire a sistemului, perioada maximă este de 72 de ore;
  • Folosiți comutatorul din dreapta pentru a seta o anumită durată de udare, maxim 120 de minute.

Important. Numărătoarea inversă inițială a dispozitivului electronic începe din momentul în care cronometrul este pornit. Aceasta înseamnă că, dacă, de exemplu, doriți ca udarea să pornească periodic la ora cinci dimineața, atunci prima setare a temporizatorului trebuie efectuată în același timp. În viitor, ora la care sistemul de irigare este pornit nu se va schimba.

Producătorii, cu cronometru, vând un set complet de fitinguri pentru conectarea țevilor din plastic sau a furtunurilor flexibile de diferite diametre. Cronometrul este alimentat de două baterii AAA de 1,5 V.

Temporizator de udare - fotografie

Temporizatoare electronice cu control program

Dispozitivele mai moderne au funcții extinse semnificativ. Setul de livrare include adaptoare pentru conectarea conductelor și furtunuri flexibile de diferite diametre. Configurarea controlului software se face astfel:

  • scoateți capacul din plastic. Este răsucit destul de strâns la fabrică va trebui depus;
  • apăsați butonul de pornire Time, parametrii de instalare a programului vor apărea pe afișajul electronic. Setați ora și ziua curentă a săptămânii, acțiunea trebuie confirmată prin apăsarea butonului Set;
  • mergeți pe rând la fiecare zi a săptămânii, selectați ora și durata pentru pornirea cronometrului electronic. Acești parametri vor fi salvați pe toată perioada de utilizare;
  • Dacă se dorește, dispozitivul poate fi configurat cu până la 16 programe diferite. Pentru a face acest lucru, trebuie să apăsați butonul Prog și apoi să configurați numărul necesar de programe. Toate datele introduse trebuie confirmate prin apăsarea butonului Set.

Există un condensator destul de încăpător instalat în interiorul dispozitivului. Este conceput pentru a semnala când bateriile sunt extrem de scăzute și pentru a comuta temporizatorul în modul de alimentare autonomă. Când încărcarea bateriei este scăzută, pe afișaj va apărea un semnal de avertizare. De la apariția sa, bateriile pot funcționa încă 2-3 zile, în funcție de frecvența și durata pornirii sistemului de irigare.

În modul complet autonom, condensatorul poate asigura funcționarea temporizatorului timp de 3-4 zile. Dacă bateriile nu sunt înlocuite în acest interval de timp, temporizatorul se va opri. După aceasta, toate modurile de udare instalate anterior vor fi șterse din memorie și va trebui să repetați pașii de instalare de la bun început.

În modul de așteptare, cronometrul nu consumă mai mult de 1,2 mA în timpul funcționării, consumul de curent crește la 350 mA; Acestea sunt valori foarte mici care permit dispozitivului să funcționeze numai cu baterii pentru cel puțin un sezon. Producătorii au evitat în mod special acest timp în timpul inspecției anuale de rutină a sistemului de irigare înainte de pornire, se recomandă instalarea de baterii noi.

Există modele de cronometru concepute pentru a funcționa pe sisteme mari și complexe de irigare. Au mai multe supape, ceea ce vă permite să controlați modurile de udare a mai multor zone separate, fiecare dintre ele are propriii parametri. Dispozitivele cu mai multe supape pot fi conectate la o tensiune de 220 V sau pot avea până la opt baterii AAA de 1,5 V.

Ce date trebuie luate în considerare la configurarea senzorilor

Condițiile pentru cultivarea plantelor depind în mare măsură de setarea corectă a programului cronometru. Ce ar trebui să luați în considerare?

Împărțirea zonei de irigare în zone separate, ținând cont de tipurile de culturi. Fiecare dintre ele are propriile cerințe, în unele cazuri va trebui să cumpărați cronometre cu mai multe supape.

Calcul hidraulic pentru consum maxim de apă. Funcționarea temporizatoarelor trebuie să țină cont de capacitatea totală a unităților. Dacă nu există pompare automată, atunci trebuie să monitorizați în mod independent disponibilitatea apei și, dacă este necesar, să umpleți recipientele.

Analiza traseului sistemelor de irigare. Diferențele mari de înălțime ale liniilor individuale de irigare pot avea un impact semnificativ asupra performanței acestora. La instalare, ar trebui să țineți cont nu numai de timpul de udare, ci și de cantitatea de apă care este furnizată plantelor în acest timp.

După finalizarea instalării temporizatorului, se recomandă verificarea funcționalității sistemului. Pentru a face acest lucru, sunt setate perioade minime de comutare și este verificată funcționarea corectă a actuatoarelor supapelor. Dacă temporizatorul funcționează normal, puteți începe programarea specifică și puteți pune sistemul în modul de funcționare automat.

Procesul de instalare a unui program de cronometru va fi mult mai simplu dacă achiziționați senzori suplimentari cu acesta.

Funcții suplimentare ale temporizatorului

Temporizatoarele electronice de udare care folosesc senzori pot îndeplini mai multe funcții suplimentare, ceea ce simplifică și mai mult procesul de cultivare a culturilor în sere sau în aer liber.

  1. Senzor de ploaie. Un astfel de echipament este utilizat în timpul instalării irigațiilor în zone deschise. Senzorul de ploaie trimite un semnal către dispozitivul electronic despre prezența precipitațiilor naturale. Cronometrul răspunde la aceste semnale și omite o udare care coincide cu perioada de ploaie. Senzorul este reglabil în intervalul de precipitații de la 3 mm la 25 mm. O gamă atât de largă vă permite să reglați mai precis ratele de udare ținând cont de condițiile meteorologice. Prezența unei funcții de retragere accelerată vă permite să opriți udarea în cel mai scurt timp posibil după începerea ploii, dispozitivele nu necesită întreținere suplimentară; În funcție de ajustările inelului de ventilație, este setată o întârziere în readucerea dacha în modul de așteptare. Timpul de revenire la poziția de pornire depinde direct de umiditatea și temperatura aerului din jur. Acest lucru permite economii semnificative de apă.
  2. Pompa cu diafragma. Poate fi montat împreună cu un cronometru sau într-o carcasă separată, monitorizează nivelul apei din rezervoarele de stocare. Când cantitatea de apă scade sub un nivel critic, pompa pornește automat pentru a reumple proviziile. După umplerea rezervoarelor, pompa se oprește.
  3. Senzor de umiditate a solului cu canal radio. Cel mai modern dispozitiv face îngrijirea plantelor mult mai ușoară. Instalat în mai multe locuri pe paturi, blochează comanda temporizatorului pentru udare în caz de umiditate ridicată a solului. Cele mai moderne dispozitive cresc randamentul culturilor cu cel puțin 10%.
  4. Filtru de purificare a apei. Efectuează purificarea apei de înaltă calitate și crește semnificativ timpul de funcționare al temporizatorului.

Dispozitive suplimentare de monitorizare și control pot fi achiziționate complet cu un cronometru de irigare sau separat.

Video - Temporizatoare de irigare pentru sisteme gravitaționale

Cu ceva timp în urmă m-am gândit că ar fi bine să automatizez udarea la dacha. Recenziile unor utilizatori Muska au jucat, de asemenea, un rol important în luarea acestei decizii. Dar, deoarece electronica nu este specialitatea mea, s-a decis să simplific cât mai mult hardware-ul din proiect și, dacă este posibil, să nu fac LUT-uri, gravarea plăcii și alte dificultăți. Pe scurt, am vrut să-mi implementez sistemul ca un fel de kit de construcție asamblat din componente standard, dar dacă a ieșit sau nu rămâne la latitudinea dvs.

UPD: schiță adăugată pentru Arduino.

1. Înțelegerea dorințelor și organizarea gândurilor proiectului
Proiectul a fost conceput inițial aproximativ sub această formă: 4 sprinklere puternice (în viitor 8), același număr de electrovalve, un modul releu pentru acestea, un ecran de 16x2 caractere, un ceas în timp real și Arduino ca creier.
Ma asteptam ca pentru controlul supapelor sa fie suficient niste meniu simplu prin care sa setezi ora curenta, ora de incepere a udarii si durata de functionare.
Apoi m-am gândit că a da 8 intrări Arduino la tastatură este prea mult. Și, în general, nu toate tastaturile sunt la fel de utile folosirea numai a tastaturii numerice; La urma urmei, trebuie nu numai să introduceți numere, ci și să implementați navigarea prin meniu.
Și dacă da, atunci este mai bine să folosiți un joystick - aceasta este o soluție mai universală decât o tastatură numerică, iar controlul devine „intuitiv”... desigur, dacă se poate face astfel... Iarna , am cumpărat relyushki, o supapă de 12 volți, un sprinkler, un joystick, un arduino și ecranul, iar în februarie-martie am început să depanez schița pentru udare.
În timpul dezvoltării părții software, au mai fost făcute câteva modificări la proiectul original. În special, am adăugat câțiva senzori de temperatură-umiditate și o unitate de control manuală a supapelor. În plus, pentru a proteja împotriva funcționării motorului în gol, am decis să instalez un senzor de debit de apă la intrare pentru a opri motorul de urgență în cazul unei absențe prelungite a debitului.
De ce atât de mulți senzori? Da, pur și simplu nu sunt foarte scumpe, erau intrări goale pe placă și cunoașterea temperaturii și umidității din diferite părți ale site-ului este utilă. Am plănuit să instalez senzorii în seră, pe stradă și în groapă pentru stația de pompare și, de asemenea, undeva în grădină pentru a plasa un senzor de umiditate a solului și un senzor de temperatură a solului.
În general, ar fi bine să vă arăt un tabel cu senzori și pini Arduino

2. Achiziționarea componentelor necesare
Iată o listă de componente de sistem achiziționate din China (majoritatea dintre ele au fost achiziționate de pe Aliexpress, dar am cumpărat câteva loturi de pe Ebay - era mai ieftin acolo). Două loturi au fost deja retrase de la vânzare, așa că în loc de link-uri către ele vor exista instantanee - pentru ca persoanele interesate să știe ce să caute.
1, preț 6,36 USD (lot de la alt vânzător, deoarece vânzătorul meu a scos acest senzor de la vânzare)
1, preț 0,74 USD
1, preț 0,63 USD
1, preț 1,16 USD
1, preț 0,56 USD
1, preț 1,79 USD
1, preț 1,1 USD
1, preț 0,66 USD
1, preț 0,5 USD
1, preț 1,35 USD
1, preț 3,56 USD
1, preț 0,84 USD
3, preț 0,99 USD fiecare, total 2,97 USD
4, preț 5,59 USD fiecare, total 22,36 USD
4, preț 3,62 USD fiecare, total 14,48 USD. Analogii sunt ușor de găsit
4, preț 0,95 USD per pereche, total 1,9 USD
Costuri totale pe Internet - 60,96 USD

Următoarele articole au fost achiziționate de la un magazin de hardware local:
2 coloane de furtun de udare 5/8 (30 m fiecare) - 540.000 de ruble belaruse sau aproximativ 28 USD
8 cuplaje 1/2 - 112.000 de ruble belaruse, sau aproximativ 5,8 USD
3 tees 1/2 - 60.000 de ruble belaruse, sau aproximativ 3 USD
8 accesorii 15*16 - 92.000 de ruble belaruse, sau aproximativ 4,8 USD
Costuri totale offline - 804.000 de ruble belaruse sau 41,2 USD

Merită menționat și ceea ce nu a fost inclus în această listă - unele lucruri din această listă mi-au fost oferite gratuit (junk vechi), pentru unele lucruri pur și simplu am uitat prețurile. Acest:
40 de metri de cablu de semnal cu 4 fire pentru conectarea senzorilor de temperatură;
40 de metri din cel mai ieftin cablu de cupru cu 2 fire pentru a transmite 12 volți la electrovalve;
2 splittere RJ-11, care au fost folosite ca ieșiri pentru conectarea senzorilor de temperatură și umiditate, și 4 conectori pentru cabluri cu senzori;
2 splittere RJ-45 pentru conectarea unității de control situată în casă cu unitatea de releu și senzor de sol situată în exterior lângă pompă și 4 conectori pentru cabluri;
cablu vechi (pereche răsucită) - 30-40 metri, pentru conectarea arduino cu releele;
un conector pentru conectarea unei unități de dischetă, lipită de la o placă de bază veche și un cablu de la unitatea de dischete;
sursa veche de 24 volti;
resturi de scândură de mobilier de 12-16 mm grosime pentru realizarea cutiilor pentru sistem.

Nu am făcut fotografii ale splitterelor înainte de utilizare, ele arată cam așa:

3. A face ceva care nu a fost cumpărat
Dintr-un motiv sau altul, a trebuit să fac eu unele lucruri din materiale vechi. Voi încerca să descriu aici ce s-a făcut și cum și de ce exact așa și nu altfel.

3.1 Senzor de umiditate a solului(sper de lunga durata)
După cum puteți vedea, nu există niciun senzor de umiditate a solului în lista de cumpărături, deși este menționat în proiect. Faptul este că însăși ideea de a îngropa o bucată de PCB cu benzi subțiri de metal în pământ mi s-a părut destul de nebunească, așa că am decis să găsesc o cale mai bună. După ce am scotocit pe internet, l-am găsit pe un forum tematic, acolo sunt sfaturi și exemple bune. În general, am decis să o fac la fel cum scrie acolo: 2 conductori, rezistențe și un fir cu 3 fire. O spiță de bicicletă, mușcată fără milă în bucăți, a fost folosită ca catod și anod. Pentru comparație, iată piese donatoare și un întreg ac de tricotat


Lipim fire, rezistențe și bucăți de ace de tricotat - în general, facem totul așa cum este scris pe forum


Apoi fixăm temporar anodul și catodul pe plastilină pentru a ne sigila artizanatul cu lipici fierbinte


Apoi, am folosit ca matriță un pahar mic de iaurt pentru copii, am făcut o gaură în el pentru sârmă, am instalat cu grijă structura în interior și am umplut-o cu compus de ancorare Ceresit CX-5






Membrii forumului recomandă gipsul, dar nu l-am avut la îndemână, cred că cimentul cu priză rapidă nu va fi mai rău.
Uscat - deschideți-l






Pentru orice eventualitate, am vopsit senzorul finit cu câteva straturi de vopsea de ulei, astfel încât senzorul să măsoare exact umiditatea solului, și nu umiditatea unei bucăți de beton.

Pentru a utiliza acest megadispozitiv, este necesară o calibrare preliminară. Acest lucru se face simplu: luăm pământ uscat, lipim un senzor de casă în el, verificăm și înregistrăm valoarea umidității rezultată. Apoi turnăm suficientă apă pentru a crea o mică mlaștină și luăm din nou valoarea de la senzor.
Am calibrat rapid cu această schiță de pe forum:
#define PIN_SOIL_LEFT 6 #define PIN_SOIL_RIGHT 7 #define PIN_SOIL_HUMIDITY 0 void setup())( Serial.begin(9600); pinMode(PIN_SOIL_LEFT, OUTPUT); pinMode(PIN_SOIL_RIGHT, OUTPUTUM); pinMode(PIN_SOIL_RIGHT, OUTPUTUM)); aritate( boole an flip)( if(flip)( digitalWrite(PIN_SOIL_LEFT, HIGH); digitalWrite(PIN_SOIL_RIGHT, LOW); )else( digitalWrite(PIN_SOIL_LEFT, LOW); digitalWrite(PIN_SOIL_RIGHT, HIGH); ) ) void loop())(setSensorPolarity) (true) ; delay(1000); int val1 = analogRead(PIN_SOIL_HUMIDITY(false); avg = (val1 + val2) / 2 String = "avg: "; Serial.println;
În cazul meu, valoarea senzorului a fost ceva mai mare de 200 în sol uscat și puțin mai puțin de 840 în sol umed.
Acum avem nivelurile minime și maxime de umiditate pentru un anumit sol, acestea vor trebui introduse în constantele corespunzătoare din schița principală. Asta este!

3.2 Alimentare pentru supape
Era posibil, desigur, să cumpăr o sursă obișnuită de 12 volți în China, care produce cel puțin 1 amper, dar în coșurile patriei, într-un morman de vechituri, am găsit un încărcător de la o șurubelniță moartă care produce jumătate de amperi la o tensiune de 24 volți. Prin urmare, a fost achiziționat un convertor step-down bazat pe LM2596 și apoi integrat cu succes în vechea unitate. Nu am făcut nicio fotografie a procesului, pentru că nu despre asta este vorba în această recenzie... Iată un bloc modificat cu o supapă, va servi ca exemplu


A fost făcută o gaură în corpul blocului pentru reglarea convenabilă a tensiunii. Acum, folosind o șurubelniță și un multimetru, puteți seta orice tensiune de la 5 la 24 de volți. A ieșit destul de bine, cred. Din păcate, am dat clic pe Aloha_ despre convertoarele step-down... Dar în cazul meu totul pare a fi normal, nu s-a observat nicio supraîncălzire.

3.3 Suporturi pentru braț de pulverizare
Cu siguranță nu veți putea cumpăra acest lucru dintr-un magazin! Pentru ca s-a facut in cantitate de 4 unitati la comanda speciala :) Desi aici totul este simplu: o teava de jumatate de inch inaltime de un metru, se face cot la 90 de grade in partea de jos si se sudeaza un colt de 30-40 cm lungime. astfel încât suportul să poată fi înfipt în pământ în partea dorită a șantierului. În partea de sus, firul ar trebui să fie interior de jumătate de inch (în cazul meu, un cuplaj este pur și simplu sudat acolo), în partea de jos - orice este mai convenabil pentru dvs. În cazul meu, există un filet extern de jumătate de inch, dar după cum a arătat practica, ar fi mai bine dacă ar fi interior, atunci nu ar trebui să înșurubam mai întâi cuplajul, apoi un fiting sau o supapă în el... In general nu m-am gandit din timp la asta asa ca am ajuns sa am costuri suplimentare pentru cuplaje :(
Fotografiile vizuale ale titularului sunt aici:




Și puțin mai departe va fi o fotografie a suportului în uz.

3.4 Cutii pentru unitatea de control și relee
La început am plănuit să plasez toate piesele sprinklerului într-o singură cutie și să o echipez cu ieșiri pentru supape (12 volți), pompă (220 volți) și senzorii înșiși. Cu toate acestea, atunci am decis să separ părțile de putere și de curent scăzut ale sprinklerului, iar clicul releului dimineața devreme ar fi o plăcere foarte îndoielnică. În consecință, placa cu arduino, joystick-ul, butoanele, ecranul și ceasul în timp real rămân în caseta „acasă”, iar releele vor fi plasate în cutie în exterior, mai aproape de motor și supape.
Pentru a asambla unitatea de control, aveam nevoie de o placă de mobilier, burghie pentru găurile pentru butoane și joystick și un puzzle pentru orificiul pentru ecran.

Sub spoiler găurim, tăiem și asamblam cutia













Apoi, deschidem separatoarele (telefon și pereche răsucită), lipim firele de ele și le atașăm la lipici fierbinte. O puteți vedea mai detaliat aici






Ecranul și ceasul în timp real au fost combinate într-unul singur în acest fel


Și apoi această structură a fost asigurată solemn cu șuruburi în cutie. Joystick-ul a fost și el înșurubat. Acum unitatea de control extern arată astfel:


Tot ce rămâne este să arunci creierul în cutie - iar unitatea de control este gata.
Acum atentie. Estetilor, copiilor si femeilor insarcinate li se recomanda insistent sa nu deschida urmatorul spoiler... Pentru ca nu veti vedea placile frumoase pe care le pot realiza Yurok, ksiman si alte personalitati cunoscute de aici. Dar veți vedea instalarea plăcii în cele mai bune tradiții ale KitaiPodvalProm: cablaj în loc de șenile și adeziv topit la cald, pentru ca totul să nu se destrame. Prin urmare, vă avertizez încă o dată: nu deschideți spoilerul! Crede-mă pe cuvânt, această placă funcționează, dar este mai bine să nu o vezi :)

Spoiler, nu-l deschide, este groază și groază!

De aceea ai deschis-o, nu? Ei bine, admiră... Nu arunca cu roșii!









Unitatea de control este conectată la unitatea releu prin două perechi răsucite. Pentru a interacționa „creierul” cu supapele și motorul, sunt suficiente 5 linii de control și încă 2 linii pentru alimentarea releului (5 volți și masă), dar există și un debitmetru (există deja putere, deci doar 1 linie). este necesar), un senzor de umiditate a solului (3 linii) și 4 LED-uri care indică starea curentă a supapelor. Total - sunt utilizate 15 linii din 16 disponibile.
Pe lângă releele în sine, blocul de relee are prize încorporate pentru motor și pentru alimentarea supapei, precum și un comutator obișnuit pentru pornirea forțată a motorului. Blocul în sine este făcut din aceleași resturi de placă de mobilier ca și unitatea de control și arată ca o cutie obișnuită de lemn. La intrare, două perechi răsucite sunt direcționate pe placă prin conectori la releul motorului, releul supapei, LED-urile, senzorul de umiditate și senzorul de debit de apă. În perete au fost făcute găuri pentru firele pentru supape, pentru un întrerupător și pentru o priză controlată printr-un releu de motor.


Blocul de borne are fire către supapele solenoide


Afară am înșurubat o priză pentru motor, controlată de un Arduino, și un comutator pentru pornirea manuală a motorului


Toate firele sunt separate și direcționate acolo unde este nevoie... se pare


Pe peretele interior a apărut o priză pentru alimentare de 12 volți, vizibilă și aici


Când este terminat, totul arată cam așa:


Voi explica puțin ce și cum. Cutia este alimentată și ascuns în interior este un bloc pentru supapele de 12 volți, releul motorului și releul supapei. Puterea motorului iese în exterior (priză) și există și un comutator pentru controlul manual al motorului (este în paralel cu releul). În plus, este posibil să conectați senzori de umiditate a solului și de debit de apă, dar aceștia sunt goli. Vă spun puțin mai departe de ce.
4. Descrierea funcționalității
De fapt, aici este un set incomplet de componente electronice pentru asamblare


La început, ceva de genul acesta „caracatiță” a fost asamblat dintr-un arduino și un set mic de periferice, a fost acest miracol pe care l-am folosit pentru a depana schița


Minim După cum am spus deja, s-a decis să se utilizeze un control cu ​​joystick și a apărut următorul set minim necesar de elemente de meniu:
1. Setări pentru dată și oră
2. Setările programului de udare
3. Informații de la senzori
4. Posibilitatea de repornire forțată

Am reușit să-l implementez și chiar am reușit să mă descurc cu afișajul în limba engleză 1602 - biblioteca LCD_1602_RUS a ajutat, ceea ce mi-a permis să „creez” 8 caractere chirilice. După aceasta, amestecat cu litere englezești, a fost posibil să se creeze nume rusești ale elementelor de meniu care erau destul de ușor de înțeles pentru persoanele în vârstă (părinții mei). Dimensiunea finală a schiței este de puțin sub 1400 de linii, înghesuite în 45 de kiloocteți.
Rezultatul compilației:
Schița utilizează 19.626 de octeți (63%) din memoria dispozitivului. Un total de 30.720 de octeți sunt disponibili.
Variabilele globale folosesc 1.316 de octeți (64%) de memorie dinamică, lăsând 732 de octeți pentru variabilele locale. Maxim: 2.048 octeți.

Din fericire, nu mai există avertismente despre memoria scăzută.
Schița în sine nu este încă aici, dar o voi posta în timp. Vreau sa modific putin codul :)
Ce a funcționat și ce nu a funcționat? Ei bine, totul a ieșit la caracatiță :) Din păcate, viața își face propriile ajustări, iar după scoaterea creierului, a comutatoarelor și a senzorilor, unele lucruri au încetat să funcționeze... În primul rând, senzorii analogici. Din păcate, acum, din cauza lungimii cablurilor, nu funcționează pentru mine - în consecință, elementul de meniu „SOIL” arată zero temperatură și umiditate. Există anumite gânduri despre cum să remediați acest lucru, dar nu există încă timp. Nu îmi vizitez părinții la dacha foarte des și nu fac doar udarea, ci mai există și o altă călătorie de afaceri... În orice caz, voi fi bucuros să primesc sfaturi practice de la cititori.
În al doilea rând, nu a fost posibilă conectarea imediată a debitmetrului - de data aceasta deloc din cauza lungimii cablurilor. L-am așezat brusc la admisia motorului, imediat după supapa de reținere, după cum s-a dovedit - nu avea loc acolo. Senzorul, aparent, nu este complet etanșat, iar atunci când apa crește, aerul se scurge prin micro-fante din carcasă, ca urmare, pompa nu atrage apă. Am scos-o deocamdată, apoi voi încerca să-l pun la ieșirea pompei - ar trebui să funcționeze, dar este posibil - se va scurge puțin.
Acum, pentru funcționalitatea de lucru. Ei bine, programul este clar - tocmai pentru asta a fost început proiectul. Dar uneori trebuie doar să porniți udatorul pentru o perioadă, iar pentru aceasta am făcut două moduri de udare forțată: limitat și nesfârșit. Modul limitat este activat prin apăsarea scurtă a butonului, durata unei astfel de udare poate fi specificată în setări. Dacă apăsați din nou butonul, udarea va fi oprită înainte de program. O apăsare lungă pornește udarea fără sfârșit - o puteți opri din nou apăsând butonul.
Ei bine, un plus frumos este vizualizarea temperaturii în groapă cu stația de pompare, în seră și în exterior.
O repornire forțată a Arduino este programată o dată pe zi.

5. Asamblarea sprinklerului
Aici voi face o mică digresiune și voi da caracteristicile tehnice ale componentelor cu presiunea apei.
Pompa JY1000 de la compania poloneză Omnigena, conform producătorului, are următoarele caracteristici:
Capacitate: 60 l/min;
Inaltime maxima de ridicare: 50 m;
Consum de energie: 1100 W;
Adâncime maximă de autoamorsare: 8 m.

În plus, am găsit acest grafic util:

Aici


Și bineînțeles, nu uitați că productivitatea depinde foarte mult de adâncimea puțului și de filtrele înfundate.

Supapă electromagnetică fără nume, dar am găsit pe multe pagini (de exemplu) aproximativ următoarele caracteristici:
Tensiune: DC 12V;
Curent: 0,5A;
Presiune: 0,02-0,8 MPa;
Capacitate 3-25 l/min.
În plus, există o declarație optimistă: Presiunea apei: presiune hidrostatică de 1,2 MPa, care a durat 5 min, fără ruptură, deformare, scurgere.. Aceste. în 5 minute, supapa poate rezista chiar și la o presiune semnificativ mai mare decât standardul „nu mai mult de 0,8 MPa”.
Aici puteți vedea supapa din diferite unghiuri


Mai pot observa ca am testat supapa pe o sursa mai slaba, si s-a deschis fara probleme la 9 volti.
Și pentru ca supapele să funcționeze fără probleme în condiții de umiditate în grădină, a trebuit să-mi folosesc ingeniozitatea și să găsesc o întrebuințare pentru sticlele de plastic vechi.
Salut Bonaqua!


Iată o supapă în astfel de haine, poate o puteți vedea mai bine aici

Performanţă stropitoare, conform datelor, este de 700 - 1140 l/h, sau aproximativ 11,7-19 l/min la o presiune a lichidului de 0,21-0,35 MPa, respectiv.
După cum puteți vedea, în condiții ideale, pompa produce prea mult debit, care pur și simplu nu poate „coperă” fizic supapa, cu atât mai puțin sprinklerul. Privind in viitor, voi spune ca putul in cazul meu a fost departe de a fi ideal si nu a ajuns la 60 l/min. Apoi m-am gândit că presiunea va scădea și din cauza lungimii furtunului de la motor până la cel mai îndepărtat sprinkler (aproape 30 de metri), am decis să nu mă deranjez prea mult în acest sens. Apoi, în timpul „testelor de producție”, am conectat simultan trei sprinklere la motor. S-a dovedit că turnau foarte slab și nu era suficientă presiune pentru a schimba direcția de rotație. Arăta așa: sprinklerul se rotește până când lovește limitatorul de sector, iar rotația se oprește. Dacă eliminați limitatorul de sector, atunci rotația în cerc este mai mult sau mai puțin fără probleme, dar raza de irigare este de 2-3 metri. Am aruncat un stropitor - a devenit un pic mai bun și au încercat chiar să se învârtească, dar raza era încă de maxim 4 metri Dar un stropitor merge grozav - lovește foarte departe (măsurat cu o bandă de măsurare, pulverizează doar 9. metri distanță), și fără probleme cu rotația.
Aspersoarele în sine pot fi reglate pentru a se potrivi nevoilor dumneavoastră:
- rupe jetul prin deșurubarea șurubului opus duzei;
- modifica unghiul si, in consecinta, raza jetului prin ridicarea sau coborarea placii opus duzei;
- schimbați sectorul de irigare folosind limitatoare sau îndepărtați blocarea limitatorului.
Iată fotografii de prim plan ale „comenzilor”








Sprinklerul de pe suport și cu un furtun/sârmă conectat arată astfel:

6. Munca
Unitatea de control, pe lângă ora curentă, poate afișa tot felul de informații utile, cum ar fi temperatura și umiditatea. Acolo puteți seta, de asemenea, începutul și durata udării conform programului, precum și durata udării atunci când este activată de un buton.
Prin apăsarea scurtă a unuia dintre cele 4 butoane puteți porni udarea pentru un anumit timp (setat în setări), o apăsare lungă pornește modul „nesfârșit”, adică. Puteți opri irigarea pe o anumită linie doar cu același buton, sau se va opri dacă programul necesită oprirea liniei. Dar de ce mă repet? Dă-mi diapozitivele!
Aici puteți vedea setările:











Aici ne uităm la temperatură și umiditate






Obținem informații de aici

Așa arată de fapt agricultura colectivă a senzorilor în condiții de dacha. Verandă


Groapă


Seră


Acești senzori nu spun încă nimic, de ce - explicat mai sus



Și în sfârșit... Șapte probleme - o resetare:

Și acum - videoclipul, unde am fi fără el?
1. Mini-tur - ce este în meniul adăpătorului. Senzorii nu au fost conectați, așa că totul este afișat ca zero.


2. Configurarea sprinklerului pentru a porni liniile 2 și 3 timp de un minut fiecare


3. Cum arată udarea conform programului stabilit pentru test


4. Cum arată udarea programată pe ecranul de udare?


5. Testați udarea de la buton - pornit și oprit. Nu arăt cum funcționează stropitorul, dar, sincer, totul funcționează


6. Sprinkler și setările sale: ce se învârte, se întoarce și se blochează unde


7. Funcționarea sprinklerelor într-un sector mic la distanță apropiată

7. Comparatie cu ofertele pietei
O opțiune accesibilă pe piața rusă este sistemele Gardena, vândute la OBI. Puteți cumpăra o unitate de control pentru 13.590 de ruble și alte 3.990 de ruble, prețul final va fi de numai 29.550. Este grozav, desigur, și arată frumos. Dar să dau aproape 500 de bani americani... Și din câte am înțeles, în kit nu sunt incluse sprinklere, conectori sau furtunuri! Bine, să privim mai departe.
Din nou Gardena în același magazin, dar aici există deja un sistem cu 6 linii. Este alcătuit dintr-un cronometru de alimentare cu apă pentru 11.190 de ruble și pentru 6.990 de ruble - un total de 18.180, sau aproape 300 de Baku... Furtunurile și aspersoarele, ca și în cazul precedent, trebuie achiziționate separat.
Ebay a oferit imediat unitatea de control împreună cu supape pentru aproximativ 60 USD, plus costuri de transport de ~35 USD - în cele din urmă, aproape o sută. Opțional, controlerele Rain Bird ESP-RZX Series 4 și Hunter XC 400i (fără supape) sunt disponibile pentru nu mai puțin de 75 de dolari, fără a include transportul. Supape separat; pentru un vânător, de exemplu, pornesc de la 22 de dolari bucata, mai ieftin la vrac.

Și în loc de postfață. Avea sens să mă obosesc să inventez o bicicletă dacă era deja pe piață? Așa cred. Ce am scos personal din asta? În primul rând, economii semnificative, în al doilea rând, posibilitatea de a implementa sistemul așa cum am nevoie de el, în al treilea rând, doar m-a interesat. Implementează-ți proiectele și nu-ți fie teamă să greșești. Numai cei care nu fac nimic nu greșesc!

Acum codul promis pentru Arduino.Îl puteți descărca, am adăugat comentarii în text dacă este posibil, dar în special în acest cod este posibil ca debitmetrul să nu funcționeze (sau să funcționeze incorect).

Plănuiesc să cumpăr +101 Adaugă la favorite Mi-a placut recenzia +128 +247

Ați dori ca plantele dvs. să vă spună când trebuie udate? Sau doar v-am ținut la curent cu nivelul de umiditate al solului?

În acest articol, vom analiza un proiect de irigare automată folosind un senzor de nivel de umiditate a solului:

Prezentare generală a senzorului de umiditate a solului

Astfel de senzori sunt destul de ușor de conectat. Doi dintre cei trei conectori sunt alimentare (VCC) și masă (GND). Când utilizați senzorul, este recomandabil să îl deconectați periodic de la sursa de alimentare pentru a evita o posibilă oxidare. A treia ieșire este un semnal (sig), din care vom lua citiri. Cele două contacte ale senzorului funcționează pe principiul unui rezistor variabil - cu cât mai multă umiditate în sol, cu atât contactele conduc mai bine electricitatea, rezistența scade și semnalul la contactul SIG crește. Valorile analogice pot varia în funcție de tensiunea de alimentare și rezoluția pinilor analogici ai microcontrolerului.

Există mai multe opțiuni pentru conectarea senzorului. Conectorul prezentat în figura de mai jos:

A doua opțiune este mai flexibilă:

Și, desigur, puteți lipi direct contactele la senzor.

Dacă intenționați să utilizați senzorul în afara apartamentului, ar trebui să vă gândiți suplimentar la protejarea contactelor de murdărie și lumina directă a soarelui. Ar putea merita să luați în considerare carcasă sau aplicarea unui strat de protecție direct pe pinii și conductorii senzorului de umiditate (vezi imaginea de mai jos).

Senzor de umiditate a solului cu un strat de protecție aplicat pe contacte și conductori izolați pentru conectare:

Problema fragilității senzorului de umiditate a solului

Unul dintre dezavantajele senzorilor de acest tip este fragilitatea elementelor lor sensibile. De exemplu, Sparkfun rezolvă această problemă folosind un strat suplimentar (Electroless Nickel Immersion Gold). A doua opțiune pentru prelungirea duratei de viață a senzorului este de a-i furniza energie direct atunci când sunt luate citirile. Când utilizați Arduino, totul se limitează la aplicarea unui semnal HIGH pinului la care este conectat senzorul. Dacă doriți să alimentați senzorul cu mai multă tensiune decât oferă Arduino, puteți utiliza întotdeauna un tranzistor suplimentar.

Controlul umidității solului - exemplu de proiect

Proiectul de mai jos folosește un senzor de nivel de umiditate, un analog al plăcii Arduino - RedBoard și un afișaj LCD, care afișează date despre nivelul de umiditate a solului.

Senzor de umiditate a solului SparkFun:

Firul roșu (VCC) este conectat la 5V pe Arduino, firul negru este la masă (GND), firul verde este semnal către pinul analogic 0 (A0). Dacă utilizați un alt pin analogic pe Arduino, asigurați-vă că modificați schița microcontrolerului de mai jos în consecință.

Afișajul LCD este conectat la 5V, masă și pinul digital 2 (de asemenea, poate fi modificat și codul schimbat) pentru a comunica cu microcontrolerul prin protocolul de comunicare serial.

Este demn de remarcat faptul că, dacă doriți să prelungiți durata de viață a senzorului dvs., puteți conecta puterea acestuia la pinul digital și îl puteți alimenta numai atunci când citiți datele, apoi îl puteți opri. Dacă alimentați constant senzorul, elementele sale sensibile vor începe în curând să ruginească. Cu cât umiditatea solului este mai mare, cu atât se va produce coroziune mai rapidă. O altă opțiune este să aplicați tencuială de Paris pe senzor. Ca rezultat, umiditatea va curge, dar coroziunea va fi încetinită semnificativ.

Program pentru Arduino

Schița este destul de simplă. Pentru a transfera date pe ecranul LCD, trebuie să conectați biblioteca Software Serial. Dacă nu îl aveți, îl puteți descărca de aici: Arduino GitHub

Explicații suplimentare sunt furnizate în comentariile la cod:

// Un exemplu de utilizare a unui senzor de umiditate a solului cu un afișaj LCD.

SoftwareSerial mySerial(3,2); // pin 2 = TX, pin 3 = RX (nu este folosit)

int pragUp = 400;

int thresholdDown = 250;

int sensorPin = A0;

String DisplayWords;

int sensorValue;

mySerial.write(254);

mySerial.write(128);

// șterge afișajul:

mySerial.write(" ");

mySerial.write(" ");

// mutați cursorul la începutul primei rânduri a afișajului LCD:

mySerial.write(254);

mySerial.write(128);

// "Uscați, udați-l!"

mySerial.write(254);

mySerial.write(192);

mySerial.print(DisplayWords);

) else if (sensorValue >= thresholdUp)(

// mutați cursorul la începutul celei de-a doua rânduri a afișajului:

mySerial.write(254);

mySerial.write(192);

mySerial.print(DisplayWords);

// mutați cursorul la începutul celei de-a doua rânduri a afișajului:

mySerial.write(254);

mySerial.write(192);

mySerial.print(DisplayWords);

Programul folosește diferite valori minime și maxime. Ca urmare, valoarea medie poate caracteriza conținutul de umiditate în funcție de faptul că solul este umed sau uscat. Dacă nu doriți să utilizați această medie, valorile maxime și minime pot fi considerate ca fiind aceleași. Cu toate acestea, experimentele arată că abordarea propusă face posibilă caracterizarea mai precisă a proceselor care au loc în sol. Nu există o valoare medie exactă specifică în condițiile lumii reale. Deci, vă puteți juca cu eșantionarea intervalului. Dacă sunteți interesat de procesele care au loc în sol atunci când interacționați cu apa, citiți aici, de exemplu: Wiki. Procesele sunt destul de complexe și interesante.

În orice caz, trebuie să ajustați variabilele la propriile condiții: tipul de sol, nivelul necesar de umiditate. Deci testați și experimentați până vă decideți asupra valorilor potrivite.

După organizarea citirii datelor de la senzorul de umiditate și afișarea acestora, proiectul poate fi dezvoltat în continuare prin organizarea unui sistem automat de udare.

Senzor de nivel de umiditate ca parte a unui sistem automat de irigare bazat pe Arduino:

Pentru a automatiza irigarea, vom avea nevoie de piese suplimentare: poate scripete, roți dințate, un motor, un cuplaj, tranzistori, rezistențe. Lista depinde de proiectul dvs. Ei bine, tot ce poate veni la îndemână în viața de zi cu zi. Un exemplu este prezentat mai detaliat mai jos:

Aceasta este una dintre multele opțiuni pentru instalarea unui motor pentru un sistem automat de irigare. Roata poate fi instalată direct în apă. În acest caz, atunci când se rotește rapid, plantei va fi furnizată cu apă. În general, vă puteți arăta imaginația.

Diagrama de conectare pentru un motor DC () folosind un exemplu de copie a Arduino de la SparkFun este prezentată mai jos:

Mai jos este o schiță Arduino (în esență aceeași cu cea de mai sus, cu un mic adaos pentru controlul motorului):

// Schița citește datele de la senzor și afișează nivelul de umiditate a solului

// dacă solul este uscat, motorul pornește

// Biblioteca software-serial este folosită pentru a lucra cu afișajul

#include <SoftwareSerial.h>

//Conectați pinul RX serial LCD la pinul digital 2 al Arduino

SoftwareSerial mySerial(3,2); // pin 2 = TX, pin 3 = RX (nefolosit)

// Controlați motorul folosind pinul 9.

// Acest pin trebuie să accepte modularea PWM.

const int motorPin = 9;

// Aici setăm câteva constante.

// Setarea constantelor depinde de condițiile de mediu în care este utilizat senzorul

int pragUp = 400;

int thresholdDown = 250;

// Configurați pinul A0 pe Arduino pentru a funcționa cu senzorul:

int sensorPin = A0;

pinMode(motorPin, OUTPUT); // setați pinul la care este conectat motorul ca ieșire

mySerial.begin(9600); // setați rata de schimb de date la 9600 baud

întârziere (500); // așteptați până se încarcă afișajul

// Aici declarăm un șir care stochează datele care urmează să fie afișate

// pe ecranul cu cristale lichide. Valorile se vor schimba

// în funcție de nivelul de umiditate a solului

String DisplayWords;

// Variabila sensorValue stochează valoarea analogică a senzorului de la pinul A0

int sensorValue;

sensorValue = analogRead(sensorPin);

mySerial.write(128);

// șterge afișajul:

mySerial.write(" ");

mySerial.write(" ");

// mutați cursorul la începutul primei rânduri a afișajului LCD: mySerial.write(254);

mySerial.write(128);

// înregistrarea informațiilor necesare pe afișaj:

mySerial.write("Nivelul apei: ");

mySerial.print(sensorValue); //Utilizați .print în loc de .write pentru valori

// Acum vom verifica nivelul de umiditate în raport cu constantele numerice pe care le-am specificat în prealabil.

// Dacă valoarea este mai mică decât thresholdDown, afișați cuvintele:

// "Uscați, udați-l!"

// mutați cursorul la începutul celei de-a doua rânduri a afișajului:

mySerial.write(254);

mySerial.write(192);

DisplayWords = „Uscați, udați-l!”;

mySerial.print(DisplayWords);

// pornirea motorului la turație mică (0 – oprire, 255 – turație maximă):

analogWrite(motorPin, 75);

// Dacă valoarea nu este mai mică decât thresholdDown este necesar să se verifice, nu va fi

// este mai mare decât pragul nostru în sus și, dacă, este mai mare decât

// afișează „Ud, lasă-l!”:

) else if (sensorValue >= thresholdUp)(

// mutați cursorul la începutul celei de-a doua rânduri a afișajului:

mySerial.write(254);

mySerial.write(192);

DisplayWords = „Ud, lasă-l!”;

mySerial.print(DisplayWords);

// oprirea motorului (0 – oprire, 255 – turație maximă):

analogWrite(motorPin, 0);

// Dacă valoarea primită se află în intervalul dintre minim și maxim

// și pământul era umed înainte, dar acum se usucă,

// afișează inscripția „Uscați, udați-l!” (adică când noi

// se apropie de pragul în jos). Dacă solul era uscat și acum

//hidratează rapid, afișează cuvintele „Udă, lasă-l!” (adică când noi

// se apropie de pragul în sus):

// mutați cursorul la începutul celei de-a doua rânduri a afișajului:

mySerial.write(254);

mySerial.write(192);

mySerial.print(DisplayWords);

întârziere (500); //Întârziere de jumătate de secundă între citiri

Mult succes la implementarea udarii automate pentru plantele tale!

După ce următoarea mea floare s-a uscat, mi-am dat seama că ar fi bine să automatizez cumva procesul de udare. Pentru că sunt sigur că a murit din lipsă de apă.
Am decis să montez o structură care să ude floarea pentru mine. Drept urmare, am ajuns să am acest dispozitiv, care își descurcă destul de bine responsabilitățile:

Folosind două regulatoare, puteți regla volumul de apă udată la un moment dat, precum și perioada dintre udari. Pentru cei interesați, iată instrucțiuni detaliate despre cum să realizezi un astfel de dispozitiv. Am folosit Arduino (Arduino Mega) ca bază pentru creier.
Pentru a asambla sprinklerul veți avea nevoie de un număr de componente și nu mai mult de 30 de minute de timp liber.

Componente folosite:

  • Arduino Mega (tocmai l-am avut la îndemână, dar orice altul va face)
  • Pompă și tub de silicon (o pompă de spălat geamuri va face - o puteți cumpăra de la orice magazin de piese auto sau puteți cumpăra o pompă mică submersibilă pe ebay)
  • unitate de putere
  • Două rezistențe variabile pentru reglare (oricare)
  • Tranzistor IRL3705N
  • Două rezistențe (100 Ohm și 100 kOhm)
  • Dioda (oricare)
  • Rezervor de apă (în cazul meu, o cutie de plastic de la Ikea)
  • Aspect

Colectăm totul conform acestei scheme:

Sau mai clar:

Iată ce am primit:

Să testăm mai întâi pompa. Să-i aplicăm 5V. Dacă bâzâie, totul este în regulă, mergem mai departe.

Acum să conectăm pompa la Arduino. Să facem un mic cablaj pe o placă pentru a controla pompa cu Arduino.

Să încercăm să controlăm pompa cu Arduino. Să încărcăm acest cod

int pumpPin = 5 ; void setup() ( pinMode(pumpPin, OUTPUT); digitalWrite(pumpPin, LOW); ) void loop() ( digitalWrite(pumpPin, HIGH); delay(1000); digitalWrite(pumpPin, LOW); delay(1000); )

Dacă bâzâie periodic, atunci totul este bine din nou.

Acum trebuie doar să adăugăm două regulatoare. Să atașăm rezistențe variabile la dispozitivul nostru și să le verificăm funcționalitatea.

Să încărcăm acest cod în Arduino

int volumPin = A0; void setup() ( pinMode(volumePin, INPUT); Serial.begin(9600); ) void loop() ( Serial.println(analogRead(volumePin)); delay(100); )

Să mergem la Serial Monitor și să ne asigurăm că există o reacție la rotirea butonului. Ar trebui să varieze de la aproximativ 0 la 1024

Acum nu mai rămâne decât să facem totul să funcționeze împreună.

Iată codul de apă în sine:

// Primul buton controlează timpul în care apa va curge (de la 4 la 15 secunde) #define MAX_FLOWTIME 15 // secunde #define MIN_FLOWTIME 4 // secunde // Al doilea regulator controlează frecvența udării de la o dată pe zi la o dată pe săptămână#define MAX_PERIOD 7 // zile #define MIN_PERIOD 1 // zile #define MAX 1015 #define MIN 0 int volumPin = A0; // Pin la care este conectat regulatorul, care este responsabil pentru volumul de apă care trebuie udat int periodPin = A1; // Pin la care este conectat regulatorul responsabil pentru perioada dintre udari int pumpPin = 5 ; // Pin la care este conectat comanda pompei int volum; int perioada; // Procedură care pornește pompa pentru timpul specificat în volum void water() ( digitalWrite(pumpPin, HIGH); // pornește pompaîntârziere (volum); digitalWrite(pumpPin, LOW);// opriți pompa întârziere(perioada); ) void setup() ( pinMode(pumpPin, OUTPUT); digitalWrite(pumpPin, LOW); ) void loop() (// Citiți valorile regulatoarelor (rezistoare variabile) și aduceți-le la limitele specificate

volum = hartă (analogRead(volumePin), MIN, MAX, MIN_FLOWTIME, MAX_FLOWTIME) * 1000 ;



apă(); )
Totul este gata. Sa ne bucuram de vacanta. și vei ști mereu că plantele tale primesc apă.