- Materiais requisitados:
- Metodologia de Trabalho:
- Pré-requisitos:
- Trabalho de um controle remoto AC:
- Diagrama de circuito e explicação:
- Decodificando seus sinais remotos AC:
- Programa Arduino principal:
- Funcionamento do Sistema de Controle Automático de Temperatura AC:
Um AC (Ar Condicionado) que já foi considerado um artigo de luxo e só era encontrado em grandes hotéis, salas de cinema, restaurantes etc… Mas, agora quase todo mundo tem AC em nossa casa para vencer o verão / inverno e aqueles que o têm, se preocupam com uma coisa comum. Esse é o seu alto consumo de eletricidade e carregadores devido a isso. Neste projeto, vamos fazer um pequeno circuito de controle automático de temperatura que pode minimizar os carregadores de eletricidade, variando a temperatura AC automaticamente com base na temperatura ambiente. Ao variar a temperatura definida periodicamente, podemos evitar que o AC funcione por muito tempo com valores de temperatura mais baixos e, assim, consuma menos energia.
A maioria de nós teria experimentado uma situação em que tivéssemos de alterar a temperatura definida do ar condicionado para valores diferentes durante diferentes horas do dia, de modo a nos manter confortáveis o tempo todo. Para automatizar este processo este projeto utiliza um sensor de Temperatura (DHT11) que lê a temperatura atual da sala e a partir desse valor enviará comandos ao AC através de um IR blaster semelhante ao Remoto AC. O AC reagirá a esses comandos como se estivesse reagindo ao seu controle remoto e, portanto, ajustará a temperatura. À medida que a temperatura da sua sala muda, o Arduino também ajusta a temperatura definida do seu CA para mantê-la da maneira que você deseja. Parece legal, certo?… Vamos ver como construir um.
Materiais requisitados:
- Arduino Mega 2560
- TSOP1738 (HS0038)
- IR Led
- Sensor de Temperatura / Umidade DHT11
- Qualquer LED de cor e resistor 1K (opcional)
- Tábua de pão
- Fios de conexão
Metodologia de Trabalho:
Todos os controles remotos de nossa casa que usamos para controlar TV, home theater, AC, etc. funcionam com a ajuda de IR Blasters. Um IR blaster nada mais é do que um LED IR que pode emitir um sinal por pulsação repetitiva; este sinal será lido pelo receptor no aparelho eletrônico. Para cada botão diferente no controle remoto, um sinal único será emitido, o qual, depois de lido pelo receptor, é usado para realizar uma tarefa específica predefinida. Se formos capazes de ler este sinal vindo do Remoto, podemos então imitar o mesmo sinal usando um LED IR sempre que necessário para realizar essa tarefa específica. Anteriormente, fizemos um circuito IR Blaster para remoto IR universal.
Um TSOP é um receptor IR que pode ser usado para decodificar o sinal vindo dos controles remotos. Este receptor terá interface com o Arduino para sinalizar para cada botão e, em seguida, um LED IR será usado com o Arduino para imitar o sinal sempre que necessário. Dessa forma, podemos obter controle sobre nosso AC usando o Arduino.
Agora, tudo o que resta é ler o valor da temperatura usando DHT11 e instruir o AC de acordo com os sinais IR. Para tornar o projeto mais atraente e amigável, também adicionei um display OLED que exibe a temperatura atual, umidade e temperatura ajustada de CA. Saiba mais sobre como usar OLED com Arduino.
Pré-requisitos:
Este projeto de controlador automático de temperatura AC é ligeiramente avançado para o nível de iniciante, no entanto, com a ajuda de alguns outros tutoriais, qualquer um pode construí-lo em questão de tempo. Então, se você é um novato absoluto em OLED, DHT11 ou TSOP, por favor, volte a estes tutoriais abaixo, onde você pode aprender o básico e como começar a usá-los. A lista pode parecer um pouco longa, mas acredite, é fácil e vale a pena aprender, também abrirá portas para muitos novos projetos.
- Circuito básico usando TSOP e LED IR para funcionar
- Guia de interface básico para DHT11 com Arduino
- Guia básico de interface para OLED com Arduino
- Interface TSOP com Arduino para ler valores remotos IR
Certifique-se de ter um Arduino Mega e qualquer outra versão do Arduino, já que o tamanho do código é pesado. Verifique também se você já instalou as seguintes bibliotecas Arduino, caso não as instale no link abaixo
- Biblioteca Remota IR para TSOP e IR Blaster
- Biblioteca Adafruit para OLED
- Biblioteca de gráficos GFX para OLED
- Biblioteca de sensor DHT11 para sensor de temperatura
Trabalho de um controle remoto AC:
Antes de prosseguirmos no projeto, reserve um tempo e observe como o controle remoto AC funciona. Os controles remotos AC funcionam de maneira um pouco diferente em comparação com os controles remotos IR de TV e DVD. Pode haver apenas 10-12 botões em seu controle remoto, mas eles serão capazes de enviar muitos tipos diferentes de sinais. Significa que o controle remoto não envia o mesmo código todas as vezes para o mesmo botão. Por exemplo, quando você diminui a temperatura usando o botão para baixo para torná-la 24 ° C (graus Celsius), você obterá um sinal com um conjunto de dados, mas quando você pressioná-lo novamente para definir 25 ° C, você não obterá o mesmo dados, uma vez que a temperatura agora é 25 e não 24. Da mesma forma, o código para 25 também irá variar para diferentes velocidades do ventilador, configurações de suspensão, etc. Portanto, não vamos mexer em todas as opções e apenas concentrar apenas os valores de temperatura com um valor constante para outras configurações.
Outro problema é a quantidade de dados que está sendo enviada para cada pressionamento de botão, controles remotos normais com envio de 24 bits ou 48 bits, mas um controle remoto AC pode enviar até 228 bits, já que cada sinal contém muitas informações como temperatura, velocidade do ventilador, Tempo para dormir, estilo Swing etc. Esta é a razão pela qual precisamos de um Arduino Mega para melhores opções de armazenamento.
Diagrama de circuito e explicação:
Felizmente, a configuração do hardware deste projeto de controle automático de temperatura AC é muito fácil. Você pode simplesmente usar uma placa de ensaio e fazer as conexões conforme mostrado abaixo.
A tabela a seguir também pode ser usada para verificar suas conexões.
S.No: |
Pino de componente |
Pin Arduino |
1 |
OLED - Vcc |
5V |
2 |
OLED - Gnd |
Gnd |
3 |
OLED- SCK, D0, SCL, CLK |
4 |
4 |
OLED- SDA, D1, MOSI, Dados |
3 |
5 |
OLED- RES, RST, RESET |
7 |
6 |
OLED- DC, A0 |
5 |
7 |
OLED- CS, Chip Select |
6 |
8 |
DHT11 - Vcc |
5V |
9 |
DHT11 - Gnd |
Gnd |
10 |
DHT11 - Sinal |
13 |
11 |
TSOP - Vcc |
5V |
12 |
TSOP - Gnd |
Gnd |
13 |
Led IR - Ânodo |
9 |
14 |
Led IR - Cátodo |
Gnd |
Depois que as conexões forem feitas, deve ser algo como mostrado abaixo. Eu usei uma placa de ensaio para organizar as coisas, mas você também pode conectar fios macho a fêmea diretamente para conectar todos os componentes
Decodificando seus sinais remotos AC:
A primeira etapa para controlar o seu AC é usar o TSOP1738 para decodificar os códigos IR do controle remoto AC. Faça todas as conexões conforme mostrado no diagrama de circuito e certifique-se de ter instalado todas as bibliotecas mencionadas. Agora abra o programa de exemplo “ IRrecvDumpV2 ” que pode ser encontrado em Arquivo -> Exemplos -> IRremote -> IRrecvDumpV2 . Carregue o programa em seu Arduino Mega e abra o Monitor Serial.
Aponte seu Remoto em direção ao TSOP e pressione qualquer botão, para cada botão pressionado seu respectivo Sinal será lido pelo TSOP1738, decodificado pelo Arduino e exibido no Monitor Serial. Para cada mudança de temperatura em seu controle remoto, você obterá dados diferentes. Salve esses dados para que possamos usá-los em nosso programa principal. Seu monitor serial será parecido com isto, eu também mostrei o arquivo Word no qual salvei os dados copiados.
A captura de tela mostra o código para definir a temperatura em 26 ° C para o meu controle remoto AC. Com base no seu controle remoto, você obterá um conjunto diferente de códigos. Da mesma forma, copie os códigos para todos os diferentes níveis de temperatura. Você pode verificar todos os códigos de IR do controle remoto do ar condicionado no código do Arduino fornecido no final deste tutorial.
Programa Arduino principal:
O programa Arduino principal completo pode ser encontrado na parte inferior desta página, mas você não pode usar o mesmo programa. Você tem que alterar os valores do código de sinal que acabamos de obter do esboço de exemplo acima. Abra o programa principal em seu Arduino IDE e role para baixo até a área mostrada abaixo, onde você deve substituir os valores do array pelos valores obtidos para o seu Remote.
Observe que usei 10 matrizes, das quais duas costumavam LIGAR e DESLIGAR o CA, enquanto as 8 restantes são usadas para definir diferentes temperaturas. Por exemplo, Temp23 é usado para definir 23 ° C em seu AC, então use o código respectivo nesse Array. Feito isso, você só precisa fazer o upload do código para o seu Arduino e colocá-lo do lado oposto do seu AC e aproveitar o Cool Breeze.
A explicação do código é a seguinte, primeiro temos que usar o sensor de temperatura DHT1 para ler a Temperatura e Umidade e exibi-la no OLED. Isso é feito pelo seguinte código.
DHT.read11 (DHT11_PIN); // Lê Temp e Umidade Measured_temp = DHT.temperature + temp_error; Medido_Humi = DHT.umidade; // testes de exibição de texto display.setTextSize (1); display.setTextColor (WHITE); display.setCursor (0,0); display.print ("Temperatura:"); display.print (Measured_temp); display.println ("C"); display.setCursor (0,10); display.print ("Umidade:"); display.print (Measured_Humi); display.println ("%");
Depois de sabermos a temperatura da sala, basta compará-la com o valor desejado. Este valor desejado é um valor constante definido como 27 ° C (Graus Celsius) no meu programa. Portanto, com base nesta comparação, definiremos uma temperatura AC correspondente, conforme mostrado abaixo
if (Measured_temp == Desired_temperature + 3) // Se AC está ON e a temperatura medida está muito alta do que o desejado {irsend.sendRaw (Temp24, sizeof (Temp24) / sizeof (Temp24), khz); delay (2000); // Envia sinal para definir 24 * C AC_Temp = 24; }
Aqui, a CA será configurada para 24 ° C quando a temperatura medida for 30 ° C (já que a temperatura desejada é 27). Da mesma forma, podemos criar muitos loops If para definir diferentes níveis de temperatura com base na temperatura medida, conforme mostrado abaixo.
if (Measured_temp == Desired_temperature-1) // Se AC está LIGADO e a temperatura medida está abaixo do valor desejado {irsend.sendRaw (Temp28, sizeof (Temp28) / sizeof (Temp28), khz); delay (2000); // Envia sinal para definir 28 * C AC_Temp = 28; } if (Measured_temp == Desired_temperature-2) // Se a CA está LIGADA e a temperatura medida está muito abaixo do valor desejado {irsend.sendRaw (Temp29, sizeof (Temp29) / sizeof (Temp29), khz); delay (2000); // Envia sinal para definir 29 * C AC_Temp = 29; } if (Measured_temp == Desired_temperature-3) // Se AC está ON e a temperatura medida é muito baixa, valor desejado {irsend.sendRaw (Temp30, sizeof (Temp30) / sizeof (Temp30), khz); delay (2000); // Enviar sinal para definir 30 * C AC_Temp = 30; }
Funcionamento do Sistema de Controle Automático de Temperatura AC:
Quando seu código e hardware estiverem prontos, carregue o código em sua placa e você deverá observar o OLED exibindo algo semelhante a este.
Agora coloque o circuito oposto ao seu ar condicionado e você perceberá que a temperatura do AC está sendo controlada com base na temperatura ambiente. Você pode tentar aumentar a temperatura perto do sensor DHT11 para verificar se a temperatura do AC está controlada conforme mostrado no Vídeo abaixo.
Você pode ajustar o programa para executar qualquer ação desejada; tudo que você precisa é o código obtido no esboço de exemplo. Espero que você tenha entendido este projeto do controlador automático de temperatura e tenha gostado de construir algo muito semelhante. Eu sei que há muitos lugares aqui para ficar preso, mas não se preocupe então. Use o fórum ou a seção de comentários para explicar o seu problema e as pessoas aqui certamente o ajudarão a resolvê-lo.