Índice:

Faça você mesmo - Irrigação automatizada do jardim - (Arduino / IOT): 9 etapas (com imagens)
Faça você mesmo - Irrigação automatizada do jardim - (Arduino / IOT): 9 etapas (com imagens)

Vídeo: Faça você mesmo - Irrigação automatizada do jardim - (Arduino / IOT): 9 etapas (com imagens)

Vídeo: Faça você mesmo - Irrigação automatizada do jardim - (Arduino / IOT): 9 etapas (com imagens)
Vídeo: IRRIGAÇÃO AUTOMÁTICA muito MELHOR do que você imagina! 2024, Novembro
Anonim
Faça você mesmo - irrigação automatizada de jardins - (Arduino / IOT)
Faça você mesmo - irrigação automatizada de jardins - (Arduino / IOT)
Faça você mesmo - irrigação automatizada de jardins - (Arduino / IOT)
Faça você mesmo - irrigação automatizada de jardins - (Arduino / IOT)
Faça você mesmo - irrigação automatizada de jardins - (Arduino / IOT)
Faça você mesmo - irrigação automatizada de jardins - (Arduino / IOT)

Este projeto mostrará como construir um controlador de irrigação para uma horta doméstica. Capaz de medir as leituras de umidade do solo e ativar a irrigação de uma torneira de jardim se o solo ficar muito seco. O controlador também inclui um sensor de temperatura e umidade. O controlador não ativará a torneira do jardim se a temperatura estiver muito baixa. As leituras do sensor e estatísticas sobre o uso de água / tempos de execução são registradas no ThingsBoard IOT para visualização e análise. Alertas e emails são disparados se o controlador de irrigação parar de transmitir dados, o solo ficar muito seco ou muito saturado.

Pré-requisitos

  • Conhecimento em Arduino, incluindo pelo menos codificação básica para Arduino e soldagem.
  • 1 torneira de jardim pressurizada

Lista de Materiais

  • Tubo poli de irrigação de jardim, jatos, gotejadores, etc.
  • Temporizador de torneira eletrônico com dois mostradores (isto é: Temporizador eletrônico digital de torneira Aqua Systems)
  • Redutor de pressão da torneira 300kpa
  • Arduino Uno
  • Lora Arduino Shield
  • Lora Gateway (não é necessário se você tiver um gateway local da Things Network ao alcance)
  • Sensor de umidade de temperatura DHT11
  • Relé 5v
  • Cabo de telefone
  • Abraçadeiras
  • Tubulação corrugada de divisão automotiva
  • Tiras de conector de terminal automotivo
  • 2 unhas galvanizadas
  • 1x resistor
  • Silicon / Calafetar
  • Cimento de PVC
  • PVC Primer
  • Tubo de PVC com 32 mm de largura x 60 mm de comprimento
  • Tubo de PVC com 90 mm de largura x 30 cm de comprimento
  • 3x tampas de extremidade de pressão de PVC 90 mm
  • 1x tampa de rosca de PVC 90 mm
  • 1x encaixe roscado de PVC 90 mm
  • 1x PVC Push End Caps 32mm
  • 1x fonte de alimentação de 3,2 V (temporizador de torneira) [baterias, adaptador multivolt AC]
  • 1x fonte de alimentação de 6-12 V (arduino) [baterias, USB, USB para adaptador AC]
  • fita de vedação de rosca
  • fita isolante

Etapa 1: Instale a irrigação do jardim

Instalar irrigação de jardim
Instalar irrigação de jardim
Instalar irrigação de jardim
Instalar irrigação de jardim

Layout de tubo poli, ajuste de jatos, linhas de gotejamento e gotejadores. O controlador de irrigação funcionará com qualquer ajuste de irrigação. Em seu núcleo está medindo as leituras de umidade do solo e ativando o temporizador de torneira se e quando o solo estiver muito seco. O controlador pode ser calibrado para definir o ponto baixo de saturação, por quanto tempo o temporizador de tap deve ser ligado e com que freqüência o controlador deve verificar a saturação.

Essas configurações podem ser alteradas no arduino e armazenadas na memória EPROM. As configurações também podem ser atualizadas pela integração IOT. Este projeto irá acionar o controlador a cada quatro horas e abrir a torneira por 3 minutos se o solo estiver muito seco. Pode ser executado algumas vezes seguidas se estiver seco / quente ou uma ou duas vezes por dia.

Etapa 2: Ajustar temporizador de toque

Temporizador Fit Tap
Temporizador Fit Tap

Instale o temporizador de torneira e experimente os mostradores ajustáveis para calcular uma frequência aproximada e um tempo de execução que funcione melhor para sua instalação de irrigação. Removeremos o cronômetro e o modificaremos para funcionar com um Arduino.

Etapa 3: Arduino Build

Arduino Build
Arduino Build
Arduino Build
Arduino Build
Arduino Build
Arduino Build
Arduino Build
Arduino Build

Use o diagrama de fiação como um guia para a construção. Nas fotos foi usado cabeamento telefônico e tiras de terminais de parafuso para pontos de junção. É necessária alguma soldagem.

Modificação do temporizador de toque

Desmonte cuidadosamente o temporizador de torneira. Faremos a fiação dos dois dials ajustáveis para que possam ser controlados pelo arduino em vez dos dials manuais. O dial de freqüência esquerdo será conectado à posição de reinicialização de forma que o dial direito possa ser alternado entre a posição on / off. O mostrador direito terá um fio vindo do contato central direito e o contato externo direito, conforme mostrado. Por padrão, o cronômetro estará na posição desligado. Se os dois fios entrarem em contato, o cronômetro será ativado. Com os dois fios conectados a um relé de 5 V, um arduino pode então fechar / abrir o contato entre os dois fios. Com um fio no terminal de relé comum e o outro no terminal normalmente fechado, garantiremos que o cronômetro seja desligado quando o arduino for desligado. Definir o pino do relé como HIGH ligará o temporizador; defini-lo como BAIXO desligará o cronômetro.

Soil Probe

Para este projeto, os dois pregos são soldados a um fio conectado a terminais de parafuso. O terminal de um prego vai direto para o solo. O outro se conecta a uma entrada analógica no arduino e um resistor. O resistor se conecta ao sinal arduinos 5v. Mostrado no diagrama de torção.

Sensor de temperatura / umidade

O sensor de temperatura / umidade DHT11 é conectado ao arduino 5V, aterrado e um pino digital no arduino.

Escudo Lora

Este projeto também usou um Dragino Lora Shield (não mostrado no diagrama de fiação).

Base de PVC

A base de PVC para o arduino usado neste projeto foi projetada de forma que o sensor de temperatura / umidade pudesse ser exposto, mantendo todos os outros componentes protegidos dentro do invólucro de PVC à prova d'água. Um pequeno orifício é feito / cortado para o sensor e silício é usado para mantê-lo no lugar enquanto evita que a umidade alcance o arduino. Mostrado no diagrama.

Etapa 4: Programação do Arduino

Programação Arduino
Programação Arduino

Conecte os componentes juntos por meio de uma placa de ensaio ou tiras de terminais para programação e teste

Configuração EPROM

Primeiro, precisamos gravar as variáveis de configuração na memória EPROM. Execute o seguinte código em seu arduino:

Código disponível no Github

Aqui o DRY_VALUE é definido em 960. 1024 significa que o solo está completamente seco, 0 significa saturação completa, 960 foi um bom nível de saturação para o resistor, comprimento do cabo e pregos usados. Isso pode variar dependendo da sua própria configuração.

VALVE_OPEN é definido em 180000 milissegundos (3 minutos). Quando / se o temporizador de torneira estiver ativado, ele ficará aberto por 3 minutos.

RUN_INTERVAL é definido em 14400000 milissegundos (4 horas). Isso significa que o controlador verificará a umidade do solo a cada quatro horas e ligará o temporizador da torneira por 3 minutos se a saturação for baixa (maior que 960).

O código acima pode ser alterado e esses valores modificados a qualquer momento.

Código do Programa

Código disponível no Github

Dependências:

  • TimedAction
  • Cabeça de rádio

Este exemplo usou o escudo Dragino Lora e especificamente o exemplo simultâneo Lora com o escudo conectando-se diretamente ao Portal Dragino Lora.

Isso pode ser adaptado para usar o Things Network removendo o código na seção "BEGIN: lora vars" e alterando o programa para incluir o seguinte exemplo de Dragino ou adaptado para funcionar com outros rádios / escudos wi-fi etc.

O código fornecido assume que DHT11_PIN é o pino digital 4, o RELAY_PIN é o pino digital 3 e o pino analógico da umidade do solo é a entrada analógica 0.

Uma variável de depuração pode ser definida como verdadeira para que as mensagens de depuração em série possam ser registradas na taxa de transmissão de 9600.

Etapa 5: construção do gabinete

Compilação de gabinete
Compilação de gabinete

Corte o tubo de PVC de acordo com o temporizador de torneira e a base do Arduino. Faça furos para a conexão da torneira do temporizador de torneira e a conexão da mangueira. Faça furos no tubo com largura suficiente para o conduíte automotivo, coloque 10 cm de comprimento do conduíte nos furos e retire os fios do arduino e do temporizador de torneira. Isso deve incluir:

Do Arduino

  • Fios de alimentação e / ou um cabo USB da porta USB do arduino.
  • Cabos de umidade do solo (VCC, GND, A0)
  • Dois fios dos terminais de parafuso NC e comum do relé

Do temporizador de torneira

  • Cabos de alimentação
  • Dois fios dos contatos de discagem certos

Etapa 6: testar o controlador antes de colar

Controlador de teste antes de colar
Controlador de teste antes de colar
Controlador de teste antes de colar
Controlador de teste antes de colar

Certifique-se de que tudo ainda está funcionando antes de lacrar tudo.

As fotos acima mostram uma configuração de amostra em um esky onde a sonda de umidade do solo foi colocada em uma panela e o temporizador da torneira foi equipado com água proveniente de uma garrafa de refrigerante.

Um gotejador foi acoplado ao temporizador de torneira.

Esta foi uma boa maneira de testar se a configuração não regou demais ou submergiu a planta.

Este exemplo pode ser executado pelo tempo necessário para calibrar o controlador.

Etapa 7: cola / gabinetes à prova d'água

Cola / Gabinetes à prova d'água
Cola / Gabinetes à prova d'água

Use PVC Primer e PVC Cement para proteger as tampas e o acoplamento.

Use calafetagem / silicone para preencher quaisquer lacunas ao redor do conduíte automático e bata nas conexões do temporizador.

Aqui, uma tampa de rosca é usada no gabinete Arduino para acessibilidade.

Etapa 8: instalar

Instalar
Instalar
Instalar
Instalar
Instalar
Instalar

Instale em um dia claro. Os componentes e fios deverão permanecer secos antes de serem selados.

Coloque o controlador em algum lugar centralizado entre onde a torneira do jardim está localizada e onde a sonda de solo será colocada.

Instale o temporizador de torneira e certifique-se de que ele esteja desligado até que a instalação seja concluída.

Instale a sonda de solo.

Conecte os terminais de fita a cada componente e, em seguida, coloque o cabo telefônico dos terminais de parafuso de cada componente, certificando-se de que o cabo esteja coberto por um conduíte automático. Conectando tudo junto

Sele todos os terminais e quaisquer outras peças expostas com fita de vedação de rosca e depois fita isolante.

Vede todas as áreas soltas / expostas do conduíte dividido com fita de vedação de rosca e depois fita isolante.

Conecte o temporizador a uma fonte de alimentação de 3.2v. Tanto uma bateria quanto um adaptador DC-AC de 3,2 V ligado a uma tomada elétrica.

Conecte o Arduino a uma fonte de alimentação de 6-12 Vcc. Tanto uma bateria quanto um adaptador USB / DC-AC ligado a uma tomada elétrica.

Ligue e teste!

Etapa 9: Integração do ThingsBoard - Monitoramento e Relatórios

Integração ThingsBoard - Monitoramento e Relatórios
Integração ThingsBoard - Monitoramento e Relatórios

Este exemplo usou um escudo Dragino Lora conectado a um portal Dragino Lora. Seja usando esta configuração, outra configuração Lora ou qualquer outra conectividade IOT, os dados coletados pelo controlador de irrigação podem ser encaminhados para uma plataforma IOT como o Thingsboard. Por padrão, o programa transmite a seguinte string de dados, onde cada byte de caractere é codificado em hexadecimal:

TXXXHXXXSXXXXRX

Onde T é seguido pela temperatura, H é seguido pela umidade, S é seguido pelo nível de saturação e R é seguido por um único dígito relacionado à ação que ele executou no último intervalo de execução. Pode ser de 0 a 5, onde cada dígito significa:

0: O programa está inicializando1: Falha do sensor de temperatura2: A temperatura estava muito baixa para funcionar3: Umidade do solo muito seca, então o temporizador da torneira foi ativado4: Umidade do solo fina, então o temporizador da torneira não foi ativado5: O controlador de irrigação foi desativado

Existem várias maneiras de instalar uma cópia do Thingsboard em seu próprio equipamento ou você pode configurar uma conta gratuita em nossa instalação do ThingsBoard aqui.

Configure seu dispositivo no Thingsboard

Siga estas instruções para adicionar um novo dispositivo no Thingsboard, chamando-o de "Controlador de irrigação".

Empurre dados de telemetria do dispositivo

Siga estas instruções para configurar um método de envio de dados de telemetria do dispositivo para Thingboard via MQTT, HTTP ou CoAp.

Em nosso servidor, estamos enviando o seguinte JSON para https://thingsboard.meansofproduction.tech/api/v1/… a cada quatro horas quando o dispositivo é executado (com dados ativos):

Além disso, estamos enviando os seguintes atributos para https://thingsboard.meansofproduction.tech/api/v1/… periodicamente com dados sobre quando o nó foi visto pela última vez:

Isso é usado para alertas que são acionados se o dispositivo parar de transmitir dados.

Crie um painel

Crie um painel conforme descrito aqui. Nossos widgets incluem:

Um widget de cartão simples criado a partir do campo de telemetria lastRunResult. Um medidor digital vertical para o campo de telemetria de temperaturaUma tabela Timeseries criada a partir do campo de telemetria lastRunResult mostrando os dados dos últimos dias. Uma barra horizontal mostrando o campo de telemetria de saturação. Isso usa uma função de pós-processamento de dados:

return 1024-value;

E define um valor mínimo e máximo de 0-100. Desta forma, o nível de saturação pode ser expresso como uma porcentagem. Um medidor para mostrar o valor de umidade. Um gráfico de barras de série temporal que inclui a temperatura, a umidade e o resultado da corrida, agrupados em períodos de 5 horas na última semana, agregados para mostrar os valores máximos. Isso nos dá uma barra para um evento de corrida de quatro horas. Uma função de pós-processamento de dados é usada para expressar o resultado da corrida como 0 ou 120, dependendo se a água foi ou não executada. Isso fornece um feedback visual fácil para ver com que frequência a água está correndo em uma semana. Um cartão HTML estático que mostra uma imagem do jardim.

Alertas de E-mail

Usamos regras para configurar alertas de e-mail para o controlador de irrigação. Todos usam filtros de mensagens e uma ação de plug-in de ação Enviar e-mail.

Para enviar um alerta por e-mail se o controlador de irrigação não conseguir enviar dados, usamos o 'Filtro de atributos do dispositivo' com o seguinte filtro:

typeof cs.secondsSinceLastSeen! == 'undefined' && cs.secondsSinceLastSeen> 21600

Para enviar um e-mail se o solo ficar muito seco use o seguinte filtro de telemetria

typeof saturation! = "undefined" && saturation> 1010

Para enviar um e-mail se o solo ficar muito úmido, use o seguinte filtro de telemetria

typeof saturation! = "undefined" && saturation

Recomendado: