Table des matières:

Télécommande TV Alexa Voice Control ESP8266 : 9 étapes
Télécommande TV Alexa Voice Control ESP8266 : 9 étapes

Vidéo: Télécommande TV Alexa Voice Control ESP8266 : 9 étapes

Vidéo: Télécommande TV Alexa Voice Control ESP8266 : 9 étapes
Vidéo: Умный дом с Amazon Alexa с использованием реле управления ESP32 (голосовой + ИК-пульт) | Интернет вещей 2021 2024, Juillet
Anonim
Télécommande TV Alexa à commande vocale ESP8266
Télécommande TV Alexa à commande vocale ESP8266

Est-ce que quelqu'un dans votre maison perd la télécommande, entrez-vous dans une pièce vide pour trouver la télévision qui hurle. Les batteries commencent à défaillir et aucun contrôle depuis le fond de la pièce. Maintenant, vous pouvez contrôler votre téléviseur, DVR, tout ce qui est doté d'un contrôle IR pour lequel vous pouvez capturer le signal IR. J'ai fait ce système pour contrôler mon SKY DVR avec une simple interface vocale.

Matériel requis:

  1. Amazon Echo ou Dot
  2. Un routeur wifi qui peut transférer le port (mon fournisseur de services l'a fait pour moi)
  3. Un Arduino NANO converti en 3V3
  4. ESP8266 -01 ou similaire
  5. Module ou circuit émetteur IR
  6. Module récepteur IR si vous souhaitez capturer des codes.

Logiciels et services requis:

  1. IDE Arduino, j'ai utilisé 1.6.11
  2. Compte de compétences Amazon Alexa (gratuit)
  3. Compte Amazon AWS (niveau gratuit mais nécessite une carte de crédit pour ouvrir un compte) ou un serveur alternatif.

Étape 1: Configuration des compétences Alexa

Configuration des compétences Alexa
Configuration des compétences Alexa
Configuration des compétences Alexa
Configuration des compétences Alexa
Configuration des compétences Alexa
Configuration des compétences Alexa

Le kit de compétences Alexas prend la commande vocale et la filtre à l'aide d'une liste de « valeurs »

Une fois inscrit:

Dans la console Amazon Developer, sélectionnez l'onglet Alexa> Kit de compétences Alexa [Commencer]

[Ajouter une nouvelle compétence]

Type de compétence: Modèle d'interaction personnalisé

Langue: sélectionnez la bonne, si elle était définie sur l'anglais (États-Unis), elle ne répondrait pas !

Nom: ce n'est pas important maintenant car nous ne publions pas.

Nom d'appel:, choisissez un nom court, c'est le mot utilisé pour ouvrir l'application.

[SUIVANT]

Schéma d'intention, coller dans le code

Types d'emplacements personnalisés {Ajouter un type d'emplacement], saisissez EFFECT_ON_TV

dans Slot values , coller dans le code

Exemples d'énoncés, put, TVCommandIntent tv {TVAction}

[ENREGISTRER], sur la page de compétences suivante, nous devons ajouter un lien vers le code que nous allons exécuter lorsque "l'intention" est déclenchée soit par le mot de démarrage de l'application "clicker" ou après cela par "tv {slot value}".

Nous reviendrons sur Alexa après avoir configuré le script python du serveur Lambda.

Étape 2: Script Python du serveur AWS Lambda

Inscrivez-vous à l'offre gratuite d'AWS, je craignais que cela ne me coûte de l'argent réel, mais après l'avoir utilisé pendant un certain temps et avoir lu des forums, les limites d'utilisation sont si élevées pour une utilisation personnelle et de développement qu'elles ne devraient jamais atteindre un point de charge. Il existe une alternative pour utiliser votre propre serveur HTTPS et c'est peut-être quelque chose que l'esp8266 pourrait faire, une autre instructable !

C'est le code qui s'exécute lorsque le nom d'invocation est prononcé (par exemple "Alexa open clicker") et reçoit le mot magique d'Alexa. Une fois l'application démarrée, il vous suffit de dire "tv play, tv jump five" et Alexa enverra "play", "jump 5" à ce script python. L'application expire si elle n'a pas de réponse après un certain temps.

Dans les services AWS, sélectionnez d'abord votre emplacement, en haut à droite il y a une option.

pour les États-Unis, sélectionnez N Virginia, pour l'UE, sélectionnez l'Irlande.

sélectionnez Lambda dans l'en-tête Calcul.

[Créer une fonction Lambda]

[Fonction vide]

Configurer le déclencheur: cliquez sur la case en pointillé et sélectionnez Alexa Skills Kit

[SUIVANT]

Configurer la fonction

Nommez ce que vous voulez

Descriptif, à vous de voir

Runtine: Python 2.7

coller en code python,

dans le code, l'adresse URL HTTP devra être remplacée ultérieurement par votre propre adresse IP externe

link="https://185.255.255.255:777/text?data=" + favorite_color

en bas à l'écran se trouve un RLE, cliquez sur l'onglet et sélectionnez Sélectionner un rôle personnalisé

Cela ouvrira un nouvel écran et cliquera sur Autoriser., il reviendra à l'écran Configurer la fonction avec l'exécution de base Lamda sélectionnée comme Rôle existant.

[NEXT] l'examen, appuyez sur [Créer une fonction] et il devrait compiler et vous donner un numéro ARN. COPIE ce code et nous le mettrons dans le kit de compétences alexa.

Étape 3:

Étape 4: définissez le lien du kit de compétences Alexa sur AWS Lambda

Définir le lien du kit de compétences Alexa sur AWS Lambda
Définir le lien du kit de compétences Alexa sur AWS Lambda

Dans le kit de compétences Alexa, sélectionnez la page Configuration, intitulée Global Fields et sélectionnez AWS Lambda et votre région et collez le code ARN dans la case, [NEXT], en test, vérifiez que ENABLED est sélectionné.

NOUS avons fini ici pour le moment, maintenant pour du matériel.

Étape 5: Conversion Arduino NANO 3V3

Conversion Arduino NANO 3V3
Conversion Arduino NANO 3V3
Conversion Arduino NANO 3V3
Conversion Arduino NANO 3V3

L'ESP8266 fonctionne à partir de 3v3, vous pouvez donc l'exécuter à partir d'un régulateur externe ou convertir un nano. J'ai utilisé un clone nano avec une puce USB CH340. Je connais deux configurations de circuits imprimés différentes, mais j'espère que cela couvrira la plupart des configurations.

Nous devons remplacer le régulateur 5V par un 3v3 compatible avec les broches, 1117-3. puis acheminez le 5V de la prise USB uniquement au régulateur et connectez tout le reste à sa sortie. Heureusement, cela peut être réalisé en retirant la diode d'entrée remplaçant le régulateur et en ajoutant un fil du côté entrée de la diode au Vin sur la carte nano.

vérifiez que vous pouvez programmer le nano après la conversion.

Étape 6: NANO-Code

NANOcode
NANOcode
NANOcode
NANOcode

Cela a utilisé des codes pour ma télécommande SKY UK, il peut s'agir d'un modèle spécifique et il vaut la peine de vérifier que vos codes fonctionnent dans un croquis séparé non lié à l'esp8266.

J'ai utilisé la bibliothèque IRremote de shirriff Version 2.0.1

Utilisez l'exemple IRrecord pour capturer des commandes à distance qui nécessitent un module récepteur IR ou vous pourriez trouver vos codes sur le Web ? Je ne vais pas en parler ici, mais c'est ici que vous pouvez choisir ce que vous contrôlez et comment.

Connectez un émetteur IR disponible sur ebay ou construisez-en un. Vous devez utiliser une led IR 850 nm car ce sont les plus courantes dans les récepteurs. La bibliothèque IR utilisait D3 comme broche TX

Le mot alexa est transmis au nano, donc à partir d'ici son nano avec commande vocale.

Étape 7: ESP8266

ESP8266
ESP8266
ESP8266
ESP8266
ESP8266
ESP8266

Il existe de nombreux modules ESP8266, j'en ai utilisé un que je devais câbler sous un microscope, l'ESP8266-01 a un en-tête 2x4 et toutes les broches dont vous avez besoin et c'est bon marché. Plein d'exemples sur le web,. Mes déclenchements, GPIO_0 doit être connecté à gnd lors de la mise sous tension (peut ensuite être flottant) lors de la programmation, c'est une broche de configuration, tirée haut en interne. Une fois programmé, laissez GPIO_0 flotter et remettez sous tension. CHPD se connecte à V+ en permanence.

Le gestionnaire de carte dans arduino 1.6.11 n'a pas le lien esp8622, dans Arduino IDEfile> préférences> URL supplémentaires du gestionnaire de carte, ajoutez:

arduino.esp8266.com/stable/package_esp8266c…

puis allez à board manager et trouvez le package esp8266. cela devrait maintenant vous donner une grande liste de cartes esp8266, sélectionnez Outils> Carte> Module générique ESP8266. En utilisant un module usb vers uart, vous pouvez maintenant programmer la partie esp avec esp8266_server_text. Alimentation avec 3V3, connectez TX-RX, RX-TX et Gnd.

Vous devez entrer le SSID et le mot de passe de votre réseau dans le script et le port que vous définirez pour la redirection de port, par exemple 777.

Vous pouvez exécuter le code en réalimentant l'esp tout en étant connecté au convertisseur usb vers uart et la fenêtre série arduino (9600 bauds) devrait afficher l'adresse IP locale du module esp. entrez ceci dans le code et reprogrammez.

Étape 8: Configuration du réseau

Configuration du réseau
Configuration du réseau
Configuration du réseau
Configuration du réseau

Donc, pour permettre à l'appel d'URL Lambda de se connecter au serveur HTTP ESP, nous devons configurer votre routeur sur la redirection de port. J'ai obtenu mon adresse IP externe à partir de https://www.whatsmyip.org/, je suis sur un lien micro-ondes, donc mon fournisseur a le routeur et j'ai dû leur demander une redirection de port. Je devais donner l'adresse IP de l'ESP8266 sur mon réseau et le port que j'ai choisi, par exemple 777. L'adresse IP externe doit être entrée dans le script python lambda et votre adresse esp locale sera affichée lorsque vous exécuterez le code esp8266 via le lien usb vers uart.

Le module ESP sur la connexion usb à uart doit afficher sur un terminal le mot entrant de lambda.

Connectez l'ESP au nano comme indiqué 3v3, gnd et TX à la série logicielle nano D2. si vous avez le nano sur usb sur un écran de communication série sur l'epc, il devrait montrer ce qu'il reçoit de l'esp.

Si l'ESP n'est pas connecté au réseau ou ne répond pas à l'appel URL de lambda, lambda expirera et Alexa signale un échec de réponse de compétence

Étape 9: Alexa Open Clicker Tv Pause

Alexa Open Clicker Pause TV
Alexa Open Clicker Pause TV

J'ai placé le module à côté du récepteur mais avec une sortie IR de puissance plus élevée, il pourrait être n'importe où dans une pièce. J'utilise un adaptateur secteur usb de marque connue pour alimenter l'usb.

Asseyez-vous et dites "Alexa ouvre Clicker"

guide télévisé

la télé baisse

télévision sélectionner

jouer à la télévision

tv saut cinq

pour avancer d'un nombre défini de minutes, les macros iront jusqu'à 30x, attendront le temps demandé, puis joueront.

Les publicités britanniques durent environ cinq minutes.

Pour quitter l'application, dites à Alexa de quitter.

Prendre plaisir.

Conseillé: