Projetos de circuito eletrônicoProjetos de engenharia do ArduinoControlador de bomba baseado em SMS com desligamento automático de funcionamento...

Relacionados

Relacionados

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 não for detectado fluxo de água através da bomba. Também construiremos outro circuito preventivo de funcionamento a seco automático muito mais simples sem GSM na próxima metade do artigo.

O que é Dry Run em Motores

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

Funcionamento a seco significa operar a bomba de água sem fluxo de líquido. A consequência pode ser danos reparáveis ​​ou danos inservíveis, dependendo de quanto tempo o motor funcionou sem bombear a água e da qualidade da bomba de á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 causar 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”.

O funcionamento a seco do motor é um problema muito comum, quando não há água suficiente para fluir pela bomba, ocorrerá superaquecimento dos componentes mecânicos e 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 funcionamento a seco.

Com este controle baseado em GSM, você pode ligar e desligar a bomba e também o circuito reconhece 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 conversor AC para DC usando transformador de 9V, retificador em ponte, capacitor de suavização de 1000 uF e um regulador LM7809 9V. 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 pinos de 5V do Arduino para pinos de 5V do módulo GSM, pois a placa Arduino não pode fornecer corrente suficiente.

A conexão entre o Arduino e o módulo GSM da seguinte forma:

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 absorverá 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 projeto 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\"\r"); // 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\"\r"); // 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\"\r"); // 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\"\r"); // 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\"\r"); // 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ê tem que colocar o código com o número do celular de 10 dígitos do destinatário.

Serial.println(“AT+CMGS=\”+91xxxxxxxxxx\”\r”); // Substitui x pelo número do celular

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

Comandos SMS:

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

· /motor ligado/ para acionamento do motor.

· /motor off/ para desativar o motor.

· /test/ para testar o circuito.

Aqui está o SMS testado durante a prototipagem:

SMS TESTADO DURANTE A PROTOTIPAGEM

As seguintes coisas que podemos observar na captura de tela:

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

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

· Novamente o motor é acionado e o sensor desconectado para simular a situação de funcionamento a seco, o circuito desliga a bomba e responde com o reconhecimento de funcionamento a seco da bomba.

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

Sugiro instalar o sensor de fluxo de água após alguns metros após a bomba de água.

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

Agora vamos dar uma olhada no simples preventor de funcionamento a seco da bomba de água sem GSM, este pode ser o mais fácil dos dois.

Diagrama de circuito:

CONTROLADOR DE BOMBA BASEADO EM SMS COM DESLIGAMENTO AUTOMÁTICO DE FUNCIONAMENTO A SECO

Nada muito para explicar aqui, basta conectar conforme o esquema. A fonte de alimentação pode ser um adaptador de parede de 9V 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.

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

Após os 20 segundos iniciais, o botão de pressão é ativado e você pode desligar a bomba manualmente pressionando o botã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 a alimentação do motor. Além disso, o circuito pode cortar o fornecimento a qualquer momento, se nenhum fluxo de água for detectado.

Se o circuito for desligado 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 projetos.

Se você tiver alguma dúvida específica sobre este controlador de bomba baseado em SMS com circuito de desligamento automático a seco, por favor, expresse na seção de comentários, você pode receber uma resposta rápida.

Hashtags: #Controlador #bomba #baseado #SMS #desligamento #automático #funcionamento #seco
 

FONTE


Nota: Este conteúdo foi traduzido do Inglês para português (auto)
Pode conter erros de tradução

Olá, se tiver algum erro de tradução (AUTO), falta de link para download etc…
Veja na FONTE até ser revisado o conteúdo.
Status (Ok Até agora)


Se tiver algum erro coloque nos comentários

Mas se gostou compartilhe!!!

Relacionados