that_one_nigga_you_k

temperature controling

Nov 7th, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.23 KB | None | 0 0
  1. /*
  2. *   Projeto: Automação de Ar condicionado, utilizando sensor eletrônico de Temperatura LM35 e um Emissor de Infra-Vermelho.
  3. *            Garante que Ar condicionado retorne ligar após uma queda de força elétrica, através do controle de Temperatura do ambiente.
  4. *
  5. *   Bibliotecas utilizadas: 1)para envio do código RAW: IRemote encontrada no site: https://github.com/shirriff/Arduino-IRremote
  6. *               2)para leitura do sinal: Fora utilizado o Algoritmo encontrado no site abaixo:
  7. *               http://www.analysir.com/blog/wp-content/uploads/2014/03/Arduino_Record_Long_AirConditioner_Infrared_Signals_10.txt
  8. *
  9. *
  10. *  
  11. */
  12.  
  13. #include <IRremote.h>
  14. IRsend irsend;
  15.  
  16. //Padrao sinal RAW Ligar Ar Condicionado SAMSUNG
  17. unsigned int S_pwr[73]={8976, 4432, 596, 516, 12, 8, 580, 516, 608, 516, 596, 528, 588, 516, 608, 516, 596, 532, 584, 520, 604, 1640, 588, 1640, 596, 1632, 608, 1644, 584, 1640, 600, 1632, 604, 516, 600, 1632, 604, 1644, 584, 1644, 596, 528, 584, 520, 604, 516, 600, 528, 584, 520, 608, 516, 596, 528, 588, 516, 608, 1640, 584, 1644, 596, 1632, 608, 1640, 588, 1640, 596, 1632, 608, 40740, 8980, 2200, 588};
  18.  
  19. int pinoSensorTemp = 1;
  20. int valorLido = 0;
  21. unsigned long tempoAnterior = 0;
  22. unsigned long tempoIntervalo = 120000; //Tempo de intervalo para leitura da temperatura, em milisegundos.
  23.  
  24. int enviou = 0;
  25.  
  26. //#######################IMPORTANTE#######################
  27. //Porta de envio padrao de sinal: PWM 9(MEGA) e 3(PROMINI)
  28.  
  29. void setup(){
  30. //  Serial.begin(9600);
  31.     pinMode(13, OUTPUT);
  32. }
  33.  
  34. void loop() {
  35.     //Serial.println(getTemperatura());
  36.     if ((millis() - tempoAnterior) > tempoIntervalo && enviou == 0){
  37.         if (getTemperatura() > 26){
  38.             Serial.println("Enviando Sinal Ligar...");
  39.             ligarAr();
  40.             enviou = 1;
  41.         }
  42.         tempoAnterior = millis();
  43.     }  
  44.     if ((enviou == 1) && ((millis() - tempoAnterior) > 240000)){ //4min.
  45.         enviou = 0;
  46.         Serial.println("Passaram-se 4 minutos... Retornando ao tempo de intervalo normal!");
  47.     }
  48.  
  49. }
  50.  
  51. float getTemperatura(){
  52.     valorLido = analogRead(pinoSensorTemp);
  53.     float temperatura = (valorLido * 0.00488);
  54.     temperatura = temperatura * 100;
  55.     return temperatura;
  56. }
  57.  
  58. void ligarAr(){
  59.     Serial.println("Ligando...");
  60.     irsend.sendRaw(S_pwr, 73, 38);
  61.     Serial.println("Executando a 38 Hz");
  62. }
Add Comment
Please, Sign In to add comment