Agolva (discussão | contribs)
Sem resumo de edição
Agolva (discussão | contribs)
Sem resumo de edição
Linha 116: Linha 116:




  == Código (.ino) ==
  == Código ==
 
/*
Prototipo M3 Irrigacao
Grupo: Alice Golva, Camila Belotti, Lara Braz
*/
 
//Declaracoes
int pinoLM35 = A3;
int ledRed = 9; // led vermelho esta na porta digital 9 do arduino
int ledGreen = 10; //led verde esta na porta digital 10 do arduino
int BotaoLD = 6; //botao LD esta na porta digital 6 do arduino
int BotaoMA = 7; //botao MA esta na porta digital 7 do arduino
int estadoB1 = 0; //botao LD inicializado  como 0(desligado, pressionado)
int estadoB2 = 0; //botao MA inicializado  como 0(desligado, pressionado)
int flag1 = 0; // variavel para ler o estado em que o botao LD se encontra, ou seja, se o pivo esta ligado ou desligado
int flag2 = 0; // variavel para ler o estado em que o botao MA se encontra, ou seja, se o pivo esta ou nao no modo automatico
int pinoSensor = 0;
int valorLido = 0;
int rele = 8; //o rele esta na porta digital 8 do arduino
float temperatura = 0; // parametro temperatura e inicializado como 0
 
#include <LiquidCrystal.h> //Biblioteca do display
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //portas do arduino em que o display esta ligado
 
void setup()
{
  //Inicializacoes
  pinMode(BotaoLD, INPUT); //este botao trabalha apenas como entrada, ou seja, arduino sempre coleta suas informacoes
  pinMode(ledRed, OUTPUT); // led trabalha apenas como saida, ou seja, arduino somente 'manda' tensão para ele
  pinMode(ledGreen, OUTPUT); //idem
  digitalWrite(BotaoLD, 1); //inicializa o botao LD como HIGH/1/levantado/não apertado
  digitalWrite(BotaoMA, 1); // idem para botao MA
  lcd.begin(16, 2);//funcao do display, indica que ele e uma matriz 16x2
  Serial.begin(9600);
  pinMode(rele, OUTPUT);// o rele trabalha apenas como saida, ou seja, arduino somente 'manda' tensão para ele
  digitalWrite(rele, 0); //rele inicializado como "desligado" (lógica contrária aos botões)
}
 
void loop() //funçao principal
{
  do{
  flag1 = digitalRead(BotaoLD); //A variavel flag1 le o botão. O BotaoLD, inicialmente está como HIGH. Ao ser pressionado, vira LOW. Entao, flag vira LOW e entra no if abaixo
 
  if(flag1==0) //Se o estado do botão for igual à zero (ou seja, for pressionado uma vez, então...)
  {
  estadoB1 = 1 - estadoB1; //inverte o valor do estado do botão liga (estava inicialmente 0-'desligado', agora se encontra 1-'ligado')
  }
 
  if(estadoB1 == 1)//se o estado do botãoLD for igual a um, indica que foi apertado, ou seja, 'ligado'. Isto indica que o usuário deseja LIGAR o pivô. Então..
  {
  digitalWrite(ledGreen, estadoB1); //acende o led verde
  digitalWrite(ledRed,0); //desliga o led vermelho
  digitalWrite(rele, 1); //aciona o rele, que liga a bomba, que liga o pivô.
  lcd.clear(); //limpa o display
  lcd.setCursor(0,0); //coloca o cursor no inicio do display
  lcd.print("Estado:"); //mostra mensagem no display
  lcd.setCursor(0,1); //coloca o cursor na linha debaixo
  lcd.print("Pivo ligado!");  // mostra mensagem com o estado em que o pivo se encontra-ligado
  }
 
  else // se o botão não foi pressionado, ou seja, o usuário não pediu que ligasse o pivô (default)
  {
  digitalWrite(ledGreen, 0); //desliga o led verde 
  digitalWrite(ledRed, 1); //liga o led vermelho - este fica sempre ligado para indicar que o pivô encontra-se desligado
  digitalWrite(rele, 0); //arduino não esta liberando tensao para o rele, ou seja, a bomba esta desligada
  lcd.clear(); //limpa a tela
  lcd.setCursor(0,0); //coloca cursor no inico da tela
  lcd.print("Estado:"); //mostra mensagem no display
  lcd.setCursor(0,1); //coloca o cursor na linha debaixo
  lcd.print("Pivo desligado!");  // mostra mensagem com o estado em que o pivo se encontra-ligado
}
delay(200); //pausa no programa por 2 segundos
}while(estadoB1 == 1); //fazer isto enquanto o botao nao for pressionado novamente
 


[[Arquivo:M3IrrigacaoCodigo.jpg]]


  == Vídeo ==
  == Vídeo ==

Edição das 18h56min de 5 de março de 2014

Integrantes

  • Alice Golva
  • Camila Beloti
  • Lara Braz



5W2H


What

  • 1. Qual o objetivo deste projeto?

O objetivo deste projeto é controlar (pela central de operações) o irrigador de jardim. Essa nova tecnologia proporcionará uma automatização desta tarefa. O irrigador de jardim automatizado poderá proporcionar ao proprietário da casa maior tranquilidade quanto ao cuidado de suas plantas. O proprietário não precisará se preocupar com o horário de irrigação, nem mesmo com a quantidade de água necessitada pelas mesmas. Dessa forma, o irrigador é ligado no momento em que o solo estiver seco (a sua resistência aumenta, dificultando a passagem de corrente, indicando o momento da irrigação). Saber quando irrigar é conhecer a capacidade de retenção de água no solo, de forma a garantir que a água reposta pela irrigação fique armazenada em uma profundidade que possa ser aproveitada pelas raízes das plantas. É preciso que o sistema não extrapole a capacidade de irrigação, pois pode significar perda de ingredientes e nutrientes necessários para o solo.


Who

  • 1. Quais elementos fazem parte do sistema?
    • Sensores de temperatura e umidade;
    • Arduino;
    • Interface de comunicação com o usuário (celular, computador, etc).
    • Pivô


Where

  • 1. Onde esta aplicação poderá ser usada?

Esta aplicação poderá ser usada em residências que possuem jardim. Uma das vantagens desse projeto é que o proprietário não precisa necessariamente estar em casa ou se preocupar com horários para ligar o irrigador, pois a própria central M2M se encarregará disso. Além disso, o irrigador beneficiará leigos em jardinagem. Será possível determinar uma quantidade de água que determinada espécie de planta necessita para sobreviver. Os principais beneficiados com este projeto são os próprios moradores da casa, que pouparão tempo (pois não precisará reservar um período do dia para aguar as plantas) e também dinheiro (já que o irrigador automatizado trabalhará de forma a economizar a quantidade de água necessária para a sobrevivência das plantas).

How

  • 1. Descreva a 1a. funcionalidade?
    • Ligar (à distância) o irrigador de jardim.


  • 2. Descreva a 2a. funcionalidade?
    • Desligar (à distância) o irrigador de jardim.


  • 3. Descreva a 3a. funcionalidade?
    • Ativar o modo automático. Este acionará sensores (de temperatura e umidade) que foram colocados no jardim para que seja avaliado a necessidade de irrigação.


How much

  • 1. Quanto custa cada sensor?
    • Sensor de temperatura do solo pode variar de R$30,00 à R$50,00.
      • Exemplo: Sensor de Temperatura Watermark Modelo: 200TS Preço: R$40,50
    • Sensor de umidade do solo pode variar de R$20,00 à R$40,00.
      • Exemplo: Moisture Sensor Preço: R$24,00


Informações Adicionais

  • Para o desenvolvimento do projeto, na parte de levantamento de requisitos, será feita uma entrevista com moradores que possuem interesse no produto, bem como jardineiros e biólogos. Essas pesquisas contribuirão para a eficiência do sistema, pois serão avaliadas as necessidades e as dificuldades encontradas nessa atividade.
  • Será criado um exemplo para demonstrar a forma como o irrigador trabalhará. Esse protótipo será controlado pela plataforma Arduino. As funções IDE do Arduino permitem o desenvolvimento de software que possa ser executado pelo dispositivo. Além disso, serão utilizados sensores mais simples de serem manuseados, como o sensor de temperatura (essencial para o funcionamento deste projeto).


Diagrama de Fluxo de Dados - Nível 0

Diagrama de Fluxo de Dados

Diagrama Entidade Relacionamento

Diagrama de Classes

Diagrama de Casos de Uso

Detalhamento Casos de Uso

Diagrama de Estado

Diagrama de Sequência

Protótipo

== Materiais utilizados ==
== Dificuldades ==
Uma das maiores dificuldades encontradas na realização do protótipo foi encontrar os materiais que seriam utilizados. À princípio, o arduíno controlava uma bombinha de água de 220V (através de um relé). Entretanto, esta causava ruídos na tela do display que foi utilizado no projeto. No intuito de amenizar os ruídos, utilizou-se uma bombinha de água de 110V. Com a persistência do erro, utilizou-se uma bombinha de água de 12 V. Com esta bombinha, foi possível apresentar o protótipo sem que o display fosse preenchido por "lixo". 
== Aperfeiçoamento ==


== Código ==

Arquivo:M3IrrigacaoCodigo.jpg

== Vídeo ==