Când pleci undeva departe pentru o anumită perioadă de timp? Nu există nimeni care să-ți ude florile de interior, așa că trebuie să ceri ajutor vecinilor, care, la rândul lor, pot fi neglijenți în acest sens. Ca urmare, până la sosirea ta, plantele se vor simți rău. Pentru a preveni acest lucru, puteți face un sistem automat de irigare. În acest scop, avem nevoie de un Arduino și un senzor de umiditate a solului. În articol, vom lua în considerare un exemplu de conectare și lucru cu senzorul FC-28. S-a dovedit pozitiv, cu ajutorul a mii de proiecte create.
Despre FC-28
Există o mare varietate de senzori pentru determinarea umidității pământului, dar cel mai popular este modelul FC-28. Are un preț mic, datorită căruia este utilizat pe scară largă de toți radioamatorii în proiectele lor. Se folosește senzorul de umiditate a solului cu Arduino. Are două sonde care conduc curentul electric prin pământ. Se pare că dacă solul este umed, atunci rezistența dintre sonde este mai mică. La pământ uscat, respectiv, rezistența este mai mare. Arduino acceptă aceste valori, compară și, dacă este necesar, pornește, de exemplu, o pompă. Senzorul este capabil să funcționeze atât în mod digital, cât și în mod analog, vom lua în considerare ambele opțiuni de conectare. FC-28 este utilizat în principal în proiecte mici, de exemplu, atunci când udați automat o anumită plantă, deoarece este incomod să o utilizați la scară largă din cauza dimensiunilor și dezavantajelor sale, pe care le vom lua în considerare și.
De unde să cumpăr
Faptul este că în magazinele rusești, senzorii pentru lucrul cu Arduino sunt relativ scumpi. Prețul mediu pentru acest senzor în Rusia variază de la 200 la 300 de ruble, în timp ce în Aliexpress același senzor costă doar 30-50 de ruble. Markup-ul este uriaș. Desigur, puteți crea în continuare un senzor pentru măsurarea umidității solului cu propriile mâini, dar mai multe despre asta mai jos.
Despre conexiune
Conectarea senzorului de umiditate la Arduino este foarte ușoară. Vine cu un comparator și un potențiometru pentru reglarea sensibilității senzorului, precum și pentru setarea valorii limită atunci când este conectat folosind o ieșire digitală. Semnalul de ieșire, așa cum sa menționat mai sus, poate fi digital și analogic.
Conectarea la ieșirea digitală
Conectat aproape în același mod ca analog:
- VCC - 5V pe Arduino.
- D0 - D8 pe placa Arduino.
- GND -pământ.
După cum sa menționat mai sus, pe modulul senzorului sunt amplasate un comparator și un potențiometru. Totul funcționează astfel: folosind un potențiometru, setăm valoarea limită a senzorului nostru. FC-28 compară valoarea cu limita și apoi trimite valoarea la Arduino. Să presupunem că valorile senzorului sunt peste prag, caz în care senzorul de umiditate a solului de pe Arduino transmite 5V, dacă este mai mic - 0V. Totul este foarte simplu, dar modul analog are valori mai precise, așa că este recomandat să-l folosești.
Schema de cablare arată ca în fotografia de mai sus. cale
Codul de programare pentru Arduino atunci când utilizați modul digital este afișat mai jos.
int led_pin=13; int senzor_pin=8; void setup() { pinMode(led_pin, OUTPUT); pinMode(sensor_pin, INPUT); } void loop() { if(digitalRead(sensor_pin)==HIGH){ digitalWrite(led_pin, HIGH); } else { digitalWrite(led_pin, LOW); întârziere (1000); } }
Ce face codul nostru? În primul rând, au fost identificate două variabile. Prima variabilă - led_pin - servește la desemnarea LED-ului, iar a doua - la desemnarea senzorului de umiditate a solului. Apoi, declarăm pinul LED ca ieșire și pinul senzorului ca intrare. Acest lucru este necesar pentru a putea obține valorile și, dacă este necesar, a porni LED-ul pentru a vedea vizual că valorile senzorului sunt peste prag. În buclă, citim valorile de la senzor. Dacă valoarea este mai mare decât limita, porniți LED-ul, dacă este mai mic, opriți-l. În loc de un LEDpoate o pompă, totul depinde de tine.
Mod analog
Pentru a vă conecta folosind ieșirea analogică, trebuie să lucrați cu A0. Senzorul capacitiv de umiditate a solului din Arduino ia valori de la 0 la 1023. Conectați senzorul după cum urmează:
- VCC conectează 5V la Arduino.
- GND de pe senzor este conectat la GND de pe placa Arduino.
- A0 se conectează la A0 pe Arduino.
În continuare, scrieți codul de mai jos în Arduino.
int sensor_pin=A0; int valoare_ieșire; void setup() { Serial.begin(9600); Serial.println("Citirea senzorului"); întârziere (2000); } void loop() { output_value=analogRead(sensor_pin); valoare_ieșire=hartă(valoare_ieșire, 550, 0, 0, 100); Serial.print("Umiditate"); Serial.print(valoare_ieșire); Serial.println("%"); întârziere (1000); }
Deci, ce face acest cod? Primul pas a fost setarea variabilelor. Prima variabilă este necesară pentru a determina contactul senzorului, iar ceal altă va stoca rezultatele pe care le vom primi folosind senzorul. În continuare, citim datele. În buclă, scriem valorile de la senzor în variabila output_value pe care am creat-o. Apoi se calculează procentul de umiditate a solului, după care le afișăm pe monitorul portului. Schema de cablare este prezentată mai jos.
DIY
S-a discutat mai sus cum să conectați senzorul de umiditate a solului la Arduino. Problema cu acești senzori este că sunt de scurtă durată. Cert este că sunt foarte predispuși lacoroziune. Unele companii produc senzori cu un strat special pentru a crește durata de viață, dar tot nu este același lucru. De asemenea, este luată în considerare și opțiunea de a utiliza senzorul nu des, ci numai atunci când este necesar. De exemplu, există un cod de program în care senzorul citește în fiecare secundă valorile umidității solului. Puteți prelungi durata de viață dacă îl porniți, de exemplu, o dată pe zi. Dar dacă acest lucru nu vă convine, atunci puteți face un senzor de umiditate a solului cu propriile mâini. Arduino nu va simți diferența. Practic, sistemul este același. Pur și simplu, în loc de doi senzori, puteți să vă puneți proprii și să utilizați un material care este mai puțin susceptibil la coroziune. În mod ideal, desigur, folosiți aurul, dar având în vedere prețul acestuia, va ieși foarte scump. În general, este mai ieftin de cumpărat, având în vedere prețul FC-28.
Pro și contra
Articolul a discutat despre opțiunile pentru conectarea unui senzor de umiditate a solului la Arduino și au fost, de asemenea, prezentate exemple de cod de program. FC-28 este un senzor de umiditate a solului foarte bun, dar care sunt avantajele și dezavantajele specifice ale acestui senzor?
Pro:
- Preț. Acest senzor are un preț foarte mic, astfel încât fiecare radioamator își va putea cumpăra și construi propriul sistem automat de udare a plantelor. Desigur, atunci când lucrați cu cântare mari, acest senzor nu este potrivit, dar nu este destinat pentru aceasta. Dacă aveți nevoie de un senzor mai puternic - SM2802B, atunci va trebui să plătiți o sumă destul de mare pentru el.
- Simplitate. Stăpânirea muncii cu acest senzor de umiditate a solului în Arduino poatefiecare. Doar câteva fire, câteva linii de cod - și atât. Controlul umidității solului este finalizat.
Contra: