NodeMCU – Enviando códigos clonados do Controle Remoto (Método RAW)

NodeMCU – Enviando códigos clonados do Controle Remoto (Método RAW)

Nesta prática você vai aprender a enviar ao aparelho os comandos clonados de um controle remoto. O envio será feito a partir do NodeMCU em conjunto com o LED Emissor IR.

Na prática NodeMCU – Clonando Teclas do Controle Remoto (Método RAW) foi ensinado a capturar as teclas do controle remoto utilizando o NodeMCU em conjunto com um fotorreceptor infravermelho (IR). A clonagem das teclas foi feita utilizando o método RAW. Nos passos abaixo vamos dar continuidade para que os códigos clonados possam ser enviados ao aparelho que será controlado.

Abaixo está a lista dos itens necessários para esta prática e mais informações sobre eles.

NodeMCU
Led Emissor Infravermelho (IR) 5mm 940nm
Resistor de 100Ω
Protoboard
Cabo Jumper Macho-Fêmea

Além dos itens, também será necessário que você tenha executado a prática NodeMCU – Clonando Teclas do Controle Remoto (Método RAW).

Abaixo está o esquema de ligação para esta prática:

img01_nodemcu_enviando_codigos_clonados_do_controle_remoto_tv_dvd_bluray_sky_ar_condicionado_arduino

É importante que o LED Emissor IR fique na horizontal, ou seja, apontado para o visor (receptor IR) do aparelho que vai receber os comandos clonados. Monte o circuito com o LED Emissor IR apontado a uma distância máxima de 70cm do visor (receptor IR).

O código para testes está abaixo, basta copiar o mesmo e colar na IDE do Arduino. Se ainda não tem a IDE do Arduino instalada e configurada para o NodeMCU, acesse os links abaixo e em seguida retorne para continuar:

NodeMCU – Instalação no Windows
NodeMCU – Configurando a IDE do Arduino

Vamos fazer a inserção das linhas RAW dentro do código fonte, basta pegar as linhas RAW que você obteve na prática anterior e colocar cada uma delas no parâmetro correspondente.

Seu código vai estar similar ao da imagem abaixo:

img02_nodemcu_enviando_codigos_clonados_do_controle_remoto_tv_dvd_bluray_sky_ar_condicionado_arduino

Com calma vá colando cada uma das linhas RAW em seu parâmetro correspondente. Veja na imagem abaixo como o código fica após preencher alguns parâmetros:

img03_nodemcu_enviando_codigos_clonados_do_controle_remoto_tv_dvd_bluray_ar_sky_condicionado_arduino

Veja a linha “unsigned int LD[68]” como exemplo. Inicialmente a linha tinha o aspecto:

unsigned int LD[68] = {};

Após inserir a linha RAW correspondente, essa mesma linha assumiu a forma:

img04_nodemcu_enviando_codigos_clonados_do_controle_remoto_tv_dvd_bluray_sky_ar_condicionado_som_arduino

A linha “unsigned int LD[68]” recebeu a linha RAW referente ao botão liga / desliga do controle remoto clonado.

O exemplo acima é válido para cada uma das linhas que corresponde a um botão do controle remoto.

Preencha cada um dos parâmetros dos botões de acordo com sua necessidade e em seguida salve o arquivo. Confira cada parâmetro preenchido e verifique se não deixou caracteres a mais. Leia os comentários do código fonte para entender o que cada linha faz.

Terminado as edições, carregue o código no NodeMCU. Conecte o cabo USB no seu NodeMCU e a outra ponta na porta USB do seu computador. Na IDE confira se a placa selecionada é o NodeMCU e se a porta COM selecionada é a correta. Após o arquivo ser carregado abra o monitor serial da IDE e verifique se a taxa de velocidade no rodapé do monitor está configurada para 115200 bauds, caso não esteja faça a alteração.

Em seguida, digite no campo de entrada de dados a letra “a” (sem aspas) e clique no botão “ENVIAR”. Supondo que o aparelho esteja ligado e que a letra “a” possui a linha RAW referente ao comando para ligar / desligar, se tudo estiver correto (código RAW e LED Emissor IR apontado diretamente para o receptor IR) o aparelho vai responder ao comando enviado e será desligado. Em seguida digite a letra “b” (sem aspas) e envie e veja se o comando é executado pelo aparelho. Faça esse procedimento com cada um dos comandos disponíveis no código e que foram preenchidos de acordo com o controle remoto que você clonou.

No vídeo abaixo você pode ver o resultado final desta prática. Utilizei uma mini caixa de som e executei comandos básicos como ligar, desligar, play, pause, próxima faixa e faixa anterior:

Gostou deste tutorial? Então deixa seu comentário, dúvida ou sugestão aí embaixo!

Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop

Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.

Obrigado e até a próxima!

Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.



Postagem anterior:
Próxima postagem:
Postagem feita por

Formado em Engenharia da Computação, Técnico em Eletroeletrônica, Fundador e Diretor da MasterWalker Electronic Shop. Se preocupa com o aprendizado dos seus clientes e daqueles interessados em aprender sobre Arduino e plataformas embarcadas em geral.

Existem 28 comentários para esta postagem
  1. José geraldo às 16:30

    boa tarde, é tudo q estou precisando… mas copiando seu o codigo…no monitor serial …aqui nao aparece os comandos dados, nem uma piscada do emissor.. tem como ajudar? obrigado

  2. ALBERIO LIMA às 19:51

    Opa, mas gostaria de parabenizar pelos ótimos textos! Muito bem escritos e com ótimas imagens de apoio!

    • Euler Oliveira Autor às 10:44

      Agradeço pelo comentário e reconhecimento!

      Vlw!!!

  3. ALBERIO LIMA às 19:47

    Amigo se você ler a biblioteca que está usando, verá que não tem a necessidade de usar RAW, um código daquele tamanho, basta você usar a representação HEX da mesma. Pode ser lido na biblioteca IRremote, ou mesmo na IRremoteESP8266.

    • Euler Oliveira Autor às 10:39

      Olá Alberio.

      Agradeço pelo comentário!

      Ao usar RAW, não é necessário se preocupar com o tipo do protocolo do dispositivo IR que será controlado e isto está informado no texto:

      Utilizando este método não é necessário saber qual protocolo corresponde ao aparelho que será controlado, necessitando saber somente a linha de códigos RAW, tamanho da linha e a frequência do sinal.

      Poderia sim ter usado o exemplo enviando o código HEX com a função sendNEC, mas achei mais prudente ensinar a usar a linha RAW.

  4. Bruno Sena às 17:11

    Gostaria de saber se é possível ampliar esse sinal para mais que 70cm de distância?

    • Euler Oliveira Autor às 09:32

      Olá Bruno.

      Agradeço pelo comentário!

      Com o circuito adequado é possível sim.

      • rafael às 17:06

        Saberia especificar o circuito adequado? pois estou precisando aumentar a distância também.

  5. JESSÉ às 11:56

    boa tarde

    o meu código deu esse erro abaixo, oq pode ser?

    C:\Users\Xpress\Documents\Arduino\sendraw\sendraw.ino: In function ‘void loop()’:

    sendraw:21:9: error: ‘irsend’ was not declared in this scope

    irsend.sendRaw(LD,tamanho,frequencia); // PARÂMETROS NECESSÁRIOS PARA ENVIO DO SINAL IR

    ^

    exit status 1
    ‘IRsend’ does not name a type

  6. Uziel Alves de Azevedo Junior às 11:36

    Bom Dia Euler

    O que tenho que fazer para esse código rodar no ESP32, da vários erros na hora de carregar. E depois de alguns ajustes ele ainda aparece essa mensagem no Monitor Serial = “IRsend not implemented for ESP32 yet”. Vc poderia me ajudar? Gostei muito desse tutorial parabéns

    • Emanuel às 09:05

      Estou com mesmo erro Uziel Alves de Azevedo Junior se descobriu a solução me avise pf …

        • Emanuel às 11:04

          Agora deu certo mas irsend.begin(); não esta sendo aceita , e tirando essa linha do código ele fica mandando o código contante pra tv … a algo q eu possa fazer ?

          • Euler Oliveira Autor às 11:44

            Recomendo que verifique a documentação desta biblioteca do link mencionado anteriormente e veja se fala algo sobre o envio de códigos IR.

            Ainda não utilizei IR com ESP32, logo, não consigo te orientar por enquanto.

  7. CELIO às 18:05

    BOA TARDE… TUDO BEM?
    ENTÃO… ESTOU CLONANDO OS CODIGOS DOS MEUS APARELHOS , ATRAVES DO COMANDO irsend.Samsung , nao foi possivel clonar . nem DVD e nem TV!! Por serem extenção Samsung . eu testei e a biblioteca IRremote so reconhece extenção NEC, RC5, RC6 e Sony!!
    Tive que mudar para extenção Rw, mas só o DVD aceitou o código!!
    Eu espelhei o código enviado para tv , mandando para a TV e o receptor ir de outro arduino pra ver se havia erros , mas o codigo sai perfeito!! Mas a abençoada da TV nao responde ao codigo! eu envio o codigo atraves do controle ( espelhado tambem) a TV aceita!!
    Deve haver algum detalhe que esta passando despercebido!!
    TV Samsung smartv linha F.
    OBIGADO!

  8. Afonso PINHEIRO às 10:10

    Olá Grandioso Euler,

    Em vez de NODEMCU fiz no WEMOS D1. Tudo certo e funcionando . Meu questionamento seria quanto a tomada de decisões (famoso “if” ) neste arquivos de IR em HEX.
    Meu amigo acha posso enviar todo o arquivo RAW (em HEX) como um único comando ou teria que transformar este arquivo RAW(já em HEX) em outro formato ?

    Desde já agradeço vossa atenção e presteza

  9. Wagner às 09:09

    Olá
    Bom dia Euler trabalho abençoado!
    Queria está vendo cm você meu caro em que botão do Blynk posso ta usando cm controle de TV E AR CONDICIONADO.
    AGUARDO .
    OBGD…….

  10. lucas às 21:10

    Boa noite amigo , eu fiz igualzinho , no meu arduino mega
    meu ar condicionado , e meu home da sansumg , consigui só capiturar codigo Raw , tem algum metodo ou biblioteca que decodifica esse codigo , sem ser em codigo Raw,
    porque no meu codigo acho que esta dando muito o delay por motivo do Codigo Raw
    Obrigado

  11. Erick às 13:09

    Boa tarde, Euler Oliveir,
    Gostaria de perguntar sobre essa sua programação que você realizou relacionado ao codigo clonado,
    To com problema no meu sensor de infravermelho(vs1838b);
    Não consigo clonar o sinal da minha televisão,mas acabou que coincidiu que a mesma TV que você clonou (32 Polegadas da LG) é a que eu vou usar no meu projeto(TCC)
    Todavia,por não conseguir clonar,gostaria de perdir para você me enviar essa programação sua,pois já q n consigo clonar,se você me enviasse ela feita,ia me ajudar a parte de clonar e já poderia emitir o sinal infravermelho
    Se possivel,me envie o quanto antes,pois é TCC,se puder me enviar no E-mail,ajudaria muito,Obrigado
    -Erick

    • Euler Oliveira Autor às 10:35

      Olá Erick.

      O código que utilizei é o mesmo disponível nesta postagem.

      No código que tenho aqui não há mais os códigos RAWs do controle da LG, pois eu substitui por um controle de outro aparelho e de outra marca.

  12. Natailton às 10:35

    OLá amigo, não deu erro ao inviar o código para o arduíno

    • Euler Oliveira Autor às 12:03

      Olá Natailton.

      Se não deu erro, então está correto.

  13. João Paulo às 12:01

    Boa tarde muito bacana o projeto, parabéns! é possivél controlar pelo um APP android enviando a placa via wi fi e após ao infra?

    • Euler Oliveira Autor às 16:02

      Olá João Paulo.

      Agradeço pelo seu comentário!

      Sim, é possível fazer isto sim. Basta clonar as teclas do controle e em seguida decidir qual a melhor forma: armazenar os códigos clonados em uma base de dados dentro do app e os botões do app vão enviar para o NodeMCU os códigos de acordo com o botão pressionado ou deixar os códigos armazenados no NodeMCU e o botão pressionado no app envia apenas um parâmetro que será responsável por indicar ao NodeMCU qual código será enviado pelo emissor IR.

      • Valderlando às 21:15

        Boa noite! Estou fazendo um projeto assim porem fiquei preso nessa parte de usar o esp8266 como servidor e fazer o comendo via wi-fi poderia fazer um tutorial explicando. Otimo site parabens