Tutorial ESP32 29/55 - Lendo a tecla pressionada do controle remoto IR com ESP32 | Kit de Aprendizagem IoT ESP32 da SunFounder

Tutorial ESP32 29/55 - Lendo a tecla pressionada do controle remoto IR com ESP32 | Kit de Aprendizagem IoT ESP32 da SunFounder

Neste tutorial, aprenderemos a detectar sinais infravermelhos (IR) usando o módulo ESP32 e um receptor IR compatível. Quando pressionamos um botão no controle remoto, o ESP32 reconhecerá o sinal e executará ações específicas, como acionar um buzzer para teclas específicas. Este projeto é ideal para aqueles que desejam integrar capacidades de controle remoto em suas aplicações ESP32 (no vídeo às :15).

remoto

O ESP32 é um microcontrolador poderoso que combina capacidades de Wi-Fi e Bluetooth, tornando-o adequado para uma ampla gama de aplicações de IoT. Neste projeto, usaremos um receptor IR para interpretar sinais de um controle remoto. As teclas pressionadas serão processadas no código, permitindo que realizemos ações com base nos comandos recebidos.

Hardware Explicado

Os principais componentes para este projeto incluem o microcontrolador ESP32, um módulo receptor IR e um buzzer. O ESP32 atua como o cérebro da operação, processando os sinais recebidos do receptor IR. O receptor IR detecta os sinais infravermelhos do controle remoto e os converte em sinais elétricos que o ESP32 pode entender.

ir_receiver_sl838

O receptor IR geralmente tem três pinos: VCC (alimentação), GND (terra) e OUT (sinal). O pino VCC está conectado a uma fonte de energia (3,3V ou 5V), enquanto o GND está conectado à terra. O pino OUT envia o sinal decodificado para o ESP32, que pode então ser usado para acionar várias ações, como ativar um buzzer quando uma tecla específica é pressionada.

Detalhes da Ficha Técnica

Fabricante Afiado
Número da peça GP1UXC41
Tensão lógica/IO 3,3 - 5,0 V
Tensão de alimentação 3,3 V (típ.)
Corrente de saída (por canal) 20 mA (máx)
Corrente de pico (por canal) 50 mA (máx)
Orientações sobre frequência PWM 38 kHz
Limiares de lógica de entrada 0,3 Vcc (alto), 0,2 Vcc (baixo)
Queda de tensão / RDS(on)saturação 0,5 V (máx)
Limites térmicos 85 °C (máx)
Pacote TO-92
Notas / variantes Disponível em várias configurações

  • Garanta o fornecimento de energia correto para evitar danos.
  • Use fios curtos para minimizar a interferência de sinal.
  • Verifique a orientação do receptor IR antes de conectar.
  • Confirme que a bateria do controle remoto está funcionando.
  • Use resistores pull-up se necessário para estabilidade.

Instruções de Fiação

ESP32-29-IR-remote-wiring

Para conectar o receptor IR ao ESP32, comece identificando os três pinos do receptor IR: VCC, GND e OUT. Conecte o pino VCC a uma fonte de 3,3V no ESP32. Em seguida, conecte o pino GND a um dos pinos de terra (GND) no ESP32. Por fim, conecte o pino OUT ao pino GPIO 14 no ESP32, que é designado para o receptor IR no código.

ESP32-29-IR-esquema de controle remoto

Uma vez feitas as conexões, certifique-se de que a fiação está segura. Se você estiver usando uma placa de ensaio, insira o receptor IR de modo que o lado plano esteja voltado para você e a protuberância esteja do lado oposto. Esta orientação ajudará você a identificar corretamente os pinos. Certifique-se de verificar as conexões antes de ligar o ESP32.

Exemplos de Código e Passo a Passo

IR_receiver_lib

instale oIRremoteESP8266biblioteca por David Conran, Sebastien.

No código, definimos o pino do receptor IR usando a constante.IR_RECEIVE_PIN, que está definido para 14. Também criamos uma instância deIRrecvpara lidar com os sinais IR.

const uint16_t IR_RECEIVE_PIN = 14;
IRrecv irrecv(IR_RECEIVE_PIN);
decode_results results;

Esta configuração nos permite receber sinais do controle remoto IR. No asetup()função, inicializamos a comunicação serial e ativamos o receptor IR.

void setup() {
  Serial.begin(115200);
  irrecv.enableIRIn();
}

Dentro doloop()função, verificamos se um sinal IR foi recebido. Se sim, decodificamos o valor da tecla e o imprimimos no monitor serial.

if (irrecv.decode(&results)) {
    String key = decodeKeyValue(results.value);
    Serial.println(key);
    irrecv.resume(); 
}

Este trecho de código mostra como decodificamos o sinal recebido e imprimimos o valor da chave correspondente no monitor serial.decodeKeyValue()a função mapeia o sinal recebido para valores de botão específicos, como "0", "1", "EQ" e outros. Você pode encontrar o código completo carregado abaixo do artigo.

Demonstração / O que Esperar

Uma vez que a fiação esteja completa e o código esteja carregado, pressionar um botão no controle remoto deve exibir o valor da tecla correspondente no monitor serial. Por exemplo, pressionar o botão "2" imprimirá "2" no monitor. Se a tecla não for reconhecida, retornará "ERROR". O buzzer soará quando a tecla designada (por exemplo, "EQ") for pressionada, fornecendo feedback imediato.

Tenha cuidado com armadilhas comuns, como polaridade invertida em suas conexões ou uso de níveis de tensão incorretos. Certifique-se de que o controle remoto funcione corretamente e tenha uma bateria em funcionamento antes de testar sua configuração (no vídeo às 15:30).

Marcações de Vídeo

  • 00:00 Iniciar
  • 2:05 Introdução ao receptor IR
  • Fiação explicada:24
  • Código Arduino para receptor IR explicado
  • 10:06 Selecionando a placa ESP32 e a porta COM no Arduino IDE
  • 11:48 Demonstração do Projeto
  • 13:09 Buzzer ativo conectado diretamente ao ESP32
  • 14:40 tomando uma ação quando uma tecla é pressionada
  • 15:30 Código Arduino para tomar ação
  • 16:54 Demonstração de tecla pressionada e campainha

Imagens

IR_receiver_lib
IR_receiver_lib
ir_receiver_sl838
ir_receiver_sl838
remote
remote
ESP32-29-IR-remote-schematic
ESP32-29-IR-remote-schematic
ESP32-29-IR-remote-wiring
ESP32-29-IR-remote-wiring
830-ESP32 Tutorial 29/55- Arduino code for fading Infrared remote
Idioma: C++
Copiado!

Recursos e referências

Arquivos📁

Folha de dados (pdf)