Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Servo.h>
- #include <SoftwareSerial.h>
- #define echoPin 2
- #define trigPin 3
- #define relay1 8 //Water pump
- #define relay2 11 //Air pump
- #define relayV 10 //Fert Vega
- #define relayF 12 //Fert Flora
- SoftwareSerial BT(3,2);
- Servo servoA;
- Servo servoB;
- Servo servoC;
- Servo servoD;
- int distance, duration; //Volume reservatório grande
- int angleA = 17; //Servo registro aberto
- int angleF = 102; //Servo registro fechado
- int volV, volF, fertV, fertF; //volumes trigger agua e fert Vega e Flora
- void setup(){
- Serial.begin(9600);
- pinMode(relay1, OUTPUT);
- pinMode(relay2, OUTPUT);
- pinMode(relayF, OUTPUT);
- pinMode(relayV, OUTPUT);
- digitalWrite(relay1, HIGH);
- digitalWrite(relay2, HIGH);
- digitalWrite(relayV, HIGH);
- digitalWrite(relayF, HIGH);
- pinMode(trigPin, OUTPUT);
- pinMode(echoPin, INPUT);
- servoA.attach(4);
- servoB.attach(5);
- servoC.attach(6);
- servoD.attach(7);
- servoA.write(angleF); //saída fechada
- delay(20);
- servoB.write(angleF); //saída vega fechada
- delay(20);
- servoC.write(angleF); //saída flora fechada
- delay(20);
- }
- void loop(){
- if(Serial.available() > 0) { //ler char bluetooth
- char data;
- data = Serial.read();
- Serial.write(Serial.read());
- /* Menu:
- * q Checar volume do barril
- * a Abrir porta
- * w volume maximo flora +1cm
- * s volume maximo flora -1cm
- * e Comerçar rega vega
- * d Comerçar rega flora
- */
- switch (data){
- case 'q': //volume reservatório
- digitalWrite(trigPin, HIGH);
- delay(100);
- digitalWrite(trigPin, LOW);
- duration=pulseIn(echoPin, HIGH);
- distance=(duration/2)/29.1;
- Serial.print(distance);
- Serial.print("CM");
- Serial.println("");
- delay(10);
- break;
- case 'w': //volume maximo flora +1cm
- volF++;
- Serial.print(volF);
- Serial.print("flora");
- Serial.println("");
- break;
- case 'a':
- Serial.print("Abrindo porta");
- Serial.println("");
- delay(20);
- servoD.write(angleA);
- delay(250);
- Serial.print("Porta aberta");
- Serial.println("");
- delay(250);
- break;
- case 'r':
- Serial.print("Fechando porta");
- Serial.println("");
- delay(20);
- servoD.write(angleF);
- delay(250);
- Serial.print("Porta Fechada");
- Serial.println("");
- delay(250);
- break;
- case 's': //volume maximo flora -1cm
- volF++;
- Serial.print(volF);
- Serial.print("flora");
- Serial.println("");
- break;
- case 'e': //Inicio rega vega
- Serial.print("Iniciando rega vegetativa");
- Serial.println("");
- Serial.print("Finalizado rega vegetativa");
- Serial.println("");
- delay(20);
- break;
- case 'd': //Inicio rega vega
- Serial.print("Iniciando rega floração");
- Serial.println("");
- servoA.write(angleF); //saída fechada
- delay(20);
- servoB.write(angleF); //saída vega fechada
- delay(20);
- servoC.write(angleA); //saída flora aberta
- delay(500); //Caso algum servo esteja aberto, tempo pra fechar
- digitalWrite(relay1,LOW); //Pump de agua on
- //delay(vasoF);// tempo até encher o reserv com a quant pros vasos da flora
- delay(2500);
- digitalWrite(relay1,HIGH); //Pump de agua off
- delay(250);
- digitalWrite(relayV,LOW); //pump de fert on
- //delay(fertF);// tempo do fert flora
- delay(2500);
- digitalWrite(relayV,HIGH); //pump de fert off
- delay(250);
- digitalWrite(relay2,LOW); //Air pump pra misturar on
- delay(2500);// tempo até mexer o fert no reserv
- digitalWrite(relay2,HIGH); //Air pump pra misturar off
- delay(250);
- servoA.write(angleA); //saída aberta
- delay(2500);// tempo até toda a agua descer
- servoA.write(angleF); //saída fechada
- delay(20);
- servoC.write(angleF); //saída flora fechada para o flush
- delay(500); //Tempo até a saida realmente fechar
- digitalWrite(relay1,LOW); //Pump de agua on para o flush
- //delay(volF);// tempo até encher flush
- delay(2500);
- digitalWrite(relay1,HIGH); //Pump de agua off
- delay(250);
- servoA.write(angleA); //saída aberta
- delay(2500);// tempo até toda a agua descer
- servoC.write(angleA); //saída flora aberta depois do flush no cano
- delay(2500);
- servoC.write(angleF); //saída flora fechada
- delay(20);
- servoA.write(angleF); // Saida fechada, todos os servos na posição fechado
- Serial.print("Finalizado rega floração");
- Serial.println("");
- delay(20);
- break;
- }
- }
- }
- /* digitalWrite(relay1,LOW); //liga o pump
- while (distance > volV){
- digitalWrite(relay1,LOW); //liga o pump
- delay(100);}
- digitalWrite(relay1,HIGH);
- delay(100);
- if
- ( (distance) > volF )
- digitalWrite(relayF,HIGH);
- */
- /*
- digitalWrite(relay1,HIGH);
- delay(100);
- break;
- }
- /* case '1':
- digitalWrite(relay1, HIGH);
- delay(100);
- digitalWrite(relay1, LOW);
- delay(100);
- break;
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement