Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Controle sua TV com Alexa via Arduino IoT Cloud – Guia Passo a Passo

Componentes Necessários

Componente Quantidade
Arduino Nano 33 IoT 1
Resistor 330 Ω 1
Receptor IR (ex: VS1838B) 1
Emissor IR (LED IR 940 nm) 1
Jumpers 1 kit
Protoboard 1

Software e Serviços

Visão Geral

Este tutorial ensina a transformar um Arduino Nano 33 IoT em um controle remoto IR inteligente, integrado ao Arduino IoT Cloud e controlável por comandos de voz via Amazon Alexa.

⚠ Nota: Este tutorial pode estar desatualizado. Consulte a documentação oficial do Arduino IoT Cloud para a versão mais recente.

Parte 1: Capturar Códigos IR do Controle Original

A forma mais simples de controlar uma TV é emular seu controle remoto. Vamos:

  1. Montar o receptor IR no Arduino.
  2. Carregar um sketch de captura (ex: exemplo IRrecvDumpV2 da biblioteca IRremote).
  3. Abrir o Monitor Serial (9600 baud).
  4. Apontar o controle da TV para o receptor e pressionar as teclas desejadas.
  5. Anotar os arrays rawData (unsigned int[]) exibidos para cada tecla.

Teclas recomendadas para capturar:

Exemplo de array capturado (controle Samsung – apenas referência; capture os seus):

// CANAL 1
unsigned int chan1[67] = {4450,4500, 550,1700, 500,1700, 550,1700, 550,550, 550,600, 500,600, 550,550, 550,600, 500,1700, 550,1700, 550,1700, 500,600, 500,600, 550,550, 550,600, 500,600, 550,550, 550,600, 500,1700, 550,600, 500,600, 550,550, 550,600, 500,600, 550,1700, 500,1700, 550,600, 500,1700, 550,1700, 550,1700, 500,1700, 550,1700, 500};
// ... (demais canais, volume, mute, etc.)

Parte 2: Configurar Arduino IoT Cloud

  1. Acesse Arduino IoT Cloud e crie um novo Thing chamado TVRemoteController.
  2. Selecione a placa Arduino Nano 33 IoT (ou outra compatível).
  3. Adicione uma Property do tipo Smart Home → TV:
    • Nome: tv
    • Permissão: Read & Write
    • Atualização: When the value changes
  4. A propriedade tv expõe automaticamente: switch (liga/desliga), volume (0–100), channel (inteiro), mute (booleano).

Parte 3: Código no Arduino Web Editor

Clique em EDIT SKETCH no Thing para abrir o Web Editor. O código base é gerado automaticamente; adicione a lógica IR abaixo.

1. Incluir biblioteca IR

#include <IRremote.h>

2. Definir arrays de comandos IR


// Matriz de canais 1-9 (substitua pelos SEUS valores capturados)
const unsigned int chan[9][67] = {
  { /* chan1 */ }, { /* chan2 */ }, { /* chan3 */ },
  { /* chan4 */ }, { /* chan5 */ }, { /* chan6 */ },
  { /* chan7 */ }, { /* chan8 */ }, { /* chan9 */ }
};

const unsigned int volUp[67]    = { /* seu array */ };
const unsigned int volDown[67]  = { /* seu array */ };
const unsigned int chanUp[67]   = { /* seu array */ };
const unsigned int chanDown[67] = { /* seu array */ };
const unsigned int onoff[67]    = { /* seu array POWER */ };
const unsigned int mute[67]     = { /* seu array MUTE */ };

3. Configurar emissor IR


IRsend irsend;
const int FREQ_KHZ = 38;        // Frequência portadora padrão (38 kHz)

4. Função auxiliar para enviar comando IR


void sendIR(const unsigned int buf[]) {
  digitalWrite(LED_BUILTIN, HIGH);   // Feedback visual
  irsend.sendRaw(buf, 67, FREQ_KHZ);
  delay(300);                        // Ajuste conforme sua TV
  digitalWrite(LED_BUILTIN, LOW);
}

5. Implementar callback onTvChange()

Este callback é chamado automaticamente quando a propriedade tv muda via Alexa ou app Arduino IoT.


bool first = true;
int prevSwitch = 0, prevVolume = 0, prevChannel = 0;
bool prevMute = false;

void onTvChange() {
  Serial.println("==================");
  Serial.println("Switch: " + String(tv.getSwitch()));
  Serial.println("Volume: " + String(tv.getVolume()));
  Serial.println("Channel: " + String(tv.getChannel()));
  Serial.println("Mute: " + String(tv.getMute()));
  Serial.println("==================");

  if (first) {
    prevSwitch = tv.getSwitch();
    prevVolume = tv.getVolume();
    prevChannel = tv.getChannel();
    prevMute = tv.getMute();
    first = false;
    return;
  }

  // --- VOLUME ---
  if (tv.getVolume() > prevVolume) {
    tv.setMute(false); prevMute = false;
    for (int k = prevVolume + 1; k <= tv.getVolume(); k++) {
      sendIR(volUp);
      Serial.println("Vol req: " + String(tv.getVolume()) + " Set: " + String(k));
    }
    prevVolume = tv.getVolume();
  } else if (tv.getVolume() < prevVolume) {
    tv.setMute(false); prevMute = false;
    for (int k = prevVolume - 1; k >= tv.getVolume(); k--) {
      sendIR(volDown);
      Serial.println("Vol req: " + String(tv.getVolume()) + " Set: " + String(k));
    }
    prevVolume = tv.getVolume();
  }

  // --- MUTE ---
  if (tv.getMute() != prevMute) {
    prevMute = tv.getMute();
    sendIR(mute);              // Toggle mute
    Serial.println("Mute: " + String(tv.getMute()));
  }

  // --- CANAL ---
  if (tv.getChannel() != prevChannel) {
    int newCh = tv.getChannel();
    if (newCh > 0 && newCh < 10) {
      sendIR(chan[newCh - 1]); // Tecla direta 1-9
    } else if (newCh >= 10) {
      if (newCh > prevChannel) {
        for (int ch = prevChannel; ch < newCh; ch++) sendIR(chanUp);
      } else {
        for (int ch = prevChannel; ch > newCh; ch--) sendIR(chanDown);
      }
    }
    prevChannel = newCh;
    Serial.println("Channel: " + String(newCh));
  }

  // --- LIGA/DESLIGA ---
  if (tv.getSwitch() != prevSwitch) {
    prevSwitch = tv.getSwitch();
    sendIR(prevSwitch ? chan[6] : onoff); // Ex: canal 7 = "on", power = "off" (ajuste conforme sua TV)
    Serial.println("Switch: " + String(tv.getSwitch()));
  }
}

Parte 4: Configurar Amazon Alexa

  1. Instale o app Amazon Alexa (iOS/Android) e faça login.
  2. No menu ☰ → Skills e Jogos → busque Arduino → habilite Arduino Alexa Skill.
  3. Vincule sua conta Arduino (login no Arduino IoT Cloud).
  4. Alexa descobrirá o dispositivo TVRemoteController (tipo TV).
  5. Renomeie para "TV" ou "Sala" se desejar.

Comandos de Voz Exemplos

Esquemático de Ligação

Controle sua TV com Alexa via Arduino IoT Cloud – Guia Passo a Passo

Dicas e Solução de Problemas

Processo de manufatura

  1. Controle seu Ventilador de Teto com Alexa: Guia Passo a Passo
  2. Construa um Dispositivo de Levitação Ultrassônica com Arduino – Guia Passo a Passo
  3. Controle Remoto Universal Android com Arduino, 1Sheeld e IR
  4. Construa um Voltímetro Inteligente com Arduino e Smartphone – Projeto DIY Fácil
  5. Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100
  6. Controle IoT Remoto de Braço Robótico Personalizado
  7. Construa um Pote Inteligente IoT com ESP8266, Arduino e Sensor Ultrassônico – Monitoramento em Tempo Real
  8. Monitore a Temperatura da Sua Casa de Qualquer Lugar com Integração Arduino Cloud
  9. Controle um Rover Arduino com Firmata e Gamepad Xbox One
  10. Controlador de Umidificador DIY com Arduino e Relé – Configuração Segura de Alta Tensão