Desenvolvi este sistema para um cliente irrigar seu cultivo de uma iguaria deliciosa: cogumelos Shiitake. Como é muito sensível a variações de temperatura e umidade, o objetivo é equilibrar e manter estas variáveis mais constantes dentro da estufa. Em uma semana muito quente ou pouco úmida, a quantidade da colheita pode variar mais de 100% e a qualidade com a falta de umidade deixa o fungo muito mais seco.

Esse é o aspecto geral da traquitana, com exceção do sensor de temperatura e umidade, que fiz um orifício para ele ficar para fora. Tudo fica bem vedado aí dentro para entrar menos umidade quanto possível, que é bem alta o tempo todo, fora a possibilidade de pequenos insetos entrarem também e causarem um curto.
Tomadas de decisão
A estufa/galpão já está em operação e a irrigação por aspersores é feita por uma bomba acionada manualmente pelo funcionário todas as manhãs. Então o meu trabalho aqui se resume a fazer a eletrônica, o software e a sua instalação no galpão.
Como ainda não sabemos o impacto no cultivo, planejei com a Lumiar Cogumelos a implementação em várias etapas incrementais e começar o mais rápido possível. Assim, o protótipo V Mk I (Vinagre, marco 1) é bem básico e não tem mostrador nem grava log. Suas funções são:
- A cada 10 minutos verifica a temperatura e umidade;
- Caso a temperatura esteja MENOR IGUAL QUE 28ºC OU umidade MENOR IGUAL 85%, uma bomba é acionada.
Coloquei todos os componentes dentro de uma única caixa para facilitar a montagem em casa e depois só montar lá em Nova Friburgo. Pensamos na possibilidade de espalhar mais sensores e deixar a eletrônica perto da tomada da bomba, mas isso ia requerer passar um fio de 10m para o sensor, o que consideramos inviável.
Dadas as condições com uma só caixa o sistema fica mais robusto. Isso é importante pois temos que considerar as intempéries numerosos animais e que é uma área de movimentação na colheita, a probabilidade de romper um fio fino era grande. E o Xbee (para wireless) ia complicar o projeto e triplicar o preço.
Montagem
Comecei a montagem fazendo os testes somente a leitura de temperatura, depois só o acionamento do relay (Relé), vi que tudo funcionava e depois juntei as duas. Com a quantidade de fios aumentando começa a ficar mais complicado, principalmente para puxar e compartilhar a alimentação de 5V mas ainda dá pra fazer direto no Arduino usando os pinos VIN. Mais que isso, com o SD e o LCD, temos que usar uma prototype shield ou uma placa PCB de prototipagem e soldar as ligações.

Estágio de testes, montei com calma cada um separado e depois juntei a eletrônica e o código. Isso foi importante para entender a dinâmica e comportamento de cada elemento.
Lista de Material
Muitas peças eu já tinha estocadas, mas outras comprei na rua República do Líbano aqui no Saara. Se voce puder esperar pela entrega do eBay, a economia sai no mínimo em 50% incluindo a entrega, mas demora sempre entre 30 e 60 dias.
- Arduino Duemila – R$ 34.00 no eBay;
- Sensor DHT11 já montado- R$ 7,00 no eBay;
- Módulo relay (1 relay)- R$ 3,60 no eBay;
- Verniz para proteger eletrônica: R$ 12,00 no Saara;
- Fonte 220V input – 9V output 1A: R$ 18,00 no Saara (pelo menos é made in Brazil);
- Vasilha para servir de case: R$ 3,50 em loja de potes de cozinha;
- Base de mdf de 6mm, sucata.
Custo total: R$ 78,10
Sendo que o verniz ainda pode ser usado em muitos outros projetos, então o custo somente dos componentes seria de R$ 66,10.

O esquema é basicamente este, foi desenhado no Fritzing. Só atenção aos pinos de saída que voce pode mudar como quiser.
Referências e programação
Provalvemente voce vai ter que baixar e instalar uma biblioteca do Arduino dentro da pasta libraries para poder incluir a dht11.h, para o relay não é necessário instalar nada. Segui este ótimo tutorial para o sensor de temperatura:
http://learn.adafruit.com/dht
Para o relay, este é bacana:
http://www.arduinotutorials.com/view.php?id=5555
Código
/************************************************************* project: Irrigacao da Lumiar Cogumelos author: Raphael Vinagre data: 23/01/2013 description: Sistema de controle de temperatura e umidade de estufa. Parametros definidos no codigo. Intervalo de leitura: 10 minutos Tempo de acionamento da bomba: 1 minuto Componentes: Sensor DHT11, Relay. *************************************************************/ int i = 0; // para contar o n de acionamentos da bomba #include <dht11.h> dht11 DHT11; #define DHT11PIN 2 //pino do DHT11 #define RELAY1 7 //pino do relé void setup() { Serial.begin(115200); Serial.println("DHT11 TEST PROGRAM "); Serial.print("LIBRARY VERSION: "); Serial.println(DHT11LIB_VERSION); Serial.println(); pinMode(led, OUTPUT); pinMode(RELAY1, OUTPUT); } void loop() { Serial.println("\n"); int chk = DHT11.read(DHT11PIN); Serial.print("Read sensor: "); switch (chk) { case 0: Serial.println("OK"); break; case -1: Serial.println("Checksum error"); break; case -2: Serial.println("Time out error"); break; default: Serial.println("Unknown error"); break; } Serial.print("Humidity (%): "); Serial.println((float)DHT11.humidity, 2); Serial.print("Temperature (oC): "); Serial.println((float)DHT11.temperature, 2); if (DHT11.temperature >= 28 || DHT11.humidity <= 90 ) { Serial.print("Temperatura Maior Igual 28C \n"); digitalWrite(RELAY1,LOW); // Turns ON Relays 1 Serial.print("Bomba LIGADA \n"); delay(60000); // Wait 1 minute digitalWrite(RELAY1,HIGH); // Turns Relay Off Serial.print("Bomba DESLIGADA \n"); } else { delay(60000); // Espera 1 minuto para nao dar diferenca de tempo se a bomba nao é acionada.} Serial.print("\n id:"); Serial.print(i); i++; delay(540000); // send the temperature every 10 minutes 540000 + 60000 milliseconds (bomba acionada) //pausa final: 10minutos. Calibrar pois o tempo dos intervalos se somam. } // // END OF FILE //
Incrementos futuros
- Trocar o sensor DHT11 para o DHT22, para melhor resolução da umidade;
- Acoplar o módulo SD para gravar um log da temperatura em uma planilha;
- Colocar um mostrador de LCD com o status da medição;
- Reprogramar o software usando funções de timer mais avançadas.
Espero que seja útil, e qualquer dúvidas, melhorias ou sugestões são sempre bem vindas. Assim que eu tiver as fotos e avaliações da instalação eu coloco em um novo post.
Pingback: Irrigação inteligente com Arduino: parte 2 | Projetos, construções e repraps
Achei interessante seu projeto. Teria como fazer ele funcionar somente no horário programado (Ex: todos do dias das 8:00 às 8:30) e fazer ele acionar válvulas solenoides separadamente?
Tudo é possível!
Isso é bastante fácil com o arduíno, o único porem é como contar o tempo e as horas… Voce pode começar usando um ‘epoch converter’ onde vai ter que contar o tempo em milisegundos… e regular com a hora local para acionar as válvulas. O único porém desta solução é se acabar a luz, aí zera a sua contagem. Por isso voce deve usar uma bateria (pode ser pilhas ou 9V) de backup ou então usar um módulo time (bem barato, com uma bateria de relógio) que vai fornecer a data.
Uma outra maneira é usar um timer só para isso, no eBay voce acha o 7×24 (timer programável 24 horas, 7 dias por semana) aí é só colocar no lugar, mas aí não é tão divertido. Exemplo: http://www.ebay.com/itm/7-Day-Dual-Outlet-Digital-Timer-24-Hour-Digital-Timer-two-outlets-15-Amps-NIB-/190791478656?pt=LH_DefaultDomain_0&hash=item2c6c0eed80
Eae cara blz ? Só uma correção, lá em cima vc escreve: menor igual a 28, seria maior igual a 28.
Abraço
Amigo quero fazer um sistema com arduino para molhar meu gramado! Hoje tenho um sistema aqui com uma valvula de solenoide e 6 aspersores e um timer que molha todos os dias em horario pré programado. Mas ai a questão quando chove ele tambem molhar queria implementar o sensor de umidade para que não permitisse a rega quando o solo muito umido! Você me ajudaria nesse projeto eu compro as coisas e faço aqui so me ajuda na hora das duvidas te pago algo se for preciso!
Desde ja agradeço e belo material postato!
Sem mais
Alexandre Campos
Amigo, se conseguiu, tem como me enviar o codigo?
Conseguiram? Fiquei interessado nesse projeto.
Olá Alexandre Campos, deu certo seu projeto de irrigação ? estou pretendendo fazer um modelo assim tbm. Se tiver alguma dica para me ajudar.
Att,
Marcos Roginski
Onde vc ligou a Fonte 220V input – 9V output 1A ? Se for possivel me manda detlhado seu projeto por meu e-mail. faço curso técnico em eletrônica to acrescentar mais alguns componentes no seu projeto.