Poste de télécommande IR pour Android - baissez la TV (4 / 4 étapes)

Étape 4: Préparer le programme ARDUINO pour la STATION IR

The Arduino programme dans ce guide est basé sur le sensoduino.ino de modèle qui capture des données de capteur venues via Bluetooth de votre appareil Android. Les modifications impliquent intercepter les données de capteur Audio envoyées via Bluetooth serial puis mesurer la lecture audio capteur pour voir si il est supérieur à un seuil défini par le potentiomètre. Si oui, envoyez une commande de contrôle à distance IR à la TV ou la stéréo pour porter le volume vers le bas. Vous pouvez facilement modifier cet exemple de code pour envoyer des fonctions différentes de la télécommande sur d’autres gadgets.

Ce programme Arduino fonctionne pour la plupart des télécommandes, mais vous devez lui dire sur votre protocole de contrôle à distance de l’info que vous réunis dans l’étape précédente lorsque vous décoder vos boutons de commande à distance à l’aide d’utilitaire de IRrecvDump.

Il est possible de faire la sélection à distance dynamique pendant l’exécution afin que vous n’avez pas à modifier et télécharger code mais pour ce guide je vais garder simple.

Au début du programme Arduino ci-dessous, il y a un certain nombre de lignes commençant par
Numéro de l’étiquette de #define.  Changer la valeur numérique pour contrôler le fonctionnement de la Station de IR. Voici une explication des constantes LABEL pertinents.

BITS & CODE de touche de la télécommande

#define REMOTE_CODE votre code à distance comme renvoyé par l’utilitaire de décodeur IRrecvDump le préfixe « 0 x »

#define REMOTE_BIT votre taille de données de code à distance tel que renvoyé par l’utilitaire de décodeur de IRrecvDump.

SEUIL DE VOLUME

#define THRESHOLD_VALUE

Si vous ne prévoyez pas d’utiliser le potentiomètre pour déterminer la valeur de seuil qui sera utilisée pour déclencher la transmission IR, modifiez la valeur THRESHOLD_VALUE pour correspondre à vos besoins.  C’est le nombre qui décide à quel moment l’Arduino commence à émettre le code IR, dans notre cas les codes Volume bas IR

INTENSITÉ DE CHANGEMENT DE VOLUME

#define REPEAT_TX (à partir de 1 pour autant que vous voulez. Commencez par 3 puis fine tune)

Changer combien de fois vous voulez le code télécommande IR transmis à la TV ou le dispositif de contrôle à distance. Si vous voulez plus drastique baisse de volume du téléviseur augmenter ce nombre. Si vous voulez un changement progressif plus en volume, réduire ce nombre.

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

Vous pouvez copier et coller ce code dans Arduino et transférez-le

/*
PROJET : SensoDuino IR télécommande Station 0.1
PROGRAMMEUR : Hazim Bitar (techbitar.com)
DATE : 25 NOVEMBRE 2013
FICHIER : sensoduino_ir_station.ino (basé sur sensoduino.ino)
LICENCE : domaine Public
*/

#include < IRremote.h >

#define THRESHOLD_VALUE 0 / / Set niveau critique à détecter. Ignorer si le potentiomètre est utilisé
#define REPEAT_TX 3 / / Combien de fois pour transmettre le code de télécommande IR
#define REMOTE_CODE 0x1CE3E817 / / code de télécommande à transmettre pour le volume vers le bas pour ma TV. Remplacez par votre appareil code IR
#define REMOTE_BIT 32
#define LED13 / / LED utilisé à clignoter quand volume trop élevé

IRsend irsend ; instancier objet IR

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

#define DEBUG 1 / / la valeur 0 si vous ne voulez pas sortie séquentielle des données des capteurs

InText chaîne ;
flotteur value0, valeur1, valeur2 ; Vars contenant les valeurs de la sonde.

void setup() {}

Cet article recense capteur aider pour les numéros de capteur
Serial.Begin(9600) ; 9600 est la vitesse par défaut de la HC-05 et la plupart des modules Bluetooth serial
Serial.println("\nSensoDuino 0.13 by TechBitar.com (2013).\n") ;
Serial.println ("Android capteur Type non:") ;
Serial.println ("1-accéléromètre (m/s ^ 2 - X, Y, Z)") ;
Serial.println (« 2-MAGNETIC_FIELD (uT - X, Y, Z)") ;
Serial.println ("3-ORIENTATION (lacet, tangage, roulis)") ;
Serial.println (« 4-GYROSCOPE (rad/s - X, Y, Z)") ;
Serial.println ("5-lumière (SI lux)") ;
Serial.println ("6-pression (hPa millibar)") ;
Serial.println ("7-DEVICE TEMPERATURE (C)") ;
Serial.println ("8-proximité (centimètres ou 1,0)") ;
Serial.println ("9-GRAVITY (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 - temps (H, M, S)") ;
Serial.println ("96 - DATE (Y, M, D)") ;
Serial.println ("97 - AUDIO (Vol.)") ;
Serial.println ("98 - GPS1 (lat., long., alt)") ;
Serial.println ("99 - GPS2 (roulement, vitesse, heure/date)") ;
Serial.println ("\n\nNOTE : ignorer les valeurs de 99.99\n\n") ;
Serial.Flush() ;

pinMode (LED, sortie) ;
}

void loop()
{
Serial.Flush() ;
Clearances int = 0 ;
int SensorType% = 0 ;
unsigned long logCount = 0L ;

char getChar = ' ' ;  lire la série

attendre pour les données entrantes
Si (Serial.available() < 1) return end si vide de série, retour à loop().

Parse entrant indicateur de début de commande
getChar = Serial.read() ;
Si (getChar! = START_CMD_CHAR) return ; Si aucune commande ne démarrer drapeau, retour à loop().

analyser des entrants broche et valeur
SensorType% = Serial.parseInt() ; lire capteur typr
logCount = Serial.parseInt() ;  lire les lectures du capteur connecté total
value0 = Serial.parseFloat() ;  1ère valeur capteur
valeur1 = Serial.parseFloat() ;  2ème capteur valeur si existe
value2 = Serial.parseFloat() ;  capteur de 3ème valeur si existe

Voir la sonde et les valeurs des capteurs pour le débogage.
Si {(DEBUG)
Serial.Print ("type de capteur:") ;
Serial.println(sensorType) ;
Serial.Print ("capteur journal #:") ;
Serial.println(logCount) ;
Serial.Print ("Val [0]:") ;
Serial.println(value0) ;
Serial.Print ("Val [1]:") ;
Serial.println(value1) ;
Serial.Print ("Val [2]:") ;
Serial.println(value2) ;
Serial.println("---") ;
Delay(10) ;
}
Changer le numéro du capteur pour faire correspondre le senor vous permettant de lire. Voir capteur aide liste ci-dessus.
Si (SensorType%! = 97) return ;  Si je ne lis pas les valeurs de capteur Audio, revenir en arrière et continuez à lire.

Lire la valeur du potentiomètre (0-1023) ou assigner VolValue
à la constante THRESHOLD_VALUE si vous ne souhaitez pas utiliser le potentiomètre.
int volValue = analogRead(A5) ;

Étant donné que mon capteur audio sur mon Arduino retourne des valeurs de 0 à 32K j’ai mappera il analogiques min/max
float volLimit = volValue * (32000 / 1023.0) ; 32K est environ max retourné par capteur SensoDuino Audio
int soundLevel = value0 ; Lire le capteur acoustique de SensoDuino (Bluetooth)
if(soundLevel > volLimit) / / comparer à un seuil de bruit potentiomètre.
{
digitalWrite(LED,HIGH) ;  lors de la transmission IR allumer LED
Delay(200) ;
pour (int txCount = 0; txCount < REPEAT_TX ; txCount ++) {/ / transmettre le code de télécommande IR
irsend.sendNEC (REMOTE_CODE, REMOTE_BIT) ; Voir liste commentée ci-dessous et remplacer pour correspondre à votre système IR
Delay(200) ;

Décommentez la fonction qui correspond à votre protocole de contrôle à distance comme indiqué par IRrecvDump
irsend.sendNEC (REMOTE_CODE, REMOTE_BIT) ;
irsend.sendSony (REMOTE_CODE, REMOTE_BIT) ;
irsend.sendRC5 (REMOTE_CODE, REMOTE_BIT) ;
irsend.sendRC6 (REMOTE_CODE, REMOTE_BIT) ;
}
}
digitalWrite(LED,LOW) ; une fois terminé le transmetteur IR, éteignez LED

}

Articles Liés

Python codant pour Android Minecraft PE

Python codant pour Android Minecraft PE

La version de Raspberry PI de Minecraft permet vous script en Python, faire des dessins de fractale, dessins, graphiques de la tortue, jeux simples, etc.. La même chose peut être faite sur une version de bureau avec mon Mod de confiture de framboise
Google Maps API pour Android

Google Maps API pour Android

Salut! Votre application Android manque pizazz ou direction ? Ajouter Google Maps est un excellent moyen de prendre votre app de terne à distinctes. Mais comment on fait cette transition ? Dans ce tutoriel, je vais vous guider le processus de configu
Magic Mirror Mini pour Android

Magic Mirror Mini pour Android

il y a quelques années, j'ai fait un projet appelé le miroir magique bricolage. C'est un miroir magique parlant interactif qui joue différentes réponses vidéo depuis un PC en réponse à diverses entrées de capteurs par un Arduino. J'avais envie de fai
Contrôleur de SNES Bluetooth pour Android

Contrôleur de SNES Bluetooth pour Android

c'est mon premier instructable...Un peu plus d'un an, je travaillais sur mon projet de conception senior ECE, qui était un contrôleur de SNES bluetooth pour Android.  Peu de temps après l'achèvement du projet, j'ai posté une vidéo du travail sur Yout
4 commandes essentielles pour faire des dessins dans AutoCAD : les utiliser pour dessiner une étoile

4 commandes essentielles pour faire des dessins dans AutoCAD : les utiliser pour dessiner une étoile

Ce Instructable est écrit pour ceux juste apprendre et débutent avec AutoCAD, avec le but en passant sur quelques bons conseils. Il suppose que quelque facilité avec l'ordinateur.Je vais montrer comment faire l'étoile ci-dessus à l'aide de quatre com
Réutilisation des indésirables télécommande infrarouge pour utilisation avec lecteur de musique XMMS2

Réutilisation des indésirables télécommande infrarouge pour utilisation avec lecteur de musique XMMS2

IntroductionC'est une bonne idée à télécommande XMMS2 media player via une connexion infrarouge pour la même raison, on le fait avec XBMC/KODI. J'ai fouillé dans ma boîte de pièces et trouvé cette télécommande infrarouge d'un système de Home Theatre
Top 10 qualité Photo Editor app pour Android

Top 10 qualité Photo Editor app pour Android

Top 10 qualité Photo Editor App pour faire vos Photos parfait-Andro racineChaque fois que nous ne pouvons pas voyager avec un appareil photo et ordinateur portable. Et nous utilisons notre téléphone portable ou un téléphone intelligent pour la photog
Désosser télécommande RF pour ITO !

Désosser télécommande RF pour ITO !

Dans ce instructable, vous apprendrez comment inverser ingénieur télécommandes Radio fréquence (RF) et la mise en œuvre dans un ordinateur très bon marché de WiFi activé, le MCU de nœud. Cette technique vous pouvez périphériques et ITO activer des ap
Réutilisation des indésirables télécommande infrarouge pour arrêter et redémarrer le Raspberry Pi

Réutilisation des indésirables télécommande infrarouge pour arrêter et redémarrer le Raspberry Pi

IntroductionCette commande à distance dans l'image utilisée pour commander un ventilateur jusqu'à ce que le ventilateur ne fonctionne plus. J'ai jeté le ventilateur et sauvé de la télécommande. C'est certainement mon personnel favori instructable par
À l’aide d’invite de commandes Windows pour tester la connexion Internet

À l’aide d’invite de commandes Windows pour tester la connexion Internet

IntroductionCe guide vous indiquera comment utiliser invite de commande Windows pour exécuter le programme « ping » pour tester votre connexion internet. Ce guide est destiné à l'utilisateur de base en informatique qui désire un moyen simple pour tes
Comment écrire une application 'Hello World!' pour Android

Comment écrire une application 'Hello World!' pour Android

INTRODUCTIONCe tutoriel est destiné à toute personne qui n'a aucune expérience en programmation d'applications pour le système d'exploitation Android, mais je voudrais. Il est très basique, et installer les programmes nécessaires est plus compliquée
Réutilisation des indésirables télécommande infrarouge pour utilisation avec XBMC/KODI sur framboise Pi

Réutilisation des indésirables télécommande infrarouge pour utilisation avec XBMC/KODI sur framboise Pi

IntroductionLe media center de contrôle à distance est une application majeure de Linux Infrared Remote Control (LIRC). Il y a un grand nombre de tutoriel sur la façon de mettre en œuvre une télécommande infrarouge avec XMBC/KODI. Après avoir suivi l
Une ligne de commande Simple pour OS X outils pour tout le monde

Une ligne de commande Simple pour OS X outils pour tout le monde

Une ligne de commande Simple pour OS X outils pour tout le mondeCeux-ci ont été rassemblés d'autour de l'internet et de mes connaissances personnelles. Beaucoup sont des outils simples qu'on peut lire sur les pages de MAN, un couple sont des éléments
AIR pour Android

AIR pour Android

cette présentation vous guidera le processus de développement complet de l'AIR pour une application mobile de la conception au déploiement. Chris Griffith va vous montrer comment il a conçu et construit l'application en utilisant une variété d'outils