Arduino - Realizar una llamada de voz
En este tutorial vamos a aprender a usar Arduino para realizar una llamada VoIP en tiempo real (Voz sobre IP) a tu teléfono. El código está disponible para el Arduino Ethernet Shield. Puedes modificarlo para que funcione con otros shields o placas.
El tutorial proporciona el código de Arduino para dos casos:
- Arduino Uno R4 WiFi
- Arduino Uno/Mega con Escudo Ethernet
Hardware Requerido
| 1 | × | Arduino UNO R4 WiFi | |
| 1 | × | Alternatively, DIYables STEM V4 IoT | |
| 1 | × | Cable USB Tipo-A a Tipo-C (para PC USB-A) | |
| 1 | × | Cable USB Tipo-C a Tipo-C (para PC USB-C) |
Alternatively if using Ethernet:
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Requisito
Si no conoces IFTTT y los conceptos relacionados, te recomendamos encarecidamente que leas los siguientes tutoriales:
Diagrama de Cableado
- Arduino - Escudo Ethernet: solo necesitamos apilar el escudo sobre el Arduino Uno/Mega

Cómo Funciona
Necesitamos:
- Instala la aplicación de IFTTT en tu teléfono (disponible para Android e iOS).
- Crea un Applet de IFTTT en el sitio web de IFTTT, que conecta Webhooks al servicio de llamadas VoIP.
Cuando creamos el applet:
- Podemos escribir el mensaje de texto, que se convierte en un mensaje de voz que se enviará al teléfono.
- Podemos incluir datos del Arduino en el mensaje.
Flujo de trabajo
- Arduino hace una solicitud HTTP a Webhooks de IFTTT.
- Webhooks dispara el servicio de llamadas VoIP de IFTTT.
- El servicio de llamadas VoIP de IFTTT convierte el mensaje de texto en mensaje de voz.
- El servicio de llamadas VoIP de IFTTT realiza una llamada a la aplicación de IFTTT en tu teléfono.
- Tu teléfono está sonando.
- Aceptas la llamada.
- Se reproduce el mensaje de voz.
※ Nota:
- El mensaje se especifica en el Applet, no en el código de Arduino.
- Como esto es VoIP, tu teléfono debe estar conectado a Internet.
- La llamada VoIP es gratuita.
- El Arduino puede hablar contigo, pero no puedes hablar con el Arduino.
Cómo usar IFTTT con Arduino
- Instala la aplicación IFTTT en tu teléfono
- Crea una cuenta de IFTTT e inicia sesión en IFTTT.
- Crea un Applet de los servicios Webhooks y Llamadas VoIP. Por favor, toma nota del nombre del evento que usamos
- Después de crear el applet, obtén la clave de Webhooks de IFTTT.
- Copia el código de Arduino que se muestra a continuación y pégalo en el IDE de Arduino.
- Reemplaza el nombre del evento y la clave de Webhooks en el código de Arduino
- Carga el código al Arduino
※ Nota:
- El nombre del evento es dado por ti. Puedes darle cualquier nombre.
- La clave de Webhooks es creada por IFTTT. No puedes cambiarla.
Vea el tutorial en video al final de este tutorial.
código de Arduino
Código Arduino IFTTT para Arduino Uno R4 WiFi
Código IFTTT de Arduino para Arduino Uno/Mega con Escudo Ethernet
※ Nota:
Este tutorial utilizó la dirección IP dinámica (a través de DHCP). Si desea usar la dirección IP estática:
- Para el Escudo Ethernet, debe modificar el código de Arduino. Consulte Arduino Ethernet Shield con dirección IP estática
Resultado
En los dos códigos anteriores, si tuvo éxito,
- El resultado en el Monitor Serial se muestra a continuación:
- Verifica si tu teléfono está sonando o no.
- Aceptar la llamada.
- Escucha el mensaje de voz.
Tutorial en vídeo
Cómo incluir datos de sensores en un mensaje de voz
Para incluir datos de Arduino en el mensaje de voz, debemos hacer lo siguiente:
- En Arduino: Incluir datos en la solicitud HTTP (en la cadena de consulta).
- En Applet: Modificar la configuración para extraer datos de la solicitud HTTP.
Puedes aprender qué es la cadena de consulta en este tutorial
Hay cinco variables que podemos usar en la configuración del Applet de 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 |
Por ejemplo:
- En Arduino: Modifique String queryString = "" a String queryString = "?value1=26&value2=70" en los códigos anteriores.
- En Applet: Modifique el mensaje de texto en la configuración de la Applet de IFTTT como se indica a continuación:
Hola, amigo,
Este es Arduino Uno, me gustaría informarle que:
- La temperatura exterior es {{Value1}} °C
- La humedad exterior es {{Value2}} %
Todos los valores anteriores se miden en {{OccurredAt}}
¡Buena suerte y mantente saludable!
En el mensaje anterior, "
" haga una nueva línea al mostrar.
El mensaje de voz será como se muestra a continuación:
Vídeo de YouTube
Puedes leer la temperatura y la humedad desde el sensor y colocarlas en la cadena de consulta. Ver cómo incluir datos desde el sensor a la cadena de consulta
Desafíate a ti mismo
Basado en el código anterior, crea el siguiente proyecto:
- Haz una llamada VoIP a tu teléfono cuando se presione el botón
- Haz una llamada VoIP a tu teléfono cuando la puerta esté abierta
- Haz una llamada VoIP a tu teléfono cuando la temperatura esté demasiado alta ...
WARNING
Tenga en cuenta que este tutorial está incompleto. Publicaremos en nuestra página de Facebook cuando el tutorial esté completo. Déle like para mantenerse actualizado.