Arduino - Passer un appel vocal
Dans ce tutoriel, nous allons apprendre à utiliser Arduino pour effectuer un appel VoIP (Voice over Internet Protocol) en temps réel vers votre téléphone. Le code est disponible pour l'Arduino Ethernet Shield 2. Vous pouvez le modifier pour qu'il fonctionne avec d'autres shields/cartes.
Le tutoriel fournit le code Arduino pour deux cas :
- Arduino Uno R4 WiFi
- Arduino Uno/Mega avec Ethernet Shield 2
Préparation du matériel
1 | × | Arduino UNO R4 WiFi | |
1 | × | USB Cable Type-C | |
1 | × | (Recommended) Screw Terminal Block Shield for Arduino Uno | |
1 | × | (Optional) Transparent Acrylic Enclosure For Arduino Uno |
Alternatively if using Ethernet:
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
Préalable
Si vous ne connaissez pas IFTTT et les concepts associés, nous vous recommandons vivement de lire les tutoriels suivants :
Diagramme de câblage
- Nous devons simplement empiler le shield sur l'Arduino Uno/Mega.
Comment ça marche
Nous devons :
- Installez l'application IFTTT sur votre téléphone (disponible pour Android et iOS).
- Créez un Applet IFTTT sur le site web IFTTT, qui connecte Webhooks au service d'appels VoIP.
Lorsque nous créons l'Applet :
- Nous pouvons écrire le message texte, qui est converti en message vocal à envoyer sur le téléphone.
- Nous pouvons inclure des données provenant d'Arduino dans le message.
Flux de travail
- Arduino effectue une requête HTTP aux Webhooks de IFTTT,
- Les Webhooks déclenchent le service d'appels VoIP sur IFTTT
- Le service d'appels VoIP sur IFTTT convertit le message texte en message vocal.
- Le service d'appels VoIP sur IFTTT passe un appel à l'application IFTTT sur votre téléphone.
- Votre téléphone sonne.
- Vous acceptez l'appel
- Le message vocal est énoncé.
※ NOTE THAT:
- Le message est spécifié sur l'applet, pas dans le code Arduino.
- Puisque c'est du VoIP, votre téléphone doit être connecté à Internet.
- L'appel VoIP est gratuit.
- Arduino peut vous parler, mais vous ne pouvez pas parler à Arduino.
Comment utiliser IFTTT avec Arduino
- Installez l'application IFTTT sur votre téléphone
- Créez un compte IFTTT et connectez-vous à IFTTT.
- Créez un Applet des services Webhooks et des appels VoIP. Veuillez noter le nom de l'événement utilisé
- Après avoir créé l'applet, obtenez la clé Webhooks depuis IFTTT.
- Copiez le code Arduino ci-dessous et collez-le dans l'IDE Arduino.
- Remplacez le nom de l'événement et la clé Webhooks dans le code Arduino
- Téléchargez le code sur Arduino
※ NOTE THAT:
- Le nom de l'événement est donné par vous. Vous pouvez donner n'importe quel nom.
- La clé des Webhooks est créée par IFTTT. Vous ne pouvez pas la modifier.
Consultez le tutoriel vidéo à la fin de ce tutoriel.
Code Arduino
Code Arduino IFTTT pour Arduino Uno R4 WiFi
Code Arduino IFTTT pour Arduino Uno/Mega avec Ethernet Shield 2
※ NOTE THAT:
Ce tutoriel utilise l'adresse IP dynamique (via DHCP). Si vous souhaitez utiliser l'adresse IP statique :
- Pour Ethernet Shield 2, vous devez modifier le code Arduino. Voir Arduino Ethernet Shield 2 avec adresse IP statique
Résultat
Dans les deux codes ci-dessus, si réussi,
- Le résultat dans le moniteur série est le suivant :
- Vérifiez si votre téléphone sonne.
- Répondez à l'appel.
- Écoutez le message vocal.
Tutoriel vidéo
Comment inclure les données des capteurs dans un message vocal
Pour inclure des données provenant de l'Arduino dans le message vocal, nous devons :
- Dans Arduino : Inclure des données dans la requête HTTP (dans la chaîne de requête).
- Dans Applet : modifier le paramètre pour extraire les données de la requête HTTP.
Vous pouvez apprendre ce qu'est une chaîne de requête dans ce tutoriel
Il y a 5 variables que nous pouvons utiliser dans la configuration de l'Applet IFTTT.
{{EventName}} | Extracted from HTTP request |
---|---|
{{OccurredAt}} | System time when event occurs |
{{Value1}} | Extracted from the variable value1 of query string in HTTP request |
{{Value2}} | Extracted from the variable value2 of query string in HTTP request |
{{Value3}} | Extracted from the variable value3 of query string in HTTP request |
Par exemple :
- Dans Arduino : Changez String queryString = "" par String queryString = "?value1=26&value2=70" dans les codes ci-dessus.
- Dans l'Applet : Modifiez le message texte dans les paramètres de l'Applet IFTTT comme suit :
Salut mec,
Voici l'Arduino Uno, je tiens à vous informer que :
- La température extérieure est de {{Value1}} °C
- L'humidité extérieure est de {{Value2}} %
Toutes les valeurs ci-dessus sont mesurées à {{OccurredAt}}
Bonne chance et restez en bonne santé !
Dans le message ci-dessus, "
" crée une nouvelle ligne lors de l'affichage.
Le message vocal sera comme ci-dessous :
VIDÉO YOUTUBE
Vous pouvez lire la température et l'humidité depuis le capteur et les insérer dans la chaîne de requête. Voir comment inclure des données du capteur dans la chaîne de requête
Défiez-vous
Sur la base du code ci-dessus, réalisez le projet suivant :
- Effectuez un appel VoIP sur votre téléphone lorsque le bouton est pressé
- Effectuez un appel VoIP sur votre téléphone lorsque la porte est ouverte
- Effectuez un appel VoIP sur votre téléphone lorsque la température est trop élevée
WARNING
Veuillez noter que ce tutoriel est incomplet. Nous publierons sur notre Page Facebook lorsque le tutoriel sera complet. Aimez-la pour rester informé.