Controlador de bomba baseado em SMS com desligamento automático de funcionamento a seco

Controlador de bomba baseado em SMS com desligamento automático de funcionamento a seco

Neste post, vamos construir um controlador de bomba de água baseado em SMS com desligamento automático da bomba quando nenhum fluxo de água for detectado. Também construiremos outro circuito de prevenção automática de funcionamento a seco muito mais simples sem GSM na próxima metade do artigo.



O que é funcionamento a seco em motores

Já discutimos sobre Controlador de bomba baseado em GSM neste site confira se ainda não o fez. Aqui, estamos adicionando um recurso adicional ao projeto existente, que impedirá o motor de funcionamento a seco.

Funcionamento a seco significa operar a bomba de água sem fluxo de líquido. A consequência pode ser dano reparável a dano inútil dependendo de quanto tempo o motor funcionou sem bombear a água e da qualidade da bomba d'água.





Sim, as bombas de água não são baratas e se você é um agricultor que irriga o campo todos os dias, então um pequeno problema com sua bomba de água pode levar a perdas econômicas.

A manutenção da bomba pode levar algum tempo e dinheiro, por isso é melhor seguir o famoso slogan “é melhor prevenir do que remediar”.



Teste do motor é um problema muito comum, quando não há água suficiente para fluir pela bomba, pode ocorrer superaquecimento dos componentes mecânicos e também dos componentes elétricos.

Em um ponto, os componentes mecânicos começarão a derreter e também podem causar curto-circuito.

Tal desastre pode ser evitado utilizando o circuito, proposto neste projeto.

Para detectar o fluxo de água, estamos utilizando o sensor de fluxo de água YF-S201 . Quando nenhum fluxo de água é detectado pelo sensor, ele corta o fornecimento de energia para a bomba de água e envia um SMS de confirmação ao destinatário sobre o desligamento do teste.

Com este controle baseado em GSM, você pode ligar e desligar a bomba e também o circuito reconhece sobre o problema de funcionamento a seco da bomba.

Circuito para controle de bomba baseado em SMS:

Circuito para controle de bomba baseado em SMS:

O circuito consiste em um conversor CA para CC usando um transformador de 9 V, uma ponte retificadora, um capacitor de suavização de 1000 uF e um regulador LM7809 de 9 V. Dois conectores DC são fornecidos para alimentar a placa Arduino e o módulo SIM 800 / SIM 900 GSM.

Nunca alimente o módulo GSM com pino 5V do Arduino para pino 5V do módulo GSM, pois a placa Arduino não pode fornecer corrente suficiente.

A conexão entre Módulo Arduino e GSM do seguinte modo:

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

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

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

A alimentação principal é fornecida pelo regulador LM 7809.

O indicador LED acenderá se o relé for ativado e desligará quando o relé for desativado.

O diodo IN4007 absorve o pico de alta tensão que ocorre ao ligar e desligar o relé.

O sensor de fluxo de água é conectado ao pino A0 do Arduino, 5V e GND fornecido pela placa Arduino.

Programa para design baseado em 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 desenvolvido por R.Girish ------------ //

Você deve colocar o código com o número de telefone celular de 10 dígitos do destinatário.

Serial.println ('AT + CMGS = ' + 91xxxxxxxxxx ' r') // Substitua x pelo número do celular

Você precisa colocar o número do celular em 5 lugares do código.

Comandos SMS:

· Seu SMS deve sempre começar com “/” e terminar com “/”

· / Motor ligado / para ativar o motor.

· / Motor desligado / para desativar o motor.

· / Test / para testar o circuito.

Aqui está o SMS testado durante a prototipagem:

testou SMS durante a prototipagem

Podemos observar as seguintes coisas na captura de tela:

· Primeiro o motor é ligado e o circuito é confirmado com uma resposta.

· O motor é desativado e o circuito é confirmado com uma resposta.

· Mais uma vez, o motor é ativado e desconecta o sensor para simular a situação de funcionamento a seco, o circuito desliga a bomba e responde com o reconhecimento do funcionamento a seco da bomba.

· Finalmente, um SMS de teste foi enviado e o circuito respondeu com “O sistema está funcionando bem”.

Eu sugeriria instalar o sensor de fluxo de água alguns metros após a bomba d'água.

Isso conclui o preventor de funcionamento a seco da bomba com base em GSM.

Agora, vamos dar uma olhada no dispositivo de prevenção de funcionamento a seco de bomba de água simples sem GSM. Este poderia ser o mais fácil dos dois.

Diagrama de circuito:

Controlador de bomba baseado em SMS com desligamento automático de funcionamento a seco

Não há muito o que explicar aqui, apenas conecte conforme o esquema. A fonte de alimentação pode ser um adaptador de parede de 9 V com pelo menos 500 mA ou a fonte ilustrada no esquema do controlador baseado em GSM.

O botão de pressão é fornecido para ligar e desligar a bomba.

Ao pressionar o botão para ligar a bomba, o circuito espera inicialmente até 20 segundos para detectar o fluxo de água, durante esse tempo o botão é desabilitado por 20 segundos.

Após os 20 segundos iniciais, o botão de pressão é habilitado e você pode desligar a bomba manualmente pressionando o botão de pressão novamente.

Se for detectado fluxo de água, o circuito mantém a bomba LIGADA após 20 segundos, caso contrário, o circuito corta o fornecimento de energia para o motor. Além disso, o circuito pode cortar o fornecimento a qualquer momento, se nenhum fluxo de água for detectado.

Se o circuito desligar devido ao funcionamento a seco, o LED piscará rapidamente.

Programa para preventor de funcionamento a seco de bomba simples:

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

Isso conclui os dois designs.

Se você tiver quaisquer perguntas específicas sobre este controlador de bomba baseado em SMS com circuito de desligamento automático de simulação, expresse na seção de comentários, você pode receber uma resposta rápida.




Anterior: 4 Circuitos Sensor de Proximidade Simples - Usando IC LM358, IC LM567, IC 555 Próximo: Incubadora usando Arduino com controle automático de temperatura e umidade