Bom dia Pessoal, gostaria de compartilhar meu primeiro projeto com vocês, sou totalmente leigo em eletrônica e até o momento era (ou ainda sou) em Arduino.

Enfim a necessidade:

Refrigerar uma sala onde ficam os servidores da minha empresa, nessa sala tenho um Ar Cond. de 30.000 btus Carrier, preciso que ele ligue aos finais de semana, pois no calor o nosso server HP Proliant quase frita, mas no final de semana fica apenas um Vigilante na empresa e como os servidores ficam na sala dos Diretores então não fornecemos acesso a qualquer pessoa.

O caminho:

Já havia me interessado por Arduino e comecei a pesquisar sobre e decidi meter as caras, comprei um Arduino UNO, receptor IR, emissor IR, eu fui fazer um monte de teste. Descobrir que ligar um AR Cond. via IR é "quase" impossível, pois as bibliotecas atuais não contemplam esses dispositivos, fiz teste de tudo quanto foi jeito e sem sucesso. Decidi que ia fazer isso de forma manual mesmo, ligando o AR Cond. através do botão "AUTO/COLL" que existe internamente na evaporadora, isso claro implica em alguns limites, por exemplo a temperatura no AUTO é sempre de 24 Graus e a Carrier não fornece informações sobre como alterar.

A Solução:

Feito toda a Skecth e testando em uma LED dai então resolvi que era hora de por a mão na massa e fazer a coisa acontecer, decidi soldar dois fios no botão da Evaporadora para que a porta digital 12 do Arduino para ser a ponte:

Antes eu usei o multímetro para ver qual era a corrente passava no botão (5V), ainda fiz teste jampeando para ver se realmente ia funcionar.

Agora seguem as fotos , esquemas e Sketch do projeto, sintam-se a vontade para dar dicas, informações informar sobre correções e etc.

Prototipo:

Acabado:

Coloquei uma chave para desligar no caso de Verão ou uso através do controle remoto e alimentação através de fonte de 5V / 1A

Decidi usar o Garagino, por que é Ótimo custo Beneficio, e tamanho excelente.

Sketch:

// SKECTH PARA QUEM TEM PROBLEMA DE CONTROLE DE AR CONDICINADO, //DESSA FORMA TEM QUE SER ACIONADO MANUALMENTE
// COMO ALGUNS AC TEM O BOTAO MANUAL , É SÓ SOLDAR O O PINO 12 E O //GND NO BOTAO DE ACIONAMENTO MANUAL
// É BEM BÁSICO SERVE PARA SALAS DE SERVIDOR.
// QUALQUER DUVIDA MEU EMAIL É michaeltamoio@gmail.com


int pinoSensor = 0; //pino que está ligado o terminal central do LM35 (porta analogica 0)
int valorLido = 0; //valor lido na entrada analogica
float temperatura = 0; //valorLido convertido para temperatura

void setup() { // INICIA SETUP DO SKETCH
pinMode(12, OUTPUT); // SETANDO PINO DIG 12 COMO OUTPUT
digitalWrite(12, LOW); // INICIA DESLIGANDO O PINO 12
Serial.begin(9600); // INICIA COMUNICACAO SERIAL
}


void loop() { // ###$$$ INICIA O LOOP $$$##

retornaAcima:
// 1.A #### LENDO A TEMPERATURA E CONVERTENDO #####
valorLido = analogRead(pinoSensor);
temperatura = (valorLido * 0.00488); // (5V / 1023) = 0.00488 (precisão do A/D) OBS: USANDO LM35
temperatura = temperatura * 100; //Converte milivolts para graus celcius, lembrando que a cada 10mV equivalem a 1 grau celcius
Serial.print("Temperatura atual: ");
Serial.print(temperatura);
Serial.println(" C");
// 1.A FIM


if(temperatura >26){ // TESTA A TEMP SE ESTIVER MAIOR QUE 26 ACIONA PINO DIG 12 PARA PULSAR O BOTAO DO AR
digitalWrite(12,HIGH); // ACIONA O PINO DIG 12
delay(100); // AGUARDA TEMPO EM MILISEG PARA DESLIGAR
digitalWrite(12,LOW); // DESACIONA O PINO DIG 12
Serial.println("TEMP. ACIMA DE 26c. LIGANDO AC !!!"); // ESCREVE NO MONITOR A ACAO
delay(600000); // AGUARDA 10 MIN.
goto retornaAcima; // RETORNA AO LABEL "retornaAcima"
}else if(temperatura >25){ // FAZ O TESTE PARA O RESTANTE DAS TEMPERATURAS ATÉ A TEMPERATURA DE CONFORTO
Serial.println("AINDA EM 25c.");
delay(600000);
goto retornaAcima;
}else if(temperatura >=24){
Serial.println("AINDA ACIMA DE 24c.");
delay(600000);
goto retornaAcima;
}else if(temperatura < 24){ // SE A TEMP FOR MENOR QUE 24c. INICIA SEQUENCIA PARA DESLIGAR AC
digitalWrite(12,HIGH);
delay(100);
digitalWrite(12,LOW);
delay(1000);
digitalWrite(12,HIGH);
delay(100);
digitalWrite(12,LOW);
Serial.println("TEMP. ABAIXO DE 24c. DESLIGANDO AC !!!");
delay(600000);
} // FINAL DOS IF PARA AC LIGADO



retornaAbaixo:

// 1.A #### LENDO A TEMPERATURA E CONVERTENDO #####
valorLido = analogRead(pinoSensor);
temperatura = (valorLido * 0.00488); // 5V / 1023 = 0.00488 (precisão do A/D)
temperatura = temperatura * 100; //Converte milivolts para graus celcius, lembrando que a cada 10mV equivalem a 1 grau celcius
Serial.print("Temperatura atual: ");
Serial.print(temperatura);
Serial.println(" C");
// 1.A FIM

if(temperatura < 24){ // SE A TEMP AINDA FOR MENOR QUE 24c. FICA NESSE LOOP ATÉ SUBIR
Serial.println("TEMP. ABAIXO DE 24c.");
delay(600000);
goto retornaAbaixo;
}

delay(600000); // ESPERA MAIS 10 MINUTOS PARA TESTAR TUDO DENOVO

} // ###$$$ ENCERRA LOOP $$$###

Basicamente o que a Sketch faz é a cada 10 Minutos ela lê o LM35 converte a temperatura e liga ou desligar o ACond. Se a sala estiver com a temperatura maior que 26 graus ele liga o ar, e quando baixar de 24 graus desliga.

A Sketch, é bem amadora, eu fiz juntando alguns codigos prontos, acrescentei mais alguns linhas, tendo em vista que conheço de programação PHP, então fui adicionando linhas que entendia que precisava

Vou continuar tentando aperfeiçoar esse projeto, talvez transmitindo a informação de ligar e desligar via RF433 Mghz (preciso estudar um pouco mais) mas se alguém tiver também alguma ideia seria bem vinda.

Galera é isso, agradeço a loja do Lab de Garagem que me ajudou tirando algumas duvidas.

Grande Abraço

Exibições: 1836

Anexos

Responder esta

Respostas a este tópico

uma pergunta besta: já que é ar split, vc não poderia deixar o aparelho ligado ininterruptamente, configurado a 24º C? O próprio aparelho não trataria de regular a temperatura ambiente conforme o valor por ti determinado, ligando e desligando o motor conforme a necessidade?

Falai imhugo,

Cara o problema é que no sábado a noite por exemplo, imaginando que a temperatura caia, o ventilador continuaria ligado, gastando energia desnecessária, a ideia é otimizar o uso de energia x manter sala refrigerada.

Mas valeu por comentar.

Abraço

eu é que agradeço por vc ter compartilhado tua necessidade vs solução encontrada.

Entendi sobre a questão de economizar energia

Deixa eu te perguntar outra coisa: pelo que entendi, para acionar o ar cond. vc deverá simular no arduino o pressionamento de 1x do push button, correto?

E pra desligar, vc teria que simular o pressionamento de 2x em sequência? É isso? Só isso pra ligar/desligar o ar?

Exatamente, isso. 

O manual do AC aqui, pressionando 1x ele vai para para o AUTO (definido pela fabrica) pressinando 2x ele vai para um programa de teste da Carrier, e pressionando  a 3x ele desliga.

Valeu

se para desligar deve ser apertado 3x, vc precisa consertar teu sketch, pois lá só está configurado pra apertar 2x

idéias para futura implementação:

- compre um ethernet shield e espete teu arduino na rede local e internet da tua empresa, para te possibilitar checar remotamente a temperatura da sala de servidores e até mesmo acionar remotamente o ar

- com o ethernet shield vc também conseguirá abastecer um banco mysql por exemplo com o log de temperatura (basta programar um script php para receber a temperatura da sala de tempos em tempos)

- se vc puser um shield sim900, isso te permitirá enviar sms pro shield pra obter um relatório de temperatura e status do ar cond. Permitirá também enviar sms pra comandar o ar cond

É na verdade na Sketch ele da dois toques, por que teoricamente ele já vai ter dado o 1o. pulso pra ligar, então ele precisaria de apenas mais dois para desligar.

Essas ideias que você passou são legais , vou pensar nelas. Ou talvez nem precise, com a ajuda do nosso amigo Alex Marola Barbosa, consegui fazer o IR responder aos controles do Arduino, então já estou trabalhando nesse novo formato (enviar info IR para o Ar Condicionado).

De qualquer forma Obrigado pelas dicas.

Abraço

Nao precisa ter um rele ou um transistor acionando o contato?

Vc vai jogar o pulso do arduino direto na placa controladora do Ar Condicionado? Pode? é seguro?

Ricardo, eu coloquei um resistor de 150ohms na verdade coloquei nem sei por que, acho que vi em algum outro projeto. Como falei meus conhecimento em eletrônica, são 0.

Mas nos meus primeiros teste fiz usando um rele.

Abraço

Alexandre, não tinha pensado no extensor companheiro. Muito simples, mesmo.

Mas com ajuda de um colega nosso aqui do forum o Alex Barbosa me ajudou na config da biblioteca IRremote, segui as dicas dele e deu certo fazer por IR. Ele me ajudou em outro aspect na Sketch.

Mas muito obrigado pela colaboração.

Grande abraço
Fala Luis Farias
É eu sei, não é minha área formação, estou iniciando na coisa, quem sabe um dia fico bom que nem você. ;-)

Obs: Li seu comentário anterior (aquele que vc apagou), ele serviu de base para medir o tamanho da sua arrogância.

Valeu
Abraço

Eu fiquei feliz quando encontrei um site com conteúdo interessante e pessoas que parecem se ajudar.

Até ler essa resposta, parabéns, você é tudo que a internet não precisa.

Desanimador saber que existe gente assim por aqui.

Não desanima não Gilton, tem gente muito boa aqui. Tem muita gente disposta a ajudar e tirar dúvida.
Tem muita dúvida ja resolvida no fórum, demanda bastante pesquisa.
O Arduino é uma plataforma Open Source , colaborativa essa é a idéia, cooperação, tanto no aprendizado quanto no desenvolvimento.
Grande abraço.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço