- Exigences matérielles
- Flux de projet pour LED à commande vocale Alexa
- Créer un compte Adafruit pour la communication
- Liez Alexa à Adafruit IO en utilisant IFTTT
- Explication du code ESP12
- Travail:
Dans les tutoriels précédents, nous avons vu comment nous pouvons créer un haut-parleur Amazon Echo, puis comment contrôler n'importe quel GPIO Raspberry Pi à l'aide d'Alexa Voice. Nous réalisons maintenant un projet IoT pour contrôler les appareils ménagers de n'importe où dans le monde en utilisant AlexaPi et ESP-12E (ou n'importe quelle carte ESP).
Exigences matérielles
- Raspberry Pi avec AVS installé
- Micro / webcam USB 2.0
- ESP-12E
- Module relais
- Ampoule LED / AC
Vous devriez avoir votre Raspberry Pi prêt avec le service vocal Alexa installé avec un compte de développeur Amazon correctement configuré. Alors parcourez le didacticiel ci-dessous pour préparer les services Alexa.
- Créez votre propre Amazon Echo à l'aide d'un Raspberry Pi
Flux de projet pour LED à commande vocale Alexa
Nous suivrons cet organigramme pour ce projet LED contrôlé par l'IoT:
Donc, le processus est quelque chose comme ça. Tout d'abord, l'entrée est donnée au Raspberry Pi via le micro USB. Maintenant, cet enregistrement est envoyé aux services vocaux Alexa et après la reconnaissance vocale, AVS a envoyé les données à IFTTT et il déclenche la condition dans IFTTT. Selon la recette, IFTTT enverra la commande à Adafruit IO qui est le courtier MQTT pour effectuer une action. Ensuite, l' ESP 12e recevra les données d'Adafruit IO via le protocole MQTT et la LED s'allumera / s'éteindra selon la commande.
Ici, nous avons utilisé une WebCam USB pour microphone. Nous avons déjà utilisé le service Alexa Voice pour allumer une ampoule, mais il ne peut gérer que les appareils connectés localement.
Comme nous supposons que vous avez déjà installé Raspberry Pi avec les services Alexa Voice, nous restons donc avec ci-dessous deux étapes, que nous expliquerons une par une:
- Créer un compte Adafruit pour la communication
- Liez Alexa à Adafruit IO en utilisant IFTTT
- Télécharger le code dans ESP12
Créer un compte Adafruit pour la communication
Tout d'abord, nous allons créer un flux dans Adafruit IO. Feed stocke les données envoyées par IFTTT. Pour créer un flux, procédez comme suit:
Étape 1: - Connectez - vous à Adafruit IO avec vos identifiants ou inscrivez-vous si vous n'avez pas de compte.
Étape 2: - Cliquez sur Mon compte -> Tableau de bord
Étape 3: - Cliquez sur Actions et créez un nouveau tableau de bord .
Étape 4: - Donnez un nom et une description à votre flux et cliquez sur Créer .
Étape 5: - Cliquez sur le bouton Clé et notez les clés AIO, nous utiliserons cette clé dans notre code.
Étape 6: - Cliquez sur le bouton '+' pour créer un nouveau bloc et cliquez sur le bouton Basculer.
Étape 7: - Maintenant, entrez le nom du flux et cliquez sur Créer . Sélectionnez ensuite le flux et cliquez sur Étape suivante.
Étape 8: - Dans les paramètres de bloc, écrivez «1» dans le champ de texte Button ON et «0» dans le champ Button OFF Text .
Étape 9: - Votre flux est créé avec succès.
Liez Alexa à Adafruit IO en utilisant IFTTT
Suivez ces étapes pour créer une applet / recette dans IFTTT:
Étape 1: - Connectez - vous à IFTTT avec vos informations d'identification ou inscrivez -vous si vous n'avez pas de compte dessus.
Étape 2: - Sur Mes applets, cliquez sur Nouvelle applet
Étape 3: - Cliquez sur + ceci
Étape 4: - Recherchez Amazon Alexa et cliquez dessus, connectez-vous avec les détails de votre compte de développeur Amazon.
Étape 5: - Choisissez le déclencheur, dites une phrase spécifique
Étape 6: - Fournissez « allumer la lumière» comme phrase, cliquez sur Créer un déclencheur.
Étape 7: - Cliquez sur + que
Étape 8: - Recherchez Adafruit et cliquez dessus.
Étape 9: - Connectez - vous au compte Adafruit en utilisant vos informations d'identification. Cliquez sur Envoyer les données à Adafruit .
Sélectionnez le nom du flux que vous venez de créer dans Adafruit IO. Maintenant, donnez '1' dans les données à sauvegarder, cela implique que la LED sera allumée. Cliquez sur Créer une action .
Étape 10: - Suivez les mêmes étapes pour créer des applets pour éteindre la LED . Mettez simplement «0» dans le champ Données à enregistrer. Toutes les étapes restent les mêmes.
Vous avez fait la moitié de votre travail. Il est maintenant temps de programmer votre ESP-12E.
Explication du code ESP12
Nous programmerons ESP12 avec Arduino IDE. Le code complet est donné à la fin de ce tutoriel.
Tout d'abord, nous avons besoin d'une bibliothèque Adafruit Mqtt qui peut être téléchargée à partir de ce lien. Ouvrez simplement l'IDE Arduino. Aller aux exemples -> bibliothèque adafruit mqtt -> mqtt_esp8266
Nous modifierons ce code en fonction de nos clés AIO et de nos informations d'identification Wi-Fi.
Tout d'abord, nous avons inclus toutes les bibliothèques pour ESP8266WIFI et Adafruit MQTT .
#comprendre
Nous avons défini le SSID et le mot de passe de votre Wi-Fi, à partir desquels vous souhaitez connecter votre ESP-12e.
#define WLAN_SSID "xxxxxxxx" #define WLAN_PASS "xxxxxxxxxxx"
Cette section définit le serveur Adafruit et le port du serveur qui sont respectivement définis comme « io.adafruit.com » et « 1883 ».
#define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883
Remplacez les champs ci-dessous par votre nom d'utilisateur et les clés AIO que vous avez copiés à partir du site Adafruit lors de la création du flux.
#define AIO_USERNAME "********" #define AIO_KEY "******************************"
Créez ensuite une classe ESP8266 WiFiClient pour vous connecter au serveur MQTT.
Client WiFiClient;
Configurez la classe client MQTT en transmettant le client WiFi et le serveur MQTT et les informations de connexion.
Adafruit_MQTT_Client mqtt (& client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
Configurez un flux appelé «léger» pour vous abonner aux modifications.
Adafruit_MQTT_Subscribe light = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / light");
Dans la fonction de configuration, nous déclarons le code PIN de l'ESP-12e sur lequel vous souhaitez obtenir une sortie. J'utilise la broche D0 comme sortie. Ensuite, nous connectons l'ESP-12e au point d'accès Wi-Fi.
void setup () { Serial.begin (115200); retard (10); pinMode (D0, SORTIE); Serial.println (F ("Démo Adafruit MQTT")); // Connectez-vous au point d'accès WiFi. Serial.println (); Serial.println (); Serial.print ("Connexion à"); Serial.println (WLAN_SSID); WiFi.begin (WLAN_SSID, WLAN_PASS); while (WiFi.status ()! = WL_CONNECTED) { …. …. …
Configurer l'abonnement MQTT pour une alimentation légère.
mqtt.subscribe (& light); }
Dans la fonction de boucle , nous nous assurerons que la connexion au serveur MQTT est active en utilisant MQTT_connect (); fonction.
boucle vide () { MQTT_connect ();
Maintenant, nous souscrivons à notre flux «light» et récupérons la chaîne d'adafruit IO et convertissons cette chaîne en nombre en utilisant atoi (); fonction et écrivez ce numéro dans PIND0 en utilisant digitalWrite (); fonction.
Abonnement Adafruit_MQTT_Subscribe *; while ((subscription = mqtt.readSubscription (5000))) { if (subscription == & light) { Serial.print (F ("Got_light:")); Serial.println ((char *) light.lastread); uint16_t num = atoi ((char *) light.lastread); digitalWrite (16, num); }
Travail:
Connectez votre ESP-12E à l'ordinateur portable et téléchargez le code ci-dessous (n'oubliez pas de modifier vos informations d'identification dans le code).
Connectez une LED ou un relais à la broche D0. Maintenant, assurez-vous que votre service Alexa fonctionne sur votre RPi.
Pour donner une commande, vous devez réveiller le service Alexa en appelant «Alexa» chaque fois que vous souhaitez envoyer une commande. Vous entendrez un bip. Une fois que vous entendez le bip, dites « Alexa Trigger Allume la lumière. «Vous pouvez voir que la lumière s'allume en un instant. Et puis si vous dites « Alexa Trigger Éteignez la lumière », la lumière devrait s'éteindre .
C'est ça…. Vous pouvez ajouter plus d'appareils dans le code ci-dessus en ajoutant les broches GPIO de l'ESP-12E et en créant différentes applets avec différentes phrases dans IFTTT.
Vérifiez le code complet et la vidéo de démonstration ci-dessous. Consultez également tous nos projets domotiques ici