SMS-põhine pumba kontroller automaatse kuivkäivituse väljalülitamisega

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Selles postituses ehitame SMS-põhise veepumba kontrolleri koos pumba automaatse väljalülitamisega, kui pumba kaudu ei tuvastata veevoolu. Artikli järgmises pooles ehitame ka teise palju lihtsama automaatse kuivkäivituse vältimise vooluringi ilma GSM-ta.

Mis on mootoris kuivkäik

Oleme juba arutanud GSM-põhine pumba kontroller vaadake sellel veebisaidil, kui te pole seda veel teinud. Lisame olemasolevale konstruktsioonile täiendava funktsiooni, mis hoiab ära mootori kuivkäivituse.



Kuiv jooks tähendab veepumba töötamist ilma vedeliku vooluta. Tagajärg võib olla kasutamiskõlbmatute kahjustuste hooldatav kahju, sõltuvalt mootori töötamisest ilma vett pumpamata ja veepumba kvaliteedist.

Jah, veepumbad pole odavad ja kui olete põllumees, kes niisutab põlde iga päev, siis võib teie veepumbaga seotud väike probleem tuua teid majanduslikult kahjumisse.



Pumba hooldamine võib võtta aega ja raha, seega on parem järgida kuulsat loosungit “ennetamine on parem kui ravi”.

Mootori kuivkäik on väga levinud probleem, kui pumba kaudu voolamiseks pole piisavalt vett, tekib nii mehaaniliste kui ka elektriliste komponentide ülekuumenemine.

Ühel hetkel hakkavad mehaanilised komponendid sulama ja võivad põhjustada ka lühise.

Sellist katastroofi saab vältida selles projektis välja pakutud vooluringi abil.

Veevoolu tuvastamiseks oleme kasutades veevooluandurit YF-S201 . Kui andur ei tuvasta veevoolu, katkestab see veepumba toiteallika ja saadab saajale SMS-kinnituse kuivkäigu väljalülitamise kohta.

Selle GSM-põhise juhtimisega saate pumba sisse ja välja lülitada ning ka vooluahel tunnistab pumba kuivkäivituse probleemi.

SMS-põhise pumba juhtimise ahel:

SMS-põhise pumba juhtimise ahel:

Vooluahel koosneb vahelduvvoolu-alalisvoolu muundurist, kasutades 9V trafot, sillalaldist, silumiskondensaatorit 1000 uF ja LM7809 9V regulaatorit. Arduino plaadi ja SIM 800 / SIM 900 GSM-mooduli toitmiseks on ette nähtud kaks alalisvoolupistikut.

Ära kunagi toida GSM-moodulit 5V Arduino tihvtiga kuni 5V GSM-mooduli tihvtiga, kuna Arduino plaat ei suuda pakkuda piisavalt voolu.

Seos Arduino ja GSM moodul järgnevalt:

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

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

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

Põhivarustuse tagab regulaator LM 7809.

LED-indikaator süttib, kui relee on sisse lülitatud, ja lülitub välja, kui relee deaktiveeritakse.

Diood IN4007 neelab relee sisse- ja väljalülitamisel tekkiva kõrgepinge piigi.

Veevooluandur on ühendatud Arduino A0 tihvtiga, 5V ja GND Arduino plaadilt.

GSM-põhise disaini programm:

//----------------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.Girishi välja töötatud programm ------------ //

Peate sisestama koodi koos saaja 10-kohalise mobiiltelefoninumbriga.

Serial.println ('AT + CMGS = ' + 91xxxxxxxxxx ' r') // Asenda x mobiilinumbriga

Peate paigutama mobiilinumbri sellesse 5 kohta koodi.

SMS-käsklused:

· Teie SMS peab alati algama tähega “/” ja lõppema tähega “/”

· / Mootor sisse / mootori aktiveerimiseks.

· / Mootor välja / mootori väljalülitamiseks.

· / Test / vooluringi testimiseks.

Prototüüpimise ajal on testitud SMS:

testitud SMS prototüüpimise ajal

Järgmisi asju võime ekraanipildilt jälgida:

· Kõigepealt lülitatakse mootor sisse ja vooluahel kinnitatakse vastusega.

· Mootor deaktiveeritakse ja vooluahel kinnitatakse vastusega.

· Jällegi on mootor aktiveeritud ja anduri pistikupesast välja lülitamine, et simuleerida kuiva sõidu olukorda, vooluring lülitab pumba välja ja vastas pumba kuivkäigu kinnitusega.

· Lõpuks on saadetud test-SMS ja ahel vastas 'Süsteem töötab hästi'.

Ma soovitaksin veevooluanduri paigaldada paari meetri pärast pärast veepumpa.

Sellega järeldub GSM-põhine pumba kuivkäitumise vältija.

Vaatame nüüd lihtsat veepumba kuivkäivituse tõkestajat ilma GSM-ta, see võiks olla neist kahest lihtsam.

Vooluahela skeem:

SMS-põhine pumba kontroller automaatse kuivkäivituse väljalülitamisega

Siin pole midagi suurt seletada, lihtsalt ühendage skeem vastavalt juhistele. Toiteallikaks võib olla vähemalt 500 mA 9V seinaadapter või GSM-põhise kontrolleri skeemil illustreeritud toiteallikas.

Pumba sisse- ja väljalülitamiseks on olemas surunupp.

Kui olete pumba sisselülitamiseks nuppu vajutanud, ootab vooluring voolu tuvastamiseks esialgu 20 sekundit, selle aja jooksul lülitatakse nupp 20 sekundiks välja.

Pärast esimest 20 sekundit on nupp lubatud ja võite pumba uuesti vajutades käsitsi välja lülitada.

Kui tuvastatakse veevool, hoiab vooluahel pumpa 20 sekundi pärast SEES, vastasel juhul katkestab vooluahel mootori toiteallika. Samuti võib vooluring katkestada toite igal hetkel, kui veevoolu ei tuvastata.

Kui vooluring lülitub kuivkäigu tõttu välja, vilgub LED kiiresti.

Programm lihtsa pumba kuivkäivituse vältimiseks

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

Sellega on mõlemad kujundused lõppenud.

Kui teil on selle SMS-põhise pumba regulaatori kohta, millel on automaatne kuivkäivituslülitus, küsige palun kommentaaride jaotises, võite saada kiire vastuse.




Eelmine: 4 lihtsat lähedusanduri ahelat - kasutades IC LM358, IC LM567, IC 555 Järgmine: Inkubaator Arduino abil automaatse temperatuuri ja niiskuse juhtimisega