Sistema de irrigação automático usando um Arduino Uno

Tempo de leitura: 7 minutes

Todo mundo gosta de um pouco de vegetação em nossas casas, não é?? As plantas exigem uma manutenção realmente baixa e podem ser deixadas por dias sem supervisão, mas nossas viagens longas que se estendem por uma semana ou duas podem ser prejudiciais à saúde das plantas devido à falta de umidade no solo. Em tais situações, a planta pode murchar ou morrer devido à ausência de rega adequada. Para resolver esse problema, neste projeto, estamos fazendo um Sistema de Irrigação Automático com um Arduino Uno que irrigará suas plantas automaticamente e as manterá saudáveis, mesmo quando você estiver fora da cidade por semanas ou meses. Neste projeto, a Sensor de umidade será usado para manter o nível ideal de umidade para suas plantas. Este sistema pode ser implementado, tanto para o seu jardim ou para suas plantas internas, cuidando de seus animais de estimação frondosos quando estiver fora.

Trabalho do sistema de irrigação automática

A lógica deste sistema é muito simples. Nesse sistema, o sensor de umidade detecta o nível de umidade do solo e, quando o sensor detecta um baixo nível de umidade, ele alterna automaticamente a bomba de água com a ajuda de um microcontrolador e irriga a planta. Depois de fornecer água suficiente, o solo retém a umidade, parando automaticamente a bomba.

Sensor de umidade do solo

O funcionamento do sensor de umidade do solo é muito fácil de entender. Possui 2 sondas com contatos expostos que agem como um resistor variável de quem resistência varia de acordo com o teor de água no solo. Essa resistência é inversamente proporcional à umidade do solo, o que significa que maior água no solo significa melhor condutividade e, portanto, menor resistência. Enquanto a água mais baixa no solo significa má condutividade e resultará em maior resistência. O sensor produz uma saída de tensão analógica de acordo com a resistência.

O sensor vem com um módulo eletrônico que conecta a sonda ao Arduino. O módulo tem um Comparador de alta precisão LM393 que converte o sinal analógico em uma saída digital que é alimentada ao microcontrolador.

Bomba

Precisamos de uma pequena bomba para irrigar a planta, mas no caso de um jardim, precisamos acionar uma bomba maior que possa fornecer um volume maior de água, dependendo do tamanho do seu jardim, que não pode ser alimentado diretamente por um Arduino . Portanto, caso você precise operar uma bomba maior, é necessário um driver para fornecer corrente suficiente para a bomba, para mostrar que estou usando um relé de 5v. Você também pode usar uma bomba com alimentação CA e usar um relé adequado. O trabalho permanecerá o mesmo que o mostrado neste projeto, basta substituir a entrada de energia CC conectada ao relé por uma entrada de energia CA e alimentar o seu Arduino com uma fonte de energia CC separada.

Componentes necessários para o sistema de irrigação automática

O projeto requer muito poucos componentes e a conexão também é muito simples. Os componentes estão listados abaixo:

  • Arduino *1
  • Sensor de umidade *1
  • Módulo de relé de 5v *1
  • Mini bomba de água 6v com tubo pequeno *1
  • Conectando fios
  • Bateria 5v *1

Diagrama de circuito do sistema de irrigação automático Arduino

O diagrama de circuito completo para o sistema de irrigação Automático Arduino é mostrado abaixo:

Nesta seção, explicarei todos os detalhes com a ajuda do diagrama esquemático. O Arduino UNO é o cérebro de todo esse projeto. Controla a bomba do motor de acordo com a umidade do solo fornecida pelo sensor de umidade.

Para alimentar o circuito, estou usando uma bateria externa. Você pode usar qualquer bateria de 9v ou 12 volts. A bateria está conectada ao Vin e aos pinos de terra do Arduino e também podemos conectar o motor a esta bateria através de um relé. A saída do sensor de umidade é conectada ao pino analógico do Arduino. Lembre-se de usar o pino de 5 volts do Arduino para alimentar o módulo de sensor e relé.

Montagem do sistema de irrigação automática

Vamos começar conectando o relé à placa do Arduino. Conecte o VCC do módulo de relé ao pino de 5v do Arduino e conecte o solo do relé ao solo do Arduino. Agora conecte o pino do sinal de retransmissão a qualquer pino digital do Arduino, exceto o pino 13. Aqui eu o conectei ao pino 3, como mostra a imagem abaixo.

O próximo passo é conectar o sensor de umidade do solo ao Arduino. Conecte o VCC e o GND do sensor ao pino de 5 volts e terra do Arduino. A saída analógica do sensor se conecta a qualquer pino analógico do Arduino. Aqui, eu o conectei ao pino A0 (de acordo com o nosso programa).

Por fim, conecte a bomba ao módulo de relé. Um módulo de relé possui 3 pontos de conexão comuns, normalmente fechados e normalmente abertos. Temos que conectar a bomba positiva ao comum e conectar o pino normalmente aberto ao positivo da bateria. Você precisa selecionar a bateria conforme sua bomba. O próximo passo é conectar o solo da bomba ao solo do Arduino e, finalmente, conectar a mangueira pequena à bomba de água.

Agora conecte a bateria ao circuito e, se a bomba começar a funcionar, seu circuito estará bom. Agora vamos enviar o código para o Arduino.

Explicação do código para o sistema de irrigação automática

Para este projeto, não estamos usando nenhuma biblioteca, estamos apenas usando as funções básicas para programação. O código é muito simples e fácil de usar. A explicação do código é a seguinte.

Começamos definindo todos os números inteiros necessários aqui. Usei dois números inteiros para armazenar a umidade do solo e a porcentagem de umidade convertida.

int soloMoistureValue = 0 ;
int porcentagem = 0;

Agora, definimos o modo pino, aqui usei o pino 3 como saída e, na próxima linha, inicializei o Serial Monitor para depuração.

void setup() {
 pinMode(3, OUTPUT) ; 
 Serial.begin(9600);
}

Eu comecei o loop seção lendo a umidade do solo. Usei a função analogRead do Arduino para ler a umidade do solo e armazenei isso no soloMoistureValue. Este valor varia de 0 a 1023

void loop() {
  soilMoistureValue = analogRead(A0);

Na linha abaixo, converti os valores do sensor de 0 a 100% para o uso da função de mapa no Arduino. Isso significa que, se o solo estiver seco, a porcentagem de umidade da produção será de 0% e se o solo estiver extremamente úmido, a porcentagem de umidade será de 100%.

percentage = map(soilMoistureValue, 490, 1023, 0, 100);
Serial.println(percentage);

Calibrando nosso sensor de umidade

No função de mapa, precisamos atribuir o valor seco e o valor úmido. Para fazer isso, precisamos monitorar esses valores. Você pode ler esses valores usando o seguinte código:

void setup() {
  Serial.begin(9600);
}
void loop() {
  int sensorValue = analogRead(A0);
  Serial.println(sensorValue);
  delay(1);

Carregue o código acima no seu Arduino e abra o monitor serial. Em seguida, coloque o sensor de umidade do solo em solo seco ou apenas segure o sensor no ar e leia o valor. agora coloque esse valor no lugar de 490 (segundo termo da função do mapa).

O próximo passo é colocar o sensor em solo úmido ou submergir em água e ler o valor e atribuir esse valor no lugar de 1023 (terceiro termo da função do mapa). Esses valores calibrarão seus sensores corretamente para obter melhores resultados.

Após converter os valores, podemos controlar a bomba de acordo com a porcentagem de umidade do solo. Com a ajuda de ‘Se condição‘, escrevo a primeira condição, se a porcentagem de umidade for inferior a 10, o Arduino girará o pino 3 para BAIXO e a bomba ligará (nosso módulo de relé usa o sinal baixo ativo para acionar) e o Arduino imprimirá a bomba na mensagem no monitor serial.

If (percentage < 10) 
{
  Serial.println(" pump on");
  digitalWrite(3,LOW);
}

Quando a porcentagem de umidade ultrapassar 80% (indicando que o solo está cheio de água), o Arduino desligará a bomba e imprimirá a ‘bomba’ no monitor serial.

if(percentage >80) 
{
  Serial.println("pump off");
  digitalWrite(3,HIGH); 
}
}

Testando o sistema de irrigação automática

Depois de carregar o código no Arduino, coloquei todo o circuito, exceto a bomba e a sonda do sensor, em uma caixa de plástico, como mostra a figura abaixo.

Agora coloque o sensor de umidade no solo. Coloque o sensor o mais próximo possível das raízes das plantas para maior precisão.

O passo final é colocar o motor em um recipiente cheio de água e sua irrigação automática está pronta para cuidar de suas plantas encantadoras quando você não estiver por perto.

Pode ser necessário alterar a porcentagem de umidade para iniciar e parar a bomba, pois diferentes plantas têm diferentes requisitos de água. Espero que você tenha gostado do projeto e esteja pronto para construir seu próprio sistema de irrigação automática usando o Arduino. Se você tiver alguma dúvida, poderá deixá-las na seção de comentários abaixo.

 

Código

int soilMoistureValue = 0;
int percentage=0;

void setup() {
  pinMode(3,OUTPUT);
  Serial.begin(9600);
}

void loop() {
  soilMoistureValue = analogRead(A0);
  Serial.println(percentage);
  percentage = map(soilMoistureValue, 490, 1023, 100, 0);
  
  if(percentage < 10)  
  {
    Serial.println(" pump on");
    digitalWrite(3,LOW);
  }
  if(percentage >80)
  {
    Serial.println("pump off");
    digitalWrite(3,HIGH);
  }
}

 

Visits: 2 Visits: 1125739