SMS alapú szivattyúvezérlő automatikus szárazfutás kikapcsolással

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





Ebben a bejegyzésben SMS alapú vízszivattyú vezérlőt fogunk építeni, a szivattyú automatikus leállításával, ha a szivattyún nem észlelhető vízáramlás. A cikk következő felében egy másik, sokkal egyszerűbb, GSM nélküli automatikus szárazfutás-megelőző áramkört is felépítünk.

Mi a száraz futás a motorokban

A továbbiakban már megbeszéltük GSM alapú szivattyúvezérlő ezen a weboldalon nézze meg, ha még nem tette meg. Itt egy további funkcióval egészítjük ki a meglévő kialakítást, amely megakadályozza a motor száraz működését.



Száraz futás azt jelenti, hogy a vízpumpa folyadék áramlás nélkül működik. Ennek következménye a használhatatlan károk üzemképes károsodása lehet, attól függően, hogy a motor mennyi ideig működött a víz pumpálása nélkül, és a vízpumpa minőségétől.

Igen, a vízszivattyúk nem olcsók, és ha Ön olyan mezőgazdász, aki naponta öntözi a mezőt, akkor a vízszivattyújának apró kérdése gazdasági veszteségbe sodorhatja.



A szivattyú szervizelése eltarthat némi időbe és pénzbe, ezért jobb követni a híres szlogenet: „A megelőzés jobb, mint a gyógyítás”.

Motor szárazonfutás nagyon gyakori probléma, amikor nincs elegendő víz a szivattyún keresztüli áramláshoz, a mechanikai alkatrészek, valamint az elektromos alkatrészek túlmelegedése következik be.

Egy ponton a mechanikai alkatrészek olvadni kezdenek, és rövidzárlatot is okozhatnak.

Egy ilyen katasztrófa megakadályozható a projektben javasolt áramkör használatával.

A víz áramlásának észleléséhez vagyunk az YF-S201 vízáramlás-érzékelő felhasználásával . Ha az érzékelő nem érzékel vízáramlást, akkor megszakítja a vízszivattyú áramellátását, és SMS-nyugtát küld a címzettnek a szárazfutás kikapcsolásáról.

Ezzel a GSM alapú vezérléssel be- és kikapcsolhatja a szivattyút, és az áramkör is nyugtázza a szivattyú szárazfutási problémáját.

Áramkör SMS alapú szivattyúvezérléshez:

Áramkör SMS alapú szivattyúvezérléshez:

Az áramkör 9 V-os transzformátort, váltakozó áramú egyenáramú átalakítót, hidas egyenirányítót, 1000 uF-os simító kondenzátort és LM7809 9 V-os szabályozót tartalmaz. Két DC aljzat található az Arduino kártya és a SIM 800 / SIM 900 GSM modul táplálásához.

Soha ne táplálja a GSM-modult 5 V-os Arduino tűvel és 5 V-os GSM-modullal, mivel az Arduino kártya nem képes elegendő áramot biztosítani.

Közötti kapcsolat Arduino és GSM modul alábbiak szerint:

Arduino TX ---------------------- RX SIM 800/900

Arduino RX --------------------- TX SIM 800/900

Arduino GND ------------------- GND SIM 800/900

A fő ellátást az LM 7809 szabályozó biztosítja.

A LED jelzőfény világít, ha a relé aktiválódik, és kikapcsol, amikor a relét inaktiválják.

Az IN4007 dióda elnyeli a nagyfeszültségű tüskét, amely a relé be- és kikapcsolása közben jelentkezik.

A vízáramlás-érzékelő az Arduino A0 tűjéhez csatlakozik, 5V és GND, amelyet az Arduino kártya biztosít.

Program GSM alapú tervezéshez:

//----------------Program developed by R.Girish------------//
int motor = 8
int LED = 9
int temp = 0
int i = 0
int j = 0
int k = 0
int X = 0
int Y = 0
int mtr_on = 0
float Time = 0
float frequency = 0
const int input = A0
const int test = 6
char str[15]
void setup()
{
Serial.begin(9600)
pinMode(motor, OUTPUT)
pinMode(LED, OUTPUT)
digitalWrite(motor, LOW)
digitalWrite(LED, LOW)
analogWrite(test, 100)
for (k = 0 k <60 k++)
{
delay(1000)
}
Serial.println('AT+CNMI=2,2,0,0,0')
delay(1000)
Serial.println('AT+CMGF=1')
delay(500)
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('System is ready to receive commands.')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
void loop()
{
if (temp == 1)
{
check()
temp = 0
i = 0
delay(1000)
}
if (mtr_on == 1)
{
X = pulseIn(input, HIGH)
Y = pulseIn(input, LOW)
Time = X + Y
frequency = 1000000 / Time
if (isinf(frequency))
{
digitalWrite(motor, LOW)
digitalWrite(LED, LOW)
delay(1000)
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('Motor Deactivated. Dry Run Shut Off!')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
mtr_on = 0
delay(1000)
}
}
}
void serialEvent()
{
while (Serial.available())
{
if (Serial.find('/'))
{
delay(1000)
while (Serial.available())
{
char inChar = Serial.read()
str[i++] = inChar
if (inChar == '/')
{
temp = 1
return
}
}
}
}
}
void check()
{
if (!(strncmp(str, 'motor on', 8)))
{
digitalWrite(motor, HIGH)
digitalWrite(LED, HIGH)
delay(1000)
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('Motor Activated')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
for (j = 0 j <20 j++)
{
delay(1000)
}
mtr_on = 1
}
else if (!(strncmp(str, 'motor off', 9)))
{
digitalWrite(motor, LOW)
digitalWrite(LED, LOW)
mtr_on = 0
delay(1000)
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('Motor deactivated')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
else if (!(strncmp(str, 'test', 4)))
{
Serial.println('AT+CMGS='+91xxxxxxxxxx' ') // Replace x with mobile number
delay(1000)
Serial.println('The System is Working Fine.')// The SMS text you want to send
delay(100)
Serial.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
}

// ---------------- R.Girish által kidolgozott program ------------ //

Helyeznie kell a kódot a címzett 10 jegyű mobiltelefonszámával.

Serial.println ('AT + CMGS = ' + 91xxxxxxxxxx ' r') // Cserélje le x számot mobilszámra

Ilyen 5 helyen kell elhelyeznie a mobilszámot a kódban.

SMS parancsok:

· Az SMS-nek mindig „/” betűvel kell kezdődnie és „/” betűvel kell végződnie

· / Motor be / a motor aktiválásához.

· / Motor kikapcsolva / a motor kikapcsolásához.

· / Test / az áramkör teszteléséhez.

Itt van a tesztelt SMS a prototípus készítése közben:

tesztelt SMS-t prototípus készítés közben

A következő dolgokat megfigyelhetjük a képernyőről:

· Először a motort kapcsolják be, és az áramkört válaszul nyugtázzák.

· A motort kikapcsolják, és az áramkört egy válasz nyugtázza.

· Ismét aktiválva van a motor, és húzza ki az érzékelőt a szárazfutás szimulálása érdekében. Az áramkör kikapcsolja a szivattyút, és a szivattyú szárazfutásának nyugtázásával válaszolt.

· Végül küldött egy teszt SMS-t, és az áramkör a következővel válaszolt: „A rendszer jól működik”.

Azt javaslom, hogy a vízáramlás-érzékelőt a vízszivattyú után néhány méter múlva telepítse.

Ezzel a GSM alapú szivattyú szárazonfutásgátlója következik.

Most vessünk egy pillantást az egyszerű vízszivattyús szárazfutás-gátlóra GSM nélkül, ez lehet a kettő közül a könnyebb.

Kördiagramm:

SMS alapú szivattyúvezérlő automatikus szárazfutás kikapcsolással

Itt nincs sok magyarázat, csak kapcsolja be a vázlatot. A tápegység lehet legalább 500 mA-es 9V-os fali adapter vagy a GSM-alapú vezérlő vázlatán bemutatott tápegység.

A nyomógomb biztosítja a szivattyú be- és kikapcsolását.

Miután megnyomta a gombot a szivattyú bekapcsolásához, az áramkör kezdetben 20 másodpercig vár, hogy észlelje a víz áramlását, és ezalatt a nyomógomb 20 másodpercig kikapcsol.

A kezdeti 20 másodperc elteltével a nyomógomb engedélyezve van, és a nyomógomb újbóli megnyomásával manuálisan kikapcsolhatja a szivattyút.

Ha vízáramot észlel, az áramkör 20 másodperc után BE tartja a szivattyút, különben az áramkör megszakítja a motor áramellátását. Az áramkör bármely pillanatban megszakíthatja az áramellátást, ha nem észlel vízhozamot.

Ha az áramkör száraz üzem miatt kikapcsol, a LED gyorsan villog.

Program egyszerű szivattyú szárazfutás-megelőzőhöz:

//--------------------------Program Developed by R.GIRISH------------------------//
int X = 0
int Y = 0
int i = 0
int mtr_on = 0
float Time = 0
float frequency = 0
const int input = A0
const int test = 6
const int button = A1
const int LED = 8
const int motor = 9
void setup()
{
Serial.begin(9600)
pinMode(input, INPUT)
pinMode(test, OUTPUT)
pinMode(LED, OUTPUT)
pinMode(motor, OUTPUT)
analogWrite(test, 100)
digitalWrite(button, HIGH)
}
void loop()
{
if (digitalRead(button) == LOW && mtr_on == 0)
{
Serial.println('Motor Activated')
digitalWrite(LED, HIGH)
digitalWrite(motor, HIGH)
for (i = 0 i <20 i++)
{
delay(1000)
}
mtr_on = 1
}
if (digitalRead(button) == LOW && mtr_on == 1)
{
Serial.println('Motor Deactivated')
digitalWrite(LED, LOW)
digitalWrite(motor, LOW)
mtr_on = 0
delay(1000)
}
if (mtr_on == 1)
{
X = pulseIn(input, HIGH)
Y = pulseIn(input, LOW)
Time = X + Y
frequency = 1000000 / Time
if (isinf(frequency))
{
Serial.println('Dry run shut off')
digitalWrite(motor, LOW)
digitalWrite(LED, LOW)
mtr_on = 0
while (true)
{
digitalWrite(LED, HIGH)
delay(500)
digitalWrite(LED, LOW)
delay(500)
}
}
}
}
//--------------------------Program Developed by R.GIRISH------------------------//

Ezzel lezárult mindkét terv.

Ha bármilyen kérdése van ezzel az SMS-alapú szivattyúvezérlővel, automatikus szárazfutású leállítási áramkörrel, kérjük, fejtse ki a megjegyzés részben, hogy gyors választ kaphasson.




Előző: 4 egyszerű közelségérzékelő áramkör - IC LM358, IC LM567, IC 555 használata Következő: Inkubátor Arduino használata automatikus hőmérséklet- és páratartalom-szabályozással