SMS-pohjainen pumpun ohjain, automaattinen kuivakäynnistys

Kokeile Instrumenttia Ongelmien Poistamiseksi





Tässä viestissä aiomme rakentaa SMS-pohjaisen vesipumpun ohjaimen, jossa pumppu sammutetaan automaattisesti, kun veden virtausta pumpun läpi ei havaita. Rakennamme myös toisen paljon yksinkertaisemman automaattisen kuivakäynninestopiirin ilman GSM: tä artikkelin seuraavaan puoliskoon.

Mikä on kuivakäynti moottoreissa

Olemme jo keskustelleet aiheesta GSM-pohjainen pumppuohjain tältä verkkosivustolta, jos et ole vielä tehnyt niin. Tässä lisätään olemassa olevaan suunnitteluun lisäominaisuus, joka estää moottoria kuivakäynnistä.



Kuiva juoksu tarkoittaa vesipumpun käyttämistä ilman nestevirtausta. Seurauksena voi olla käyttökelvoton vaurio käyttökelvottomille vaurioille riippuen siitä, kuinka kauan moottori käy ilman vettä pumppaamasta ja vesipumpun laadusta.

Kyllä, vesipumput eivät ole halpoja, ja jos olet maataloustieteilijä, joka kastelee peltoa joka päivä, pieni vesipumppusi asia saattaa viedä sinut taloudelliseen menetykseen.



Pumpun huolto voi viedä aikaa ja rahaa, joten on parempi noudattaa kuuluisaa iskulausetta 'ehkäisy on parempi kuin parannuskeino'.

Moottorin kuivakäynti on hyvin yleinen ongelma, kun pumpun läpi ei virtaa riittävästi vettä, mekaanisten komponenttien sekä sähköisten komponenttien ylikuumeneminen tapahtuu.

Yhdessä vaiheessa mekaaniset komponentit alkavat sulaa ja voivat myös aiheuttaa oikosulun.

Tällainen katastrofi voidaan estää tässä projektissa ehdotetulla piirillä.

Veden virtauksen havaitsemiseksi olemme käyttämällä YF-S201 -vesivirtausanturia . Kun anturi ei havaitse vesivirtausta, se katkaisee vesipumpun virransyötön ja lähettää kuittauksen lopettamisesta tekstiviestin vastaanottajalle.

Tämän GSM-pohjaisen ohjauksen avulla voit kytkeä pumpun päälle ja pois päältä ja myös piiri kuittaa pumpun kuivakäyttökysymyksen.

Piiri SMS-pohjaisen pumpun ohjaukseen:

Piiri SMS-pohjaisen pumpun ohjaukseen:

Piiri koostuu vaihtovirta-DC-muuntimesta, jossa käytetään 9 V muuntajaa, sillan tasasuuntaajasta 1000 uF: n tasoituskondensaattoria ja LM7809 9 V: n säätimestä. Arduino-kortin ja SIM 800 / SIM 900 GSM-moduulin virran saamiseksi on kaksi DC-liitäntää.

Älä koskaan virtaa GSM-moduulia 5 V: n Arduino-nastasta 5 V: n GSM-moduuliin, koska Arduino-kortti ei pysty tarjoamaan riittävästi virtaa.

Yhteys välillä Arduino ja GSM-moduuli seuraavasti:

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

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

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

Päävirtalähteen tarjoaa LM 7809 -säädin.

LED-merkkivalo palaa, jos rele aktivoidaan, ja sammuu, kun rele deaktivoidaan.

Diodi IN4007 absorboi suurjännitepiikin, joka tapahtuu kytkettäessä rele päälle ja pois.

Veden virtausanturi on kytketty Arduino-kortin A0-nastaan, 5 V ja GND.

GSM-pohjaisen suunnittelun ohjelma:

//----------------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.Girishin kehittämä ohjelma ------------ //

Sinun on lisättävä koodi vastaanottajan 10-numeroisella matkapuhelinnumerolla.

Serial.println ('AT + CMGS = ' + 91xxxxxxxxxx ' r') // Korvaa x matkapuhelinnumerolla

Sinun on sijoitettava matkapuhelinnumero koodin viiteen paikkaan.

SMS-komennot:

· Tekstiviestisi tulee aina alkaa '/' ja päättyä '/'

· / Moottori päällä / moottorin aktivoimiseksi.

· / Moottori pois päältä / moottorin sammuttamiseksi.

· / Test / piirin testaamiseksi.

Tässä on testattu tekstiviesti prototyyppien muodostamisen aikana:

testattu tekstiviesti prototyyppien muodostamisen aikana

Seuraavat asiat voidaan havaita kuvakaappauksesta:

· Ensin moottori kytketään päälle ja piiri kuitataan vastauksella.

· Moottori kytketään pois päältä ja piiri kuitataan vastauksella.

· Moottori on jälleen aktivoitu ja irrotettu anturista kuivakäyttötilanteen simuloimiseksi. Piiri sammuttaa pumpun ja vastasi pumpun kuiva-ajan kuittauksella.

· Lopuksi testiviesti on lähetetty ja piiri vastasi sanalla 'Järjestelmä toimii hyvin'.

Ehdotan veden virtausanturin asentamista muutaman metrin kuluttua vesipumpusta.

Tämä päättelee GSM-pohjaisen pumpun kuivakäynnin estäjän.

Katsotaanpa nyt yksinkertaista vesipumpun kuivakäynnistyksen estäjää ilman GSM: ää, tämä voi olla helpompaa näistä kahdesta.

Piirikaavio:

SMS-pohjainen pumpun ohjain, automaattinen kuivakäynnistys

Täällä ei ole mitään selitettävää, vain kytke kaavion mukaan. Virtalähde voi olla 9 V: n seinäadapteri, jossa on vähintään 500 mA, tai GSM-pohjaisen ohjaimen kaaviossa esitetty syöttö.

Painike on tarkoitettu pumpun käynnistämiseen ja sammuttamiseen.

Kun painat painiketta käynnistääksesi pumpun, piiri odottaa aluksi 20 sekuntia tunnistaakseen veden virtauksen. Tänä aikana painike on pois päältä 20 sekunniksi.

Ensimmäisten 20 sekunnin kuluttua painike on käytössä ja voit sammuttaa pumpun manuaalisesti painamalla painiketta uudelleen.

Jos havaitaan vesivirta, piiri pitää pumpun PÄÄLLÄ 20 sekunnin kuluttua, muuten piiri katkaisee moottorin virransyötön. Myös piiri voi katkaista virran milloin tahansa, jos vesivirtaa ei havaita.

Jos piiri sammuu kuivakäynnin takia, LED vilkkuu nopeasti.

Ohjelma yksinkertaiselle pumpun kuivakäyntisuojalle:

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

Tämä päättää molemmat mallit.

Jos sinulla on kysyttävää tästä SMS-pohjaisesta pumppuohjaimesta automaattisella kuivakäynnistyspiirillä, ilmaise kommenttiosassa, saatat saada nopean vastauksen.




Edellinen: 4 yksinkertaista läheisyysanturipiiriä - IC LM358, IC LM567, IC 555 Seuraava: Inkubaattori, jossa käytetään Arduinoa automaattisella lämpötilan ja kosteuden säädöllä