Steuern Sie Ihren TV, DVD und Audio-System mit Arduino und Android

5 Schritt:Schritt 1: Besorgen Sie sich die Codes für die Tasten (I) Schritt 2: Rufen Sie die Codes (II) Schritt 3: Diagramm Kreis Schritt 4: Der Code in Arduino Schritt 5: Die App

Steuern Sie Ihren TV, DVD und Audio-System mit Arduino und Android

Hallo alle zusammen, das ist meine zweite instructable und mein erster in Englisch, so, sorry für die Fehler.
Ich möchte dieses Projekt ist es darüber, wie Sie Ihren Fernseher, DVD und Ihr Audio System mit Arduino zu kontrollieren und eine App für Android mit App Inventor gemacht zu teilen.
Wenn Sie dieses Projekt gefällt, stimmen Sie dafür, in der Heim automamtion Wettbewerb.
Er wird in zwei Teile divived der erste ist es für den Erhalt der Codes der Fernbedienung, und das zweite ist das reale Projekt zur Steuerung der Geräte.
Allgemeine Part List:
(1) Ein Arduino. (1) Brotschneidebrett. (1) IR-Empfänger Tsop1838 oder gleichwertig. (Zur Erfassung der Codes, No in das Projekt der Steuerung verwendet wird). (2) IR LED (1) HC-05 Bluetooth-Modul. (2) 220-Ohm-Widerstände. Starthilfekabel. (1) Fernsteuerung.

(Zur Erfassung der Codes, No in das Projekt der Steuerung verwendet wird).
Hinweis: das YouTube-Video hat Englisch Untertitel.

Schritt 1: Besorgen Sie sich die Codes für die Tasten (I)

  1. Steuern Sie Ihren TV, DVD und Audio-System mit Arduino und Android

    Steuern Sie Ihren TV, DVD und Audio-System mit Arduino und Android

    Steuern Sie Ihren TV, DVD und Audio-System mit Arduino und Android

    Steuern Sie Ihren TV, DVD und Audio-System mit Arduino und Android

    Erstens müssen wir, um die Codes für jede Taste unserer Fernbedienung erhalten.
    Also, beim Aufbau der Schaltung auf dem Steckbrett wie auf Abbildung dargestellt.
    Der IR-Empfänger TSOP 1738 hat drei Pins.
    Die erste ist der Ausgang, verbunden sind, um in Arduino Pin 11.
    Geht das zweite auf Gnd und die dritte ist mit + 5V verbunden.
    Laden Sie die irRemote Bibliothek von Ken Shirriff writen. Diese Bibliothek wollen wir sowohl senden als auch IR-Fernbedienung Codes in mehrere Protokolle wie Nec, Philips RC5, RC6 Philips und rohe erhalten.
    wir müssen einen Infrarotsensor wie der osp1738 an einen digitalen Eingang Pin zu verbinden.
    Laden Sie hier die Skizze

    # include
    int RECV_PIN = 11;
    IRrecv irrecv (RECV_PIN);
    decode_results Ergebnisse;
    Leere setup () {
    Serial.begin (9600);
    irrecv.enableIRIn (); // Starten Sie den Empfänger
    }
    // Dumps die decode_results Struktur.
    // Rufen Sie diese nach IRrecv :: decode ()
    // Void *, um Compiler-Problem zu umgehen
    // Leere dump (void * v)
    {// Decode_results * Ergebnisse = (decode_results *) v
    Leere dump (decode_results * Ergebnisse)
    {Int count = ergebnis> rawlen;
    if (ergebnis> decode_type == unbekannt)
    {Serial.print ("Unknown Codierung:");
    }
    else if (ergebnis> decode_type == NEC)
    {Serial.print ("Decoded NEC:");
    } Else if (ergebnis> decode_type == SONY)
    {Serial.print ("Decoded SONY:");
    }
    else if (ergebnis> decode_type == RC5)
    {Serial.print ("Decoded RC5:"); }
    else if (ergebnis> decode_type == RC6)
    {Serial.print ("Decoded RC6:"); }
    else if (ergebnis> decode_type == PANASONIC)
    {Serial.print ("Decoded PANASONIC - Adresse:");
    Serial.print (ergebnis> panasonicAddress, HEX);
    Serial.print ("Value"); }
    else if (ergebnis> decode_type == JVC)
    {Serial.print ("Decoded JVC:"); }
    Serial.print (ergebnis> Wert, HEX);
    Serial.print ("(");
    Serial.print (ergebnis> Bits, DEC);
    Serial.println ("Bit)");
    Serial.print ("Raw (");
    Serial.print (Anzahl, DEC);
    Serial.print ("):");
    for (int i = 0; i <zählen; i ++)
    {If ((i% 2) == 1)
    {Serial.print (ergebnis> rawbuf [i] * USECPERTICK, DEC); }
    sonst
    {Serial.print (- (int) ergebnis> rawbuf [i] * USECPERTICK, DEC); }
    Serial.print (""); }
    Serial.println (""); }
    Leere Schleife ()
    {
    if (irrecv.decode (& Ergebnisse))
    {
    Serial.println (results.value, HEX);
    Dump (& Ergebnisse);
    irrecv.resume (); // Den nächsten Wert Erhalten
    }
    }

Schritt 2: Rufen Sie die Codes (II)

  1. Steuern Sie Ihren TV, DVD und Audio-System mit Arduino und Android

    Nachdem Sie den Schaltkreis zur Erfassung der Codes aufgebaut haben, öffnen Sie das serielle Monitor auf dem Arduino Ide, drücken Sie die gewünschte Taste der Fernbedienung und sehen, welche Werte das arduino empfängt, wie in der Abbildung dargestellt. Arduino wird das Protokoll, den Code und die rohen Code zu erhalten.
    Beispielsweise. das sind die Codes, wenn ich gedrückt wurde und die Öffnen / Schließen-Knöpfe von meinem DVD-Player-Fernbedienung.
    Speichern oder kopieren Sie die für jede gewünschte Taste, die Sie für die Steuerung der Geräte verwenden empfangenen Codes.
    - Und TV / DVD-Tasten, Lautstärke +, Volumen-, Kanal + und Kanal: In meiner skethch für Tv verwendet i.
    Für DVD, Macht, Öffnen / Schließen, Wiedergabe und Stopp.
    Für Audio-System möchte ich nur die Macht zu kontrollieren, spielen cd und Presets Tasten.
    Diese Codes werden am nächsten Skizze verwendet werden.

Schritt 3: Diagramm Kreis

  1. Steuern Sie Ihren TV, DVD und Audio-System mit Arduino und Android

    Steuern Sie Ihren TV, DVD und Audio-System mit Arduino und Android

    Wie Sie sehen können, brauchen wir nur:
    Arduino Board. Bluetooth-Modul HC-05. Infrarot LED. (Ich habe zwei für die Anordnung meiner TV, DVD und die Stereoanlage verwendet wird, die Anzahl von Infrarot-LEDs ist abhängig von der Anordnung der Geräte).
    Hinweis: Die Infrarot-LED hat Arduino Pin # 3. Das ist, da die Bibliothek eingerichtet ist, dass Art und Weise zu verbinden.
    Nur drei Pins des Arduino verwendet:
    PIN

    3 - Um LEDs
    0 - BT-Modul Pin Tx
    1 - BT-Modul Pin Rx
    Denken Sie daran, dass, wenn Sie die Skizze auf die Arduino laden, hat das Bluetooth-Modul getrennt werden.

Schritt 4: Der Code in Arduino


  1. Clic hier zum Herunterladen des Codes oder kopieren Sie die folgenden Zeilen:
    #include "<\ IrRemote.h \>";
    IRsend ir;
    int estado = 0;
    char dato;
    // Diese Codes sind für die Steuerung der Audio System
    unsigned int powerEquipo[32]={300,750,300,1800,300,700,350,700,350,1750,350,700,300,1800,250,1800,350,700,300,1800,350,700,300,700,350,700,350,1750,300,750,300}; // Unsigned int chEmisoraUp [32] = {300,750,300,750,300,1750,250,800,300,750,300,750,250,800,300,750,250,1800,250,1850,300,750,250,800,200,800,300,1800,300,750,300}; unsigned int chEmisoraUp [32] ={300,750,300,750,300,1800,200,850,300,750,250,750,300,750,300,750,300,1800,300,1750,300,750,300,750,300,750,300,1800,250,750,300}; unsigned int chEmisoraDown [32] = {350,700,400,650,300,1750,350,700,350,700,350,700,300,750,300,700,350,700,300,750,350,1750,400,650,300,700,350,1750,300,750,300};
    unsigned int PlayCD [32] = {400,650,400,650,350,1750,350,700,350,650,350,1750,350,1750,300,1750,400,1700,350,1750,350,700,350,650,400,650,350,1750,450,600,350};
    // Diese Codes sind für die Steuerung der TV-
    unsigned int pwrTv[68]={4600,4350,700,1550,650,1550,650,1600,650,450,650,450,650,450,650,450,700,400,700,1550,650,1550,650,1600,650,450,650,450,650,450,700,450,650,450,650,450,650,1550,700,450,650,450,650,450,650,450,650,450,700,400,650,1600,650,450,650,1550,650,1600,650,1550,650,1550,700,1550,650,1550,650}; // Lauter unsigned int volUpTv[68]={4600,4350,650,1550,700,1500,700,1550,700,400,700,400,700,450,650,450,700,400,700,1500,700,1550,650,1550,700,400,700,400,700,450,650,450,700,400,700,1500,700,1550,650,1550,700,400,700,450,700,400,700,400,700,400,700,450,650,450,650,450,650,1550,700,1500,700,1550,700,1500,700,1550,650}; // Lautstärke unsigned int volDownTv[68]={4600,4350,700,1550,650,1550,700,1500,700,450,650,450,700,400,700,400,700,400,700,1550,700,1500,700,1550,700,400,700,400,700,400,700,450,650,450,650,1550,700,1500,700,450,650,1550,700,400,700,400,700,450,700,400,700,400,700,400,700,1550,700,400,700,1500,700,1500,700,1550,700,1500,700}; // Kanal bis unsigned int chUpTv[68]={4600,4350,700,1500,700,1500,700,1550,700,450,650,400,700,450,650,450,700,400,700,1500,700,1550,650,1550,700,450,650,450,700,400,700,400,700,400,700,400,700,1550,700,400,700,400,700,1550,650,450,700,400,700,400,700,1550,650,450,650,1600,650,1550,650,450,700,1500,700,1500,700,1550,650}; // Kanal hinunter unsigned int chDownTv[68]={4650,4300,700,1550,700,1500,700,1550,700,400,700,400,700,400,700,450,650,450,650,1550,700,1500,700,1550,700,400,700,400,700,400,700,450,700,400,700,400,700,400,700,450,650,450,650,1550,700,400,700,450,650,400,700,1550,700,1500,700,1550,700,1500,700,400,700,1550,650,1550,700,1500,700};
    // Tv / Video unsigned int videoTv[68]={4500,4300,650,1600,650,1550,650,1600,650,500,600,500,650,500,650,500,650,500,600,1650,600,1600,650,1550,650,500,650,500,650,500,600,500,650,500,650,1600,600,500,650,500,650,500,650,500,600,550,600,500,650,500,650,500,650,1550,650,1600,650,1550,650,1600,650,1550,650,1600,650,1550,650};
    Leere setup ()
    {
    Serial.begin (9600);
    }
    Leere Schleife ()
    {
    if (Serial.available ()> 0)
    {Dato = Serial.read ();
    Schalter (dato)
    {Case 'R':
    ir.sendRaw (powerEquipo, 32,38);
    Verzögerung (500);
    Unterbrechung;
    Fall 'T':
    ir.sendRaw (chEmisoraUp, 32,38);
    Verzögerung (100);
    Unterbrechung;
    Fall 'U':
    ir.sendRaw (chEmisoraDown, 32,38);
    Verzögerung (100);
    Unterbrechung;
    Fall 'V':
    ir.sendRaw (PlayCD, 32,38);
    Verzögerung (100);
    Unterbrechung;
    Fall 'K':
    // Strom die TV
    ir.sendRaw (pwrTv, 68,38);
    Verzögerung (100);
    Unterbrechung;
    Fall 'L':
    // Volume +
    ir.sendRaw (volUpTv, 68,38);
    Verzögerung (100);
    Unterbrechung;
    Fall 'M':
    // Volume -
    ir.sendRaw (volDownTv, 68,38);
    Verzögerung (100);
    Unterbrechung;
    Fall 'N':
    // Channel +
    ir.sendRaw (chUpTv, 68,38);
    Verzögerung (100);
    Unterbrechung;
    Fall 'O':
    // Kanal -
    ir.sendRaw (chDownTv, 68,38);
    Verzögerung (100);
    Unterbrechung;
    Fall 'P':
    // Tv / Video
    ir.sendRaw (videoTv, 68,38);
    Verzögerung (100);
    Unterbrechung;
    Fall 'A':
    for (int i = 0; i <3; i ++)
    {
    ir.sendNEC (0xFF30CF, 32); // Strom die DVD
    Verzögerung (40);
    }
    Unterbrechung;
    Fall 'B':
    for (int i = 0; i <3; i ++)
    {
    ir.sendNEC (0xFF00FF, 32); // Öffnen schließen
    Verzögerung (40);
    }
    Unterbrechung;
    Fall 'C':
    for (int i = 0; i <3; i ++)
    {
    ir.sendNEC (0xFF52AD, 32); // Spielen
    Verzögerung (40);
    }
    Unterbrechung;
    Fall 'D':
    for (int i = 0; i <3; i ++)
    {
    ir.sendNEC (0xFF728D, 32); // Stopp
    Verzögerung (40);
    } Unterbrechung;
    } // Fin del Schalter
    } // Fin del wenn
    } // Del Schleife fin

Schritt 5: Die App

  1. Steuern Sie Ihren TV, DVD und Audio-System mit Arduino und Android

    Steuern Sie Ihren TV, DVD und Audio-System mit Arduino und Android

    Dies ist der Blöcke Bild der App in App Inventor 2 gemacht.
    Clic hier für den Download der App.
    Die in diesem App verwendet componentes sind:
    Bluetooth-Client. Mehrere Tasten, Etiketten und listpicker. wie Sie sehen können, ist es sehr einfach, wenn es läuft, haben wir eine Bluetooth-Verbindung Drücken Sie die Option wählen Sie Gerät auswählen, und wenn es angeschlossen ist muss nur die gewünschte Taste zur Steuerung des Gerätes drücken.
    Das ist alles. Dank für das Aufpassen und wenn Sie dieses Projekt möchten, wenden Sie sich bitte für die Heimautomatisierung Wahlen zu stimmen.
    Wieder, sorry für mein Englisch.