Controlador de bomba basat en SMS amb tancament automàtic de funcionament en sec

Proveu El Nostre Instrument Per Eliminar Problemes





En aquesta publicació construirem un controlador de bomba d’aigua basat en SMS amb l’aturada automàtica de la bomba quan no es detecti cap flux d’aigua a través de la bomba. També construirem un altre circuit automàtic de prevenció de funcionament en sec molt més senzill sense GSM a la propera meitat de l'article.

Què és Dry Run in Motors?

Ja hem parlat sobre Controlador de bomba basat en GSM en aquest lloc web, comproveu-ho si encara no ho heu fet. Aquí afegim una característica addicional sobre el disseny existent, que evitarà que el motor funcioni en sec.



Funcionament en sec significa fer funcionar la bomba d’aigua sense flux de líquid. La conseqüència pot ser un dany reparable a un dany inservible segons el temps en què el motor estigués funcionant sense bombejar l'aigua i la qualitat de la bomba d'aigua.

Sí, les bombes d’aigua no són barates i, si sou un agricultor que rega el camp cada dia, un petit problema amb la vostra bomba d’aigua us pot provocar pèrdues econòmiques.



El manteniment de la bomba pot trigar una mica de temps i diners, per la qual cosa és millor seguir el famós eslògan: 'Prevenir és millor que curar'.

Funcionament en sec del motor és un problema molt comú, quan no hi ha prou aigua per circular per la bomba, es produirà un escalfament tant dels components mecànics com dels components elèctrics.

En un moment determinat, els components mecànics es començaran a fondre i també poden provocar curtcircuits.

Es pot evitar aquest desastre mitjançant el circuit proposat en aquest projecte.

Per detectar el flux d’aigua, ho som utilitzant un sensor de cabal d’aigua YF-S201 . Quan el sensor no detecta cap flux d’aigua, talla l’alimentació de la bomba d’aigua i envia un SMS d’acusament al destinatari sobre el tancament en sec.

Amb aquest control basat en GSM podeu activar i apagar la bomba i el circuit també reconeix el problema de funcionament en sec de la bomba.

Circuit per al control de la bomba basat en SMS:

Circuit per al control de la bomba basat en SMS:

El circuit consisteix en un convertidor de CA a CC que utilitza un transformador de 9 V, un rectificador de pont, un condensador de suavitzat de 1000 uF i un regulador de 9 V LM7809. Es proporcionen dues preses de corrent continu per alimentar la placa Arduino i el mòdul SIM 800 / SIM 900 GSM.

No alimenteu mai el mòdul GSM amb pin de 5V d’Arduino a pin de 5V del mòdul GSM, ja que la placa Arduino no pot proporcionar prou corrent.

La connexió entre Mòdul Arduino i GSM com segueix:

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

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

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

El subministrament principal el proporciona el regulador LM 7809.

L'indicador LED s'encén si el relé està activat i s'apaga quan el relé està desactivat.

El díode IN4007 absorbirà el pic d'alta tensió que es produeix mentre s'encén i apaga el relé.

El sensor de cabal d’aigua està connectat al pin A0 d’Arduino, 5V i GND proporcionats des de la placa Arduino.

Programa per al disseny basat en 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)
}
}

// ---------------- Programa desenvolupat per R.Girish ------------ //

Heu de col·locar el codi amb el número de telèfon mòbil de 10 dígits del destinatari.

Serial.println ('AT + CMGS = ' + 91xxxxxxxxxx ' r') // Substitueix x per número de mòbil

Heu de col·locar el número de mòbil en aquests cinc llocs del codi.

Ordres SMS:

· El vostre SMS sempre ha de començar amb “/” i acabar amb “/”

· / Motor encès / per activar el motor.

· / Motor apagat / per desactivar el motor.

· / Test / per provar el circuit.

Aquí teniu els SMS provats mentre es fan prototips:

SMS provats mentre feia prototips

Les següents coses que podem observar a la captura de pantalla:

· Primer s’engega el motor i es reconeix el circuit amb una resposta.

· El motor està desactivat i es reconeix el circuit amb una resposta.

· Una vegada més el motor s’activa i desconnecta el sensor per simular la situació de funcionament en sec, el circuit apaga la bomba i respon amb un confirmament de funcionament en sec de la bomba.

· Finalment, s'ha enviat un SMS de prova i el circuit ha respost amb 'El sistema funciona bé'.

Suggeriria instal·lar el sensor de cabal d’aigua al cap de dos metres després de la bomba d’aigua.

D’aquesta manera es conclou el prevenció del funcionament en sec de la bomba basada en GSM

Ara fem una ullada al senzill impedidor de funcionament en sec de la bomba d’aigua sense GSM, això podria ser el més fàcil d’ambdós.

Esquema de connexions:

Controlador de bomba basat en SMS amb tancament automàtic de funcionament en sec

No hi ha res a explicar aquí, simplement connecteu-vos segons l'esquema. La font d'alimentació pot ser un adaptador de paret de 9 V amb almenys 500 mA o la font il·lustrada a l'esquema del controlador basat en GSM.

Es proporciona el polsador per encendre i apagar la bomba.

Un cop premeu el botó per engegar la bomba, el circuit espera fins a 20 segons inicialment per detectar el cabal d’aigua, durant aquest temps el botó està desactivat durant 20 segons.

Després dels 20 segons inicials, el polsador està habilitat i podeu apagar la bomba manualment prement el polsador de nou.

Si es detecta flux d’aigua, el circuit manté la bomba encesa al cap de 20 segons, en cas contrari, el circuit tanca l’alimentació del motor. També el circuit pot tallar el subministrament en qualsevol instant, si no es detecta cap flux d’aigua.

Si el circuit s’apaga a causa d’un funcionament en sec, el LED parpelleja ràpidament.

Programa per a la prevenció simple de funcionament en sec de la bomba:

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

Això conclou ambdós dissenys.

Si teniu alguna pregunta específica sobre aquest controlador de bomba basat en SMS amb circuit d’aturada automàtica en sec, expresseu-ho a la secció de comentaris, és possible que rebreu una resposta ràpida.




Anterior: 4 circuits senzills de sensor de proximitat: mitjançant IC LM358, IC LM567, IC 555 Següent: Incubadora que utilitza Arduino amb control automàtic de temperatura i humitat