Krmilnik črpalke na osnovi SMS-a s samodejnim izklopom v suhem teku

Preizkusite Naš Instrument Za Odpravo Težav





V tem prispevku bomo izdelali krmilnik vodne črpalke na osnovi SMS-a s samodejnim izklopom črpalke, če ni zaznan pretok vode skozi črpalko. V naslednji polovici članka bomo izdelali še eno veliko preprostejše vezje samodejnega preprečevanja suhega teka brez GSM.

Kaj je suhi tek v motorjih

O tem smo že razpravljali Krmilnik črpalke na osnovi GSM na tej spletni strani preverite, če še niste. Tu dodajamo dodatno funkcijo obstoječe zasnove, ki preprečuje motorju suh tek.



Suhi tek pomeni vodno črpalko brez pretoka tekočine. Posledica je lahko servisna škoda do neuporabne škode, odvisno od tega, kako dolgo je motor obratoval brez črpanja vode in kakovosti vodne črpalke.

Da, vodne črpalke niso poceni in če ste kmet, ki polje namakate vsak dan, vas lahko majhna težava z vodno črpalko pripelje do gospodarske izgube.



Servisiranje črpalke lahko traja nekaj časa in denarja, zato je bolje slediti znamenitemu geslu 'preprečevanje je boljše kot zdravljenje'.

Motor na suho je zelo pogost problem, ko skozi črpalko ne teče dovolj vode, pride do pregrevanja tako mehanskih kot električnih komponent.

Na določeni točki se mehanske komponente začnejo topiti in lahko povzročijo tudi kratek stik.

Takšno nesrečo je mogoče preprečiti z vezjem, predlaganim v tem projektu.

Da bi zaznali pretok vode, smo z uporabo senzorja pretoka vode YF-S201 . Ko senzor ne zazna pretoka vode, prekine napajanje vodne črpalke in prejemniku pošlje SMS-potrditev o izklopu suhega teka.

S tem upravljanjem na osnovi GSM lahko vklopite in izklopite črpalko in tudi vezje potrdi težavo s suhim obratovanjem črpalke.

Vezje za upravljanje črpalke na osnovi SMS:

Vezje za upravljanje črpalke na osnovi SMS:

Vezje je sestavljeno iz pretvornika izmeničnega toka v enosmerni tok z 9V transformatorjem, mostičnega usmernika, glajevalnega kondenzatorja 1000 uF in regulatorja LM7809 9V. Za napajanje plošče Arduino in GSM modula SIM 800 / SIM 900 sta na voljo dva enosmerna priključka.

Nikoli ne napajajte modula GSM s 5V nožico Arduino na 5V nožico GSM modula, saj plošča Arduino ne more zagotoviti dovolj toka.

Povezava med Arduino in GSM modul kot sledi:

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

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

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

Za glavno oskrbo skrbi regulator LM 7809.

LED indikator bo svetil, če je rele aktiviran, in se ugasne, ko je rele izklopljen.

Dioda IN4007 bo absorbirala visokonapetostni konico, ki se pojavi med vklopom in izklopom releja.

Senzor pretoka vode je povezan z A0 zatičem Arduino, 5V in GND, ki ga zagotavlja plošča Arduino.

Program za zasnovo na osnovi GSM:

//----------------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 razvil R.Girish ------------ //

Kodo morate vstaviti z 10-mestno številko mobilnega telefona prejemnika.

Serial.println ('AT + CMGS = ' + 91xxxxxxxxxx ' r') // Zamenjaj x z mobilno številko

Številko mobilnega telefona morate postaviti na takšnih 5 mest v kodi.

SMS ukazi:

· Vaš SMS se mora vedno začeti z »/« in končati z »/«

· / Motor vklopljen / za vklop motorja.

· / Motor izključen / za izklop motorja.

· / Test / za preizkušanje vezja.

Tu je preizkušeni SMS med izdelavo prototipov:

preizkušen SMS med izdelavo prototipov

Na posnetku zaslona lahko opazimo naslednje stvari:

· Najprej se motor vklopi in vezje se potrdi z odgovorom.

· Motor se deaktivira in vezje se potrdi z odgovorom.

· Ponovno se motor aktivira in odklopi senzor, da simulira stanje suhega teka, vezje izklopi črpalko in odgovori s potrditvijo suhega obratovanja črpalke.

· Na koncu je poslan testni SMS in vezje je odgovorilo z »Sistem deluje v redu«.

Predlagam namestitev senzorja pretoka vode po nekaj metrih po vodni črpalki.

S tem se zaključi preprečevalec suhega delovanja črpalke na osnovi GSM.

Zdaj pa si oglejmo preprost preprečevalnik suhega delovanja vodne črpalke brez GSM, to bi lahko bilo lažje od obeh.

Shema vezja:

Krmilnik črpalke na osnovi SMS-a s samodejnim izklopom v suhem teku

Tukaj ne bo treba kaj dosti razlagati, samo ožičite v skladu s shemo. Napajanje je lahko 9V stenski adapter z najmanj 500 mA ali napajalnik, ki je prikazan v shemi krmilnika na osnovi GSM.

Tipka je namenjena za vklop in izklop črpalke.

Ko pritisnete gumb za vklop črpalke, vezje najprej čaka 20 sekund, da zazna pretok vode, v tem času pa je gumb za 20 sekund onemogočen.

Po začetnih 20 sekundah je gumb omogočen in črpalko lahko ročno IZKLOPITE s ponovnim pritiskom na gumb.

Če zazna pretok vode, vezje po 20 sekundah ohrani črpalko vklopljeno, sicer vezje prekine napajanje motorja. Tudi tokokrog lahko v vsakem trenutku prekine dovod, če ni zaznan pretok vode.

Če se vezje izklopi zaradi suhega delovanja, LED hitro utripa.

Program za preprost preprečevalnik suhega delovanja črpalke:

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

To zaključuje oba modela.

Če imate kakršna koli posebna vprašanja v zvezi s tem krmilnikom črpalke na osnovi SMS s samodejnim izklopom na suho delovanje, prosimo, izrazite v oddelku za komentarje, morda boste prejeli hiter odgovor.




Prejšnja: 4 enostavna vezja senzorjev bližine - z uporabo IC LM358, IC LM567, IC 555 Naprej: Inkubator z uporabo Arduina s samodejnim nadzorom temperature in vlažnosti