



Algumas pessoas tem interesse em ter um pequeno jardim em casa ou alguns vasinhos no apartamento. Mas nessa vida agitada, nem sempre isso é possível. Se não cuidar das plantinhas adequadamente, o mais certo é que elas não sobreviverão. Cada planta tem uma necessidade diferenciada de condição de habitat. Algumas precisam de umidade, outras precisam de mais sol. Outras nem precisam ser molhadas com tanta frequência, como o Cacto. E sobre irrigação, algumas precisam ter as folhagens molhadas, outras só podem ser irrigadas no solo. O primeiro passo para ter plantas em casa é estudar sobre elas. Aprender como cuidar delas. Com a tecnologia atual, muita automação no cultivo das plantas poderá ser feita. Apesar que acho que muitas pessoas gostam de ter o contato com as plantinhas, para um momento de relaxamento e reflexão. Mas imagine se tiver que fazer uma viagem de férias de duas semanas? Quem cuidará das suas plantinhas? Várias pessoas já perderam suas plantas, pois ficaram muito tempo sem ser irrigadas. Aí poderá usar a automação! Nesse tutorial, pretendo introduzir a automação para irrigação de plantas com Arduino. Essa automação poderá ser usada para pequenos jardins ou então em uma plantação maior, desde que tenha mais sistemas de controle que não permitam falhas.
O sensor de umidade do solo mede basicamente a resistividade da terra. Se a terra estiver molhada, menor será a resistividade. E se a terra estiver seca, a resistividade será maior. O dispositivo que deverá ser enterrado no solo, consiste de duas superfícies metalizadas e isoladas uma da outra. A terra molhada sobre essas superfícies, permitirá a passagem de corrente. Essa corrente passando pela resistência do solo desenvolverá uma diferença de potencial (tensão) , que será medida pelo conversor ADC do Arduino (portas analógicas). Quanto maior a tensão medida pelo Arduino, menor será a umidade do solo. No caso do solo úmido, a tensão deverá ser mais baixa. A conexão entre o sensor YL-69 e o módulo comparador deverá ser feita com fios. Não existe polaridade nesses fios. Recomendo a soldagem desses fios e o isolamento com tubos retráteis (quando aquecidos). Como ficarão sujeitos à umidade e água, as conexões precisam ficar protegidas e isoladas. Acho que um pouco de cola quente, pode ser util também para proteger as partes sujeitas à corrosão (conexões). O módulo comparador deverá ficar distante das plantas e protegido contra água e umidade.


O Sensor de chuva tem o mesmo princípio de funcionamento do Sensor de umidade do solo. A diferença está na maior quantidade de linhas de detecção das gotas de chuva. Quando as gotas caem sobre a superfície do Sensor MH-RD, a resistividade do circuito diminui, portanto a tensão também. Quando a tensão estiver alta - sem chuva, tensão baixa - chuva ! O mesmo Módulo comparador poderá ser usado para o Sensor de chuva. Mas como montarei os dois sensores em um mesmo Arduino, será necessário um módulo comparador para cada sensor.

Essa é a montagem do Sensor de umidade do solo e Sensor de chuva com o Arduino. Acrescentei um módulo de relé para acionamento de uma pequena bomba d'água para irrigação das plantas. Use o contato normalmente aberto do relé para controlar o circuito da bomba d'água. Materiais necessários para o projeto com Sensor de Umidade do Solo e Sensor de Chuva

// Arduino - Sensor de umidade do solo e Sensor de chuva
// https://blog.eletrogate.com/guia-do-sensor-de-umidade-do-solo-e-sensor-de-chuva/
// baseado em https://randomnerdtutorials.com/guide-for-rain-sensor-fc-37-or-yl-83-with-arduino/
int sensorUmidadeSolo = A0; // Sensor de umidade do solo pino A0 conectado no A0 do Arduino
int sensorChuva = A1; // Sensor de chuva pino A0 conectado no A1 do Arduino
int portaRele = 4; // porta de controle do relé conectada no D4 do Arduino
int valorLimiteUmidade = 500; // valor numérico da tensão de comparação do sensor / valor máximo = 1024
int valorLimiteChuva = 500; // valor numérico da tensão de comparação do sensor / valor máximo = 1024
bool chuva; // condição de chuva
bool soloUmido; // condição de solo úmido
void setup()
{
pinMode(sensorUmidadeSolo, INPUT); // Sensor de umidade do solo - porta A0 é entrada
pinMode(sensorChuva, INPUT); // Sensor de chuva - porta A1 é entrada
pinMode(portaRele, OUTPUT); // Porta de controle do Relé - D4 é saída
digitalWrite(portaRele, HIGH); // Mantenha relé desligado
Serial.begin(9600); // Monitor console 9600 Bps
}
void SensorDeChuva ()
{
int valorSensorChuva = analogRead(sensorChuva); // fazendo a leitura do Sensor de chuva
Serial.print(" Sensor de chuva = "); // imprime mensagem
Serial.print(valorSensorChuva); // imprime o valor do sensor de chuva
if (valorSensorChuva < valorLimiteChuva) // se o valor for menor do que o limite
{
Serial.println(" => Esta chovendo"); // imprime a mensagem
chuva = 1 ; // esta chovendo
}
else // senão
{
Serial.println(" => O tempo esta seco"); // imprime a mensagem
chuva = 0 ; // não esta chovendo
}
}
void SensorDeUmidade ()
{
int valorSensorUmidadeSolo = analogRead(sensorUmidadeSolo); // fazendo a leitura do Sensor de umidade do solo
Serial.print(" Sensor de umidade do solo = "); // imprime mensagem
Serial.print(valorSensorUmidadeSolo); // imprime o valor do sensor de umidade do solo
if (valorSensorUmidadeSolo < valorLimiteUmidade) // se o valor for menor do que o limite
{
Serial.println(" => O solo esta úmido"); // imprime a mensagem
soloUmido = 1 ; // solo esta úmido
}
else // senão
{
Serial.println(" => O solo esta seco"); // imprime a mensagem
soloUmido = 0 ; // solo não esta úmido
}
}
void ControleDoRele() // ajuste o tempo de acionamento da bomba
{
digitalWrite(portaRele, HIGH); // relé desligado
digitalWrite(portaRele, LOW); // relé ligado
Serial.println(" Relé acionado "); // imprime a mensagem
delay (1000); // tempo de acionamento da bomba dágua = 1 segundo
digitalWrite(portaRele, HIGH); // relé desligado
}
void loop()
{
for (int i = 1; i < 4321; i++) // contagem de 1 a 4320 ( 4320 x 5 segundos = 6 horas)
{
SensorDeChuva (); // faz medição do sensor de chuva
SensorDeUmidade (); // faz medição do sensor de umidade do solo
if (chuva == 0 && soloUmido == 0 && i == 1) ControleDoRele(); // aciona a bomba dágua a cada 6 horas se tempo e solo estiverem secos
Serial.print(i*5); // imprime tempo em segundos
Serial.println(" segundos"); Serial.println(); // imprime mensagem e uma linha
delay(5000); // atraso de 5 segundos
}
}
Se você quiser implementar um controle melhor das condições climáticas do seu jardim, sugiro que acrescente também uma monitoração da umidade e temperatura do ar . Veja esse tutorial :
Guia básico dos Sensores de umidade e temperatura DHT11 e DHT22
Para programar o horário de irrigação das plantas, poderá acrescentar um relógio RTC. Imagine irrigar somente na parte da manhã ou da noite, quando o clima é mais ameno ! Se quiser sofisticar ainda mais, uma outra sugestão é criar um sistema de monitoração de todas as condições do jardim através de acesso remoto na WEB. Mas ai fica para um próximo tutorial.
Guide for Rain Sensor FC-37 or YL-83 with Arduino
Guide for Soil Moisture Sensor YL-69 or HL-69 with Arduino
Sparkfun - Soil Moisture Sensor Hookup Guide
Tenha a Metodologia Eletrogate na sua Escola! Conheça nosso Programa de Robótica Educacional.
|
Algumas pessoas tem interesse em ter um pequeno jardim em casa ou alguns vasinhos no apartamento. Mas nessa vida agitada, nem sempre isso é possível. Se não cuidar das plantinhas adequadamente, o mais certo é que elas não sobreviverão.
Encontre tudo na Loja Eletrogate com frete grátis para compras acima de R$ 200
Respostas de 2
Preciso de um esquema mais analógico possível, mais mecânico onde o sensor de chuva aciona um relé de pulso quando molha e faz o relé dar outro pulso quando seca
Pensei numa solenóide quando tem corrente ela atraca e quando sessa a fonte ela desatraca
Boa noite Edson,
Esse projeto do tutorial é totalmente microcontrolado pelo Arduino.
Não atende as suas necessidades.
Atenciosamente,
Gustavo Murta