Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Je TV bedienen met Alexa via Arduino IoT Cloud – stapsgewijze handleiding

Onderdelen en benodigdheden

Arduino Nano 33 IoT × 1
Weerstand 330 Ω × 1
IR-ontvanger (bijv. VS1838B) × 1
IR-zender (IR-LED) × 1
Jumper wires × 1 set
Breadboard × 1

Apps en online diensten

  • Arduino Web Editor
  • Arduino IoT Cloud
  • Arduino Amazon Alexa Official Skill

Over dit project

Let op: Deze tutorial kan verouderd zijn. Raadpleeg deze link voor een actuele versie.

Intro: Arduino IoT Cloud

Arduino IoT Cloud maakt het eenvoudig om IoT-apparaten te bouwen. Om onze TV met Alexa te besturen, gebruiken we de officiële Arduino Alexa Skill. Nieuw met IoT Cloud? Bekijk eerst het introductieproject voor het opzetten van een board, Things en Properties.

Deel 1: Hoe een TV-set te besturen

De simpelste manier: doe alsof we de originele IR-remote zijn. We luisteren naar de signalen van de remote, vangen de data op en spelen ze na met de Arduino. Na het bouwen van de schakeling, upload deze sketch om IR-codes vast te leggen. Richt de remote op de IR-ontvanger en druk op:

  • POWER/STANDBY
  • KANAAL 1 T/M 9
  • VOLUME UP / DOWN
  • MUTE
  • CHANNEL UP / DOWN

In de Seriële Monitor verschijnen rawData-arrays. Noteer ze in een tekstbestand met arraynamen (chan1, chan2, …). Hieronder voorbeeldwaarden van een Samsung-remote (67 waarden per toets):

// Voorbeeld: CHANNEL 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};
// CHANNEL 2 t/m 9, VOLUME UP/DOWN, CHANNEL UP/DOWN, ON/OFF, MUTE – analogon

Vul je eigen gemeten waarden in!

Deel 2: Arduino IoT Cloud configureren

  1. Ga naar Arduino IoT Cloud, maak een nieuw Thing: TVRemoteController.
  2. Selecteer je board (Arduino Nano 33 IoT of compatibel).
  3. Voeg één Property toe: categorie Smart Home, type TV, Read & Write, Update: When the value changes.
Je TV bedienen met Alexa via Arduino IoT Cloud – stapsgewijze handleiding

Deel 3: Arduino Web Editor – code aanvullen

Klik EDIT SKETCH. De IoT Cloud genereert een basis-sketch; we voegen custom code toe.

1. IRremote bibliotheek (Ken Shirriff)

#include <IRremote.h>

2. IR-code arrays definieren

const unsigned int chan[9][67] = { {chan1}, {chan2}, {chan3}, {chan4}, {chan5}, {chan6}, {chan7}, {chan8}, {chan9} };
const unsigned int volUp[67]   = { ... };
const unsigned int volDown[67] = { ... };
const unsigned int chanUp[67]  = { ... };
const unsigned int chanDown[67]= { ... };
const unsigned int onoff[67]   = { ... };
const unsigned int mute[67]    = { ... };

3. IR-zender initialiseren

IRsend irsend;
const int freq = 38; // 38 kHz standaard voor IR-remotes

4. Helper-functie voor IR-verzending

void sendIR(const unsigned int buf[]) {
  digitalWrite(LED_BUILTIN, HIGH);
  irsend.sendRaw(buf, 67, freq);
  delay(300); // aanpassen aan TV-model
  digitalWrite(LED_BUILTIN, LOW);
}

5. Callback onTvChange() implementeren

Deze functie wordt aangeroepen wanneer Alexa de TV-property wijzigt. We vertalen Alexa-commando's naar IR-sequenties:

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 veranderd
  if (tv.getVolume() > prevVolume) {
    tv.setMute(false); prevMute = false;
    for (int k = prevVolume + 1; k <= tv.getVolume(); k++) {
      sendIR(volUp);
      Serial.println("Volume requested: " + 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("Volume changed: " + String(tv.getVolume()) + " Set: " + String(k));
    }
    prevVolume = tv.getVolume();
  }

  // Mute veranderd
  if (tv.getMute() != prevMute && tv.getMute()) {
    prevMute = tv.getMute(); sendIR(mute);
    Serial.println("Mute changed: " + String(tv.getMute()));
  } else if (tv.getMute() != prevMute && !tv.getMute()) {
    prevMute = tv.getMute(); sendIR(mute);
    Serial.println("Mute changed: " + String(tv.getMute()));
  }

  // Kanaal veranderd
  if (tv.getChannel() != prevChannel) {
    int newChannel = tv.getChannel();
    if (newChannel > 0 && newChannel < 10) {
      sendIR(chan[newChannel - 1]);
    } else if (newChannel > 9) {
      if (newChannel > prevChannel) {
        for (int ch = prevChannel; ch < newChannel; ch++) {
          sendIR(chanUp);
          Serial.println("Chan requested: " + String(newChannel) + " Set: " + String(ch));
        }
      } else if (newChannel < prevChannel) {
        for (int ch = prevChannel; ch > newChannel; ch--) {
          sendIR(chanDown);
          Serial.println("Chan requested: " + String(newChannel) + " Set: " + String(ch));
        }
      }
    }
    prevChannel = newChannel;
    Serial.println("Channel changed: " + String(tv.getChannel()));
  }

  // Aan/uit veranderd
  if (tv.getSwitch() != prevSwitch) {
    prevSwitch = tv.getSwitch();
    if (tv.getSwitch()) sendIR(chan[6]); // kanaal 7 als "aan" trigger (voorbeeld)
    else sendIR(onoff);
    Serial.println("Switch changed: " + String(tv.getSwitch()));
  }
}

Deel 4: Amazon Alexa configureren

  1. Installeer de Amazon Alexa app (App Store / Play Store), log in.
  2. Installeer de Arduino Alexa Skill via de app (zoek "Arduino" in Skills).
  3. Koppel je Arduino IoT Cloud-account aan de Skill.
  4. Detecteer apparaten → TVRemoteController zou moeten verschijnen.
  5. Geef het een vriendelijke naam (bijv. "TV").

De originele handleiding bevat screenshots van elke stap; hier het overzicht:

Je TV bedienen met Alexa via Arduino IoT Cloud – stapsgewijze handleiding

Nu kun je stemcommando's geven:

  • "Alexa, zet het volume hoger op TV."
  • "Alexa, demp TV" of "Alexa, zet geluid aan op TV."
  • "Alexa, volgende kanaal op TV."

Veel plezier met Alexa en IoT Cloud! Vragen of resultaten? Laat een reactie achter.

— Het Arduino Team

Productieproces

  1. Je plafondventilator bedienen met Alexa: Stap-voor-stap handleiding
  2. Bouw een Ultrasonische Zweefapparaat met Arduino – Stap-voor-stap Handleiding
  3. Universele Android-afstandsbediening bouwen met Arduino, 1Sheeld en IR-besturing
  4. Een slimme voltmeter bouwen met Arduino en smartphone – Eenvoudig DIY-project
  5. Real-time IoT hartslagmonitor met Arduino en MAX30100
  6. Externe IoT-besturing van een zelfgebouwde robotarm
  7. Bouw een Slimme IoT Pot met ESP8266, Arduino & Ultrasonische Sensor – Real-time Monitoring
  8. Monitor Je Huistemperatuur Overal met Arduino Cloud Integratie
  9. Bestuur een Arduino-rover naadloos met Firmata en een Xbox One-controller
  10. DIY Arduino Luchtbevochtiger Controller met Relais – Veilige Hoogspanningsopstelling
  11. Realtime afstandsmeting met Arduino Sonar & Processing visualisatie