quarta-feira, 20 de abril de 2016

Regador automático de plantas com arduino.

Saudações ao povo maravilhoso que acompanha o meu blog, depois de um tempo sem postar vim trazer uma novidade quentissima a todos vocês, dessa vez éum excelentíssimo projeto que eu chupinhei de um outro site e que comigo funcionou perfeitamente. Um sistema que avalia a humidade do solo envolta da planta e, de acordo com uma porcentagem pre estabelecida, ele manda um pulso para acionar seja uma bomba,uma válvula o que sua imaginação permitir.

Para fins de demonstração coloquei um led como saída do pulso caso a percentagem abaixe ao limite pre-estabelecido,e também um delay para que de tempos e tempos o computador revise o programa(claro se a humidade subir não será mais necessário regá-lo)

E para ficar ainda mais diidático coloquei um display lcd que mostra em tempo real a humidade do solo na ocasiao, atualizado conforme o delay.

Antes de mais nada chupinhem a imagem


Uma coisa a atentar aqui e que o cara usou um resistor de 680 ohms para ajustar o contraste do display lcd, usei o referido resistor e pelo menos comigo não funcionou.Então adaptei um potenciometro pra regular o contraste de 10k linear.Pelo que voce ve no desenho não é necessario dar uma carga positiva no potenciometro, o terminal do meio voce liga o terra do arduino e numa ponta voce liga o display lcd no seu pino3. e o terminal da outra ponta voce finge que ele não existe ;)

Agora vamos ao código:
----------------------------
/*
# Autor: Fernando Krein Pinheiro,alterado por luciano cristiano
# Data: 17/09/2014
# Linguagem: C
# ========= IMPORTANTE ===========
# O codigo esta livre para usar,
# citar e compartilhar desde que
# mantida sua fonte e seu autor.
# Obrigado.
*/
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int umidade;

void setup()
{
  lcd.begin(16, 2);
  pinMode(13, OUTPUT);
}

void loop()
{
  digitalWrite(13, LOW);
  lcd.setCursor(0, 0);
  umidade = analogRead(A0);
  umidade = map(umidade, 1023, 0, 0, 100);
  lcd.print("Umidade em:");
  lcd.print(umidade);
  lcd.print(" %");
  if(umidade < 30)
  {
     lcd.setCursor(0, 1);
   lcd.print("irrigando");
    digitalWrite(13, HIGH);
  }
  delay(500);
  lcd.clear();
}

 
---------------------------
Caso voce não queira nada muito complicado ou talvez não disponha de um display lcd, pode se fazer uso desse projeto também, que também funciona, porem não fiz um vídeo do mesmo, apenas testei.
 E seu código fonte
---------------------------------------------------

/*********************************
 ***Autor: Leonardo Dalla Porta****
 ***********25/05/2014*************
 *************Atenção**************
 ***O Codigo esta livre para uso,**
 *desde que seja mantida sua fonte*
 ********e seu autor.**************
 ********Faça um bom uso***********
 ******Att. Equipe UsinaInfo*******
 *********************************/
int umidade;
void setup()
{
  Serial.begin(9600);
  Serial.println("www.usinainfo.com.br");
  pinMode(13, OUTPUT);
}
void loop()
{
  umidade = analogRead(A0);
  int Porcento = map(umidade, 1023, 0, 0, 100);
  Serial.print(Porcento);
  Serial.println("%");
  if(Porcento <=70)
  {
    Serial.println("Irrigando...");
    digitalWrite(13, HIGH);
  }
  else
  {
    digitalWrite(13, LOW);
  }
  delay(1000);
}
-------------------------

Com ele voce monitora pelo monitor serial que também mostra a porcentagem em tempo real

E é isso ahe pessoal, em breve postarei um vídeo do bichao funcionando
Como prometido, eis o vídeo

Nenhum comentário: