SMS-baserad pumpregulator med automatisk avstängning av torrkörning

Prova Vårt Instrument För Att Eliminera Problem





I det här inlägget ska vi konstruera en SMS-baserad vattenpumpregulator med automatisk avstängning av pumpen när inget vattenflöde detekteras. Vi kommer också att konstruera en annan mycket enklare automatisk torrkörningskrets utan GSM i nästa hälft av artikeln.

Vad är Dry Run in Motors

Vi har redan diskuterat GSM-baserad pumpregulator på den här webbplatsen kolla in det om inte har gjort det ännu. Här lägger vi till en ytterligare funktion på befintlig design som förhindrar att motorn torkar.



Torrkörning betyder att köra vattenpumpen utan vätskeflöde. Konsekvensen kan vara skador som kan repareras på grund av hur länge motorn var igång utan att pumpa vattnet och kvaliteten på vattenpumpen.

Ja, vattenpumparna är inte billiga och om du är en jordbruksföretagare som bevattnar åkeren varje dag, kan ett litet problem med din vattenpump leda till ekonomiska förluster.



Service på pumpen kan ta lite tid och pengar, så det är bättre att följa den berömda parollen ”förebyggande är bättre än botemedel”.

Motor torrkörning är ett mycket vanligt problem, när det inte finns tillräckligt med vatten för att strömma genom pumpen, kommer överuppvärmning av såväl mekaniska komponenter som elektriska komponenter att inträffa.

Vid en tidpunkt kommer de mekaniska komponenterna att smälta och kan också orsaka kortslutning.

En sådan katastrof kan förhindras med den krets som föreslås i detta projekt.

För att upptäcka vattenflödet är vi det använder YF-S201 vattenflödesgivare . När inget vattenflöde detekteras av sensorn stänger den av strömförsörjningen till vattenpumpen och skickar ett SMS-bekräftelse till mottagaren om avstängning av torrkörningen.

Med denna GSM-baserade kontroll kan du slå på och stänga av pumpen och även kretsen bekräftar problemet med pumpens torrkörning.

Krets för SMS-baserad pumpstyrning:

Krets för SMS-baserad pumpstyrning:

Kretsen består av AC till DC-omvandlare med 9V-transformator, brygglikriktare, en utjämningskondensator på 1000 uF och en LM7809 9V-regulator. Två DC-uttag finns för att driva Arduino-kortet och SIM 800 / SIM 900 GSM-modulen.

Slå aldrig på GSM-modulen med 5V-stift Arduino till 5V-stift GSM-modul, eftersom Arduino-kortet inte kan ge tillräckligt med ström.

Kopplingen mellan Arduino och GSM-modul som följer:

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

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

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

Huvudförsörjningen tillhandahålls av regulatorn LM 7809.

LED-indikatorn lyser om reläet är aktiverat och släcks när reläet är avaktiverat.

Dioden IN4007 absorberar högspänningsspets som inträffar när reläet slås på och av.

Vattenflödessensorn är ansluten till A0-stift av Arduino, 5V och GND från Arduino-kortet.

Program för GSM-baserad design:

//----------------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)
}
}

// ---------------- Program utvecklat av R.Girish ------------ //

Du måste placera koden med mottagarens 10-siffriga mobilnummer.

Serial.println ('AT + CMGS = ' + 91xxxxxxxxxx ' r') // Ersätt x med mobilnummer

Du måste placera mobilnumret på sådana fem platser i koden.

SMS-kommandon:

· Ditt SMS måste alltid börja med “/” och sluta med “/”

· / Motor på / för aktivering av motorn.

· / Motor av / för att avaktivera motorn.

· / Test / för test av kretsen.

Här är det testade SMS under prototyping:

testade SMS medan prototyping

Följande saker kan vi observera från skärmdumpen:

· Först slås motorn på och kretsen bekräftas med ett svar.

· Motorn är avaktiverad och kretsen kvitteras med ett svar.

· Motorn aktiveras igen och kopplar bort sensorn för att simulera torrkörningssituationen, kretsen stänger av pumpen och svarar med bekräftelse av pumptorrkörning.

· Slutligen har ett test-SMS skickats och kretsen svarade med ”Systemet fungerar bra”.

Jag föreslår att du installerar vattenflödesgivaren efter några meter efter vattenpumpen.

Det avslutar den GSM-baserade pumpen torrkörningsspärr.

Låt oss nu ta en titt på en enkel torrkörningsventil för vattenpumpar utan GSM, det här kan vara det enklaste av de två.

Kretsschema:

SMS-baserad pumpregulator med automatisk avstängning av torrkörning

Inget mycket om att förklara här, bara koppla upp enligt schemat. Strömförsörjningen kan vara en 9V-väggadapter med minst 500 mA eller den strömförsörjning som illustreras i det GSM-baserade styrschemat.

Tryckknappen finns för att slå på och av pumpen.

När du trycker på knappen för att slå på pumpen väntar kretsen till 20 sekunder för att inledningsvis upptäcka vattenflödet, under den tiden är tryckknappen inaktiverad i 20 sekunder.

Efter de första 20 sekunderna är tryckknappen aktiverad och du kan stänga av pumpen manuellt genom att trycka på tryckknappen igen.

Om vattenflöde detekteras håller kretsen pumpen PÅ efter 20 sekunder, annars bryter kretsen strömförsörjningen till motorn. Kretsen kan också avbryta matningen när som helst, om inget vattenflöde upptäcks.

Om kretsen stängs av på grund av torrkörning blinkar lysdioden snabbt.

Program för enkel pump torrkörningsskydd:

//--------------------------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------------------------//

Det avslutar båda designen.

Om du har några specifika frågor angående denna SMS-baserade pumpstyrenhet med automatisk avstängningskrets för torrkörning, vänligen uttryck i kommentarsektionen, du kan få ett snabbt svar.




Tidigare: 4 enkla närhetssensorkretsar - använder IC LM358, IC LM567, IC 555 Nästa: Inkubator med Arduino med automatisk temperatur- och luftfuktighetskontroll