Fechadura eletrônica / Assistente pessoal (COM ARDUINO)

codigo : 
/***************************************\ 
**               Robotec               ** 
*    https://robotec.webnode.com.br/     * 
*                                       *
*      inscreva-se no nosso canal       *
*    www.youtube.com/c/Roboteclink      *
*                                       *
*        curta a nossa fampage          *
*   www.facebook.com/Robotecoficial/    *
*                                       *
* ESTE CODIGO É DA ROBOTEC COMPORATION  *                                
*       FAVOR - MANTER O DOMINIO        *
**                                     ** 
\***************************************/
 
#include //biblioteca do controle remoto
#include //biblioteca do servo motor
#include //biblioteca do lcd
 
Servo myservo;
int RECV_PIN = 8;//pino do controle
int seg=0,//segundos da hora
min=23,//minutos da hora
hor=14;//tempo da hora
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//pinagem do lcd
const int Buzzer = 6;//pinagem do buzzer
const int PinoSensor = 0 ;//pinagem do sensor de temperatura
int ValorSensor = 0;
const int LDR = 1 ;//pinagem do sensor de luminosidade
int ValorLido = 1;
 
IRrecv irrecv(RECV_PIN);
 
decode_results results;
 
void setup()
{
  pinMode(Buzzer, OUTPUT);
  myservo.attach(9);
  Serial.begin(9600);
  irrecv.enableIRIn(); // Iniciou o receptor
 
  lcd.begin(16, 2);//bortão de entrada
  lcd.setCursor(1,0);
  lcd.print("Seja Bem-Vindo!");
  lcd.setCursor(3,1);
  lcd.print("Joao Victor");//seu nome
}
 
void loop() {
 
  if (irrecv.decode(&results)) {
    String s = String(results.value, HEX); //decodificar os resultados em hexadecimal do controle 
    if(s != "ffffffff"){
      Serial.println(s);
    }
 
    if(s == "e12458a7"){//função de girar o servo para fechar a porta
      myservo.write(2370);
      lcd.begin(16, 2); 
      lcd.setCursor(0, 0);
      lcd.print("'''''FECHADO'''''");
      lcd.setCursor(0,1);
      lcd.print(" YT/Roboteclink");
      digitalWrite(Buzzer, HIGH);
      delay(500); 
    }
    else if(s == "e124a05f"){
      myservo.write(570); // função de girar o servo para abrir a porta
      lcd.begin(16, 2); 
      lcd.setCursor(0, 0);
      lcd.print("'''''ABERTO'''''");
      lcd.setCursor(0,1);
      lcd.print(" YT/Roboteclink");
      digitalWrite(Buzzer, HIGH);
      delay(500); 
    }
 
   else if (s == "e12440bf"){ // relogio
   static unsigned long ult_tempo = 0;
int tempo = millis();
if(tempo - ult_tempo >= 1000) {
ult_tempo = tempo;
seg++;
}
if(seg>=60) {
seg = 0;
min++;
}
if(min>=60) {
min = 0;
hor++;
}
if(hor>=24) {
hor=0;
min=0;
}
lcd.clear();
lcd.setCursor(8,0);
lcd.print(hor);
lcd.setCursor(10,0);
lcd.print(":");
lcd.setCursor(11,0);
lcd.print(min);
lcd.setCursor(13,0);
lcd.print(":");
lcd.println(seg);
lcd.setCursor(0,0);
lcd.print("HORARIO:");
lcd.setCursor(0,1);
lcd.print(" YT/Roboteclink");
digitalWrite(Buzzer, HIGH);
delay(500); 
   }
   else if (s == "e124609f"){ // opção para deixar o arduino mudo
    pinMode(Buzzer, LOW);
   }
   else if (s == "e124e817"){// opção para deixaro arduino com o som
    pinMode(Buzzer, HIGH);
   }
   else if (s == "e12428d7"){//opçao para fazer o arduino mostrar a temperatura
    ValorSensor = analogRead(PinoSensor);
    lcd.clear();
    lcd.setCursor(13,0);
    lcd.print(ValorSensor);
    lcd.setCursor(0,0);
    lcd.print("Temperatura:");
    lcd.setCursor(0,1);
    lcd.print(" YT/Roboteclink");
    digitalWrite(Buzzer, HIGH);
    delay(500);
   }
  else if (s == "e1246897"){
    ValorLido = analogRead(LDR);//opção para fazer o arduino mostrar a luminosidade
    if (ValorLido < 341){//se menor que 341, constar que tem pouca luminosidade
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print(ValorLido);
      lcd.setCursor(0,1);
      lcd.print("pouca luz");
      digitalWrite(Buzzer, HIGH);
      delay(500);
    }
    if(ValorLido > 341){//se maior que 341 , constar que tem uma luminosidade boa no ambiente
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print(ValorLido);
      lcd.setCursor(0,1);
      lcd.print("luminosidade boa");
      digitalWrite(Buzzer, HIGH);
      delay(500);
    }
    if (ValorLido > 682){// se maior que 682, mostrar que esta muito claro
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print(ValorLido);
      lcd.setCursor(0,1);
      lcd.print("muito claro");
      digitalWrite(Buzzer, HIGH);
      delay(500);
    }
   }
    //Serial.println(results.value, HEX);
    irrecv.resume(); // Receba o próximo valor
     }
     else{
      digitalWrite(Buzzer, LOW);
  }
}

 

  1.  
  2. /***************************************\ 
  3. **               Robotec               ** 
  4. *    https://robotec.webnode.com.br/     * 
  5. *                                       *
  6. *      inscreva-se no nosso canal       *
  7. *    www.youtube.com/c/Roboteclink      *
  8. *                                       *
  9. *        curta a nossa fampage          *
  10. *   www.facebook.com/Robotecoficial/    *
  11. *                                       *
  12. * ESTE CODIGO É DA ROBOTEC COMPORATION  * 
  13. *       FAVOR - MANTER O DOMINIO        *
  14. **                                     ** 
  15. \***************************************/
  16.  
  17. #include <IRremote.h>//biblioteca do controle remoto
  18. #include <Servo.h> //biblioteca do servo motor
  19. #include <LiquidCrystal.h> //biblioteca do lcd
  20.  
  21. Servo myservo;
  22. int RECV_PIN = 8;//pino do controle
  23. int seg=0,//segundos da hora
  24. min=23,//minutos da hora
  25. hor=14;//tempo da hora
  26. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//pinagem do lcd
  27. const int Buzzer = 6;//pinagem do buzzer
  28. const int PinoSensor = 0 ;//pinagem do sensor de temperatura
  29. int ValorSensor = 0;
  30. const int LDR = 1 ;//pinagem do sensor de luminosidade
  31. int ValorLido = 1;
  32.  
  33. IRrecv irrecv(RECV_PIN);
  34.  
  35. decode_results results;
  36.  
  37. void setup()
  38. {
  39.   pinMode(Buzzer, OUTPUT);
  40.   myservo.attach(9);
  41.   Serial.begin(9600);
  42.   irrecv.enableIRIn(); // Iniciou o receptor
  43.  
  44.   lcd.begin(16, 2);//bortão de entrada
  45.   lcd.setCursor(1,0);
  46.   lcd.print("Seja Bem-Vindo!");
  47.   lcd.setCursor(3,1);
  48.   lcd.print("Joao Victor");//seu nome
  49. }
  50.  
  51. void loop() {
  52.  
  53.   if (irrecv.decode(&results)) {
  54.     String s = String(results.value, HEX); //decodificar os resultados em hexadecimal do controle 
  55.     if(s != "ffffffff"){
  56.       Serial.println(s);
  57.     }
  58.  
  59.     if(s == "e12458a7"){//função de girar o servo para fechar a porta
  60.       myservo.write(2370);
  61.       lcd.begin(16, 2); 
  62.       lcd.setCursor(0, 0);
  63.       lcd.print("'''''FECHADO'''''");
  64.       lcd.setCursor(0,1);
  65.       lcd.print(" YT/Roboteclink");
  66.       digitalWrite(Buzzer, HIGH);
  67.       delay(500); 
  68.     }
  69.     else if(s == "e124a05f"){
  70.       myservo.write(570); // função de girar o servo para abrir a porta
  71.       lcd.begin(16, 2); 
  72.       lcd.setCursor(0, 0);
  73.       lcd.print("'''''ABERTO'''''");
  74.       lcd.setCursor(0,1);
  75.       lcd.print(" YT/Roboteclink");
  76.       digitalWrite(Buzzer, HIGH);
  77.       delay(500); 
  78.     }
  79.  
  80.    else if (s == "e12440bf"){ // relogio
  81.    static unsigned long ult_tempo = 0;
  82. int tempo = millis();
  83. if(tempo - ult_tempo >= 1000) {
  84. ult_tempo = tempo;
  85. seg++;
  86. }
  87. if(seg>=60) {
  88. seg = 0;
  89. min++;
  90. }
  91. if(min>=60) {
  92. min = 0;
  93. hor++;
  94. }
  95. if(hor>=24) {
  96. hor=0;
  97. min=0;
  98. }
  99. lcd.clear();
  100. lcd.setCursor(8,0);
  101. lcd.print(hor);
  102. lcd.setCursor(10,0);
  103. lcd.print(":");
  104. lcd.setCursor(11,0);
  105. lcd.print(min);
  106. lcd.setCursor(13,0);
  107. lcd.print(":");
  108. lcd.println(seg);
  109. lcd.setCursor(0,0);
  110. lcd.print("HORARIO:");
  111. lcd.setCursor(0,1);
  112. lcd.print(" YT/Roboteclink");
  113. digitalWrite(Buzzer, HIGH);
  114. delay(500); 
  115.    }
  116.    else if (s == "e124609f"){ // opção para deixar o arduino mudo
  117.     pinMode(Buzzer, LOW);
  118.    }
  119.    else if (s == "e124e817"){// opção para deixaro arduino com o som
  120.     pinMode(Buzzer, HIGH);
  121.    }
  122.    else if (s == "e12428d7"){//opçao para fazer o arduino mostrar a temperatura
  123.     ValorSensor = analogRead(PinoSensor);
  124.     lcd.clear();
  125.     lcd.setCursor(0,0);
  126.     lcd.print(ValorSensor);
  127.     digitalWrite(Buzzer, HIGH);
  128.     delay(500);
  129.    }
  130.   else if (s == "e1246897"){
  131.     ValorLido = analogRead(LDR);//opção para fazer o arduino mostrar a luminosidade
  132.     if (ValorLido < 341){//se menor que 341, constar que tem pouca luminosidade
  133.       lcd.clear();
  134.       lcd.setCursor(0,0);
  135.       lcd.print(ValorLido);
  136.       lcd.setCursor(0,1);
  137.       lcd.print("pouca luz");
  138.       digitalWrite(Buzzer, HIGH);
  139.       delay(500);
  140.     }
  141.     if(ValorLido > 341){//se maior que 341 , constar que tem uma luminosidade boa no ambiente
  142.       lcd.clear();
  143.       lcd.setCursor(0,0);
  144.       lcd.print(ValorLido);
  145.       lcd.setCursor(0,1);
  146.       lcd.print("luminosidade boa");
  147.       digitalWrite(Buzzer, HIGH);
  148.       delay(500);
  149.     }
  150.     if (ValorLido > 682){// se maior que 682, mostrar que esta muito claro
  151.       lcd.clear();
  152.       lcd.setCursor(0,0);
  153.       lcd.print(ValorLido);
  154.       lcd.setCursor(0,1);
  155.       lcd.print("muito claro");
  156.       digitalWrite(Buzzer, HIGH);
  157.       delay(500);
  158.     }
  159.    }
  160.     //Serial.println(results.value, HEX);
  161.     irrecv.resume(); // Receba o próximo valor
  162.      }
  163.      else{
  164.       digitalWrite(Buzzer, LOW);
  165.   }
  166. }