IR-Fernbedienung-Station für Android - Schalten Sie den Fernseher UNTEN

4 Schritt:Schritt 1: OPERATIVE ENTWICKLUNG Schritt 2: Erstellen Sie den IR-Stationsschaltung Schritt 3: DECODE IHRE Fernbedienungstasten Schritt 4: Vorbereiten der ARDUINO Programm für die IR-STATION

IR-Fernbedienung-Station für Android - Schalten Sie den Fernseher UNTEN
HINWEIS: Diese Anleitung kann AUCH AUF TECHBITAR.COM

UPDATE
28. November 2013: auf Dangerous Prototypes Beliebte http://goo.gl/FjwNoQ

EINFÜHRUNG

In dieser Anleitung werde ich die Herstellung und den Betrieb eines einfachen Arduino-basierte IR Remote Control Station (IR Station) Schaltung, die verwendet wird, um Befehle von Android über Bluetooth nehmen dann zu übersetzen und senden entsprechende IR-Fernsteuerbefehle werden zu erklären. Sie können die IR-Station verwenden, um zu automatisieren die meisten IR-Fernbedienung gesteuert Gadgets Gadgets on / off einschalten oder erhöhen / verringern Sie die Lautstärke, Helligkeit, Geschwindigkeit und so weiter.

Für dieses Handbuch als Beispiel, ich werde die IR-Fernbedienung-Station verwenden, um durch Erfassen der Audiopegel mit Android / Rücken gegen laut und nervig TV- und Radiospots kämpfen SensoDuino dann Erfassen Befehle der Fernbedienung, um den Ton leiser.

Technisch ausgedrückt, werde ich den Prozess der Überwachung des Volumens von einem Fernseher oder Stereoanlage mit Hilfe eines Android App kommenden automatisieren SensoDuino um die Lautstärke während abrupt lauter Werbespots oder auch automatisch reduzieren, wenn Jugendliche rund um das Haus Explosion der TV oder Stereo- . Sie können die hier fast alles mit einer IR-Fernbedienung diskutierten Konzepte anzuwenden. Bei der Verwendung eines Potentiometers kann die Schwelle von Rauschen zu steuern.

SENSODUINO

Denken Sie an die SensoDuino Android App als Dutzend oder mehr kostenlose virtuelle Schilder für Ihr Arduino die jeweils eine unterschiedliche Sensor und Funktion. Alles was Sie brauchen ist Ihr Android-Handy, Arduino und eine 10 € HC-05 Bluetooth-Modul. SensoDuino erfasst Daten von Sensoren in Ihr Android Mobilgeräte wie GPS, Audio, Kreisel, Datum Bau- / Zeit überträgt dann diese Daten über ein HC-05 Bluetooth (oder vergleichbar) Modul Arduino oder jedem Gerät mit Bluetooth-Funktionen ausgestattet, sei es Windows-PC , Mac, oder Mikrocontroller.

MAJOR Projektschritte

Es gibt vier große Schritte zum Aufbau und Betrieb des IR-Fernbedienung entfernt.

    Verdrahten Sie den IR STATION: Sammeln Sie die Komponenten und verdrahten gemäß den Diagrammen im nächsten Abschnitt. Erfassen Sie Ihre Fernbedienung IR CODES: Capture & decodieren Ihrer Fernbedienung Vol-Taste (oder eine andere Remote-Funktion). Diese Funktion wird in der IR-Station enthalten. MODIFY und Hochladen ARDUINO Firmware: Update des Arduino IR-Station Skizze mit den Fernbedienungstaste Codes aus Schritt 2 erfasst und laden Sie das Programm auf Ihren Arduino. BEDIENUNG DES IR STATION: Leistung der IR-Station und legen Sie es neben Ihrem TV oder einem ferngesteuerten Gerät. Stellen Sie sicher, der Sender LEDs Oberseite nach Ihrem TV IR-Empfänger. Verwenden Sie die Potentiometer an welcher Stelle Sie die IR-Station zu treten möchten und bestimmen, beginnen Sie IR-Codes, wie Volume Down, Ein / Aus, Mute, Vor- / Rücklauf usw. Feinabstimmung der Parameter der Arduino-Programm und das Potentiometer bis Sie die gewünschten Ergebnisse.
Vor einiger Zeit veröffentlichte ich ein weiteres Projekt der "TV Loudness Garde" mit einem dedizierten Komponente für die Audio-Sensor. Die Schönheit der IR-Station für Android ist, dass jede Funktion / Sensor in Ihrem Android-Gerät kann ein Auslöser für die IR-Fernbedienung gesteuert werden Maßnahmen, wie beispielsweise Lichtpegel auf Raum Licht an / aus oder Zeit / Datum Wert drehen, um Heizung ein- / ausschalten oder der Orientierungssensor, um einen Alarm auszulösen, wenn eine Bewegung erkannt wird. Ihr Android-Gerät ist ein Kraftpaket von Sensoren und Funktionen, die genutzt werden SensoDuino für die einfache Nutzung.

Schritt 1: OPERATIVE ENTWICKLUNG

  1. IR-Fernbedienung-Station für Android - Schalten Sie den Fernseher UNTEN
    Der Star des IR-Station Show ist die SensoDuino kostenlose Android-App, die die Sensoren und Funktionen Ihres Android-Handy dann Aktien, die Informationen über Bluetooth mit Arduino oder einem Mikrocontroller mit einer seriellen Bluetooth-Transceiver nutzt. SensoDuino wird Leitung die Daten Audio Lautstärkepegel auf die Arduino im IR-Station über den HC-05 Bluetooth. Das Programm läuft auf Arduino wird die Audio-Sensor-Daten an einen Rauschschwellen Sie mit dem Potentiometer (oder einen konstanten Wert in Ihrem Programm festgelegt) gesetzt erhält vergleichen und, wenn die Audio-Wert größer als unsere Schwelle von Rauschen ist, überträgt Arduino ein IR-Signal , um die Lautstärke zu reduzieren. Es wird für den Transit weiterhin die Lautstärke, IR-Signal, bis der Audiopegel unter den Schwellenwert.

Schritt 2: Erstellen Sie den IR-Stationsschaltung

  1. IR-Fernbedienung-Station für Android - Schalten Sie den Fernseher UNTEN

    IR-Fernbedienung-Station für Android - Schalten Sie den Fernseher UNTEN

    IR-Fernbedienung-Station für Android - Schalten Sie den Fernseher UNTEN

    Erhalten Sie die Teile aus und verdrahten sie entsprechend.

    COMPONENTS

    HARDWARE
    HC-05 Bluetooth serielle Modul. Ich habe es für weniger als 10 € von ebay.com IR 940nm LED-Sender. (€ 0,10 ab ebay) IR-Empfänger 38 Khz 3-pin nicht die 2-Pin-LEDs. (1 € von ebay) Ich habe mir aus Tayda2009. 10 kOhm Potentiometer. 3 x 1 K Ohm Widerstand. 2K Ohm Widerstand. Brotschneidebrett und Drahtbrücken. Leistung: Sie können USB-Netz oder Batterie, die 7 V bis 12 V und mehr als 500 mA Quelle verwenden können.
    SOFTWARE SensoDuino kostenlose Android-App von Google Play. Das Arduino IDE (Download von http://arduino.cc/en/Main/Software ) irRemote Bibliothek. Herunterladen von https://github.com/shirriff/Arduino-IRremote und extrahieren den Inhalt der Zip-Datei auf Arduino \ Bibliotheken Ordner \ irRemote
    Ken Shirriff hat tolle Arbeit geleistet mit seiner robusten irRemote Bibliothek.

    VERDRAHTUNG DES IR Stationsschaltung

    IR Sender LED Kathode (negative / der kurze Stift) ---> Arduino GND Anode (positiv / Der lange pin) ---> 1 K Ohm ---> Arduino Pin 3 (PWM)
    IR RECEIVER 38KHZ (BULGE nach oben) mit der rechten Mausstift ---> 5V Arduino Pin Middle pin ---> Arduino GND Pin Left pin ---> Arduino 11 Pin (PWM)
    10K OHM POTENTIOMETER Mittelstift ---> Arduino Analog 05 Pin Left pin ---> Arduino GND pin rechten Pin --- Arduino 5V Pin
    HC-05 Bluetooth-Modul (Breakout Board) GND pin ---> Arduino GND Pin VCC (5 V) pin ---> 5V Arduino Pin TX pin ---> Arduino Uno RX (pin 0) RX Pin ---> Die Verbindung zwischen 1K Ohm & 2K Ohm Widerstände 1K Ohm Widerstand -> Arduino Uno TX (Pin 1) 2K Ohm Widerstand -> GND

Schritt 3: DECODE IHRE Fernbedienungstasten

  1. IR-Fernbedienung-Station für Android - Schalten Sie den Fernseher UNTEN
    Es gibt viele Fernsteuerungsprotokolle gibt, die von führenden Herstellern wie Sony, NEC, Panasonic usw. unterstützt Wenn Ihr Fernsehgerät ist nicht eines dieser Marke benannt, stehen die Chancen seiner Fernbedienung hält sich an eine der beliebtesten Fernsteuerungsprotokolle durch die unterstützten führenden Anbietern.

    Da unser Gadget muss simuliert das Senden einer Volume Down Fernsteuerbefehl, wenn die TV-Lautstärke zu hoch ist, müssen wir herausfinden, was ist der Code für einen bestimmten TV-Fernbedienung. Dies ist leicht mit dem Beispiel-Programm durch die irRemote Bibliothek zur Verfügung gestellt wurde.

    Mit dem IR-Station komplett verdrahtet, schließen Sie Ihr Arduino auf Ihren PC.

    Von der Arduino IDE, laden Sie die Beispieldatei IRrecvDump die unter Menü Datei / Beispiele / irRemote gefunden werden kann
    Öffnen Sie die Arduino IDE seriellen Monitor.
    Richten Sie Ihre Fernbedienung auf den IR-LED Empfänger (3-polig) und drücken Sie die Leiser-Taste. Sie werden sehen, Zahlen, die auf der Serial Monitor angezeigt.
    Notieren Sie sich die Kurznummer generiert, wenn Sie Ihre Fernbedienung gedrückt. In meinem Fall, die Leiser-Taste war 1CE3E817 und die Bitzahl (zB 32 bit), die ich in meinem Arduino Programm zu sehen. Sie müssen meine Remotecode mit Ihrer aufgenommenen Fernbedienungscode für Ihre Vol-Taste ersetzen.

Schritt 4: Vorbereiten der ARDUINO Programm für die IR-STATION

  1. IR-Fernbedienung-Station für Android - Schalten Sie den Fernseher UNTEN
    Das Arduino-Programm in diesem Handbuch basiert auf der Vorlage sensoduino.ino, die Sensordaten über Bluetooth von von Ihrem Android-Gerät gesendet fängt basiert. Die Änderungen beinhalten Abfangen der Audio Sensordaten über Bluetooth serielle verschickt dann die Messung der Audiosensor zu lesen, um zu sehen, ob es über einem Schwellenwert von dem Potentiometer eingestellt ist. Wenn ja, schicken Sie eine IR-Fernbedienung Befehl an den Fernseher oder Stereoanlage, um die Lautstärke zu senken. Sie können diesen Beispielcode leicht ändern, um verschiedene Funktionen der Fernbedienung auf andere Geräte zu senden.

    Das Arduino Programm funktioniert für die meisten Fernbedienungen, aber Sie müssen es über Ihre Fernbedienung Protokoll aus der Informationen, die Sie im vorherigen Schritt erfasst, wenn Sie IRrecvDump Dienstprogramm decodiert Ihre Fernbedienungstasten zu erzählen.

    Es ist möglich, während der Laufzeit die Fernauswahl dynamischer zu gestalten, so dass Sie nicht haben, um zu ändern und Code hochzuladen, aber für diesen Leitfaden werde ich es einfach zu halten.

    Zu Beginn des Programms Arduino unten gibt es eine Anzahl von Zeilen, die mit
    #define Label Nummer. Ändern Sie den Zahlenwert zu kontrollieren, wie die IR-Station arbeitet. Hier ist eine Erklärung der entsprechenden LABEL Konstanten.

    REMOTE BUTTON CODE & BIT

    #define REMOTE_CODE Ihre Remotecode wie vom IRrecvDump Decoder Dienstprogramm mit "0x" vorangestellt zurück

    #define REMOTE_BIT Ihre Remotecodedatengröße wie vom IRrecvDump Decoder Dienstprogramm zurückgegeben.

    VOLUME Pegelschwelle

    #define THRESHOLD_VALUE

    Wenn Sie nicht vorhaben, das Potentiometer verwenden, um den Schwellenwert, der verwendet wird, um die IR-Übertragung ausgelöst wird bestimmen, ändern Sie den Wert auf THRESHOLD_VALUE Ihren Vorstellungen. Dies ist die Nummer, die an welchem ​​Punkt das Arduino beginnt die Übertragung der IR-Code die Lautstärke verringern IR-Codes entscheidet, in unserem Fall

    Volumenänderung INTENSITY

    #define REPEAT_TX (von 1 bis so viele, wie Sie wollen. Beginnen Sie mit 3 dann die Feinabstimmung)

    Ändern Sie, wie oft Sie die IR-Fernbedienung Code für das Fernsehgerät oder ferngesteuerten Gerät übertragen möchten. Wenn Sie mehr drastischen Rückgang der TV-Lautstärke erhöhen möchten diese Nummer. Wenn Sie eine schrittweise Veränderung des Volumens wollen, senken Sie diese Nummer.

    / ================================================= ===========================

    // Sie können kopieren und fügen Sie diesen Code in Arduino und laden Sie sie

    / *
    PROJEKT: SensoDuino IR-Fernbedienung Bahnhof 0,1
    Programmierer: Hazim Bitar (techbitar.com)
    DATUM: 25. November 2013
    FILE: sensoduino_ir_station.ino (basierend auf sensoduino.ino)
    LIZENZ: Öffentlicher Bereich
    * /

    #include <IRremote.h>

    #define THRESHOLD_VALUE 0 // Setzt kritischen Wert zu erkennen. Ignorieren, wenn Potentiometer verwendet
    #define REPEAT_TX 3 // Wie oft, um die IR-Fernbedienung-Code zu übertragen
    #define REMOTE_CODE 0x1CE3E817 // Remotecode für Volumen für meine TV übertragen nach unten. Ersetzen Sie mit Ihrem Gerät IR-Code
    #define REMOTE_BIT 32
    #define LED 13 // LED verwendet zu blinken, wenn Lautstärke zu hoch

    IRsend irsend; // Instanziieren IR-Objekt

    #define START_CMD_CHAR '>'
    #define END_CMD_CHAR '\ n'
    #define DIV_CMD_CHAR ','

    #define DEBUG 1 // auf 0 gesetzt, wenn Sie nicht wollen, serielle Ausgabe von Sensordaten

    String intext;
    float value0, value1, value2; // Vars enthält Sensorwerte.

    Leere setup () {

    // Dies ist der Sensor Hilfeliste für Sensornummern
    Serial.begin (9600); // 9600 ist der Standard-Geschwindigkeit des HC-05 und die meisten seriellen Bluetooth-Module
    Serial.println ("\ nSensoDuino 0,13 von TechBitar.com (2013). \ N");
    Serial.println ("Android Sensor Type Nr:");
    Serial.println ("1- Beschleunigungsmesser (m / s ^ 2 - X, Y, Z)");
    Serial.println ("2- MAGNETIC_FIELD (uT - X, Y, Z)");
    Serial.println ("3-Ausrichtung (Gier-, Nick-, Roll-)");
    Serial.println ("4- GYROSCOPE (rad / s - X, Y, Z)");
    Serial.println ("5-LIGHT (SI lux)");
    Serial.println ("PRESSURE 6- (hPa Millibar)");
    Serial.println ("7- Gerätetemperatur (C)");
    Serial.println ("8- Umgebung (Zentimeter oder 1,0)");
    Serial.println ("9- DICHTE (m / s ^ 2 - X, Y, Z)");
    Serial.println ("10- LINEAR_ACCELERATION (m / s ^ 2 - X, Y, Z)");
    Serial.println ("11- ROTATION_VECTOR (X, Y, Z)");
    Serial.println ("12- RELATIVE_HUMIDITY (%)");
    Serial.println ("13- AMBIENT_TEMPERATURE (C)");
    Serial.println ("14- MAGNETIC_FIELD_UNCALIBRATED (uT - X, Y, Z)");
    Serial.println ("15- GAME_ROTATION_VECTOR (X, Y, Z)");
    Serial.println ("16- GYROSCOPE_UNCALIBRATED (rad / s - X, Y, Z)");
    Serial.println ("17- SIGNIFICANT_MOTION (1,0)");
    Serial.println ("95 - TIME (H, M, S)");
    Serial.println ("96 - DATE (Y, M, A)");
    Serial.println ("97 - AUDIO (Vol).");
    Serial.println ("98 - GPS1 (lat, long, alt)...");
    Serial.println ("99 - GPS2 (Lager, Geschwindigkeit, Datum / Uhrzeit)");
    Serial.println ("\ n \ nACHTUNG: IGNORE WERTE 99,99 \ n \ n");
    Serial.flush ();

    pinMode (LED, Ausgang);
    }

    Leere Schleife ()
    {
    Serial.flush ();
    int inCommand = 0;
    Sensortyp int = 0;
    unsigned long logCount = 0L;

    char getchar = ''; // Lesen Serien

    // Warten eingehenden Daten
    if (Serial.available () <1) return; // Wenn serielle leer, in einer Schleife zurück ().

    // Analysieren eingehenden Befehl Start-Flag
    getchar = Serial.read ();
    if (= getchar START_CMD_CHAR!) return; // Wenn kein Befehl Start-Flag, um Schleife zurück ().

    // Analysieren eingehende Stift # und Wert
    Sensortyp = Serial.parseInt (); // Sensor typr lesen
    logCount = Serial.parseInt (); // Gesamt protokollierten Sensormesswerte lesen
    value0 = Serial.parseFloat (); // 1. Sensorwert
    value1 = Serial.parseFloat (); // 2rd Sensorwert, wenn vorhanden
    value2 = Serial.parseFloat (); // 3. Sensorwert, wenn vorhanden

    // Sensor und Werte der Sensoren für das Debugging anzeigen.
    if (DEBUG) {
    Serial.print ("Sensor-Typ:");
    Serial.println (Sensortyp);
    Serial.print ("Sensor # log:");
    Serial.println (logCount);
    Serial.print ("Val [0]:");
    Serial.println (value0);
    Serial.print ("Val [1]:");
    Serial.println (Wert1);
    Serial.print ("Val [2]:");
    Serial.println (value2);
    Serial.println ("-----------------------");
    Verzögerung (10);
    }
    // Ändern Sie die Sensornummer senor Sie die zum Lesen entsprechen. Siehe Sensor Help Liste oben.
    if (Sensortyp = 97!) return; // Wenn ich nicht lesen Audio Sensor Werte, gehen Sie zurück und lesen Sie weiter.

    // Lesen Sie den Potentiometer-Wert (0 bis 1023) oder weisen VolValue
    // Konstante THRESHOLD_VALUE, wenn Sie nicht wollen, um das Potentiometer zu verwenden.
    int volValue = analogRead (A5);

    // Da mein Audiosensor auf meinem Arduino gibt Werte von 0 bis 32 K Ich werde es Analog min / max Karte
    schweben volLimit = volValue * (32000 / 1023,0); // 32 K ist etwa max von SensoDuino Audio Sensor zurück
    int Soundlevel = value0; // Die Schallsensor aus SensoDuino lesen (Bluetooth)
    if (Soundlevel> volLimit) // Vergleich auf Schwellen Geräuschpegel durch Potentiometer eingestellt.
    {
    digital (LED, HIGH); // Während der Übertragung IR LED wiederum auf
    Verzögerung (200);
    for (int txCount = 0; txCount <REPEAT_TX; txCount ++) {// Senden der IR-Code-Remote-
    irsend.sendNEC (REMOTE_CODE, REMOTE_BIT); // See kommentierte Liste unten und ersetzen, um Ihre IR-System entsprechen
    Verzögerung (200);

    // Kommentieren Sie die Funktion, die Remote-Control-Protokoll wie von IRrecvDump gezeigt Spiele
    // Irsend.sendNEC (REMOTE_CODE, REMOTE_BIT);
    // Irsend.sendSony (REMOTE_CODE, REMOTE_BIT);
    // Irsend.sendRC5 (REMOTE_CODE, REMOTE_BIT);
    // Irsend.sendRC6 (REMOTE_CODE, REMOTE_BIT);
    }
    }
    digital (LED, LOW); //, Wenn Sie fertig Übertragen von IR, LED aus abbiegen

    }