Circuito controlador do motor da bomba GSM usando Arduino

Experimente Nosso Instrumento Para Eliminar Problemas





Neste post, vamos construir um circuito controlador de motor de bomba GSM amigável para fazendeiros que poderia
ligue e desligue o sistema de irrigação remotamente de qualquer lugar do mundo via SMS de celular e retorne com uma mensagem de confirmação. A ideia foi solicitada pelo Sr. PG Ragavandir.

O design

A agricultura é uma das maiores indústrias da Índia, que serve alimentos para mais de um bilhão de pessoas todos os anos. Produzir grande quantidade de alimentos nunca é uma tarefa fácil, a irrigação é um dos fatores.



A maior parte do campo de cultivo do agricultor está situado longe de sua residência, apenas ligar a bomba de água custa muito para seu transporte por ano.

A Índia é conhecida por habilidades de TI e programas espaciais e atingiu marte menos do que o custo do filme “Gravity”, isso significa o grande potencial entre engenheiros e cientistas. Porém, as habilidades não são distribuídas uniformemente em diferentes campos, a agricultura é uma das áreas em que o desenvolvimento tecnológico é lento.



Este controlador de motor de bomba GSM baseado em SMS dá um passo de bebê em direção desenvolvimento agrícola , pode não ser um projeto revolucionário, mas pode deliciar os agricultores.

Vamos mergulhar na parte técnica do projeto.

O projeto é projetado com componentes de hardware mínimos para que um iniciante possa realizá-lo com facilidade.
O circuito consiste na fonte de alimentação, que alimenta todo o conjunto.

O Arduino é o cérebro do projeto que toma decisões e o modem GSM que envia e recebe SMS de texto e se comunica com o usuário e relé que controla o motor.

Como funciona

Circuito controlador do motor da bomba GSM usando Arduino

Nota: Use pelo menos 10K resistor na base do transistor BC548, 330 Ohms é muito baixo.

O transformador de baixa o 230VAC a 12VAC e o retificador de ponte convertem AC em corrente DC e a corrente passa por um capacitor eletrolítico para suavizar o fornecimento de energia.

Uma fixa Regulador de tensão 12V fornece energia para arduino, modem GSM e relé. O Modem GSM está conectado ao arduino nos pinos 0 e 1, que são RX e TX respectivamente.

O RX do GSM está conectado ao TX do arduino e o TX do GSM está conectado ao RX do arduino. Se você estiver confuso, basta olhar para o diagrama abaixo, a conexão incorreta não enviará ou receberá SMS.

ARDUINO TX ---------------------- Modem RX GSM
RX ---------------------- TX

A conexão terra a terra também é estabelecida entre o arduino e o modem GSM.

Tente obter um conector de alimentação macho para o GSM e arduino, se não apenas soldar os fios diretamente da fonte de alimentação para o arduino e o GSM, o que pode aumentar a confusão no projeto.

O transistor aciona o relé e o diodo protege o circuito de picos de alta tensão enquanto liga / desliga o relé.

O Indicador LED mostra o status do relé. Se o LED acender o relé ativado e se o LED estiver apagado, o relé está desativado.

Insira um SIM válido no modem GSM e experimente aproveitar as ofertas que o fornecedor da rede disponibiliza para SMS, como o cortador de tarifas, que irá reduzir os gastos com SMS.

Código do programa:

//----------------Program developed by R.Girish------------//
int LED = 8
int motor = 9
int temp=0
int i=0
char str[15]
void setup()
{
Serial.begin(9600)
pinMode(motor,OUTPUT)
pinMode(LED,OUTPUT)
digitalWrite(motor,LOW)
digitalWrite(LED,LOW)
delay(20000)
delay(20000)
delay(20000)
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)
}
}
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
delay(1000)
}
else if(!(strncmp(str,'motor off',9)))
{
digitalWrite(motor,LOW)
digitalWrite(LED,LOW)
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 developed by R.Girish------------//

NOTA 1: Ao compilar o programa, ele mostra um aviso, que você pode ignorar. O programa é verificado e testado.

NOTA 2: Remova a conexão TX e RX do Arduino ao enviar o código.

NOTA 3: Substitua “xxxxxxxxxxxxx” pelo número de telefone do destinatário em 4 lugares no programa.

NOTA 4: Por favor, adquira um modem GSM sem botão liga / desliga no módulo em caso de falha de energia, ele não travará na rede móvel a menos que você pressione o botão manualmente, então evite esse tipo de modems GSM. O modem GSM sem botão de energia irá travar na rede móvel diretamente após a interrupção da energia.

Protótipo do autor do circuito controlador do motor da bomba GSM:

Como usar a configuração acima:

• Envie / motor ligado / SMS do seu celular para ativar o relé.

• Envie / motor desligado / SMS para desativar o relé.

• Enviar / testar / SMS para testar a resposta do circuito.

Certifique-se de iniciar o comando com ”/” e terminar com “/”, caso contrário, ele não será aceito como uma solicitação válida.

• / motor ligado / LIGARÁ o relé e retornará com um SMS de confirmação 'Motor ativado'.

• / motor desligado / desligará o relé e retornará com um SMS de confirmação 'Motor desativado'.

• Se você enviar / testar /, ele retornará com um SMS de confirmação 'O sistema está funcionando bem.'

• A mensagem acima significa que sua configuração está funcionando bem.

• Se nenhuma confirmação for retornada, você pode assumir que nenhuma ação é precedida no motor e você pode solucionar os problemas.

• Depois de ligar a configuração, espere por 1 minuto o sistema enviará um SMS de confirmação 'O sistema está pronto para aceitar comandos'. assim que receber este SMS, seu projeto estará pronto para servir.

Os comandos acima são à prova de idiotas e nunca acionam o motor erroneamente, a configuração não responderá a nenhum SMS além dos recomendados acima.

Melhorando o conceito acima

Este circuito de aplicação da bomba GSM atraiu muitos leitores e recebemos toneladas de dúvidas e sugestões. Um dos leitores ávidos deste site, o Sr. Gandhi, sugeriu uma boa melhoria no design anterior.

Confirmação de SMS quando o motor está realmente ligado

A melhoria é toda sobre o reconhecimento de reversão, onde o usuário receberá uma resposta por SMS em seu celular do GSM sistema controlador de bomba quando um usuário envia um comentário válido por SMS.

O projeto existente envia um SMS de confirmação para o usuário, independente do estado real do relé, ou seja, LIGADO / DESLIGADO.

A nova mudança de projeto sugerida pelo Sr. Gandhi verifica o estado do relé, esteja ele fisicamente comutado de estado ou não.

A mudança de acordo com esta nova água GSM projeto do controlador de bomba pode ser implementado no design anterior sem muitos problemas, adicionando um sistema de feedback conforme mostrado no esquema e carregando o novo código.

Diagrama de circuito:

Quando enviamos o comando SMS “/ MOTOR ON /”, o pino # 9 fica alto e aciona o relé. Se o relé conectar os pinos comuns e N / O, a bomba inicia e também liga o transformador, o que dará +5 na saída.

O sinal de + 5 V é alimentado ao pino # 7, que irá confirmar e retornar com um reconhecimento “Motor ativado”.

Quando enviamos “/ MOTOR OFF /”, o pino # 9 fica BAIXO e o relé desconecta os pinos comum e N / O, isso desligará a bomba, bem como o transformador conectado. A saída no pino nº 7 fica BAIXA e retorna com um reconhecimento “Motor desativado”.

Se não houver reconhecimento SMS é recebido no seu celular , podemos confirmar que nenhuma ação foi realizada e a bomba está no último estado solicitado, você pode ir ao local e solucionar o problema ou nenhuma confirmação será recebida devido ao corte de energia.

Código do programa:

//----------------Program developed by R.Girish------------//
int motor = 8
int LED = 9
int temp=0
int i=0
int ack=7
char str[15]
void setup()
{
Serial.begin(9600)
pinMode(ack,INPUT)
pinMode(motor,OUTPUT)
pinMode(LED,OUTPUT)
digitalWrite(motor,LOW)
digitalWrite(LED,LOW)
delay(20000)
delay(20000)
delay(20000)
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)
}
}
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)
delay(100)
if(digitalRead(ack)==1)
{
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
delay(1000)
}
}
else if(!(strncmp(str,'motor off',9)))
{
digitalWrite(motor,LOW)
delay(5000)
if(digitalRead(ack)==0)
{
digitalWrite(LED,LOW)
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 developed by R.Girish------------//

A implementação acima não foi testada na prática, mas o autor está cent por cento certo de que a ideia acima funcionará. Se os leitores encontraram algum problema com a melhoria acima, podem expressar através da seção de comentários.

Lista de Peças

1) Abaixamento do transformador 12-0V
2) Diodos IN4007 x5
3) LM7812 x1
4) Relé 12V x1
5) Transistor BC548 x1
6) Capacitor eletrolítico 1000uF x1
7) Módulo GSM: modelo SIM 800 ou SIM 900
8) Resistor de 330 Ohm x2
9) LED VERMELHO / VERDE x1
10) Arduino Uno ou Arduino nano ou Arduino Mega
11) Conector macho DC x2

Videoclipe:

Integrando com motores trifásicos

Tenho recebido muitos pedidos para atualizar o estágio de relé para o projeto acima, de modo que se torne compatível para operar motores trifásicos usando comandos de telefones celulares GSM.

Portanto, decidi projetar o circuito necessário que irá esperançosamente ser capaz de LIGAR e DESLIGAR determinados motores trifásicos com o mecanismo de contator de partida e parada típico.

A figura a seguir mostra como configurar o projeto usando um circuito IC 4017.

Telemóvel controlador de motor GSM trifásico remoto

NOTA: Os valores de 100uF / 10K e 220uF e 47K podem precisar de alguns ajustes para garantir a quantidade correta de atraso para os respectivos transistores e estágios de relé.




Anterior: Circuito de segurança do indicador de posição do intruso Próximo: Circuito Controlador de Intensidade de Lâmpada Solar com Controle Remoto