# data[].attributes.body
-Beatriz M.
-Davi
-Kailayne
-Paulo H.
-Julia
-Gustavo Aprígio

# data[].attributes.body
Na primeira semana do trabalho adicionamos as primeiras informações no padlet, também procuramos em algumas lojas de materiais de construção uma mangueira para a válvula e um recipiente para servir como tonel.

# data[].attributes.body
2x sensores capacitativos
2x servo motores
1xarduino nano
1x sensor de umidade do solo
1x rele
1x válvula

# data[].attributes.body
(VIDEO/GIF A SER ANEXADO)

# data[].attributes.body
Nosso projeto consiste em dois sensores capacitivos, um sensor de umidade e uma válvula.
O sensor de umidade devera ser inserido no solo que se deseja irrigar, quando o sensor capacitivo mais próximo da abertura do tonel for acionado a válvula sera aberta e o solo irrigado apos um período de tempo, o sensor de umidade sera acionado é fechara a válvula.
Quando o tonel estiver prestes a esvaziar um outro sensor capacitivo em um baixo nível do tonel ira parar de detectar a água fazendo com que o tonel abra para ser feito o processo de reabastecimento

# data[].attributes.body
/Carrega a biblioteca do sensor ultrassonico
#include <Ultrasonic.h>

//Define os pinos para o trigger e echo
#define pino_trigger 4
#define pino_echo 6

//Inicializa o sensor nos pinos definidos acima
Ultrasonic ultrasonic(pino_trigger, pino_echo);

void setup()
{
Serial.begin(9600);
Serial.println("Lendo dados do sensor...");
}

void loop()
{
//Le as informacoes do sensor, em cm
float cmMsec;
long microsec = ultrasonic.timing();
cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);

//Exibe informacoes no serial monitor
Serial.println("Distancia em cm: ");
Serial.print(cmMsec);

delay(1000);
}

# data[].attributes.body
#define pino_sinal_analogico A0

int umidade_da_terra;
int porta_rele1 = 10;
void setup()
{
Serial.begin(9600);
pinMode(pino_sinal_analogico, INPUT);
pinMode(porta_rele1, OUTPUT);
}

void loop()
{
//Le o valor do pino A0 do sensor
umidade_da_terra= analogRead(pino_sinal_analogico);

//Mostra o valor da porta analogica no serial monitor
Serial.print("Porta analogica: ");
Serial.println(umidade_da_terra);
delay(500);

if (umidade_da_terra>=800){

digitalWrite(porta_rele1, HIGH);  //Liga rele 1
}

if (umidade_da_terra<800){
digitalWrite(porta_rele1, LOW); //Desliga rele 1
}

# data[].attributes.body
O sensor de umidade do solo consiste em 2 partes: uma sonda que entra em contato com o solo, e um pequeno módulo contendo um chip comparador LM393 (datasheet), que vai ler os dados que vêm do sensor e enviá-los para o microcontrolador, no nosso caso, um Arduino Uno. Como saída, temos um pino D0, que fica em nível 0 ou 1 dependendo da umidade, e um pino de saída analógica (A0), que possibilita monitorar com maior precisão usando uma porta analógica do microcontrolador(NESSE TRABALHO USAMOS A PORTA ANALÓGICA A0).       O módulo tem um led que indica quando a placa está sendo alimentada corretamente, e outro que acende quando a saída digital for acionada. A sensibilidade do módulo é ajustada por meio do potenciômetro existente na placa.

CIRCUITO
Usamos 3 portas do sensor de umidade(VCC, GND, A0). Vcc conectamos no 5V, GND no GND e A0 na porta analógica A0 do arduino.

# data[].attributes.body
O Sensor Ultrassônico HC-SR04 permite que você faça leituras de distâncias entre 2 cm e 4 metros, com precisão de 3 mm. Pode ser utilizado simplesmente para medir a distância entre o sensor e um objeto, como para acionar portas do microcontrolador, desviar um robô de obstáculos, acionar alarmes, etc. O funcionamento do sensor se baseia no envio de sinais ultrassônicos pelo sensor, que aguarda o retorno (echo) do sinal, e com base no tempo entre envio e retorno, calcula a distância entre o sensor e o objeto detectado(Distância = (Tempo echo em nível alto * velocidade do som) /2).

CIRCUITO
O sensor tem 4 terminais( ECHO, TRIGGER, VCC, GND). O echo e trigger são conectados nos pinos 6 e 4 do arduino  respectivamente, o GND é ligado no terra(negativo) e o Vcc recebe uma alimentação de 5V.

# data[].attributes.body
//COMPONENTES:

// Sensor de umidade(pino A0);
// Bomba d'agua para regar a planta.(liga quando o relé ativa);
// Relé(pino 8);

//Carrega a biblioteca do sensor ultrassonico
#include <Ultrasonic.h>

//Define os pinos para o trigger e echo
#define pino_trigger 4
#define pino_echo 7

//Inicializa o sensor nos pinos definidos acima
Ultrasonic ultrasonic(pino_trigger, pino_echo);

// VARIAVEIS DO PROGRAMA
const int pinoSensor = A0; // SENSOR DE UMIDADE
const int pinoValvula = 8; // PINO DO RELÉ (LIGA A BOMBA);
const int porcentagem = 30; // VALOR DE UMIDADE PARA COMEÇAR A REGAR;
const int tempoRega = 10;  // TEMPO DE REGA EM SEGUNDOS;
int umidadeSolo = 0;
float distancia=0;
float nivel=0;

void setup() {

pinMode(pinoValvula,OUTPUT);

Serial.begin(9600);

Serial.println(" projeto ifes");

Serial.println("Lendo dados do sensor...");

}

void loop() {
//digitalWrite(pinoValvula, LOW);

//Le as informacoes do sensor, em cm e pol

long microsec = ultrasonic.timing();

distancia = ultrasonic.convert(microsec, Ultrasonic::CM);

nivel=24-distancia;

//Exibe informacoes no serial monitor
Serial.print("Nível cm: ");
Serial.println(nivel);

for (int i = 0; i < 5; i++) {

Serial.println("Umidade: ");

// Faz a leitura do sensor de umidade do solo
umidadeSolo = analogRead(pinoSensor);

// Converte a variação do sensor de 0 a 1023 para 0 a 100
umidadeSolo = map(umidadeSolo, 1023, 0, 0, 100);

Serial.println(umidadeSolo);

delay(1000);

}

if ((umidadeSolo < porcentagem)and (nivel>2)) {

Serial.println(" regando");

digitalWrite(pinoValvula, 1);// LIGA VALVULA

}
if (umidadeSolo > porcentagem) {

Serial.println("Solo encharcado");

digitalWrite(pinoValvula, 0);

}

if (nivel < 2) {   // O NIVEL 2 , É O NIVEL MINIMO PARA A BOMBA FUNCIONAR.

Serial.println("sem agua");

digitalWrite(pinoValvula, 0);

}
}

# data[].attributes.body
Na terceira semana montamos o circuito do sensor ultrassônico e programamos no arduino.