Introduction: Ar Condicionado Controlado Por Arduino, Via Infravermelho E Com Medição De Temperatura.

Projeto Automação ar condicionado via Infravermelho(IR) e Arduino.

Neste tutorial ensinarei como acionar um ar condicionado a partir de um Arduino MEGA, de acordo com a temperatura medida em um sensor LM35. Veremos também o famoso “pulo do gato” na hora de receber um sinal IR de um controle de ar condicionado, pois é um sinal muito comprido e não é qualquer código que consegue ler este por completo, gerando uma grande dor de cabeça aos iniciantes.

Daí você poderá usar sua imaginação para utilizar esse aprendizado! Mão na massa!

Precisaremos de:

  • Um Arduino MEGA ou UNO; No exemplo utilizarei o MEGA;
  • Um sensor LM35;
  • Um sensor IRM-3638 (Leitor de Infravermelho);
  • Um LED IR (Emissor Infravermelho);
  • Um resistor de 10 Ω;
  • Fios;
  • Equipamentos para solda dos componentes;
  • Códigos que disponibilizarei;

Primeiro ligaremos o Arduino MEGA de forma que teremos três circuitos, um para LER o sinal IR (o como IRM-3638), outro para ENVIAR com o LED IR e ainda um terceiro para LER a temperatura. Lembrando que ora carregaremos o código de leitura de IR e ora carregaremos o código de envio de IR e monitoração de temperatura, segue o esquema nas imagens acima:

Na figura acima já coloquei a ligação dos componentes, porém, é sempre importante da uma verificada na DATASHEET do componente, para saber onde ligar certo, ao final do post colocarei o link para as respectivas datasheets!

Carregaremos a bilbioteca IRremote disponível nesse link: http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html , removendo a atual do Arduino, veja o link para maiores detalhes.

Com nosso Arduino MEGA conectado aos respectivos circuitos, carregaremos o seguinte código:

http://www.analysir.com/blog/wp-content/uploads/20...

(Veja mais sobre o porquê desse código e não de outros códigos de leitura de ID:

http://www.analysir.com/blog/2014/03/19/air-condit...

Carrega o código, ainda na interface padrão do Arduino abriremos em FERRAMENTAS>> MONITOR SERIAL(ou CTRL + ALT + M), quando este abrir não se esqueça de mudar o BAUD RATE para 115200, o mesmo do código, feito isso você pode aperta o botão cuja função deseja copiar para que posteriormente seja repetida, veja nas imagem acima

Esse código acima marcado é o sinal RAW referente a função apertada no controle remoto. Copie esta e retire todos os sinais negativos desta sequência, para podermos envia-los pelos código, você deve estar se perguntando, putz mais são muitos negativos para retirar, calma guerreio, fiz um programa em Java que vai te ajudar a padronizar esse sinal, segue nas images acima e link para download:

Download: https://drive.google.com/file/d/0B7Bje74bGvcBYnVWY...

De posse do código RAW, já padronizado, abriremos a interface de desenvolvimento do Arduino novamente e colaremos o código abaixo, esse código é responsável por Enviar o sinal IR em formato RAW de acordo com a leitura de uma determinada TEMPERATURA, o código está todo comentado, só o olhar o local de colar o código RAW para o Arduino e ver os resultados. Depois é só utilizar a imaginação e aplicar do jeito que você achar melhor!

Código como sketch: https://drive.google.com/file/d/0B7Bje74bGvcBMG9z...

Links:

Datasheet dos componentes: https://drive.google.com/file/d/0B7Bje74bGvcBVFBu...

Código de leitura de RAW longo: http://www.analysir.com/blog/wp-content/uploads/2...

Mais sobre leitura de Long RAW:

http://www.analysir.com/blog/2014/03/19/air-condit...

Sketch do programa que controla a temperatura e envia o sinal de IR RAW:

https://drive.google.com/file/d/0B7Bje74bGvcBMG9za...

No próximo ensinarei como fazer este projeto gravando em um Arduino Promini, através do próprio MEGA.

Att.

Deividson Calixto da Silva.

Comments

author
mauroluis (author)2017-04-26

Deividson, obrigado pelo artigo, seguindo ele e outras pesquisas, consegui chegar a uma solução para um projeto que venho trabalhando como distração. Não sou fluente com arduino, mas já estou conseguindo algumas coisas, entre elas, integrado ao meu projeto estou tentando um montar um módulo de controle remoto universal.

A parte de clonar controles de televisores e aparelhos de som foi simples e é só seguir n tutoriais, mas a do ar condicionado, realmente estava me tirando do sério, até conseguir entender que nesse caso é passado todas as características do ar de uma vez só através deste enorme código raw. Isto jogou um pouco de agua fria no meu projeto do jeito que estava fazendo, pois estava trabalhando com um arduino master que passava o código para outro através de RF pelo módulo da nortic nrf24l, mas este módulo envia apenas 32bits por vez, o que me deixaria tranquilo para os padrões de tv, mas para o do ar, seria uma lenda para quebrar o código em várias partes e enviar n vezes.

Desta forma consegui, baseando-me na tua descrição, analisar o código passado pelo meu controle do ar, no caso um consul, e verifiquei que o código raw, se assemelhava muito com o código produzido pelos controles remotos que trabalham na frequência 433 e com as explicações de outro grande cobra em arduino sobre esses, consegui chegar a uma otimização do código que passou de centenas de caracteres para uma string de apenas 10, 12 dígitos e sendo assim possível de transmissão pelo nrf24L. Se eu notar que o pessoal está com dificuldades parecidas, vou tentar escrever um artigo com os passos que utilizei para a decodificação.

Mais uma vez obrigado por compartilhar seu conhecimento. Um abraço.

author

Que legal amigo, fico feliz em poder ter ajudado.
Agora estou mantendo um espaço, no meu blog: dcalixtoblog.wordpress.com devagar estou adicionando alguns conteúdos lá, caso queira acompanhar.
Um forte abraço.

author
LuizA39 (author)2016-12-06

Olá, possuo um ambiente com 4 aparelhos e o mais longe ficaria a 40M (passando fios) do arduino. O que vc sugere para trabalhar com os 4 ao mesmo tempo?

author

40 Metros? Se for isso não funcionaria por fios, vc teria perda de sinal, agora se for levar o Arduíno próximo a estes equipamentos, você poderia fazer um esquema para chavear o sinal que seria através de uma porta única para os diferentes equipamentos, usando um circuito auxilar para tal, existem circuitos integrados no mercado que fazem esse tipo de chaveamento, pesquise por circuitos Multiplexadores e Demultiplexadores.

.

author

Já achei alguns multiplicadores mas a outra ponta só alcança quiçá 20M. Por isso perguntei se tem alguma sugestão rsrs. Difícil tarefa né? É para colocar na minha igreja. Os aparelhos acabam ficando ligados e desligam no disjuntor. Vai acabar queimando :(. Daí através de uma central já desligaríamos todos eles.

author

A sua igreja provê alguma rede(LAN), uma solução que sairia barato seria utilizar arduino pro-mini e um modulo de rede, ligando todos em rede, talvez funcionasse a contento...

author

pensei nisso. Se colocasse no roteador lá em cima, diminuiria de 40 para uns 25M (o ar condicionado mais longe). A dúvida é se o aparelho iria suportar um cabo tão longo...

author
AndreS210 (author)2016-11-24

Bom dia, como faço para alterar a porta de saída do emissor, por exemplo, quero da porta 9 colocar a porta 30 (Meu Arduino é o Mega 2560)...?
E outra duvida, como faço pra acrescentar outra porta de saída para mais emissores?

Fico no Aguardo

author

Você tera que mudar a biblioteca, não é algo muito trivial, de uma procurada sobre alterar a biblioteca de envio de IR.

author
kbecao (author)2016-10-21

a cada vez que aperto o mesmo botão do controle, ele mostra um valor diferente...o que pode estar errado?

author
Deividson Calixto (author)kbecao2016-12-06

Mano seu receptor pode estar com defeito, tem uns receptores de IR que são de péssima qualidade, isso aconteceu comigo, depois q comprei o sensor IRM 3638, descrito na datasheet acima funcionou td certo!

author
ch4coN (author)2016-10-11

Olá, consegui controlar minha split perfeitamente graças a vc, porém agora quero controlar outra split quem está em outro quarto, pensei em colocar somente outro emissor nesse outro quarto ligado a outra porta do arduino, o problema é que como vou fazer com que o arduino saiba qual dos emissores deve acionar, pq por padrao ele usa a porta 9.

author
Deividson Calixto (author)ch4coN2016-10-11

Oi amigo, pensando rápido aqui, não sei se é a melhor solução, mas se as Splits forem acionadas pelo mesmo comando, você poderia continuar enviando o sinal pela porta 9, e utilizando um circuito auxiliar para ligar ou não determinada saída. conduz da porta 9 para X ou conduz da porta 9 para Y

author
LeonelN2 (author)2016-09-04

Boa tarde, estou precisado de um projeto praticamente igual a esse, porém adicionando monitoramento/gerenciamento via IP. Tem alguma dica? Obrigado.

author

Leonel vc precisara de um shield ethernet, que possui uma biblioteca super tranquila de usar, dai vc pode programar de duas formas, usando o shield como Server ou como cliente, de uma pesquisada sobre este shield. Existem também bibliotecas q te possibilita acessar diretamente do arduino a um banco MySQL sem necessidade e fazer requisições a webservices.

author
AlexandreS10 (author)2016-03-22

Parabéns pelo tutorial, fiz o teste na minha central mas só consegui desligar, quando tento ligar a central dá um bip mas não liga, vc tem algo para me orientar diante desse cenário?

author

Verifique se carregou dois codigos. Um para ligar e um para desligar. Se mandar dois codigos iguais ele somente da bip no segundo. Tente o mesmo codigo que da bib com o ar ligado e como ar desligado

author

Acho q te respondi pelo face, caso não tenha, vc tem que ler o sinal RAW com um circuito de IR Reader

author
LeonardoC75 (author)2016-07-04

Pessoal, não consigo fazer download do tutorial em pdf, alguém poderia me enviar no e-mail por favor?

leonardocostaaraxa@yahoo.com.br

author

Olá amigo, entre no meu GitHub, lá também tem o projeto disponível, segue o link: https://github.com/deividsoncs/Arduino-automacao-de-ar-condicionado

author
DIY Hacks and How Tos (author)2015-08-30

Cool project.

About This Instructable

9,058views

3favorites

License:

Bio: Try, try, try...
More by Deividson Calixto:Ar Condicionado controlado por Arduino, via infravermelho e com medição de temperatura.
Add instructable to: