- Nødvendige materialer
- Regnsensor
- Arbejde med regnsensor
- Kredsløbsdiagram
- Kode Forklaring
- Arbejde med Arduino-baseret regnregistreringssystem
Et simpelt regnregistreringssystem kan let bygges ved at forbinde en Arduino med regnsensor. Sensoren registrerer regn, der falder ned på den, og Arduino-kortet fornemmer det og kan udføre nødvendige handlinger. Et system som dette kan bruges på mange forskellige områder, såsom landbrug og bilmarker. Regndetektering kan bruges til automatisk at regulere vandingsprocessen. Også løbende data om nedbørkan hjælpe landmænd med at bruge dette smarte system til automatisk at vandre afgrøden, når det er absolut nødvendigt. På samme måde kan vinduesviskere i bilsektoren gøres fuldautomatiske ved hjælp af regnregistreringssystemet. Og hjemmeautomatiseringssystemerne kan også bruge regnregistrering til automatisk at lukke vinduer og justere stuetemperatur. I denne vejledning bygger vi en grundlæggende regnsensor ved hjælp af Arduino med en summer. Du kan derefter bruge denne opsætning til at bygge alt hvad du ønsker oven på den. Bemærk også, at regnsensormodulet også kaldes en regndråpesensor eller regnmålesensor eller regnvandssensor baseret på brug, men de refererer alle til den samme sensor, der bruges i dette projekt, og de arbejder alle på det samme princip.
Vi har også bygget en simpel regnalarm og en automatisk bilvisker ved kun at bruge 555 timer, det kan også være en god idé at kontrollere det, hvis du ikke vil bruge en Arduino. Når det er sagt, lad os vende tilbage til dette projekt og begynde at bygge vores Arduino Rain Gauge.
Nødvendige materialer
- Arduino UNO
- Regnsensor
- Summer
- Brødbræt
- Tilslutning af ledninger
Regnsensor
Den Regndråber Modulet består af to plader, nemlig Rain Bestyrelse og Control Board.
Den Rain board Modulet består af to kobber spor, der er udformet på en sådan måde, at under tørre betingelser de giver høj modstandsdygtighed over for forsyningsspændingen, og denne udgangsspænding på dette modul vil være 5V. Modulets modstand falder gradvist med hensyn til en forøgelse af fugtigheden på brættet. Når modstanden falder, falder dens udgangsspænding også med hensyn til fugtigheden på modulet. Den Rain board modul består af to ben til at forbinde til styrekortet som vist nedenfor.
Kontrolkortmodul styrer følsomheden og konverterer den analoge udgang til digital udgang. Hvis den analoge værdi er under kontrolkortets tærskelværdi, er udgangen digital lav, og hvis den analoge værdi er højere end tærskelværdien, er udgangen digital høj. Til denne sammenligning og konvertering anvendes en LM393 OP-Amp Comparator. En Op-Amp-komparator er et interessant kredsløb, der kan bruges til at sammenligne to forskellige spændingsværdier, vi har allerede brugt i dette kredsløb i mange projekter som Smart Electronic Candle, Laser Security Alarm, Line Follower Robot og meget mere.
Den Rain styremodulet er vist nedenfor består af 4 ben til at forbinde Arduino nemlig VCC, GND, D0, A0 og yderligere to ben til at forbinde regnen board modul. Sammenfattende registrerer regnkortmodulet regnvand, og kontrolkortmodulet bruges til at kontrollere følsomheden og sammenligne og konvertere de analoge værdier til digitale værdier.
Arbejde med regnsensor
Arbejdet med regnsensormodulet er let at forstå. I løbet af en solskinsdag giver det høj modstandsdygtighed over for forsyningsspændingen på grund af tørheden på regnkortmodulet. Denne spænding vises på udgangsstiften på regnkortmodulet som 5V. Denne 5V læses som 1023, hvis den læses af en analog pin fra Arduino. Under regn forårsager regnvandet en forøgelse af fugtigheden på regnbrættet, hvilket igen resulterer i et fald i modstanden, der tilbydes for forsyningen. Når modstanden falder gradvist, begynder udgangsspændingen at falde.
Når regnbrættet er helt vådt, og modstanden, som det tilbydes, er minimal, vil udgangsspændingen være så lav som muligt (ca. 0). Denne 0V læses som 0-værdi, hvis den læses af en analog pin fra Arduino. Hvis regnkortmodulet er delvist vådt, vil output fra dette regnkortmodul være med hensyn til modstanden, det giver. Hvis modstanden, der tilbydes af regnkortmodulet, er på en sådan måde, at udgangen er 3V, vil den aflæste analoge værdi være 613. Formel til at finde ADC kan gives ved, ADC = (analog spændingsværdi X 1023) / 5. Ved at bruge denne formel kan du konvertere en hvilken som helst analog spænding til t Arduino analog læseværdi.
Kredsløbsdiagram
Nedenstående kredsløbsdiagram viser kredsløbsforbindelserne til Rain Drop Sensor med Arduino. Designet udføres ved hjælp af proteus, de fysiske moduler svarer til modulerne, der er vist i kredsløbsdiagrammet.
Regnemålermodulet, som er vist i kredsløbsdiagrammet, er forbundet til kontrolkortet. Kontrolkortets VCC-pin er forbundet til 5V-forsyningen. Jordstiften er forbundet med jorden. Hvis det er nødvendigt, er D0-stiften forbundet til enhver digital pin i Arduino, og den pin skal erklæres som en output-pin i programmet. Problemet med D0-stiften er, at vi ikke kan få den nøjagtige værdi af udgangsspændingen. Hvis udgangen krydser tærskelspændingen, kan kontrolmodulet mærke ændringen i udgangen. Vi er nødt til at betjene summeren, selvom der er en betydelig ændring i udgangsspændingen i regnkortmodulet. På grund af disse grunde er A0-stikket forbundet med den analoge pin fra Arduino, hvilket gør det let at overvåge ændringen i output. Summeren, der bruges som et signal til brugeren,kan tilsluttes enhver digital pin på Arduino. Hvis summeren har brug for mere end 5V, så prøv at forbinde et relækredsløb eller en transistor og derefter forbinde belastningen til den.
Kode Forklaring
Den Arduino kode for regnsensor blev skrevet ved hjælp af Arduino IDE. Den komplette kode for dette projekt findes i slutningen af siden.
#definer nedbør A0 #definer summer 5 int værdi; int sæt = 10;
Definition af pin A0 som nedbør, og pin 5 som en summer og erklærer variabel "værdi" og "sæt" som heltal og indstiller dens variable sætværdi til 10. Denne værdi kan ændres i henhold til det krævede driftsniveau. Hvis du vil have, at summeren skal aktiveres, skal du sætte den til en minimumsværdi, selv når der er lidt regn
ugyldig opsætning () {Serial.begin (9600); pinMode (summer, OUTPUT); pinMode (nedbør, INPUT); }
Initialisering af seriel kommunikation og indstilling af summer. Indstilling af nedbørstiften som udgangsstift og inputstift.
ugyldig sløjfe () {værdi = analogRead (nedbør); Serial.println (værdi); værdi = kort (værdi, 0,1023,225,0);
funktionen analogRead læser værdien af regnsensoren. Funktionskortet kortlægger værdien af regnsensoren fra outputstiften og tildeler en værdi til variablen, der spænder fra 0 til 225.
hvis (værdi> = indstillet) {Serial.println ("regn registreret"); digitalWrite (summer, HIGH);
Hvis den aflæste sensorværdi er større end den indstillede værdi, går programmet ind i sløjfen, udskriver meddelelsen på seriel skærm og tænder summeren
ellers {digitalWrite (summer, LAV);
Programmet går kun ind i den anden funktion, når værdien er mindre end den indstillede værdi. Denne funktion slukker summeren, når den indstillede værdi er højere end sensoren, hvilket fortæller, at der ikke er regn.
Arbejde med Arduino-baseret regnregistreringssystem
Dette system fungerer på en sådan måde, at regnvand fungerer, når det er regn, som en trigger, der tænder summeren. I Arduino Code for Rain Drop Sensor definerede vi, at ben 5 og A0 er summer og regn. Ved at gøre dette kan vi ændre stifterne i den definerede del af funktionen, og den resterende del af koden vil være uberørt. Dette gør det nemt for programmereren at redigere stifterne.
I hulrummet læser kommandoen analogRead værdien fra sensoren. I den næste linje udskriver kommandoen Serial.println (værdi) værdien på den serielle skærm. Dette vil være nyttigt under fejlretning. Kortfunktionen kortlægger den indkommende værdi mellem 0-225. Funktionen format for kort er et kort (værdi, min værdi, maksimal værdi, værdi skal mappes til minimal værdi, værdi skal mappes til maksimal værdi). Summeren tændes eller slukkes afhængigt af den indstillede værdi og sensorens output. Denne værdi sammenlignes i if-funktionen med den indstillede værdi. Hvis værdien er større end den indstillede værdi, tænder den for summeren. Hvis værdien er mindre end den indstillede værdi, slukkes summeren.
Det komplette arbejde kan findes i den linkede video nedenfor. Dette er en applikation blandt de mange, det samme princip kan ses i vinduesviskere, andre hjemmeautomatisering, landbrugssektorer osv. Håber du forstod projektet og nød at bygge noget nyttigt. Hvis du har spørgsmål, skal du bruge kommentarsektionen nedenfor eller bruge vores fora til andre tekniske spørgsmål.