- Szükséges anyagok
- Esőérzékelő
- Esőérzékelő működése
- Kördiagramm
- Kód Magyarázat
- Arduino alapú esőérzékelő rendszer működése
Egy egyszerű esőérzékelő rendszer könnyen felépíthető az Arduino és az esőszenzor összekapcsolásával. Az érzékelő észleli a rá eső csapadékot, és az Arduino tábla érzékeli, és elvégezheti a szükséges műveleteket. Egy ilyen rendszert sokféle területen lehet használni, például a mezőgazdaságban és az autóiparban. A csapadékérzékelés segítségével automatikusan szabályozható az öntözési folyamat. Továbbá, folyamatos csapadékadatoksegíthet a gazdálkodóknak abban, hogy ezt az intelligens rendszert a termés automatikus öntözéséhez használja, csak akkor, ha feltétlenül szükséges. Hasonlóképpen, az autóiparban az ablaktörlők teljesen automatizálhatók az esőérzékelő rendszer használatával. Az otthoni automatizálási rendszerek pedig az esőérzékeléssel is automatikusan bezárhatják az ablakokat és beállíthatják a helyiség hőmérsékletét. Ebben az oktatóanyagban egy alapvető esőérzékelőt építünk az Arduino használatával, egy hangjelzővel. Ezután ezt a beállítást felhasználva bármit felépíthet a tetejére. Ezenkívül vegye figyelembe, hogy az esőérzékelő modult esőcsepp-érzékelőnek vagy esőmérő-érzékelőnek vagy esővíz-érzékelőnek is nevezik a használat alapján, de mind ugyanarra az érzékelőre utalnak, amelyet ebben a projektben használtak, és mind ugyanazon az elven működnek.
Építettünk egy egyszerű esőjelzőt és egy automatikus autó ablaktörlőt is, csak az 555 Timer használatával. Érdemes ezt ellenőrizni, ha nem akar Arduino-t használni. Ennek ellenére térjünk vissza ehhez a projekthez, és kezdjük el építeni az Arduino esőmérőt.
Szükséges anyagok
- Arduino UNO
- Esőérzékelő
- Berregő
- Kenyérlemez
- Csatlakozó vezetékek
Esőérzékelő
Az Esőcsepp modul két táblából áll, mégpedig a Rain Boardból és a Control Boardból.
Az esőtábla modul két rézpályából áll, amelyeket úgy terveztek meg, hogy száraz körülmények között nagy ellenállást biztosítsanak a tápfeszültségnek, és ennek a modulnak a kimeneti feszültsége 5 V lesz. Ennek a modulnak az ellenállása fokozatosan csökken a tábla nedvességének növekedésével szemben. Az ellenállás csökkenésével a kimeneti feszültsége is csökken a modul nedvességéhez viszonyítva. Az esőtábla modul két csapból áll, amelyeket a vezérlőpanelhez való csatlakozáshoz használnak az alábbiak szerint.
A Control Board modul vezérli az érzékenységet, és az analóg kimenetet digitális kimenetté alakítja. Ha az analóg érték a vezérlőpanel küszöbértéke alatt van, a kimenet alacsony digitális értékű, és ha az analóg érték magasabb, mint a küszöbérték, akkor a kimenet digitálisan magas. Ehhez az összehasonlításhoz és átalakításhoz egy LM393 OP-Amp komparátort használnak. Az Op-Amp komparátor egy érdekes áramkör, amelyet két különböző feszültségérték összehasonlítására lehet használni. Ezt az áramkört már számos projektben használtuk, mint például az intelligens elektronikus gyertya, a lézeres biztonsági riasztás, a vonalkövető robot és még sok más.
Az alább látható esővezérlő modul 4 csapból áll az Arduino, azaz a VCC, GND, D0, A0, és további két csapból az esőtábla modul csatlakoztatásához. Összefoglalva: az esőtábla modul észleli az esővizet, és a vezérlőpanel modul segítségével szabályozzák az érzékenységet, valamint összehasonlítják és átalakítják az analóg értékeket digitális értékekké.
Esőérzékelő működése
Az esőérzékelő modul működése egyszerűen érthető. Egy napsütéses napon az esőtábla modul szárazsága miatt nagy ellenállást biztosít a tápfeszültségnek. Ez a feszültség az esőtábla modul kimeneti tüskéjén 5 V-ként jelenik meg. Ezt az 5V-t 1023-nak olvassa, ha az Arduino analóg csapja olvassa. Eső alatt az esővíz megnöveli a nedvességet az esőtáblán, ami viszont az utánpótláshoz kínált ellenállás csökkenését eredményezi. Mivel az ellenállás fokozatosan csökken, a kimeneti feszültség csökkenésnek indul.
Ha az esőtábla teljesen nedves, és az általa kínált ellenállás a legkisebb, a kimeneti feszültség a lehető legkisebb lesz (kb. 0). Ez a 0 V érték 0 értéknek számít, ha azt az Arduino analóg csapja olvassa. Ha az esőtábla modul részben nedves, ennek az esőtáblának a kimenete az általa kínált ellenálláshoz viszonyítva lesz. Ha az esőtábla modul által kínált ellenállás olyan, hogy a kimenet 3 V, akkor az olvasott analóg érték 613 lesz. Az ADC megtalálásának képletét az alábbi módon adhatjuk meg: ADC = (X 1023 analóg feszültségérték) / 5. Ennek a képletnek a segítségével bármilyen analóg feszültséget átalakíthat t Arduino analóg olvasási értékre.
Kördiagramm
Az alábbi kapcsolási rajz bemutatja az Esőcsepp-érzékelő és az Arduino kapcsolási kapcsolatait . A tervezés proteus felhasználásával történik, a fizikai modulok hasonlóak a kapcsolási rajzon bemutatott modulokhoz.
A kapcsolási rajzon látható esőmérő modul a vezérlőpanelhez van csatlakoztatva. A vezérlőpanel VCC csapja az 5 V-os tápfeszültséghez csatlakozik. A földelőcsap csatlakozik a földhöz. Szükség esetén a D0 tű csatlakozik az Arduino bármely digitális tűjéhez, és ezt a csapot kimeneti tűként kell deklarálni a programban. A D0-tűvel az a probléma, hogy nem tudjuk megkapni a kimeneti feszültség pontos értékét. Ha a kimenet átlépi a küszöbfeszültséget, akkor a vezérlő modul érzékeli a kimenet változását. Működtetnünk kell a hangjelzőt, még akkor is, ha az esőtábla modul kimeneti feszültségében jelentős változás következik be. Ezen okok miatt az A0 tű csatlakozik az Arduino analóg tűjéhez, ami megkönnyíti a kimenet változásának nyomon követését. A hangjelző, amelyet a felhasználó jelzésére használnak,az Arduino bármely digitális tűjéhez csatlakoztatható. Ha a hangjelzőnek 5 V-nál nagyobb feszültségre van szüksége, akkor próbáljon meg egy relé áramkört vagy egy tranzisztort csatlakoztatni, majd a terhelést hozzá csatlakoztatni.
Kód Magyarázat
Az esőérzékelő Arduino kódját az Arduino IDE segítségével írták. A projekt teljes kódja az oldal végén található.
#define csapadék A0 #define buzzer 5 int érték; int halmaz = 10;
Az A0 érintkező meghatározása csapadékként, az 5. tű pedig hangjelzésként, az „érték” és a „beállított” változó egész számként való kijelölése és a változó alapérték 10-re állítása. Ez az érték a kívánt működési szintnek megfelelően megváltoztatható. Ha azt szeretné, hogy a hangjelző aktiválódjon, akkor is, ha kevés az eső, állítsa minimális értékre
void setup () {Soros.kezdés (9600); pinMode (hangjelző, OUTPUT); pinMode (csapadék, INPUT); }
A soros kommunikáció inicializálása és a hangjelzés beállítása. A csapadékcsap beállítása kimeneti és bemeneti tűként.
void loop () {value = analogRead (csapadék); Soros.println (érték); érték = térkép (érték, 0,1023,225,0);
az analogRead funkció beolvassa az esőérzékelő értékét. A függvénytérkép a kimeneti csapból feltérképezi az esőérzékelő értékét, és a változóhoz 0 és 225 közötti értéket rendel.
if (érték> = beállítva) {Serial.println ("esőt észleltek"); digitalWrite (hangjelző, HIGH);
Ha az olvasásérzékelő értéke nagyobb, mint a beállított érték, akkor a program belép a hurokba, kinyomtatja az üzenetet a soros monitoron és bekapcsolja a hangjelzőt
else {digitalWrite (hangjelző, LOW);
A program csak akkor lép be az else függvénybe, ha az érték kisebb, mint a beállított érték. Ez a funkció kikapcsolja a hangjelzőt, ha a beállított érték magasabb, mint az érzékelő értéke, ami azt jelzi, hogy nincs eső.
Arduino alapú esőérzékelő rendszer működése
Ez a rendszer úgy működik, hogy eső esetén az esővíz kiváltó szerepet játszik, amely bekapcsolja a hangjelzőt. Az esőcsepp-érzékelő Arduino-kódjában meghatároztuk, hogy az 5-ös és az A0-as tű zümmög és eső. Ezzel megváltoztathatjuk a gombokat a függvény meghatározott részében, és a kód fennmaradó része érintetlen marad. Ez megkönnyíti a programozót a csapok szerkesztésében.
A void ciklusban az analogRead parancs kiolvassa az értéket az érzékelőből. A következő sorban a Serial.println (érték) parancs kinyomtatja az értéket a soros monitoron. Ez hasznos lesz a hibakeresés során. A térképfunkció a bejövő értéket 0 -225 között térképezi fel. A térkép függvényformátuma egy térkép (érték, min érték, maximális érték, a minimális értékhez leképezendő érték, a maximális értékhez leképezendő érték). A hangjelző be- vagy kikapcsol, a beállított értéktől és az érzékelő kimenetétől függően. Ezt az értéket az if függvényben összehasonlítjuk a beállított értékkel. Ha az érték nagyobb, mint a beállított érték, bekapcsolja a hangjelzőt. Ha az érték kisebb, mint a beállított érték, a hangjelző kikapcsol.
A teljes munka megtalálható az alábbi videóban. Ez az egyik alkalmazás a sok közül, ugyanaz az elv fog érvényesülni az ablaktörlőkben, más otthoni automatizálási, mezőgazdasági szektorokban stb. Remélem, megértette a projektet, és élvezett valami hasznos építését. Ha bármilyen kérdése van, használja az alábbi megjegyzések részt, vagy más technikai kérdésekhez használja fórumunkat.