Projeto Arduino - Irrigação

O sistema proposto é uma integração do arduino com sistema de irrigação e monitoramento do ph do solo para cultivo de tomates. O sitema irá acionar automaticamente a irrigação quando for percebida um valor de tensão abaixo da faixa ideal. O sensor de ph irá acionar os leds que indicarão a necessidade de aplicação de correção de ph do solo.
Equipamentos Necessários

# Placa Arduino Uno R3
# Protoboard
# LEDS
# Cabos de conexões
# Tensiometro para solo
Faixa de medição: 0 até 100 kPa
# PHmetro
Faixa de medição: 3,5 até 9
# Irrigação por gotejamento
Montando O Circuito

O circuito deve ser montado conforme a imagem em anexo. O sistema de irrigação deve ser ligado no pino onde está conectado o led azul, ele é apenas figurativo nesse sistema.
Código

A seguir encontra-se o código que deverá ser inserido no sistema para que ele realize as atividades propostas de forma automatizada:
const int Lverdeph = 2; // define o pino de conexao com led verde para ph
const int Lvermph = 3; // define o pino de conexao com led vermelho para ph const int Lverdepot = 5; // define o pino de conexao com led verde para potencial const int Lamarepot = 6; // define o pino de conexao com led amarelo para potencial const int Lvermpot = 4; // define o pino de conexao com led vermelho para potencial const int Lirrigacao = 7; // define o pino de conexao para sistema de irrigação const int PinPot = A5; // define o pino do sensor de potencial const int PinPh = A4; // define o pino do sensor de ph float potencial, ph, VoltagemPh = 0, VoltagemPotencial = 0, Leiturapotencial, LeituraPh;
void setup() { pinMode(Lverdeph,OUTPUT); // Define o pino do led verde ph como saida pinMode(Lvermph,OUTPUT); // Define o pino do led vermelho ph como saida pinMode(Lverdepot,OUTPUT); // Define o pino do led verde potencial como saida pinMode(Lamarepot,OUTPUT); // Define o pino do led amarelo potencial como saida pinMode(Lvermpot,OUTPUT); // Define o pino do led vermelho potencial como saida pinMode(Lirrigacao,OUTPUT); // define o pino led de irrigaçao como saida pinMode(PinPh,INPUT); // Define o pino sensor de ph como entrada pinMode(PinPot,INPUT); // define o pino sensor de potencial como entrada Serial.begin(9600); // inicia a porta serial }
void loop() { LeituraPh = analogRead(PinPh); // le o valor do sensor de ph VoltagemPh = (LeituraPh*4.887); // 1023/500 Leiturapotencial = analogRead(PinPot); // le o valor do sensor de potencial VoltagemPotencial = (Leiturapotencial*4.887); // 1023/500 potencial = (VoltagemPotencial*20)/1000; // converte valor da leitura em potencial if ((VoltagemPh >= 0) && (VoltagemPh <= 2500)) // avalia o valor da leitura de ph { ph = ((1.4*VoltagemPh)+3500)/1000; // caso esteja na faixa indicada a conversão é feita pela curva } else // caso não esteja na faixa indicada anteriormente { ph = ((0.8*VoltagemPh)+5000)/1000; // a conversão é feita por outra curva } if ((ph >= 6) && (ph <= 6.5)) // avalia se o ph está dentro de uma faixa { // em caso positivo, executa o bloco abaixo digitalWrite(Lverdeph,HIGH); // liga o led verde digitalWrite(Lvermph,LOW); // desliga o led vermelho } else // caso não esteja na faixa, executa o bloco abaixo { digitalWrite(Lvermph,HIGH); // liga o led vermelho digitalWrite(Lverdeph,LOW); // desliga o led verde } if ((potencial >0) && (potencial <=10)) // avalia se o potencial está dentro da faixa especificada { // caso esteja, executa o bloco abaixo while (potencial <30) // enquanto o potencial for inferior ao valor indicado, executa o bloco abaixo { Leiturapotencial = analogRead(PinPot); // leê o pino de potencial VoltagemPotencial = (Leiturapotencial*4.887); // 1023/500 potencial = (VoltagemPotencial*20)/1000; // converte o potencial digitalWrite(Lirrigacao ,HIGH); // liga o led de irrigação digitalWrite(Lverdepot,LOW); // desliga o led verde digitalWrite(Lamarepot,LOW); // desliga o led amarelo digitalWrite(Lvermpot,HIGH); // liga o led vermelho Serial.print("PH: "); // imprime string Serial.print(ph); // imprime valor de ph Serial.print(" "); // imprime string Serial.println(""); // imprime string pulando linha Serial.print("Potencial: "); // imprime string Serial.print(potencial); // imprime valor de potencial Serial.print(" "); // imprime string } }
if ((potencial > 10) && (potencial <=20)) // verifica se valor de potencial está dentro da faixa { // caso valor esteja dentro da faixa, executa blobo abaixo digitalWrite(Lirrigacao ,LOW); // desliga led irrigaçao digitalWrite(Lverdepot,LOW); // desliga led verde digitalWrite(Lamarepot,HIGH);// liga led amarelo digitalWrite(Lvermpot,LOW); // desliga led vermelho Serial.println(""); // imprime string pulando linha Serial.print("Potencial: "); // imprime string Serial.print(potencial); // imprime potencial Serial.print(" "); // imprime string } if (potencial >20) // verifica se valor de potencial está dentro da faixa { // caso o valor esteja dentro da faixa, executa o bloco abaixo digitalWrite(Lirrigacao ,LOW); // desliga irrigaçao digitalWrite(Lverdepot,HIGH); // liga led verde digitalWrite(Lamarepot,LOW); // desliga led amarelo digitalWrite(Lvermpot,LOW);// desliga led vermelho Serial.println(""); // imprime string pulando linha Serial.print("Potencial: "); // imprime string Serial.print(potencial); // imprime potencial Serial.print(" "); // imprime string } Serial.print("PH:"); // imprime string Serial.print(ph); // imprime ph Serial.println(""); // imprime string pulando linha }
Iniciar O Sistema

Para inciar o sistema basta ligar a placa do arduino e deixar que execute o código inserido.