Índice:
- Suprimentos
- Etapa 1: construção do dispositivo
- Etapa 2: Conexões DOL Starter
- Etapa 3: Criar uma conta com Adafruit IO (io.adafruit.com)
- Etapa 4: construir e instalar o software
- Etapa 5: instalar e configurar o aplicativo MQTT Dash em seu celular
- Etapa 6: Última etapa:-) Teste e ajuste fino
Vídeo: Controlador de partida DOL baseado em IOT para conjunto de bombas de irrigação: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
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:
- NodeMCU / ESP12
- Relé de dois canais
- WCS1700 - Sensor de corrente
- Módulo de carregamento de bateria TP4056
- LD313, Capacitor - Registrador 1000uF - Dois registros de 5k ohm
- 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
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
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 MQTT Dash em seu telefone Android e abra o aplicativo
- Clique no ícone + no canto superior direito para adicionar um dispositivo.
- 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.
- Você tem seu dispositivo criado. Agora clique nele para adicionar painel a ele.
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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:
Partida suave, velocidade e direção do motor DC usando um potenciômetro, display OLED e botões: 6 etapas
Partida suave do motor DC, velocidade e direção usando um potenciômetro, display OLED e botões: Neste tutorial, aprenderemos como usar um driver L298N DC MOTOR CONTROL e um potenciômetro para controlar uma partida suave do motor DC, velocidade e direção com dois botões e exiba o valor do potenciômetro no display OLED. Assista a um vídeo de demonstração
Controlador de jogo DIY baseado em Arduino - Controlador de jogo Arduino PS2 - Jogando Tekken com gamepad Arduino DIY: 7 etapas
Controlador de jogo DIY baseado em Arduino | Controlador de jogo Arduino PS2 | Jogando Tekken com DIY Arduino Gamepad: Olá pessoal, jogar é sempre divertido, mas jogar com seu próprio controlador de jogo DIY personalizado é mais divertido. Portanto, faremos um controlador de jogo usando arduino pro micro neste instructables
Sensores operacionais para bombas de amostragem individuais: 3 etapas
Sensores operacionais para bombas de amostragem individuais: fiz um sistema para controlar o bom funcionamento das bombas de amostragem individuais
Sistema de irrigação baseado em Arduino: 8 etapas
Sistema de Irrigação Baseado em Arduino: Contextualização O Brasil está entre os países com maior área irrigada do planeta e em cinco anos esta área pode crescer 65%, segundo estudo da Organização das Nações Unidas para a Alimentação e a Agricultura (FAO). A possibilidade de direcionar a i
Exclua a partida do Windows: 5 etapas
Delete Windows Prank: Este é meu primeiro instrutível e é muito simples de fazer. Eu tenho enganado algumas pessoas com isso