Programando Arduino + Sensor de Umidade (Moisture)

· Arduino

Sensor de Umidade (Moisture Sensor)

Ontem recebi do SeeedStudio o Sensor de umidade (Grove – Moisture sensor), trata-se de um sensor de umidade do solo de baixo custo, desenvolvido para utilização em jardins. O sensor tem o tamanho de 2x6cm, conforme figura abaixo, tensão de funcionamento entre 3.3 e 5v e uma corrente de funcionamento entre 0 e 35mA.

Moisture SensorMechanic

O sensor já vem com conexão analógica padrão da base Shield Grove da Seeed, conforme figura abaixo:

Schematic Moisture Sensor

Teste do sensor de umidade no Arduino UNO

Para efetuar os primeiros testes do sensor de umidade utilizei os seguintes componentes:

Arduino UNO

Base Shield Grove

Cabo Shield Grove

Sensor de Umidade

Para o teste conectei 3 sensores nas portas analogicas 0,1 e 2 da base shield, que estava conectada no Arduino Uno, conforme figura abaixo:

Desenvolvi um programa demonstração, onde ele lê o valor mensurado pelo sensor e envia via serial os três dados lidos, a repetição é efetuada através de um loop “infinito” com um delay de 1 segundo entre uma medição e outra, segue abaixo o código fonte:

 

void setup() {
  // Inicializa a porta serial com velocidade de 9600bps
   Serial.begin(9600);  
}

//Funcao que recebe por parametro o numero do Pino Analogico do tipo inteiro
// Retorna um numero inteiro referente a humidade lida, variando entre 0 e 1028
int Ler_Humidade_Solo(int Pino_Sensor)
{
  return analogRead(Pino_Sensor);  // Le o valor analogico do pino recebido por paramentro e retorna.
}

void loop() {
  // Variavel auxiliar utilizada na estrutura de repeticao FOR
  int Pino_Sensor;  

  // Variavel auxiliar utilizada para efetuar a operacao
  //com os dados antes de enviar pela porta serial
  String Saida;

  //Estrutura de repeticao utilizada para ler e enviar os dados de todos sensores
  for ( Pino_Sensor=0 ; Pino_Sensor<3 ; Pino_Sensor++)
  {
    //Le e armazena os dados dos sensores com seu determinado indice
    Saida = "Sensor " + String(Pino_Sensor) + " = " + String(Ler_Humidade_Solo(Pino_Sensor));

    //Envia via porta serial os dados armazenados na variavel Saida
    Serial.println(Saida);   
  }

  //Tempo de espera de 1 segundo entre uma leitura e outra
  delay(1000);    
}

Com o codigo devidamente upado para o Arduino Uno o mesmo vai ficar enviando os valores lidos pelo conversor analógico-digital através da porta serial, para ver este dado enviado abra a função Serial Monitor do Arduino IDE, para efeito de testes deixei um sensor em um vaso de planta com solo encharcado, outro dentro d’agua e o terceiro solto encima da mesa, conforme observado na foto abaixo:

O sensor 0 estar ligado na porta A0 e solto encima da mesa, o sensor 1 estar ligado a porta A1 e emerso em água enquanto o sensor 2 estar ligado na porta A2 e dentro de um solo encharcado, os dados obtidos mostra uma pequena diferença entre o sensor 1 e 2:

Conclusão

Apos os primeiros teste ficou claro as limitações do sensor, uma vez que não foi desenvolvido para o mercado profissional atende bem projetos com pouca demanda de precisão, onde se precisa apenas saber por exemplo se estar seco ou molhado e não um valor absoluto da umidade do solo. Quanto a facilidade de programação do Arduino deixa claro a fácil implementação de qualquer aplicação mesmo sem ter um grande conhecimento de microcontroladores, programação ou eletrônica.

7 Comentários

Comments RSS
  1. janes

    Parabens pelo projeto! Muito bom!
    Tem com usar um LCD para mostrar as Informações lidas pelo sensor

    • Thalis Antunes

      Boa noite, Janes,
      Pode tranquilamente escrever os dados em um LCD, de forma simples.

  2. Emanuel Reis

    Eu preciso ter a Base Shield Grove para fazer a adaptação para o arduino UNO? Gostaria de saber também se você conhece algum projeto completo para jardim, com a programação pronta para ativar irrigadores por exemplo, quando a umidade estiver baixa. Desde já agradeço

  3. Eduardo castellani

    Legal, mas qual sensor mais preciso você recomendaria? eu preciso verificar, quando um tecido esta seco ou úmido.

    Obrigado

  4. Her9

    Podes fazer o programa complento acender o Led 13 se tiver seco e o 12 se estiver humido?

  5. Felipe

    Parabéns pelo post Thais.
    Tenho uma dúvida, você conhece algum sensor para medir o pH do solo ?
    Abs

  6. Felipe

    Oi Thais. Ótimo post.
    Eu segui os passos e utilizei teu código-fonte, mas não consegui obter o valor 0 utilizando o sensor em cima da mesa.
    Fez alguma ligação a mais nos sensores?
    Obrigado

Deixar um comentário