SMS-baseret pumpestyring med automatisk slukning af tørkørsel

Prøv Vores Instrument Til At Fjerne Problemer





I dette indlæg skal vi konstruere en SMS-baseret vandpumpestyring med automatisk nedlukning af pumpen, når der ikke registreres nogen vandstrøm gennem pumpen. Vi vil også konstruere et andet meget enklere automatisk tørkørselsforebyggende kredsløb uden GSM i den næste halvdel af artiklen.

Hvad er Dry Run in Motors

Vi har allerede diskuteret GSM-baseret pumpestyring på dette websted, tjek det ud, hvis det ikke har gjort det endnu. Her tilføjer vi en ekstra funktion på eksisterende design, som forhindrer motoren i at tørre.



Tørløb betyder at køre vandpumpen uden væskestrøm. Konsekvensen kan være beskadigelse af ubrugelig skade, der kan repareres, afhængigt af hvor længe motoren kørte uden at pumpe vandet og vandpumpens kvalitet.

Ja, vandpumperne er ikke billige, og hvis du er en landbruger, der vander marken hver dag, kan et lille problem med din vandpumpe give dig økonomiske tab.



Vedligeholdelse af pumpen kan tage lidt tid og penge, så det er bedre at følge det berømte slogan 'forebyggelse er bedre end helbredelse'.

Motortørkørsel er et meget almindeligt problem, når der ikke er nok vand til at strømme gennem pumpen, vil der forekomme overopvarmning af mekaniske komponenter såvel som elektriske komponenter.

På et tidspunkt begynder de mekaniske komponenter at smelte og kan også forårsage kortslutning.

En sådan katastrofe kan forhindres ved hjælp af det kredsløb, der er foreslået i dette projekt.

For at opdage vandstrømmen er vi det ved hjælp af YF-S201 vandstrømssensor . Når sensoren ikke registrerer vandstrøm, afbryder den strømforsyningen til vandpumpen og sender en SMS-bekræftelse til modtageren om, at tørkørslukningen er slået fra.

Med denne GSM-baserede kontrol kan du tænde og slukke for pumpen, og kredsløbet anerkender også problemet med pumpens tørkørsel.

Kredsløb til SMS-baseret pumpestyring:

Kredsløb til SMS-baseret pumpestyring:

Kredsløbet består af AC til DC-konverter ved hjælp af 9V transformer, bro ensretter, en udjævningskondensator på 1000 uF og en LM7809 9V regulator. Der findes to DC-stik til strømforsyning af Arduino-kort og SIM 800 / SIM 900 GSM-modul.

Tænd aldrig GSM-modulet med 5V pin Arduino til 5V pin GSM-modul, da Arduino-kortet ikke kan give strøm nok.

Forbindelsen mellem Arduino og GSM modul som følger:

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

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

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

Hovedforsyningen leveres af LM 7809 regulator.

LED-indikatoren lyser, hvis relæet er aktiveret og slukker, når relæet er deaktiveret.

Dioden IN4007 absorberer højspændingsspids, der opstår, når relæet tændes og slukkes.

Vandstrømssensoren er forbundet til A0-stift af Arduino, 5V og GND leveret fra Arduino-kortet.

Program til GSM-baseret 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 udviklet af R.Girish ------------ //

Du skal placere koden med modtagerens 10-cifrede mobiltelefonnummer.

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

Du skal placere mobilnummeret på sådanne 5 steder i koden.

SMS-kommandoer:

· Din SMS skal altid starte med “/” og slutte med “/”

· / Motor tændt / til aktivering af motoren.

· / Motor slukket / til deaktivering af motoren.

· / Test / til test af kredsløbet.

Her er den testede SMS under prototyping:

testet SMS under prototyping

Følgende ting kan vi observere fra skærmbilledet:

· Først tændes motoren, og kredsløbet bekræftes med et svar.

· Motoren er deaktiveret, og kredsløbet kvitteres med et svar.

· Igen aktiveres motoren og frakobles sensoren for at simulere tørløbssituation, kredsløbet slukker for pumpen og svarede med kvittering for pumpetørring.

· Endelig er der sendt en test-SMS, og kredsløbet svarede med “System fungerer fint”.

Jeg vil foreslå, at du installerer vandstrømssensoren efter et par meter efter vandpumpen.

Det konkluderer den GSM-baserede pumpe-tørkørselsbeskyttelse.

Lad os nu se på simpel vandpumpe tørløbsbeskytter uden GSM, dette kan være det lettere af de to.

Kredsløbsdiagram:

SMS-baseret pumpestyring med automatisk slukning af tørkørsel

Intet meget om at forklare her, bare træk op ifølge skematisk. Strømforsyningen kan være en 9V vægadapter med mindst 500 mA eller den forsyning, der er illustreret i den GSM-baserede controller-skema.

Trykknappen findes for at tænde og slukke for pumpen.

Når du først har trykket på knappen for at tænde pumpen, venter kredsløbet oprindeligt til 20 sekunder for at registrere vandstrømmen. I løbet af den tid er trykknappen deaktiveret i 20 sekunder.

Efter de første 20 sekunder er trykknappen aktiveret, og du kan slukke for pumpen manuelt ved at trykke på trykknappen igen.

Hvis der registreres vandgennemstrømning, holder kredsløbet pumpen TIL efter 20 sekunder, ellers afbryder kredsløbet strømforsyningen til motoren. Også kredsløbet kan afbryde forsyningen på ethvert tidspunkt, hvis der ikke registreres nogen vandstrøm.

Hvis kredsløbet er slukket på grund af tørkørsel, blinker LED'en hurtigt.

Program til simpelt pumpetørrer:

//--------------------------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 afslutter begge design.

Hvis du har specifikke spørgsmål vedrørende denne SMS-baserede pumpestyring med automatisk nedlukning af tørkørsel, bedes du udtrykke i kommentarsektionen, du kan muligvis modtage et hurtigt svar.




Forrige: 4 enkle nærhedssensorkredsløb - Brug af IC LM358, IC LM567, IC 555 Næste: Inkubator ved hjælp af Arduino med automatisk temperatur- og fugtighedskontrol