- Materiale necesare
- Senzor de ploaie
- Funcționarea senzorului de ploaie
- Diagrama circuitului
- Explicarea codului
- Funcționarea sistemului de detectare a ploii bazat pe Arduino
Un sistem simplu de detectare a ploii poate fi construit cu ușurință prin interfața unui Arduino cu senzorul de ploaie. Senzorul va detecta orice precipitații care cad asupra sa, iar placa Arduino o va simți și poate efectua acțiunile necesare. Un sistem ca acesta poate fi utilizat în multe domenii diferite, cum ar fi agricultura și domeniile auto. Detectarea precipitațiilor poate fi utilizată pentru a regla automat procesul de irigare. De asemenea, date privind precipitațiile continuepoate ajuta fermierii să utilizeze acest sistem inteligent pentru a uda automat cultura numai atunci când este absolut necesar. În mod similar, în sectorul automobilelor ștergătoarele de parbriz pot fi făcute complet automate utilizând sistemul de detectare a ploii. Și Sistemele de automatizare casnică pot utiliza, de asemenea, detectarea ploii pentru a închide automat ferestrele și a regla temperatura camerei. În acest tutorial, vom construi un senzor de ploaie de bază folosind Arduino cu un buzzer. Apoi puteți utiliza această setare pentru a construi orice doriți deasupra. De asemenea, rețineți că modulul de senzor de ploaie este, de asemenea, menționată ca un senzor de picătură de ploaie sau senzor pluviometru sau senzor de apa de ploaie în funcție de utilizare, dar toate se referă la același senzor utilizat în acest proiect și toate lucrările pe același principiu.
De asemenea, am construit o alarmă simplă de ploaie și un ștergător de mașină automat folosind numai 555 Timer, poate doriți să verificați și asta dacă nu doriți să utilizați un Arduino. Acestea fiind spuse, să revenim la acest proiect și să începem să construim Arduino Rain Gauge.
Materiale necesare
- Arduino UNO
- Senzor de ploaie
- Buzzer
- Breadboard
- Conectarea firelor
Senzor de ploaie
Modulul Raindrops este format din două plăci, și anume Consiliul de ploaie și Control Board.
Modulul Rain board este format din două piste de cupru, proiectate în așa fel încât în condiții uscate să ofere o rezistență ridicată la tensiunea de alimentare, iar această tensiune de ieșire a acestui modul va fi de 5V. Rezistența acestui modul scade treptat în ceea ce privește creșterea umezelii de pe placă. Pe măsură ce rezistența scade, tensiunea sa de ieșire scade și în ceea ce privește umezeala de pe modul. Modulul Rain board este format din doi pini utilizați pentru conectarea la placa de control, așa cum se arată mai jos.
Modulul Control Board controlează sensibilitatea și convertește ieșirea analogică în ieșire digitală. Dacă valoarea analogică este sub valoarea prag a plăcii de control, ieșirea este digitală scăzută și dacă valoarea analogică este mai mare decât valoarea pragului, ieșirea este digitală ridicată. Pentru această comparație și conversie, se folosește un comparator LM393 OP-Amp. Un comparator Op-Amp este un circuit interesant care poate fi folosit pentru a compara două valori diferite de tensiune, am folosit deja în acest circuit în multe proiecte precum Lumânarea electronică inteligentă, Alarma de securitate laser, Robotul de urmărire a liniei și multe altele.
Modulul de comandă ploaie, care este prezentat mai jos este format din 4 pini pentru conectarea Arduino și anume VCC, GND, D0, A0 și mai multe doi pini pentru conectarea modulului de bord ploaie. Pe scurt, modulul ploaie de ploaie detectează apa de ploaie, iar modulul plăcii de control este utilizat pentru a controla sensibilitatea și a compara și converti valorile analogice în valori digitale.
Funcționarea senzorului de ploaie
Funcționarea modulului senzor de ploaie este ușor de înțeles. În timpul unei zile însorite, datorită uscăciunii modulului de ploaie, oferă o rezistență ridicată la tensiunea de alimentare. Această tensiune apare pe pinul de ieșire al modulului de ploaie de ploaie ca 5V. Acest 5V este citit ca 1023 dacă este citit de un pin analogic al Arduino. În timpul ploii, apa de ploaie determină o creștere a umezelii pe ploaia de ploaie, ceea ce duce la scăderea rezistenței oferite pentru aprovizionare. Pe măsură ce rezistența scade treptat, tensiunea de ieșire începe să scadă.
Când placa de ploaie este complet umedă, iar rezistența oferită de aceasta este minimă, tensiunea de ieșire va fi cât mai mică posibil (aprox. 0). Acest 0V este citit ca valoare 0 dacă este citit de un pin analogic al Arduino. Dacă modulul de ploaie de ploaie este parțial umed, ieșirea acestui modul de ploaie de ploaie va fi în raport cu rezistența pe care o oferă. Dacă rezistența oferită de modulul de ploaie de ploaie este în așa fel încât ieșirea să fie de 3V, valoarea analogică citită va fi 613. Formula pentru a găsi ADC poate fi dată de, ADC = (valoarea tensiunii analogice X 1023) / 5. Utilizând această formulă puteți converti orice tensiune analogică în valoarea de citire analogică Arduino.
Diagrama circuitului
Diagrama de circuit de mai jos vă arată conexiunile de circuit pentru senzorul de picătură de ploaie cu Arduino. Proiectarea se face folosind proteus, modulele fizice sunt similare cu modulele prezentate în diagrama circuitului.
Modulul pluviometru, care este prezentat în schema circuitului, este conectat la placa de control. Pinul VCC al plăcii de control este conectat la sursa de 5V. Știftul de masă este conectat la masă. Dacă este necesar, pinul D0 este conectat la orice pin digital al Arduino, iar acel pin trebuie să fie declarat ca pin de ieșire în program. Problema cu care ne confruntăm cu pinul D0 este că nu putem obține valoarea exactă a tensiunii de ieșire. Dacă ieșirea depășește tensiunea de prag, atunci modulul de control poate simți modificarea ieșirii. Trebuie să acționăm soneria, chiar dacă există o schimbare considerabilă a tensiunii de ieșire în modulul de ploaie de ploaie. Din aceste motive, pinul A0 este conectat la pinul analogic al Arduino, ceea ce facilitează monitorizarea schimbării de ieșire. Buzzer-ul, care este utilizat ca semnal pentru utilizator,poate fi conectat la orice pin digital al Arduino. Dacă buzzerul are nevoie de mai mult de 5V, atunci încercați să conectați un circuit de releu sau un tranzistor și apoi conectați sarcina la acesta.
Explicarea codului
Codul Arduino pentru senzor de ploaie a fost scris folosind Arduino IDE. Codul complet pentru acest proiect este dat la sfârșitul paginii.
#define precipitații A0 #define buzzer 5 int value; int set = 10;
Definirea pinului A0 ca precipitații și pinul 5 ca buzzer și declararea variabilelor „valoare” și „set” ca numere întregi și setarea valorii sale variabile setate la 10. Această valoare poate fi modificată în funcție de nivelul de operare necesar. Dacă doriți ca buzzerul să se activeze, chiar și atunci când este puțină ploaie, setați-l la o valoare minimă
void setup () {Serial.begin (9600); pinMode (buzzer, OUTPUT); pinMode (precipitații, INPUT); }
Inițializarea comunicării seriale și setarea soneriei. Setarea pinului pentru precipitații ca pin de ieșire și pin de intrare.
bucla void () {valoare = analogRead (precipitații); Serial.println (valoare); valoare = hartă (valoare, 0,1023,225,0);
funcția analogRead citește valoarea senzorului de ploaie. Harta funcțională mapează valoarea senzorului de ploaie de la pinul de ieșire și atribuie o valoare variabilei, variind de la 0 la 225.
if (valoare> = set) {Serial.println ("ploaie detectată"); digitalWrite (buzzer, HIGH);
Dacă valoarea senzorului de citire este mai mare decât valoarea setată, atunci programul intră în buclă, imprimă mesajul pe monitorul serial și pornește buzzerul
else {digitalWrite (buzzer, LOW);
Programul intră în funcția else numai atunci când valoarea este mai mică decât valoarea setată. Această funcție va opri soneria atunci când valoarea setată este mai mare decât valoarea senzorului, ceea ce spune că nu este ploaie.
Funcționarea sistemului de detectare a ploii bazat pe Arduino
Acest sistem funcționează în așa fel încât, atunci când este ploaie, apa de ploaie acționează ca un declanșator, care pornește soneria. În Codul Arduino al senzorului de picătură de ploaie, am definit că pinii 5 și A0 sunt buzzer și precipitații. Procedând astfel, putem schimba pinii din partea definită a funcției, iar partea rămasă a codului va fi neatinsă. Acest lucru va face programatorul să editeze cu ușurință pinii.
În bucla de gol, comanda analogRead citește valoarea de la senzor. În următoarea linie, comanda Serial.println (valoare), imprimă valoarea pe monitorul serial. Acest lucru va fi util în timpul depanării. Funcția de hartă mapează valoarea de intrare între 0 -225. Formatul funcției pentru hartă este o hartă (valoare, valoare minimă, valoare maximă, valoare care trebuie mapată pentru valoarea minimă, valoare care trebuie mapată pentru valoarea maximă). Buzzerul va fi pornit sau oprit, în funcție de valoarea setată și de ieșirea senzorului. Această valoare este comparată în funcția if, cu valoarea setată. Dacă valoarea este mai mare decât valoarea setată, va porni soneria. Dacă valoarea este mai mică decât valoarea setată, soneria va fi oprită.
Lucrarea completă poate fi găsită în videoclipul legat mai jos. Aceasta este o aplicație printre multe, același principiu va fi văzut în ștergătoarele de parbriz, alte sisteme de automatizare a locuințelor, sectoarele agricole etc. Sper că ați înțeles proiectul și v-a plăcut să construiți ceva util. Dacă aveți întrebări, utilizați secțiunea de comentarii de mai jos sau folosiți forumurile noastre pentru alte întrebări tehnice.