Contrôler votre Chromecast avec Amazon Alexa via un Raspberry Pi et Python
Vue d'ensemble
Faire communiquer Alexa et Chromecast
Vous vous êtes déjà demandé si votre Alexa pouvait contrôler un Chromecast ? Ce tutoriel étape par étape explique comment y parvenir avec un Raspberry Pi, MySQL et AWS Lambda.
NOTE : Pour les derniers scripts et fichiers de projet, visitez notre dépôt GitHub.
Cette approche a été mise en avant dans « AlexaDev Tuesday: Innovative Alexa Skills Spotlight » sur LoveMyEcho et montre comment les développeurs peuvent résoudre des défis d'intégration complexes.
Pourquoi un Raspberry Pi ?
La taille compacte du Pi, sa faible consommation et sa compatibilité avec Raspbian en font un hôte idéal pour la base de données MySQL, le script Python et la configuration réseau nécessaires pour qu'Alexa atteigne le Chromecast.
Comment ça marche
- L'utilisateur lance la skill en disant : « Alexa, lance Chromecast. »
- Alexa envoie la commande demandée (par défaut une recherche YouTube) à la skill.
- La skill écrit la commande dans une table MySQL sur le Pi.
- Un processus Python en arrière-plan lit la table, traduit la requête en commande Chromecast et l'exécute.
- Après exécution, l'entrée de base de données est supprimée.
- Alexa confirme la completion à l'utilisateur.
Étape 1 : Préparer votre Raspberry Pi pour le transfert de port
Avant de commencer, assurez-vous que votre Pi est connecté à Internet et notez son adresse IP.
Pour trouver l'IP du Pi :
- Ouvrez un terminal sur le Pi ou un autre PC.
- Exécutez
ifconfig(Linux) ouipconfig(Windows) pour localiser la passerelle par défaut.
Accédez à la page d'administration de votre routeur via l'adresse de la passerelle et configurez le transfert de port pour :
- 3306 – MySQL (port par défaut)
- 80 – phpMyAdmin (optionnel)
- 22 – SSH (optionnel)
Note de sécurité : L'exposition de ces ports ouvre votre réseau à des risques potentiels. Utilisez des mots de passe forts et envisagez de restreindre l'accès aux IP de confiance.
Étape 2 : Installer MySQL sur le Pi
Exécutez la commande suivante sur le Pi :
sudo apt-get update && sudo apt-get install mysql-server --fix-missing
Sécurisez l'installation avec sudo mysql_secure_installation et créez un utilisateur dédié pour la skill.
Étape 3 : Installer phpMyAdmin (optionnel)
Suivez un tutoriel pour configurer phpMyAdmin pour une gestion de base de données plus facile.
Exécutez le fichier build.sql fourni pour créer le schéma requis.
Étape 4 : Configurer les scripts
Ouvrez index.py et raspberry.py et remplacez les espaces réservés :
- RASP_PI_DNS – Nom d'hôte ou IP du serveur MySQL
- MYSQL_USER – Nom d'utilisateur MySQL
- MYSQL_PASS – Mot de passe MySQL
- DB_NAME – Nom de la base de données
- CHROMECAST_NAME – Nom de l'appareil Chromecast cible
Étape 5 : Déployer la skill sur AWS Lambda
Compressez tous les fichiers sauf speechAssets et raspberry.py, puis :
- Connectez-vous à la console AWS Management Console et ouvrez Lambda.
- Cliquez sur « Créer une fonction », ignorez le blueprint, nommez-la
alexaChromecast, choisissez l'exécution Python 3.9. - Sélectionnez « Téléverser un fichier .zip » et téléversez votre archive.
- Définissez le gestionnaire sur
index.lambda_handler, le rôle sur « Exécution de base » et le délai d'attente sur 30 s.
Étape 6 : Créer la skill Alexa
- Rendez-vous sur Amazon Developer Console et ouvrez Alexa Skills Kit.
- Cliquez sur « Ajouter une nouvelle skill », nommez-la « Alexa Chromecast », définissez le nom d'invocation sur « chromecast ».
- Téléversez
intentSchema.jsonetsample-utterances.txtdepuis le dossierspeechAssets. - Collez l'ARN Lambda dans le champ « Endpoint ». Désactivez le lien de compte.
Étape 7 : Exécuter le script Raspberry Pi
Transférez raspberry.py sur le Pi (via USB ou WinSCP). Exécutez-le avec :
python3 raspberry.py
Étape 8 : (Optionnel) Démarrage automatique au boot
Créez un script shell launcher.sh contenant :
#!/bin/bash
sudo python3 /path/to/raspberry.py
Ajoutez une tâche cron pour exécuter launcher.sh au démarrage :
@reboot /path/to/launcher.sh
Testez la skill dans l'onglet « Test » de la console développeur Alexa. Si tout est correctement configuré, vous devriez pouvoir contrôler votre Chromecast avec des commandes vocales.
Vidéo de démonstration : Regarder ici.
Processus de fabrication
- Surveillance de température professionnelle sur Raspberry Pi avec DS18B20
- Construction d'une station météo extérieure avec Raspberry Pi 2 et ADS‑WS1
- Surveillance précise de la température dans un placard serveur avec Raspberry Pi
- Suivi avancé de balle de ping-pong sur Raspberry Pi avec OpenCV
- Construire une télécommande universelle Raspberry Pi professionnelle avec LIRC
- Contrôler une LED avec un capteur de mouvement PIR sur Raspberry Pi
- Conversion RF vers DC avec Raspberry Pi : Construction et dépannage d'un détecteur d'enveloppe
- Cycle Chaser : Transformer votre vélo en spectacle lumineux nocturne avec Raspberry Pi
- Construire un capteur d'humidité du sol Raspberry Pi low-cost pour irrigation intelligente