- Reikalingos medžiagos
- Lietaus jutiklis
- Lietaus jutiklio veikimas
- Grandinės schema
- Kodo paaiškinimas
- „Arduino“ pagrįstos lietaus aptikimo sistemos darbas
Paprastą lietaus aptikimo sistemą galima lengvai sukurti susiejus „Arduino“ su lietaus jutikliu. Jutiklis aptiks visus ant jo iškritusius kritulius, o „Arduino“ lenta tai pajus ir galės atlikti reikiamus veiksmus. Tokia sistema gali būti naudojama daugelyje skirtingų sričių, pavyzdžiui, žemės ūkio ir automobilių srityse. Lietaus aptikimas gali būti naudojamas automatiškai reguliuoti drėkinimo procesą. Be to, nepertraukiamų kritulių duomenysgali padėti ūkininkams naudoti šią išmanią sistemą, kad pasėliai būtų automatiškai laistomi tik tada, kai to reikia absoliučiai. Panašiai automobilių sektoriuje priekinio stiklo valytuvai gali būti visiškai automatiniai, naudojant lietaus aptikimo sistemą. Namų automatikos sistemos taip pat gali naudoti lietaus aptikimą, kad automatiškai uždarytų langus ir sureguliuotų kambario temperatūrą. Šioje pamokoje mes sukursime pagrindinį lietaus jutiklį naudodami „Arduino“ su garsiniu signalu. Tada galite naudoti šią sąranką, kad sukurtumėte viską, ko norite. Be to, atkreipkite dėmesį, kad lietaus jutiklio modulis taip pat vadinamas lietaus lašo jutikliu arba lietaus matuoklio jutikliu arba lietaus vandens jutikliu, atsižvelgiant į naudojimą, tačiau jie visi nurodo tą patį jutiklį, naudojamą šiame projekte, ir visi jie veikia tuo pačiu principu.
Mes taip pat sukūrėme paprastą lietaus signalizaciją ir automatinį automobilio valytuvą, naudodami tik „555 Timer“. Jei nenorite naudoti „Arduino“, galbūt norėsite tai patikrinti. Tai sakant, grįžkime prie šio projekto ir pradėkime kurti savo „ Arduino“ lietaus matuoklį.
Reikalingos medžiagos
- „Arduino UNO“
- Lietaus jutiklis
- Buzeris
- Bandomoji Lenta
- Jungiamieji laidai
Lietaus jutiklis
„ Raindrops“ modulį sudaro dvi plokštės, būtent „Rain Board“ ir „Control Board“.
Lietaus lenta modulis susideda iš dviejų vario takelių, suprojektuoti taip, kad pagal sausomis sąlygomis jie teikia didelį atsparumą tiekimo įtampos, ir tai išėjimo įtampa Šio modulio bus 5V. Šio modulio atsparumas palaipsniui mažėja, atsižvelgiant į drėgmės padidėjimą lentoje. Kai pasipriešinimas mažėja, jo išėjimo įtampa taip pat mažėja, atsižvelgiant į modulio drėgnumą. Lietaus lenta modulis susideda iš dviejų kaiščių naudojami prisijungti prie valdymo plokštės, kaip parodyta žemiau.
Valdymo plokštės modulis valdo jautrumą ir konvertuoja analoginę išvestį į skaitmeninę išvestį. Jei analoginė vertė yra žemesnė už valdymo plokštės slenkstinę vertę, išėjimas yra žemas skaitmeninis, o jei analoginė vertė yra didesnė nei ribinė vertė, išėjimas yra didelis skaitmeninis. Šiam palyginimui ir konversijai naudojamas „LM393 OP-Amp Comparator“. „Op-Amp“ lygintuvas yra įdomi grandinė, kurią galima naudoti norint palyginti dvi skirtingas įtampos vertes. Mes šioje grandinėje jau naudojome daugelyje projektų, tokių kaip „Smart Electronic Candle“, „Laser Security Alarm“, „Line Follower Robot“ ir daugelyje kitų.
Lietaus valdymo modulis, kuris yra parodyta žemiau susideda iš 4 kaiščių prijungti Arduino būtent VCC, GND, D0, A0 ir dar du kaiščius prijungti lietaus lenta modulį. Apibendrinant galima pasakyti, kad lietaus lentos modulis aptinka lietaus vandenį, o valdymo plokštės modulis naudojamas jautrumui valdyti ir analoginėms reikšmėms palyginti ir paversti skaitmeninėmis.
Lietaus jutiklio veikimas
Darbas iš lietaus jutiklio modulis yra paprasta suprasti. Saulėtą dieną dėl lietaus lentos modulio sausumo jis pasižymi dideliu atsparumu maitinimo įtampai. Ši įtampa ant lietaus lentos modulio išvesties kaiščio rodoma kaip 5 V. Šis 5V skaitomas kaip 1023, jei jį skaito analoginis „Arduino“ kaištis. Lietaus metu lietaus vanduo padidina drėgnumą ant lietaus lentos, o tai savo ruožtu sumažina tiekiamo atsparumo. Kai varža palaipsniui mažėja, išėjimo įtampa pradeda mažėti.
Kai lietaus lenta bus visiškai šlapia ir jos siūloma varža bus minimali, išėjimo įtampa bus kuo mažesnė (apytiksliai 0). Ši 0 V vertė yra 0 vertė, jei ją skaito analoginis „Arduino“ kaištis. Jei lietaus lentos modulis yra iš dalies šlapias, šio lietaus lentos modulio galia bus lygi jo siūlomam atsparumui. Jei lietaus lentos modulio atsparumas yra toks, kad išėjimas būtų 3 V, nuskaityta analoginė vertė bus 613. Formulę ADC rasti galima pateikti pagal ADC = (analoginės įtampos vertė X 1023) / 5. Naudodami šią formulę, bet kurią analoginę įtampą galite konvertuoti į t „Arduino“ analoginę nuskaitymo vertę.
Grandinės schema
Žemiau pateiktoje grandinės schemoje parodytos lietaus kritimo jutiklio su „Arduino“ grandinės jungtys . Projektavimas atliekamas naudojant proteus, fiziniai moduliai yra panašūs į modulius, kurie parodyti grandinės schemoje.
Lietaus matuoklio modulis, parodytas schemoje, yra prijungtas prie valdymo plokštės. Valdymo plokštės VCC kaištis yra prijungtas prie 5 V maitinimo šaltinio. Įžeminimo kaištis yra prijungtas prie žemės. Jei reikia, D0 kaištis yra prijungtas prie bet kurio „Arduino“ skaitmeninio kaiščio, o tas kaištis programoje turi būti deklaruotas kaip išvesties kaištis. D0 kaiščio problema yra ta, kad negalime gauti tikslios išėjimo įtampos vertės. Jei išėjimas peržengia ribinę įtampą, valdymo modulis gali pajusti išėjimo pokyčius. Mes turime valdyti garsinį signalą, net jei lietaus lentos modulyje labai pasikeičia išėjimo įtampa. Dėl šių priežasčių A0 kaištis yra prijungtas prie analoginio „Arduino“ kaiščio, todėl lengva stebėti išvesties pasikeitimus. Švilpukas, kuris naudojamas kaip signalas vartotojui,gali būti prijungtas prie bet kurio „Arduino“ skaitmeninio kaiščio. Jei garsiakalbiui reikia daugiau nei 5 V, pabandykite prijungti relės grandinę arba tranzistorių ir tada prijungti apkrovą prie jo.
Kodo paaiškinimas
Lietaus jutiklio „ Arduino“ kodas buvo parašytas naudojant „Arduino IDE“. Pilnas šio projekto kodas pateikiamas puslapio pabaigoje.
#apibrėžkite kritulių kiekį A0 #define buzzer 5 int vertė; int aibė = 10;
Kaištis A0 apibrėžiamas kaip krituliai, o kaištis 5 - kaip garsinis signalas, o kintamieji „value“ ir „set“ nurodomi sveikaisiais skaičiais ir nustatoma jo kintamoji nustatyta vertė 10. Šią vertę galima pakeisti pagal reikiamą veikimo lygį. Jei norite, kad garsinis signalas suaktyvėtų, net kai yra nedaug lietaus, nustatykite jį iki minimalios vertės
negaliojanti sąranka () {Serial.begin (9600); pinMode (zumeris, OUTPUT); pinMode (krituliai, INPUT); }
Nuosekliojo ryšio inicijavimas ir garsinio signalo nustatymas. Lietaus kaiščio nustatymas kaip išvesties kaištis ir įvesties kaištis.
void loop () {value = analogRead (krituliai); Serial.println (vertė); reikšmė = žemėlapis (vertė, 0,1023,225,0);
funkcija analogRead nuskaito lietaus jutiklio vertę. Funkcijų žemėlapis atvaizduoja lietaus jutiklio vertę iš išvesties kaiščio ir priskiria kintamajam vertę nuo 0 iki 225.
if (reikšmė> = nustatyta) {Serial.println („aptiktas lietus“); „digitalWrite“ (garsinis signalas, AUKŠTAS);
Jei nuskaitymo jutiklio vertė yra didesnė už nustatytą vertę, programa įeina į kilpą, išspausdina pranešimą nuosekliajame monitoriuje ir įjungia signalą
else {digitalWrite (zumeris, LOW);
Programa įeina į kitą funkciją tik tada, kai vertė yra mažesnė už nustatytą. Ši funkcija išjungs garsinį signalą, kai nustatyta vertė bus didesnė už jutiklio vertę, o tai reiškia, kad lietaus nėra.
„Arduino“ pagrįstos lietaus aptikimo sistemos darbas
Ši sistema veikia taip, kad lyjant lietui lietaus vanduo veikia kaip gaidukas, kuris įjungia garsinį signalą. Į Rain Drop Sensor Arduino kodekso, mes nustatėme, kad smeigtukai 5 ir A0 yra švilpukas ir kritulių. Tai darydami, mes galime pakeisti kaiščius apibrėžtoje funkcijos dalyje, o likusi kodo dalis nebus paliesta. Tai leis programuotojui lengvai redaguoti kaiščius.
Tuščiajame cikle „ analogRead“ komanda nuskaito jutiklio vertę. Kitoje eilutėje komanda Serial.println (reikšmė) išspausdina reikšmę serijiniame monitoriuje. Tai bus naudinga derinant. Žemėlapio funkcija atvaizduoja gaunamą vertę tarp 0–225. Žemėlapio funkcijos formatas yra žemėlapis (vertė, mažiausia vertė, didžiausia vertė, vertė, kurią reikia susieti su mažiausia verte, vertė, kurią reikia susieti su didžiausia verte). Zumeris bus įjungtas arba išjungtas, atsižvelgiant į nustatytą vertę ir jutiklio išvestį. Ši reikšmė funkcijoje „if“ lyginama su nustatyta verte. Jei vertė yra didesnė už nustatytą vertę, ji įjungia garsinį signalą. Jei vertė yra mažesnė už nustatytą vertę, garsinis signalas bus išjungtas.
Visą darbą galite rasti toliau pateiktame vaizdo įraše. Tai yra viena iš daugelio taikymo sričių, tas pats principas bus laikomas priekinio stiklo valytuvuose, kitose namų automatikos srityse, žemės ūkio sektoriuose ir kt. Tikiuosi, kad supratote projektą ir patiko kurti ką nors naudingo. Jei turite klausimų, naudokitės žemiau esančia komentarų skiltimi arba naudokitės mūsų forumais kitiems techniniams klausimams.