SMS žinute pagrįstas siurblio valdiklis su automatiniu sauso išjungimo išjungimu

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Šiame pranešime mes sukursime SMS pagrindu veikiantį vandens siurblio valdiklį su automatiniu siurblio išjungimu, kai vandens srautas per siurblį nenustatomas. Kitoje straipsnio pusėje taip pat sukursime dar vieną daug paprastesnę automatinio sauso važiavimo prevencijos grandinę be GSM.

Kas yra „Dry Run“ varikliuose

Mes jau aptarėme GSM siurblio valdiklis šioje svetainėje patikrinkite, jei dar to nepadarėte. Čia pridedame papildomą esamo dizaino funkciją, kuri neleis varikliui veikti sausai.



Sausas bėgimas reiškia vandens siurblio veikimą be skysčio srauto. To pasekmė gali būti netinkama eksploatuoti žala, atsižvelgiant į tai, kiek laiko variklis dirbo nepumpuodamas vandens, ir vandens siurblio kokybę.

Taip, vandens siurbliai nėra pigūs ir jei jūs esate žemės ūkio specialistas, kuris kiekvieną dieną laistote lauką, tai nedidelis jūsų vandens siurblio klausimas gali padėti jums patirti ekonominių nuostolių.



Siurblio aptarnavimas gali užtrukti šiek tiek laiko ir pinigų, todėl geriau vadovautis garsiuoju šūkiu „geriau prevencija nei gydymas“.

Variklio sausas važiavimas yra labai dažna problema, kai per siurblį tekėti nepakanka vandens, todėl mechaniniai ir elektriniai komponentai bus perkaitę.

Tam tikru metu mechaniniai komponentai pradės tirpti ir gali sukelti trumpąjį jungimą.

Tokiai nelaimei galima išvengti naudojant šiame projekte pasiūlytą grandinę.

Norėdami nustatyti vandens srautą, mes esame naudojant vandens srauto jutiklį YF-S201 . Kai jutiklis neaptinka vandens srauto, jis nutraukia vandens siurblio maitinimą ir išsiunčia SMS patvirtinimą gavėjui apie sauso bėgio išjungimą.

Naudodami šį GSM valdiklį galite įjungti ir išjungti siurblį, o grandinė taip pat patvirtina sauso siurblio veikimo problemą.

SMS siurblio valdymo grandinė:

SMS siurblio valdymo grandinė:

Šią grandinę sudaro kintamosios ir nuolatinės srovės keitiklis, naudojant 9 V transformatorių, tiltinis lygintuvas, lyginamasis 1000 uF kondensatorius ir LM7809 9 V reguliatorius. „Arduino“ plokštei ir SIM 800 / SIM 900 GSM moduliui maitinti yra du nuolatinės srovės lizdai.

Niekada maitinkite GSM modulį su 5V „Arduino“ kaiščiu ir 5V „GSM“ modulio kontaktu, nes „Arduino“ plokštė negali užtikrinti pakankamai srovės.

Ryšys tarp „Arduino“ ir GSM modulis taip:

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

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

„Arduino GND“ ------------------- GND SIM 800/900

Pagrindinį tiekimą teikia reguliatorius LM 7809.

LED indikatorius šviečia, jei relė yra įjungta, ir išsijungia, kai relė išjungiama.

Diodas IN4007 sugers aukštos įtampos šuolį, kuris atsiranda įjungiant ir išjungiant relę.

Vandens srauto jutiklis prijungtas prie „Arduino“ A0 kaiščio, 5 V ir GND, pateikto iš „Arduino“ plokštės.

GSM projektavimo programa:

//----------------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ą sukūrė R.Girishas ------------ //

Turite įdėti kodą su gavėjo 10 skaitmenų mobiliojo telefono numeriu.

Serial.println ('AT + CMGS = ' + 91xxxxxxxxxx ' r') // Pakeiskite x mobiliojo telefono numeriu

Jums reikia įdėti mobiliojo telefono numerį tokiose 5 kodo vietose.

SMS komandos:

· Jūsų SMS visada turi prasidėti „/“ ir baigtis „/“

· / Variklis įjungtas / varikliui įjungti.

· / Variklis išjungtas / varikliui išjungti.

· / Test / grandinės testavimui.

Prototipų kūrimo metu išbandyta SMS žinutė:

išbandė SMS prototipų kūrimo metu

Šiuos dalykus galime stebėti iš ekrano:

· Pirmiausia įjungiamas variklis ir atsakymas patvirtinamas grandine.

· Variklis yra išjungtas ir grandinė patvirtinama atsakymu.

· Vėlgi variklis įjungiamas ir atjungiamas jutiklis, kad būtų imituojama sauso važiavimo situacija. Kontūras išjungia siurblį ir atsakė patvirtindamas siurblio sauso veikimo patvirtinimą.

· Pagaliau išsiųstas bandomasis SMS ir grandinė atsakė „Sistema veikia gerai“.

Siūlyčiau vandens srauto jutiklį įrengti po kelių metrų po vandens siurblio.

Tai daro išvadą, kad GSM pagrindu veikiantis siurblys veikia sausai.

Dabar pažvelkime į paprastą vandens siurblio sauso veikimo prevenciją be GSM, tai gali būti lengviau iš dviejų.

Grandinės schema:

SMS žinute pagrįstas siurblio valdiklis su automatiniu sauso išjungimo išjungimu

Nieko čia nelabai galima paaiškinti, tiesiog prisijunkite pagal schemą. Maitinimo šaltinis gali būti 9 V sieninis adapteris, kurio mažiausiai 500 mA, arba maitinimo šaltinis, parodytas GSM valdiklio schemoje.

Siurblys įjungiamas ir išjungiamas, jei reikia mygtuko.

Kai paspausite mygtuką, kad įjungtumėte siurblį, grandinė iš pradžių laukia iki 20 sekundžių, kad nustatytų vandens srautą, per tą laiką mygtukas 20 sekundžių išjungiamas.

Po pirmųjų 20 sekundžių mygtukas yra įjungtas ir galite rankiniu būdu išjungti siurblį, dar kartą paspausdami mygtuką.

Jei aptinkamas vandens srautas, grandinė palaiko siurblį po 20 sekundžių, kitaip grandinė nutraukia variklio maitinimą. Be to, grandinė gali bet kuriuo metu nutraukti maitinimą, jei vandens srautas neaptinkamas.

Jei grandinė išsijungia dėl sauso veikimo, šviesos diodas mirksi greitai.

Paprasto siurblio sauso veikimo prevencijos programa:

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

Tai užbaigia abu dizainus.

Jei turite kokių nors konkrečių klausimų apie šį SMS pagrindu veikiantį siurblio valdiklį su automatiniu sauso išjungimo grandine, komentarų skyriuje nurodykite, galite gauti greitą atsakymą.




Pora: 4 paprastos artumo jutiklio grandinės - naudojant IC LM358, IC LM567, IC 555 Kitas: Inkubatorius naudojant „Arduino“ su automatiniu temperatūros ir drėgmės valdymu