Intégration Arduino IoT Cloud & Amazon Alexa : Guide étape par étape
Composants et fournitures
| Composant | Quantité |
|---|---|
| Arduino MKR WiFi 1010 | 1 |
| Shield Arduino MKR ENV | 1 |
| Plaque d'essai (breadboard) | 1 |
| LED haute luminosité, blanche | 1 |
| Fils de connexion (jumper wires) | 1 |
| LED RGB cathode commune | 1 |
| Résistance 220 Ω | 1 |
Applications et services en ligne
- Arduino Web Editor
- Arduino IoT Cloud
- Arduino Amazon Alexa Official Arduino Skill
À propos de ce projet
Introduction : Premiers pas
Dans ce tutoriel, nous allons utiliser Arduino IoT Cloud. Si vous êtes novice avec Arduino IoT Cloud, nous vous conseillons de jeter d'abord un œil à ce projet d'introduction, qui vous donnera un aperçu et vous guidera à travers le processus de configuration de votre carte prise en charge, des « Things » et propriétés IoT Cloud, et vous mettra sur les rails.
Partie 1 : Arduino IoT Cloud
Depuis la page principale d'IoT Cloud, nous allons créer un nouveau « Thing » et lui donner un nom significatif. Nous sélectionnerons ensuite la carte que nous allons utiliser. Si vous ne voyez pas votre carte, vous avez peut-être sauté l'ajout d'un nouvel appareil en suivant la procédure qui commence après avoir cliqué sur le bouton AJOUTER UN APPAREIL, sous la section Appareils.
Une fois fait, nous allons ajouter trois propriétés à notre Thing. Les deux premières représenteront les lampes, la dernière la température.
Le type ColoredLight nous permet de contrôler une lumière RGB, nous permettant de contrôler sa luminosité et sa couleur. Définissez-le comme ReadAndWrite car nous devrons contrôler son comportement à l'aide d'Alexa.
Le type DimmedLight est en quelque sorte similaire, mais ne permet de contrôler que la luminosité d'une lumière.
La dernière propriété à ajouter est la température. Ajoutons-la comme ReadOnly, car nous voulons seulement connaître sa valeur, pas la définir. Comme type, nous pouvons utiliser Capteur de température (Celsius), mais n'hésitez pas à le définir en °F si cela vous convient mieux.
Voici à quoi devrait ressembler la vue Tableau de bord de votre Thing à ce stade :

Lors de l'ajout de propriétés, assurez-vous d'utiliser uniquement les types listés sous la section Smart Home, sinon ils ne fonctionneront pas avec Alexa.

Allez maintenant dans le Web Editor en cliquant sur le bouton Modifier le sketch dans la vue d'édition de votre Thing.
Partie 2 : Arduino Web Editor
Dans le Web Editor, nous devons ajouter du code au Sketch généré automatiquement pour nous.
Comme nous voulons lire des données environnementales (à savoir la température, mais n'hésitez pas à ajouter la lumière, l'humidité et la pression si vous le souhaitez), nous allons importer la bibliothèque Arduino_MKRENV au début de notre Sketch :
#include <Arduino_MKRENV.h>
Ensuite, nous définissons quelques constantes pour les broches de la carte qui seront utilisées pour la lumière blanche R, G, B, ce qui rend le code plus lisible :
#define PIN_MEETING_ROOM 5
#define PIN_LOUNGE_AREA_R 2
#define PIN_LOUNGE_AREA_B 3
#define PIN_LOUNGE_AREA_G 4
Maintenant, dans la fonction setup, nous pouvons initialiser le Shield Arduino MKR ENV avec :
if (!ENV.begin()) {
Serial.println("Échec de l'initialisation du shield MKR ENV !");
while (1);
}
Ainsi, si le shield n'est pas installé, l'exécution du Sketch sera bloquée.
Nous n'avons pas besoin de spécifier que pinMode doit être OUTPUT car nous utiliserons analogWrite() pour définir l'intensité de notre LED blanche ou des couleurs individuelles de la LED RGB.
Dans la fonction loop, nous allons lire la température chaque seconde :
temperature = ENV.readTemperature();
delay(1000);
Enfin, il est temps d'implémenter nos fonctions de rappel : celles qui seront exécutées chaque fois qu'un changement dans la valeur d'une Propriété est récupéré depuis IoT Cloud.
Nous devons implémenter onMeetingRoomChange et onLoungeAreaChange :
void onMeetingRoomChange() {
uint8_t brightness = map(meetingRoom.getBrightness(), 0, 100, 0, 255);
if (meetingRoom.getSwitch()) {
Serial.println(brightness);
analogWrite(PIN_MEETING_ROOM, brightness);
} else {
analogWrite(PIN_MEETING_ROOM, LOW);
}
}
Avec le code ci-dessus, nous lisons d'abord la valeur de luminosité depuis le cloud et la mappons à une valeur utilisable, puis nous vérifions si l'interrupteur de la lumière est allumé. S'il l'est, nous pouvons allumer la lumière, en utilisant la luminosité lue précédemment. Sinon, nous éteignons la lumière.
Le principe de fonctionnement est le même pour l'autre rappel :
void onLoungeAreaChange() {
uint8_t r, g, b;
loungeArea.getValue().getRGB(r, g, b);
if (loungeArea.getSwitch()) {
Serial.println("R:" + String(r) + " G:" + String(g) + " B:" + String(b));
analogWrite(PIN_LOUNGE_AREA_R, r);
analogWrite(PIN_LOUNGE_AREA_B, b);
analogWrite(PIN_LOUNGE_AREA_G, g);
} else {
Serial.println("Lampe éteinte");
analogWrite(PIN_LOUNGE_AREA_R, 0);
analogWrite(PIN_LOUNGE_AREA_B, 0);
analogWrite(PIN_LOUNGE_AREA_G, 0);
}
}
La seule différence notable est le fait qu'au lieu de la seule luminosité, nous avons trois composants différents : ce sont la représentation de la couleur RGB de la lumière. Bien sûr, nous pouvons définir des couleurs personnalisées par nom dans l'application Alexa, donc nous n'aurons pas à dire manuellement quelles quantités de Rouge, Vert ou Bleu nous voulons définir.
Partie 3 : Configuration de la Skill Amazon Alexa
Nous aurons maintenant besoin de l'application Amazon Alexa, qui peut être téléchargée depuis l'Apple App Store ou le Google Play Store. Une fois installée, connectez-vous avec votre compte existant ou créez-en un nouveau.
Passons en revue les étapes nécessaires pour installer la Skill Arduino Alexa. Nous suivrons la séquence d'images ci-dessous pour voir toutes les étapes requises.









Partie 4 : Configuration des appareils Amazon Alexa
Après avoir attendu un peu, vous devriez voir que certains appareils ont été découverts.

Après avoir appuyé sur Choisir l'appareil, vous serez présenté avec la page de configuration listant tous les appareils disponibles (Ils seront nommés selon la façon dont nous avons nommé nos propriétés dans Arduino IoT Cloud).

Choisissons un appareil et appuyons sur Configurer l'appareil. Si vous le souhaitez, vous pouvez également l'ajouter à un groupe (Cela vous permet de contrôler et d'organiser vos appareils plus facilement), sinon ignorez cette partie.

Répétez le processus de Configuration pour chaque appareil que vous souhaitez contrôler.
Finalement, la vue des appareils devrait ressembler à ceci :

Nous pouvons enfin commencer à demander des choses comme « Alexa, quelle est la température au bureau ? » ou « Alexa, allume la lumière dans la salle de réunion. »

Amusez-vous bien avec Alexa et IoT Cloud. Si vous avez des questions ou si vous construisez ce projet, faites-le nous savoir dans les commentaires ci-dessous.
L'équipe Arduino
Code
Arduino
Le code complet est généré automatiquement dans l'Arduino Web Editor après la configuration des propriétés dans IoT Cloud. Les fonctions de rappel onMeetingRoomChange et onLoungeAreaChange doivent être implémentées comme montré dans le tutoriel.
Schémas

Processus de fabrication
- Fog vs Cloud : optimiser les déploiements IoT pour vitesse et échelle
- Infineon nommé Advanced Technology Partner par Amazon Web Services
- Contrôler votre Chromecast avec Amazon Alexa via un Raspberry Pi et Python
- Contrôler votre ventilateur de plafond avec Alexa : Guide étape par étape
- Moniteur de Fréquence Cardiaque IoT en Temps Réel avec Arduino et MAX30100
- Contrôle IoT à Distance d'un Bras Robotique Personnalisé avec Arduino MKR1000
- Contrôler des LED avec Alexa via Raspberry Pi – Guide Pas à Pas
- Système de Contrôle de Piscine IoT Azure : Capteurs Intelligents & Surveillance à Distance
- Exploiter la puissance du Cloud pour l'IoT : connectivité fluide et insights données