Índice:

Controlador de partida DOL baseado em IOT para conjunto de bombas de irrigação: 6 etapas
Controlador de partida DOL baseado em IOT para conjunto de bombas de irrigação: 6 etapas

Vídeo: Controlador de partida DOL baseado em IOT para conjunto de bombas de irrigação: 6 etapas

Vídeo: Controlador de partida DOL baseado em IOT para conjunto de bombas de irrigação: 6 etapas
Vídeo: Controladores Inteligentes para Agricultura 2024, Novembro
Anonim
Controlador de partida DOL baseado em IOT para conjunto de bombas de irrigação
Controlador de partida DOL baseado em IOT para conjunto de bombas de irrigação
Controlador de partida DOL baseado em IOT para conjunto de bombas de irrigação
Controlador de partida DOL baseado em IOT para conjunto de bombas de irrigação

Olá amigos

Este instrutivo é sobre como monitorar e controlar remotamente um conjunto de bomba de irrigação pela Internet.

História: Na minha fazenda, recebo energia da rede local apenas por cerca de 6 horas por dia. Os horários não são regulares, a disponibilidade de energia pode ser de manhã cedo ou tarde da noite ou até meia-noite. Cada vez que ir ao local do poço para verificar a disponibilidade de energia, ligar ou desligar o motor era um processo muito doloroso. Também tive que garantir que o motor funcionasse pelo menos 2-3 horas por dia para fornecer água adequada para o sistema de gotejamento. Há muito tempo eu estava explorando opções para resolver esse problema operando remotamente o motor e também saber o status. Existem dispositivos disponíveis no mercado que dão partida no motor assim que houver alimentação, mas não possuem o recurso de parar o motor quando quisermos. E também não há como saber o status do motor LIGADO / DESLIGADO a qualquer momento. Isso geralmente leva ao excesso de irrigação, levando à perda da fertilidade do solo e também ao desperdício de eletricidade. Finalmente eu mesmo construí uma solução onde posso ligar e desligar o motor remotamente do celular / tablet / PC A QUALQUER MOMENTO EM QUALQUER LUGAR… !!. Também posso monitorar a disponibilidade do fornecimento de energia da cinta, bem como o status do motor (ON / OFF) o tempo todo. Espero que ajude os proprietários de fazendas no campo a gerenciar seus sistemas de irrigação sem a necessidade de ir ao local de partida o tempo todo.

Suprimentos

Pré-requisitos:

O local onde você deseja instalar este dispositivo deve ter disponibilidade de internet (banda larga com wi-fi / internet móvel)

Coisas que você precisa:

  1. NodeMCU / ESP12
  2. Relé de dois canais
  3. WCS1700 - Sensor de corrente
  4. Módulo de carregamento de bateria TP4056
  5. LD313, Capacitor - Registrador 1000uF - Dois registros de 5k ohm
  6. Qualquer smartphone (antigo) com ponto de acesso / internet.

Como funciona:

É uma solução IOT simples baseada em nuvem usando NodeMCU / ESP12 e um broker MQTT remoto. NodeMCU funciona como um gateway IOT, também controla o iniciador DOL. Ele se conecta ao corretor MQTT remoto pela Internet. Um aplicativo em execução em um celular Android se conecta ao corretor por meio do qual podemos monitorar e controlar nosso conjunto de bombas de irrigação o tempo todo. Usei o corretor MQTT disponível gratuitamente da Adafruit IO. Existem muitos corretores gratuitos disponíveis, como mosquitto, cloudmqtt etc. Você pode escolher qualquer corretor, desde que altere o servidor e o número da porta no código. NodeMCU se conecta à internet usando WiFi do hotspot móvel. Você pode usar qualquer celular antigo ou de baixo custo para fornecer acesso wi-fi através de hotspot ou qualquer outro meio de fornecer internet via wi-fi. O celular deve ser conectado ao carregador, uma vez que deve estar no 24X7.

O NodeMCU tem interface com dois relés para controlar a partida e a parada do motor. Para detectar a corrente no motor, usei o sensor de corrente WCS1700. A saída analógica do sensor é usada para saber se o motor está LIGADO ou DESLIGADO. Ele também detecta a disponibilidade de energia da rede e a publica para o corretor para que possamos saber o status da rede a qualquer momento. O dispositivo assina dois feeds para receber a solicitação de motor LIGADO e motor DESLIGADO. Ao enviar valores específicos para esses feeds, podemos controlar o motor para PARTIDA ou PARADA.

Por último, instalei o aplicativo MQTT Dash em meu telefone Android e o configurei para se conectar ao corretor MQTT e usar os feeds em seu painel / gui. O aplicativo tem ícones muito bons com botões, medidor, interruptor, etc. para criar um painel atraente. No entanto, você pode usar qualquer aplicativo móvel de automação residencial IOT que suporte o protocolo mqtt.

Como funciona o WCS1700:

O WCS1700 é basicamente um sensor de efeito Hall que produzirá tensão de saída proporcional ao campo magnético criado conforme a corrente flui através da bobina. A bobina aqui é uma linha de alimentação que será conectada ao motor. Ele pode medir a corrente AC de até 70 Amps. A tensão de operação está entre 3,3 a 12 V. Consulte a folha de dados para obter mais detalhes. Como estou usando o ESP12, usei a mesma fonte de alimentação de 3,3 V como tensão de operação para o WCS1700. Conforme especificado na folha de dados em 3,3 V, o dispositivo deve produzir uma tensão diferencial de cerca de 32 a 38 mV por ampere de corrente através da bobina. Mas pode variar com base no tamanho da bobina / entreferro e variações no dispositivo. Portanto, tive que calibrá-lo, testando-o com um Amperímetro. Não estou satisfeito com a precisão do dispositivo, mas é bom o suficiente para decidir sobre o status do motor como LIGADO / DESLIGADO. O pino de saída do WCS1700 é conectado ao A0 do ESP12. Quando não há corrente, o ESP12 deve ler o valor em torno de 556. À medida que a corrente aumenta na bobina, a tensão pode variar de qualquer lado com base em como o cabo passa pelo sensor. No código, tomei a diferença dos valores como valor absoluto de (x - 556). Dividindo o resultado por 15, obtive uma corrente aproximada fluindo através do sensor. Você terá que experimentar isso para obter o número certo para você. Qualquer medição de corrente pelo dispositivo acima de 5 Amps eu considero como motor LIGADO e abaixo de 5 Amp quando o motor está DESLIGADO. Você pode usar o número certo para o seu dispositivo fazendo experiências. Você precisa alterar WCS1700_CONST e MIN_CURRENT no código de acordo.

Etapa 1: construção do dispositivo

Construção do Dispositivo
Construção do Dispositivo
Construção do Dispositivo
Construção do Dispositivo

O diagrama acima fornece detalhes completos sobre como conectar todos os componentes.

Fonte de alimentação: Usei o TP4056 para carregar as baterias e o LM313 para regular os 3,7 V - 4,2 V da saída da bateria para 3,3 V para alimentar o NodeMCU. Usei um capacitor de 1000mF entre Vin e o aterramento do LM313 para obter fornecimento estável de 3,3V. Você pode usar um carregador móvel USB normal para alimentar o TP4056. Possui circuito de proteção de bateria para proteger a bateria de sobrecarga.

Sensor da fonte de alimentação da rede: O divisor de tensão de 5k ohm reduzirá 5 V para 2,5 V. O pino D5 do NodeMCU detectará a tensão.

O pino de saída do WCS1700 é conectado a A0 para ler a tensão analógica do sensor. A linha de energia da rede deve passar pelo orifício para medir a corrente. Usei um capacitor de 0,01 uF para obter a leitura estável do WCS1700.

D1 e D2 do NodeMCU devem ser conectados a IN0 e IN1 dos pinos de entrada do relé.

Etapa 2: Conexões DOL Starter

Conexões DOL Starter
Conexões DOL Starter
Conexões DOL Starter
Conexões DOL Starter

Eu ajustei o circuito de controle do motor de partida DOL para introduzir outro conjunto de interruptores START e STOP. Esta alteração não afetará a operação de partida / parada manual e eles continuam a funcionar como estão.

Cuidado !!!! Como o DOL é um dispositivo de alta tensão, certifique-se de que o interruptor principal esteja desligado antes de abrir a caixa. O contato direto com fio energizado pode ser perigoso. Se você não tiver certeza, peça ajuda a um eletricista para fazer as conexões

Usei o módulo de relé de 5 V de 2 canais como chave START e STOP. Esses relés serão controlados pelo ESP12.

O relé - 0 funcionará como chave START - conectado como NO (normalmente aberto).

O Relé-1 funcionará como interruptor STOP - conectado como NC (Normalmente Fechado). O starter já terá um fio conectado do contator superior ao NVC. Você terá que removê-lo e substituí-lo pelos fios do relé -1, conforme mostrado.

Certifique-se de que as conexões entre o starter e os módulos de relé estejam completamente isoladas para segurança. Programei o ESP para manter ambos os relés por 2 segundos para emular o pressionamento do botão START / STOP.

Etapa 3: Criar uma conta com Adafruit IO (io.adafruit.com)

Eu usei o corretor Adafruit io mqtt, que é gratuito para usar com algumas limitações, mas está OK para nosso uso. Eu prefiro isso porque eu usei em outros projetos também e achei bastante confiável e também tem muitos outros recursos como o Dashboard com interface gráfica agradável e até podemos usar gatilhos. Para usar o Adafruit io, você precisa criar uma conta e anotar o nome de usuário e a chave ativa.

Etapa 4: construir e instalar o software

O código completo está disponível no esboço. Você precisa abrir isso no Arduino IDE e fazer algumas alterações antes de compilar e fazer upload do firmware. Escolha o tipo de placa como NodeMCU 1.0. A instalação do IDE e bibliotecas relacionadas não estão no escopo desta documentação.

Modifique as seguintes linhas no código como seguintes.

#define WLAN_SSID "xxx" // Seu Hotspot WiFi SSID móvel

#define WLAN_PASS "……" //

/ *************************** Adafruit.io Setup ******************** ************* /

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883 // use 8883 para SSL

#define AIO_USERNAME "xyz" // Seu nome de usuário da conta adafruit

#define AIO_KEY "abcd ……" // sua chave ativa…

Sobre MQTT Feeds: O dispositivo e o cliente (aplicativo móvel) trocam informações por meio de feeds de mensagens usando o modelo pub sub por meio do broker MQTT. Qualquer cliente ou dispositivo para receber uma mensagem, tem que se inscrever para um feed predefinido e tem que usar o método de publicação para enviar uma mensagem para um feed. Para nosso projeto, exigimos cerca de 5 feeds. Abaixo está a explicação sobre cada feed conforme você vê no código e como eles funcionam.

Status da rede: A disponibilidade de fornecimento de energia da rede é publicada no feed /feeds/grid. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/ feeds / grid");

0 indica que a fonte de alimentação não está disponível e 1 para a fonte de alimentação está disponível.

Status do motor: O dispositivo publicará o status do motor na alimentação… / feeds / grade.

Adafruit_MQTT_Publish motor_status = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/ feeds / motor")

Valor de 0 para DESLIGADO e 1 para LIGADO

Botão Motor ON: Este feed é usado para receber a solicitação de partida do motor. O dispositivo assinará o feed para receber a solicitação de partida do motor com valor = 1 e usará o mesmo feed para publicar a mensagem de confirmação como 0. Dessa forma, podemos confirmar que a mensagem de solicitação de partida foi realmente recebida pelo dispositivo.

Adafruit_MQTT_Subscribe motoronbutton = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / motor_on");

Botão Motor OFF:

Semelhante à solicitação de partida, este feed é usado para receber a solicitação de parada do motor. O dispositivo assinará o feed para receber a solicitação de parada com valor = 1 e usará o mesmo feed para publicar a mensagem de confirmação como 0.

Adafruit_MQTT_Subscribe motoroffbutton = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / motor_off");

Conexão:

Este é um feed especial com a opção “última vontade” habilitada. Quando o dispositivo está funcionando bem a cada intervalo fixo, ele publicará conexão = 1 para informar ao usuário que está tudo bem. Caso o sistema caia ou a conexão seja perdida, o dispositivo não será capaz de se comunicar com o corretor. Nesses casos, o próprio broker MQTT publicará no feed como connection = 0 para permitir que o usuário saiba que algo deu errado e o dispositivo não está acessível pela Internet. Temos que ir fisicamente e verificar o dispositivo. O código é muito simples. Consulte a documentação do MQTT para obter mais detalhes sobre como funciona “Last Will”.

if (itr <= 0)

{

mqtt.publish (AIO_USERNAME "/ feeds / conexão", "1", 1);

itr = CON_LIVE_ITR;

}

O resto do código é autoexplicativo e nenhuma modificação necessária. Sinta-se à vontade para comentar caso precise de mais informações.

Etapa 5: instalar e configurar o aplicativo MQTT Dash em seu celular

Instale e configure o aplicativo MQTT Dash em seu celular
Instale e configure o aplicativo MQTT Dash em seu celular
Instale e configure o aplicativo MQTT Dash em seu celular
Instale e configure o aplicativo MQTT Dash em seu celular
Instale e configure o aplicativo MQTT Dash em seu celular
Instale e configure o aplicativo MQTT Dash em seu celular
  1. Instale MQTT Dash em seu telefone Android e abra o aplicativo
  2. Clique no ícone + no canto superior direito para adicionar um dispositivo.
  3. Conforme mostrado na primeira imagem acima, dê algum nome ao seu dispositivo, diga "MyFarm-IPSet". Campo de endereço como io.adafruit.com e porta como 1883, o nome de usuário deve ser seu nome de usuário adafruit e a senha deve ser sua chave ativa de adafruit. Deixe o resto dos campos como estão. Por fim, clique em salvar.
  4. Você tem seu dispositivo criado. Agora clique nele para adicionar painel a ele.
  5. Clique em + e selecione o tipo como interruptor / botão. Conforme mostrado acima, insira sys no campo de nome. e insira o nome do feed no campo do tópico. todo feed deve começar com nome de usuário / feeds /. para isso nós / feeds / conexão. Certifique-se de que Habilitar Publicação esteja desabilitado. Ao clicar no ícone a ser exibido, você pode escolher o tipo de ícone que deseja no painel. Para o valor 1, selecione uma das cores (digamos, verde) e para o valor 0, selecione a cor cinza ou vermelho. Por fim, clique em salvar no canto superior direito. Da mesma forma, crie mais dois ícones, um para Grade com nome de usuário / feeds / grade como tópico e Motor com nome de usuário / feeds / motor. Certifique-se de que Habilitar Publicação esteja desabilitado.
  6. Por último, crie o botão Motor ON. É novamente o mesmo tipo de interruptor / botão. O tópico deve ser / feeds / motor_on e garantir que Habilitar Publicação esteja habilitado desta vez e QOS = 1. Da mesma forma, crie outro botão para Motor OFF. O tópico deve ser / feeeds / motor_off.

Etapa 6: Última etapa:-) Teste e ajuste fino

  1. Para estar seguro, você precisa testar o dispositivo primeiro para suas operações de PARTIDA e PARADA antes de conectar os relés ao DOL. Ative o Hotspot no celular com a internet habilitada. Conecte o laptop com ambiente de desenvolvimento diretamente à porta NodeMCU USB com outro carregador conectado ao TP4056 ao mesmo tempo. Se o dispositivo estiver conectado à Internet com sucesso, você deverá ver 1 dispositivo conectado ao ponto de acesso no smartphone.
  2. No outro smartphone em que você instalou o MQTT Dash, abra o painel do aplicativo. Você deve ver que o ícone NET em verde e o ícone de grade também em verde com seus valores como 1. O ícone do motor deve mostrar como motor desligado com valor igual a 0.
  3. Quando você clica no botão Motor ON, o relé de partida deve fazer dois sons de clique em um intervalo de dois segundos. Da mesma forma, o botão Motor OFF também.
  4. Por segurança, agora desligue a alimentação principal do DOL starter e conecte os relés ao DOL starter conforme mostrado acima, etapa 2. Certifique-se de que o motor esteja desligado. Pressione o botão de reinicialização no NodeMCU. Na saída do monitor serial, você pode ver as instruções de depuração que imprimem valores do sensor WC1700, delta e a corrente calculada na bobina. Com o motor no estado desligado e "#define WCS1700_CONST 15", o maxCur deve ser inferior a 2 de forma consistente. Se for maior que 2, tente com valores mais altos de WCS1700_CONST. Toda vez você terá que recompilar o código e carregar o firmware.
  5. Agora ligue o motor e procure as leituras de corrente novamente. Deixe o motor ligado por cerca de 10-15 minutos e anote a leitura de corrente estável. A corrente pode variar entre 10 a 20 Amps aproximadamente e não precisa ser precisa.
  6. Volte para o código e defina "#define MIN_CURRENT X. Onde X é 40 por cento da corrente máxima aproximada do valor numérico. No meu caso, eu defini MIN_CURRENT para 5. Compilar e recarregar o firmware para NodeMCU novamente.
  7. Remova o cabo USB do NodeMCU. Desligue e ligue o dispositivo com o carregador USB conectado ao TP4056. Clicar no botão Motor ON no aplicativo móvel deve dar partida no motor. Assim que o motor estiver ligado, o status do motor deve refletir no painel do aplicativo como LIGADO. Clicar no botão de parada deve parar o motor.

Aproveitar !!!!

Recomendado: