Contrôler des LEDs avec Alexa via Arduino Yun – Tutoriel Maison Intelligente
Composants et fournitures
| Composant | Quantité |
|---|---|
| Arduino Yun | 1 |
| Amazon Alexa Echo | 1 |
| LED générique | 1 |
| Carte Micro SD | 1 |
Applications et services en ligne
- Amazon Web Services (AWS) IoT
- AWS Lambda
- Alexa Skills Kit
À propos de ce projet
Motivation
Depuis que j'ai construit un miroir intelligent avec Alexa intégré, je cherchais d'autres moyens de connecter divers appareils domotiques dans la maison. Lorsque j'ai découvert que la nouvelle API Alexa Smart Home permet de contrôler des appareils personnalisés directement, j'ai décidé de tenter l'expérience.
Ce projet utilise une version plus ancienne de l'API, mais m'a servi de point de départ idéal vers l'Arduino Yún, qui combine un système Linux et un microcontrôleur dans un seul boîtier pratique.
L'objectif était l'équivalent du « Hello World » de la domotique : allumer et éteindre une LED par la voix. Comme j'avais une matrice 2x3 de LEDs sous la main, j'ai décidé de l'utiliser pour plus d'effet visuel.
Vue d'ensemble du projet
Ce projet connecte un Arduino Yún à une compétence Alexa Smart Home v3 via : une compétence Smart Home Alexa, une fonction AWS Lambda, un « Thing » AWS IoT, et l'Arduino Yún abonné aux notifications du Thing Shadow.
Je recommande de procéder étape par étape et de tester au fur et à mesure. Rien n'est très complexe, mais il y a beaucoup de pièces interconnectées. Ne vous découragez pas si cela semble confus au début. Comptez environ 1 heure par étape.
Étape 1 : Créer une compétence Smart Home et la fonction Lambda associée
Créez une compétence Smart Home, une fonction Lambda, et liez-les. Suivez ce tutoriel officiel. Assurez-vous de suivre les étapes LWA (Login with Amazon) pour obtenir votre Client ID et Client Secret utilisés dans la configuration de la compétence.
À ce stade, si vous pouvez découvrir votre nouvel appareil domotique dans le tableau de bord Alexa (via la réponse de la fonction Lambda), c'est bon signe.
Étape 2 : Créer un « Thing » IoT AWS
Créez un AWS IoT Thing en suivant cette procédure. Nous utiliserons le « Thing Shadow » (ombre de l'objet), qui est une copie de l'état de l'objet avec les modifications souhaitées. L'Arduino s'abonnera au flux de notifications qui publie les changements (« delta ») sur ce Thing Shadow.
Une fois le Thing créé, allez dans l'onglet Sécurité du tableau de bord IoT et téléchargez : clé publique, clé privée, certificat. Cliquez sur « Activer » pour obtenir la clé d'autorité de certification racine (Root CA). Sauvegardez tout. Ces éléments serviront à l'Arduino pour s'authentifier auprès du Thing Shadow.
Dans l'onglet Shadow de votre Thing, cliquez sur Modifier et ajoutez une propriété :
{ "reported": { "light": "on" } }
Étape 3 : Connecter votre Lambda à votre Thing
Mettez à jour votre code Lambda pour mettre à jour le Thing Shadow. Assurez-vous que le rôle IAM AWS associé à la fonction Lambda a les permissions « AWSIoTFullAccess ».
Testez avec les directives JSON « TurnOn » et « TurnOff » (format v3). Si le Thing Shadow rapporte l'état désiré cohérent avec l'action, tout fonctionne.
Étape 4 : Configurer votre Arduino Yún
Suivez ce guide pour configurer le matériel. Notes importantes : sous Windows, formatez la carte SD en FAT32 (exFAT non supporté). La page de mise à niveau ne s'affichait correctement qu'en connexion Ethernet ; le WiFi fonctionne ensuite.
Vous avez terminé quand vous avez vu l'option de configuration et suivi les étapes. Vous devriez pouvoir vous connecter en SSH à l'Arduino (commande df -h pour vérifier la carte SD). Testez l'exemple Blink dans l'IDE Arduino.
Étape 5 : Connecter le Yún à AWS IoT
Installez le SDK AWS Arduino IoT et exécutez l'exemple de sketch pour surveiller les deltas du Thing Shadow. Suivez ce tutoriel excellent pour l'installation du SDK. Le script ./AWSIoTArduinoYunInstallAll.sh <IP_Board> <User> <Password> simplifie grandement la vie.
Ouvrez l'exemple ShadowThing sous Fichier → Exemples → AWS-IoT-Arduino-Yun-Library. Éditez aws_iot_config.h avec vos endpoints et noms de certificats/clés.
Le sketch devrait afficher une connexion réussie. Si vous modifiez le Thing Shadow dans le tableau de bord IoT, vous devriez voir une notification dans le moniteur série.
Étape 6 : Gérer les changements du Thing Shadow sur l'Arduino
Copiez le contenu de mon sketch. Il est basé sur l'exemple ThingShadow, mais surveille spécifiquement la clé « light ». Selon que la valeur est « on » ou « off », il met toutes les broches du ledArray à HIGH ou LOW.
Le ledArray inclut la broche intégrée 13, donc la LED embarquée du Yún s'allume/éteint selon vos commandes vocales. Pour une matrice de LEDs plus élaborée, consultez ce projet pour le câblage, puis ajoutez les numéros de broches positives au ledArray.
Vous avez fini quand vous pouvez demander à Alexa d'allumer/éteindre votre appareil personnalisé. En cas de problème, testez avec les fonctions TestOn/TestOff de Lambda dans le tableau de bord web.
Étape 7 : Célébrez !
Bravo ! Les Arduino peuvent faire presque tout ce que vous voulez, et vous savez maintenant comment le déclencher par une simple commande vocale via Alexa. Célébrez en allumant et éteignant la lumière maintes fois. Le monde de l'IoT est à vous !
Code
Les fichiers .ino et .h sont pour le sketch Arduino, et lambda_function pour AWS Lambda Cloud. Le code complet est disponible via le Gist GitHub lié dans le projet original.
Schéma
Le schéma du circuit est disponible dans la section schémas du projet original.
Processus de fabrication
- Contrôler votre Chromecast avec Amazon Alexa via un Raspberry Pi et Python
- Construire un robot Raspberry Pi piloté par Bluetooth avec retour audio
- Démo ARDrone 2.0 contrôlé par Alexa : Drone activé vocalement avec Raspberry Pi & Hologram Nova
- Lampe de table RGB à commande gestuelle – Éclairage interactif, mains libres
- Transformer votre Clavier MIDI en Tuteur Piano Intelligent avec Arduino, LED et MuseScore
- Contrôler des LED avec Alexa via Raspberry Pi – Guide Pas à Pas
- Transformez une vieille voiture RC en véhicule piloté au joystick avec Arduino
- Bras robotique 6 DoF piloté par Nunchuk Wii – Kit Arduino Mega
- Robot commandé par la voix avec Arduino Nano et Bluetooth