Arduino Cloud permite enviar colores en RGB desde un Dashboard. Podemos generar distintas escenas de luz en una estancia si combinamos esta opción con luces led Ws2812 (Neopixel), entre otras.

Para trabajar de forma mas sencilla, las librerías de Arduino Cloud incluyen una variable con un tipo personalizado, CloudColor. Esta variable no es de un tipo estándar, por lo que solo la veremos al trabajar con Arduino Cloud. Hay dos bloques, uno para definir este tipo de variables particulares y otro para configurar la conexión de la tira led y el número de led que la forman.

Ejemplo 1

Vamos a crear escenas de luz mediante un anillo Ws2812 (Neopixel) de 12 leds conectado al GPIO 5 de un Esp32, y un interruptor virtual y un selector de color que encenderá y apagará el dispositivo. Las tiras Neopixel se alimentan habitualmente a 5VCC y es aconsejable colocar una resistencia limitadora de intensidad de unos 470 Ohm en el cable de datos (verde):

Para ello hay que crear dos variables, una booleana para encender y apagar la luz, y una del tipo CloudColor, para gestionar el cambio de color por internet.

Tras crearlas dentro de un Thing y asociarlo a un dispositivo, creamos un panel con un interruptor y el selector de color:

El programa en microlsb.es para encender la luz en función del dato enviado de color, sería el siguiente:

Se puede utilizar el bloque limpiar Ws2812 para conseguir que la luz esté apagada mientras el interruptor digital se mantiene apagado en el Dashboard. El programa se completaría de la siguiente forma: