Integración Arduino IoT Cloud y Amazon Alexa: Guía paso a paso
Componentes y suministros
![]() |
|
× | 1 | |||
![]() |
|
× | 1 | |||
![]() |
|
× | 1 | |||
![]() |
|
× | 1 | |||
![]() |
|
× | 1 | |||
|
× | 1 | ||||
![]() |
|
× | 1 |
Aplicaciones y servicios en línea
![]() |
|
|||
![]() |
|
|||
![]() |
|
Sobre este proyecto
Introducción: Primeros pasos
En este tutorial vamos a usar Arduino IoT Cloud. Si sois nuevos en Arduino IoT Cloud, os aconsejamos primero echar un vistazo a este proyecto introductorio, que os dará una visión general y os guiará a través del proceso de configuración de vuestra placa compatible, cosas y propiedades de IoT Cloud y os pondrá en marcha.
Parte 1: Arduino IoT Cloud
Desde la página principal de IoT Cloud, crearemos una nueva "cosa" (thing) y le asignaremos un nombre significativo. Luego seleccionaremos la placa que vamos a usar. Si no veis vuestra placa, quizás hayáis saltado el añadir un nuevo Dispositivo siguiendo el procedimiento que comienza tras hacer clic en el botón AÑADIR DISPOSITIVO, bajo la sección Dispositivos.
Una vez hecho, añadiremos tres propiedades a nuestra cosa. Las dos primeras representarán las lámparas, la última la temperatura.
El tipo ColoredLight nos permite controlar una luz RGB, permitiéndonos controlar su brillo y color. Establecedlo como Lectura y Escritura porque necesitaremos controlar su comportamiento usando Alexa.
El tipo DimmedLight es de cierta forma similar al anterior, pero solo nos permite controlar el brillo de una luz.
La última propiedad a añadir es la temperatura. Añadid esta como Solo lectura, ya que solo queremos conocer su valor, no establecerlo. Como tipo podemos usar Sensor de temperatura (Celsius), pero sentíos libres de establecerlo en ºF si os conviene mejor.
Aquí tenéis cómo debería verse la vista Dashboard de vuestra Cosa en este punto:

Al añadir propiedades, aseguraos de usar solo tipos listados bajo la sección Smart Home, de lo contrario no funcionarán con Alexa.

Ahora id al Web Editor haciendo clic en el botón Editar Sketch en la vista de edición de vuestra Cosa.
Parte 2: Arduino Web Editor
En el Web Editor necesitamos añadir algo de código al Sketch generado automáticamente para nosotros.
Como queremos leer algunos datos ambientales (concretamente temperatura, pero sentíos libres de añadir luz, humedad y presión si queréis), importaremos la librería Arduino_MKRENV al principio de nuestro Sketch:
#include <Arduino_MKRENV.h>
Luego definimos algunas constantes para los pines de la placa que se usarán para la luz blanca R,G,B, así el código es más legible:
#define PIN_MEETING_ROOM 5
#define PIN_LOUNGE_AREA_R 2
#define PIN_LOUNGE_AREA_B 3
#define PIN_LOUNGE_AREA_G 4
Ahora en la función setup podemos inicializar el Arduino MKR ENV Shield con:
if (!ENV.begin()) {
Serial.println("Failed to initialize MKR ENV shield!");
while (1);
}
Así, si el shield no está instalado, la ejecución del Sketch se bloqueará.
No necesitamos especificar que pinMode debe ser OUTPUT porque usaremos analogWrite() para establecer la intensidad de nuestro LED blanco o los colores individuales del RGB.
En la función loop vamos a leer la temperatura cada segundo:
temperature = ENV.readTemperature();
delay(1000);
Finalmente es hora de implementar nuestras funciones de devolución de llamada (callback): las que se ejecutarán cada vez que se extraiga un cambio en el valor de una Propiedad desde IoT Cloud.
Tenemos que implementar onMeetingRoomChange y 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);
}
}
Con el código anterior primero leemos el valor de brillo desde la nube y lo mapeamos a un valor usable, luego verificamos si el interruptor de la luz está encendido, si lo está podemos encender la luz, usando el brillo leído antes. De lo contrario, apagamos la luz.
El principio de funcionamiento es el mismo para la otra devolución de llamada:
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("Lamp Off");
analogWrite(PIN_LOUNGE_AREA_R, 0);
analogWrite(PIN_LOUNGE_AREA_B, 0);
analogWrite(PIN_LOUNGE_AREA_G, 0);
}
}
La única diferencia notable es el hecho de que en lugar de solo el brillo, tenemos tres componentes diferentes: son la representación del color RGB de la luz. Por supuesto, podemos definir colores personalizados por nombre en la app de Alexa para no tener que decir manualmente qué cantidades de Rojo, Verde o Azul queremos establecer.
Parte 3: Configuración de la Skill de Amazon Alexa
Ahora necesitaremos la app de Amazon Alexa que se puede descargar desde la Apple App Store o Google Play Store. Una vez instalada, inicia sesión con vuestra cuenta existente o cread una nueva.
Vamos a pasar por los pasos necesarios para instalar la Skill de Arduino Alexa. Seguiremos la secuencia de imágenes a continuación para ver todos los pasos requeridos.

Parte 4: Configuración de dispositivos de Amazon Alexa
Después de esperar un poco, deberíais ver que se han encontrado algunos dispositivos.

Tras pulsar en Elegir dispositivo se os presentará la página de configuración listando todos los dispositivos disponibles (Se nombrarán según cómo nombramos nuestras propiedades en Arduino IoT Cloud).

Elijamos un dispositivo y pulsemos Configurar Dispositivo. Si queréis también podéis añadirlo a un grupo (Así podéis controlar y organizar vuestros dispositivos más fácilmente), de lo contrario saltad esta parte.

Repetid el proceso de Configuración para cada dispositivo que queráis controlar.
Finalmente la vista de dispositivos debería verse así:

¡Ya podemos empezar a preguntar cosas como "Alexa, ¿cuál es la temperatura en la oficina?" o "Alexa, enciende la luz en la sala de reuniones."!

¡Diversión jugando con Alexa e IoT Cloud! Si tenéis preguntas o construís este proyecto, decidnos en los comentarios abajo.
El Equipo Arduino
Código
Arduino
Esquemáticos
Proceso de manufactura
- Aprovechando el poder de la nube para IoT: Desbloqueando conectividad fluida e insights de datos
- Controla tu Chromecast con Amazon Alexa usando Raspberry Pi y Python
- Controla tu Ventilador de Techo con Alexa: Guía Paso a Paso
- Monitor de Frecuencia Cardíaca IoT en Tiempo Real con Arduino y MAX30100
- Control Remoto IoT de Brazo Robótico Personalizado con Arduino MKR1000 y ThingSpeak
- Controla LEDs con Alexa mediante Raspberry Pi – Guía paso a paso fácil
- Construye una Torre de Sensores con Arduino Cloud: Temperatura, Movimiento y Gas
- Controla tu TV con Alexa mediante Arduino IoT Cloud: Guía Paso a Paso
- Sistema de Control de Piscina con Azure IoT: Sensores Inteligentes y Monitorización Remota
- Infineon nombrado Advanced Technology Partner por Amazon Web Services
- Fog vs. Cloud: Optimizando despliegues IoT para velocidad y escala








