Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Créer un ruban LED intelligent animé contrôlé par Alexa avec Arduino

Composants et fournitures

Composant Quantité Notes
Arduino UNO (ou Nano/Mega) 1 Le Nano fonctionne aussi ; le Mega permet de piloter plus de LEDs.
Raspberry Pi 3 Model B 1 Sert de passerelle MQTT entre AWS IoT et l'Arduino.
Ruban NeoPixel (WS2812) 1 Tout ruban WS2812 convient.

Applications et services en ligne

À propos du projet

Pourquoi un ruban LED ?

Les rubans LED adressables (RGB) offrent des possibilités infinies d'effets colorés et d'animations. J'ai développé la bibliothèque ALA (Arduino Light Animations) pour piloter ces rubans depuis une carte Arduino. L'intégration d'Alexa permet désormais de contrôler l'éclairage et les effets par la voix.

Vue d'ensemble du projet

L'architecture repose sur plusieurs éléments interconnectés :

Créer un ruban LED intelligent animé contrôlé par Alexa avec Arduino

Le projet est divisé en deux sous-projets pour simplifier la mise en œuvre :

  1. Première partie (prérequis) : Suivez le projet Web-Controlled LED Animations with Raspberry Pi and Arduino pour connecter le Raspberry Pi, l'Arduino et le ruban WS2812. À l'issue, vous contrôlez les animations depuis un navigateur web (smartphone ou PC).
  2. Deuxième partie (ce tutoriel) : Ajoute le contrôle vocal via Amazon Alexa. Les étapes sont nombreuses ; suivez-les patiemment.

Configuration d'Amazon IoT

Une fois le matériel prêt, passez au cloud avec AWS IoT pour gérer votre « thing » depuis Internet.

Créer un « Thing » IoT

  1. Connectez-vous à la console AWS (créez un compte gratuit si nécessaire).
  2. Sélectionnez la région US East (N. Virginia) ou EU (Ireland).
  3. Ouvrez le service AWS IoT Core.
  4. Créez une politique de sécurité : Secure > Policies > Create a Policy.
    • Nom : LightStripPolicy
    • Action : *
    • Ressource : *
    • Effet : Allow coché
  5. Créez le Thing : Manage > Things > Register a Thing > Create a single thing.
    • Nom : LS01
    • Générez les certificats (One-click certificate creation) et téléchargez les 3 fichiers + le Root CA.
    • Activez le certificat et attachez la politique LightStripPolicy.
  6. Notez l'Endpoint AWS IoT (menu Settings en bas à gauche).
Créer un ruban LED intelligent animé contrôlé par Alexa avec Arduino

Configurer le Raspberry Pi pour écouter le « Thing »

  1. Installez le SDK Python : sudo pip3 install AWSIoTPythonSDK
  2. Téléchargez le dépôt LightStrip :
    mkdir -p /home/pi/LightStrip
    cd /home/pi/LightStrip
    wget https://github.com/bportaluri/LightStrip/archive/master.zip
    unzip master.zip
    
  3. Copiez les 4 certificats dans /home/pi/LightStrip/LightStrip-master/pi.
  4. Éditez lightstripcfg.py (avec nano par exemple) et renseignez :
    • AWSIOT : l'Endpoint noté plus haut.
    • ROOT_CA, CERTIFICATE, PRIVATE_KEY : noms des fichiers certificats.
    • DEVICE_NAME : laissez LS01.
  5. Lancez le script : sudo python3 lightstrip.py /dev/ttyACM0 (port USB de l'Arduino).

Le script se connecte au shadow AWS IoT et s'abonne aux changements. Pour tester, dans la console AWS IoT, ouvrez le shadow du device LS01, cliquez Edit et collez :

{ "desired": { "animation": "101" } }

Le ruban doit s'allumer. Pour changer la couleur :

{ "desired": { "color": "0066CC" } }

Fonction AWS Lambda

Lambda fait le pont entre la skill Alexa et AWS IoT.

  1. Dans la console AWS, service Lambda, même région qu'IoT.
  2. Create Function > Author from scratch :
    • Nom : LightStrip
    • Runtime : Python 3.6
    • Rôle : Create a Custom Role (cliquez Allow pour créer lambda_basic_execution).
  3. Notez l'ARN de la fonction (coin supérieur droit).
  4. Dans l'éditeur de code, collez le contenu de lambda_function.py et créez un second fichier ala_controller.py avec le code correspondant (disponible sur GitHub).
  5. Sauvegardez.
Créer un ruban LED intelligent animé contrôlé par Alexa avec Arduino

Création de la Skill Alexa

  1. Allez sur Amazon Developer Console > Alexa > Alexa Skills Kit.
  2. Add a New Skill :
    • Type : Custom Interaction Model
    • Langue : English (U.S.) (ou French si disponible)
    • Nom : LightStrip
    • Nom d'invocation : light strip
  3. Notez le Skill ID.
  4. Menu Interaction Model > Launch Skill Builder > Code Editor : collez le JSON du fichier lightstrip_skill.json (dossier alexaskill du repo).
  5. Save Model puis Build Model (quelques minutes).
  6. Menu Configuration : Service Endpoint Type = AWS Lambda ARN, collez l'ARN Lambda noté. Sauvegardez.

Lier la Skill Alexa à la fonction Lambda

  1. Retournez sur la fonction Lambda.
  2. Ajoutez le déclencheur Alexa Skills Kit.
  3. Configurez : Application Id = Skill ID noté précédemment. Add puis Save.

C'est terminé !

Testez ces commandes vocales :

Exemple de dialogue avancé :

Créer un ruban LED intelligent animé contrôlé par Alexa avec Arduino

Améliorations et raffinements

Démarrage automatique au boot

Pour lancer lightstrip.py automatiquement au démarrage du Raspberry Pi, ajoutez une entrée dans /etc/rc.local ou créez un service systemd.

Ajouter et modifier des animations

La skill inclut 20 animations prédéfinies. La bibliothèque ALA permet de créer vos propres animations (preset, palette, vitesse). Modifiez le fichier ala_controller.py (vers la ligne 80) pour personnaliser la liste.

Code

Tout le code source est disponible sur GitHub : https://github.com/bportaluri/LightStrip

Schémas

Créer un ruban LED intelligent animé contrôlé par Alexa avec Arduino

Processus de fabrication

  1. Panneau de contrôle Arduino Nano pour Flight Simulator 2020 – Affichage LCD et CDI
  2. Panneau commutateurs et LED pour Microsoft Flight Simulator 2020 basé sur Arduino
  3. Contrôler une LED par Bluetooth avec Arduino et MIT App Inventor
  4. Chaussures auto-laçantes intelligentes avec récupération d'énergie piézoélectrique
  5. Construire un robot quadrupède Arduino intelligent : guide étape par étape
  6. Arduino et MPU6050 : Contrôle précis de servo-moteur avec SG90 et MG996R
  7. Contrôle fluide de la luminosité LED avec Bolt IoT et Arduino UNO
  8. Module GPS u-blox LEA‑6H 02 : guide d'intégration Arduino et Python
  9. Construisez un Bras Robotique Intelligent Contrôlé par Arduino : Tutoriel DIY Facile