Tabla de contenido:

Lámparas sincronizadas Wifi: 10 pasos (con imágenes)
Lámparas sincronizadas Wifi: 10 pasos (con imágenes)

Video: Lámparas sincronizadas Wifi: 10 pasos (con imágenes)

Video: Lámparas sincronizadas Wifi: 10 pasos (con imágenes)
Video: Probando Foco Inteligente RGB (Review) 2024, Noviembre
Anonim
Image
Image

Un proyecto para alguien que ilumina tu vida …

Hace 2 años, como regalo de Navidad para un amigo de larga distancia, creé lámparas que sincronizarían animaciones a través de una conexión a Internet. Este año, 2 años después, creé esta versión actualizada con el conocimiento obtenido de los años adicionales de incursionar en la electrónica. Esta versión es mucho más simple, sin necesidad de monitores o teclados externos (¡y solo un chip simple, no dos!) Además de una interfaz de aplicación de teléfono fácil (gracias a Blynk IoT) en lugar de un sitio web y un potenciómetro físico suave.

Hay botones en la aplicación que brindan más flexibilidad en las animaciones que desea agregar: hay 3 controles deslizantes para el control RGB, además de un widget en la parte inferior que le permite elegir colores de un mapa (para que no tenga para averiguar cuáles son los números RGB para el color que desea). También hay botones preestablecidos para feliz, enojado, triste y "meh" para que pueda transmitir fácilmente sus emociones a la otra persona en forma de animaciones de lámpara, para los momentos en que tiene algo de lo que quiere hablar pero no quiere molestar a la persona con muchos mensajes de texto.

¿No tienes experiencia en electrónica? ¡No hay problema! Solo hay 3 pasos principales: conectar el hardware, cargar el código y crear la aplicación Blynk. Sin embargo, recuerde: lo que puede salir mal, saldrá mal. Siempre agregue mucho tiempo para la depuración.

Si usa exactamente lo que hice y carga exactamente lo que tengo, debería estar bien incluso si nunca ha trabajado con electrónica. Incluso si realiza ajustes en el proyecto, leer este tutorial debería darle una idea de lo que necesita cambiar si lo usa como guía. El costo también se mantuvo lo más bajo posible: el costo total, si no tiene absolutamente ninguno de los componentes, es de ~ $ 40 como máximo por lámpara.

Paso 1: Materiales

Estos son los materiales que necesita para UNA lámpara (multiplique por la cantidad de lámparas que le gustaría hacer):

  • 1x chips NodeMCU ESP8266 ($ 7 cada uno, $ 13 por 2)
  • 1x protoboard o protoboard (~ $ 1 cada uno)
  • soldador y soldadura
  • 1x anillos de neopixel ($ 10 cada uno, $ 8 si compra en adafruit.com)
  • 1x fuente de alimentación de 5 V (salida de al menos 500 mA, por lo que 1 A o 2 A será perfecto) con conexión microUSB (o conector de barril, pero compre un convertidor de conector de barril a cables desnudos) ($ 8 cada uno)
  • No es estrictamente necesario, pero MUY recomendado para la protección de circuitos (unos centavos cada uno, pero es posible que tenga que comprar al por mayor)

    • 1x resistencia de 300-500Ohm (usé 200Ohm y me salí con la mía)
    • Condensador 1x 100-1000uF
  • cable eléctrico (u obtienes estos tipos de cinta) (un solo núcleo es lo mejor) (unos centavos por 5 )

    No necesitas tanto cable; solo 5 "serán suficientes

  • Puede hacer lo que quiera con la lámpara exterior (arriba hay partes solo para la electrónica). Opté por madera cortada con láser y acrílico, con papel de cuaderno de bocetos para la difusión de la luz.

Adjunté enlaces de Amazon arriba para las opciones más baratas que pude encontrar (a partir del 20 de diciembre de 2018), pero definitivamente puede encontrar componentes más baratos en diferentes lugares. Todavía soy un estudiante universitario, así que tuve acceso a condensadores y resistencias: intente preguntarle a cualquier amigo que trabaje con electrónica. Los Neopixels se pueden comprar en adafruit.com a un precio más económico si tiene otras cosas que desea ordenar desde allí (para ahorrar en el costo de envío …). También puede obtener las resistencias y los condensadores de DigiKey o Mouser por un precio mucho más económico, aunque el envío puede ser más alto. Para las fuentes de alimentación, un cargador de teléfono viejo estará bien (o solo el cable microUSB si desea conectar la lámpara a un puerto USB en lugar de una toma de corriente). Si no tiene absolutamente ninguno de estos componentes, su costo será un máximo de ~ $ 40 por lámpara (y menos por lámpara cuanto más gane, ya que generalmente comprará estos componentes a granel: protoboard puede venir en paquetes de 5, por ejemplo). Tenía cosas por ahí, así que solo costaba $ 5 para mí (sí, soy un acaparador de amigos que sueltan muchas cosas, además de que reutilicé los anillos de neopixel de la última vez).

El código Arduino y los archivos de Adobe Illustrator (para el cuadro de corte por láser) se adjuntan a continuación.

Paso 2: Descripción general: cómo funcionan las lámparas

Muy bien, una vez que tenga los materiales, es posible que se pregunte cómo se combinan todos. Aquí tienes una explicación:

El NodeMCU ESP8266 es un microcontrolador que opera con una lógica de 3.3V (a diferencia de la lógica de 5V como la mayoría de los Arduinos). Incluye un chip wifi integrado y pines GPIO para usar señales digitales y analógicas con los componentes que conecte. Utilizará uno de los pines capaz de emitir señales PWM (vea el pinout aquí: cualquier pin con el ~ al lado puede generar las señales analógicas en lugar de las señales digitales de solo 0 o 1, BAJO o ALTO) para controlar el anillo de neopixel. Para programarlo, puede hacerlo fácilmente a través del IDE de Arduino, que se puede descargar fácilmente aquí. (tenga en cuenta que proporcioné la guía de Adafruit para su ESP8266 HUZZAH en lugar de la de NodeMCE que tenemos. La guía sigue siendo aplicable para ambas placas, pero solo tendrá que seleccionar una placa diferente para cargarla en Arduino).

El anillo de neopixel es el que crea las animaciones de colores de la lámpara. Tiene LED direccionables en la formación del anillo, cada uno de los cuales se puede controlar individualmente. Normalmente se ejecuta con lógica de 5V, que generalmente requiere un cambio de nivel (explicado aquí), pero afortunadamente la biblioteca Adafruit neopixel se ha actualizado para admitir el ESP8266. Si bien los componentes de 5V no responden de manera tan confiable a las señales de 3.3V, funciona de manera bastante confiable cuando el neopixel se alimenta a un voltaje más bajo (es decir, 3.3V en lugar de 5V). Vea los detalles sobre esto aquí.

En cuanto a la conexión del microcontrolador al neopixel, es más seguro colocar una resistencia de 300-500 Ohm entre la línea de datos del neopixel y el pin GPIO desde el que enviarás señales (para proteger los LED de cualquier sobretensión repentina). También debe agregar un capacitor de 1000uF conectado en paralelo a los cables de alimentación y tierra del anillo de neopixel: esto es para brindar protección contra sobretensiones repentinas en la corriente. Lea esto para obtener más prácticas recomendadas sobre el uso de estos anillos LED (y aquí para obtener la guía de usuario completa de Adafruit).

Para interactuar con la plataforma Blynk IoT, Arduino tiene una biblioteca para usar Blynk. Puede leer la documentación aquí para obtener más información sobre el uso de Blynk en general. Para comenzar, este fue un útil instructivo específicamente para NodeMCU ESP8266 y Blynk.

¡No se preocupe si algunas de estas cosas no tienen sentido! Los pasos futuros describirán exactamente qué cargar, descargar, conectar, etc. ¡Lea todo (sí, es un tutorial largo, pero al menos un vistazo) antes de comenzar a construir! Le ayudará a descubrir cómo se unen las cosas en lugar de simplemente seguir ciegamente las instrucciones.

Paso 3: hardware

Imagen
Imagen
Imagen
Imagen

Para comenzar, conecte su hardware como se muestra en las imágenes de arriba. El neopixel debe venir con agujeros para soldar cables. Primero deberá soldar los cables a los orificios etiquetados como PWR (alimentación), GND (tierra) e IN (entrada para señales analógicas) antes de conectar los cables a los pines 3.3V, tierra y D2 del ESP8266 (consulte esto para conocer los pines). Como regla general, el cable rojo es para alimentación, los cables negros indican tierra y me gusta usar azul para la línea de datos del neopixel (conectado al pin D2, que es capaz de señales PWM).

Asegúrese de conectar el capacitor en la dirección correcta: el capacitor tiene polaridad, lo que significa que sí importa de qué lado conecte en paralelo a la tierra y la potencia del neopixel. Si observa su capacitor de 1000uF, hay una franja gris en el costado que indica el lado negativo del capacitor (también puede verlo en el diagrama de fritzing de arriba). Este es el lado que debe conectarse en paralelo a la tierra del neopixel. La resistencia no tiene polaridad, por lo que no hay necesidad de preocuparse por la dirección.

En términos de crear una conexión firme, la mejor manera sería usar protoboard para que pueda soldar los componentes juntos en lugar de simplemente enchufar los cables en una placa de pruebas y arriesgarse a que se salgan. Usé una protoboard porque tenía poco tiempo, pero nuevamente, es preferible la protoboard. Lo bueno de la placa de pruebas es que tiene una parte trasera pegajosa, así que solo quité la pegatina para pegar todo a la base de mi lámpara. Para el protoboard, puede atornillarlo a la base usando los 4 agujeros que suelen tener en las esquinas, o simplemente pegarlo con cinta adhesiva.

Paso 4: Código Arduino

El código.ino Arduino se adjunta al final de este paso como referencia. Parece largo y prolijo, pero no te preocupes: gran parte de él incluye comentarios para explicarlo todo. También me gusta saltar líneas para agregar espacios para diferenciar secciones, lo que hace que el código parezca más largo.

Partes principales para editar para que se ajusten a su código:

  • Token / código de autorización de Blynk (enviado por correo electrónico desde Blynk cuando crea un dispositivo en la aplicación: consulte la página siguiente para obtener más información)

    ¡Necesitará un código de autorización por separado para cada lámpara

  • nombre de dominio wifi (entre los dos apóstrofos ")
  • contraseña wifi (entre los dos apóstrofes ")

Aparte de eso, siempre que use mi aplicación Blynk exacta y el hardware general (así que use mi configuración exacta de la aplicación Blynk en el siguiente paso, tenga 12 LED en su anillo neopixel, use el pin D2 del ESP8266 para la línea de datos neopixel, etc.), solo necesita cargar ese código exactamente en su ESP8266. Tenga en cuenta que deberá utilizar diferentes códigos de autorización para cada una de sus lámparas. Consulte la página siguiente para agregar dispositivos separados y obtener esos códigos. No olvide hacer coincidir el dominio wifi y la contraseña con la lámpara también, si estarán en diferentes ubicaciones. Probablemente desee editar otras cosas dependiendo de las animaciones y colores que desee, o incluso de los pines que utilice. He comentado el código para ayudarlo a cambiar las cosas según sea necesario. (lea también el código de ejemplo de prueba de hebra de la biblioteca Adafruit Neopixel para obtener ideas).

Antes de que pueda usar el código, deberá descargar las bibliotecas que usa el código (las que están en la parte superior del código). Lea y siga esta guía de Adafruit (comience en "Uso de Arduino IDE") para saber lo que debe hacer para configurar el ESP8266. Sí: deberá instalar el controlador CP2104, agregar a las URL adicionales del administrador de la placa en las preferencias de Arduino, instalar el paquete ESP8266 (vaya a Sketch> Incluir biblioteca> Administrar bibliotecas … y busque lo que necesita, vea la imagen a continuación), y también instale las otras bibliotecas en la parte superior del código para neopixel, Blynk, etc.

Imagen
Imagen

Para cargar el código al chip ESP8266 desde el IDE de Arduino, deberá seleccionar la placa correcta (NodeMCU ESP8266 ESP-12E), tamaño de flash, puerto, etc. (vea la imagen a continuación). El puerto correcto SLAB_USBtoUART no aparecerá a menos que conecte el ESP8266 a su computadora. Pero una vez que esté conectado, y esté seguro de haber conectado correctamente su circuito en el paso anterior, puede continuar y presionar la flecha en la esquina superior izquierda para cargar su código en la placa. Sí, lleva más tiempo que el proceso habitual de carga a Arduino. Verá que compila el código lentamente, luego una cadena de puntos naranjas ……………… mientras se carga (que se muestra en la parte negra inferior de la ventana de Arduino).

Imagen
Imagen

Ahora, aquí hay un desglose del código. La primera sección incluye bibliotecas que usarán las funciones e inicializa variables globales (variables a las que puede acceder cualquier función en el código). Las partes BLYNK_WRITE (virtualPin) controlan lo que se hace cuando los widgets en la aplicación Blynk (que están conectados a pines virtuales) se alternan (es decir, se encienden / apagan, se cambian las posiciones del control deslizante). Hay 7 de estos para los 7 pines virtuales que uso en mi aplicación Blynk. La siguiente sección de void colorWipe (), rainbow (), etc. es para definir funciones que usa el resto del código. Estas funciones se toman en su mayoría del código de ejemplo de la biblioteca neopixel de Adafruit (específicamente strandtest). Las últimas partes son su configuración de vacío estándar () y bucle de vacío () que van en todo el código de Arduino: configuración de vacío () define operaciones que ocurren solo una vez con la placa encendida, y void loop () define operaciones que la placa continuamente se repite cuando está encendido. void loop () define principalmente qué animación recorrerá la lámpara en función de la variable "animación" que creé.

Paso 5: Blynk IoT

Blynk IoT
Blynk IoT
Blynk IoT
Blynk IoT
Blynk IoT
Blynk IoT

Elegí Blynk sobre Adafruit IO para esta lámpara versión 2.0. Adafruit IO es genial, pero había dos cosas que tenía Blynk en comparación con Adafruit IO: una interfaz de aplicación y la capacidad de aceptar "en blanco" como contraseña wifi (por lo que si te estás conectando a una wifi pública que no tiene una contraseña, puede dejar la sección de contraseña vacía, es decir, sólo ""). Mi amiga va a los hospitales a menudo para recibir tratamiento, por lo que quería tener esta capacidad en las ocasiones en que tiene estadías nocturnas, pero quiere una compañía virtual: todavía podría conectarse a wifi en el hospital.

Comience por ir a la tienda Google Play o la tienda de aplicaciones de iPhone para descargar la aplicación Blynk en su teléfono. Crea una cuenta gratis y crea un nuevo proyecto. En la esquina superior derecha, verá un botón de escáner de código QR: utilícelo para escanear el código QR en la imagen de abajo para copiar todos mis botones y demás en el nuevo proyecto. Consulte esta página para obtener más información sobre cómo funciona esto ("comparta la configuración de su proyecto"). Esa página también proporciona información útil para compartir el proyecto con el destinatario de su lámpara más adelante.

Imagen
Imagen

¡Por supuesto, puede personalizar los botones como desee! Desliza el dedo hacia la derecha para revelar qué widgets puedes agregar. Sin embargo, debe comprender qué opciones tiene para los widgets: he adjuntado imágenes (con notas en cada imagen) de la configuración de los botones y sugerencias para usarlos en la parte superior de este paso.

Por cierto, agregar widgets cuesta puntos en la aplicación, y todos comienzan con una cierta cantidad gratis. Agregar puntos adicionales cuesta dinero ($ 2 por 1000 puntos adicionales). Terminé agregando 1000 puntos para que mi configuración funcione, pero simplemente puede quitar uno o dos botones para que funcione con la cantidad gratuita.

En el proyecto, debe presionar el botón de tuerca en la parte superior izquierda (junto al botón triangular "reproducir") para acceder a la configuración del proyecto.

Imagen
Imagen

Debe agregar dispositivos al proyecto para obtener tokens / códigos de autorización para cada lámpara, que cambia en el código Arduino como se mencionó anteriormente. Presione la flecha hacia la derecha de Dispositivos para crear nuevos dispositivos. Cuando crea un dispositivo, verá su token como en la imagen de abajo (borrosa en rojo).

Imagen
Imagen

Una vez que tenga el código, recuerde ingresar el token, el dominio wifi y la contraseña correctos en el código Arduino para cada lámpara. Probablemente debería ingresar sus propias credenciales wifi primero para asegurarse de que cada lámpara funcione correctamente y depurar según sea necesario, pero luego actualizar con el dominio wifi y la contraseña de su destinatario antes de enviarla.

¡Asegúrate de encender la aplicación para poder usar tus botones! Cuando la aplicación está "encendida" (presione el botón de reproducción en la esquina superior derecha, junto al botón de la tuerca para la configuración), el fondo se volverá negro sólido en lugar de la cuadrícula de puntos que ve cuando está en modo de edición. Si ha subido el código Arduino a su ESP8266 y lo ha conectado, el chip debería conectarse automáticamente a wifi. Verifique esto presionando el pequeño icono del microcontrolador en la esquina superior derecha (visible solo cuando la aplicación está encendida): debería ver una lista de los dispositivos que creó para el proyecto y cuáles están en línea.

Imagen
Imagen

Paso 6: Cubierta de la lámpara

Para la lámpara real, opté por madera cortada con láser (madera contrachapada de abedul de 1/8 ") y acrílico (transparente, 1/4", para la parte inferior para que la luz brille). La madera tenía recortes que eran exclusivos para mi amigo y para mí, pero adjunté archivos de Adobe Illustrator para los diseños de caras de las piezas del rompecabezas (hace un cubo de 4 ") para que los recortes si te gusta la forma (los archivos se adjuntan a este paso, Advertencia: la cara inferior debe tener un grosor de 1/4 "para que las piezas encajen juntas en esos archivos. Si desea hacer un tamaño diferente o tener todo con un grosor, use makercase.com para generar archivos para cortar con láser una caja.

Imagen
Imagen
Imagen
Imagen

No olvide dejar un agujero para que el cable de alimentación salga de la lámpara. Olvidé incluirlo, pero pude usar un cortador de alambre para cortar un pequeño orificio triangular a través de la madera de 1/8.

Paso 7: compartir lámparas con los destinatarios

Cuando envíe la lámpara a su destinatario, también deberá descargar la aplicación Blynk en su teléfono desde Google Play Store o App Store de Apple para controlar la lámpara. Puede hacer que creen una cuenta separada o usar su mismo nombre de usuario. Si crean una cuenta separada, puede compartir un código QR especial para que otros lo usen por 1000 puntos (NO el que compartí en el paso anterior de Blynk; este código QR les da permiso para usar la misma aplicación que usted, pero ellos pueden ' t cambie cualquiera de las configuraciones o ajustes de los botones - lea esta página, específicamente "compartir el acceso a su hardware"). Debe asegurarse de encender la aplicación (presione el botón de reproducción en la esquina superior derecha para que vea el botón del microcontrolador en lugar del botón de configuración de la tuerca) para que otros puedan usar la aplicación.

Obtuve el costo de 1000 puntos al darle a mi amiga mi información de inicio de sesión para que pudiera iniciar sesión en la aplicación a través de mi cuenta. Si envía estas lámparas a personas que no son tan buenas con la electrónica (personas mayores, en general), recomendaría gastar los $ 2 dólares para crear un enlace compartido para que no tengan acceso a su cuenta y puedan ' No estropee la configuración de su aplicación. Con esta opción QR (costo de 1000 puntos), todavía tienen un clon de su aplicación pero no pueden cambiar nada.

Paso 8: uso de la aplicación

Ahora, ¿cómo puedes usar la aplicación para controlar las lámparas?

Enciende y apaga la lámpara con el botón de encendido grande (rojo cuando está apagado, verde cuando está encendido). Si la lámpara está apagada, apaga automáticamente todos los demás botones de la aplicación y establece RGB en 0, 0, 0. Cuando presiona para volver a encender la lámpara, la lámpara comienza con una luz blanca intermitente.

Hay tres controles deslizantes RGB en la parte superior derecha para controlar la salida de color RGB en el parpadeo de las lámparas. Actualizan el color en tiempo real a medida que ajusta los controles deslizantes. También puede ajustar el color con el mapa de colores en forma de cebra en la parte inferior de la aplicación. Esto está conectado a los controles deslizantes RGB, por lo que los controles deslizantes se actualizan según el color que elija en el mapa y viceversa. Este mapa es útil si tiene un tono que desea en particular pero no conoce los valores numéricos RGB apropiados.

Hay botones en el lado izquierdo de la aplicación con animaciones preestablecidas para feliz, enojado, triste y meh. "Feliz" hace que la lámpara parpadee a través de los colores del arco iris, "enojado" hace que la lámpara parpadee entre rojo y amarillo, "triste" hace que la lámpara parpadee en azul y azul cielo, y "meh" hace que la lámpara cree un arco iris giratorio. rueda. Elegí los del arco iris para happy y meh, ya que es más probable que sean las animaciones diarias predeterminadas. Siempre que presione uno de los botones preestablecidos, todos los demás botones se apagarán (es decir, si estuviera en "feliz" pero presione "enojado", el botón feliz se apagará automáticamente después de unos segundos). Tenga en cuenta que tomará más tiempo cambiar de las animaciones feliz y meh porque la lámpara tiene que pasar por la animación completa del arco iris antes de que pueda cambiar la animación. Si apaga cualquiera de los botones preestablecidos, la lámpara volverá a parpadear de forma predeterminada con el color al que correspondan los controles deslizantes RGB. Si tiene activada alguna de las animaciones preestablecidas pero cambia los controles deslizantes RGB, no sucederá nada: la animación preestablecida domina.

Antes de desenchufar la lámpara, presione el botón de apagado en la aplicación como regla general. Luego, presione el botón de encendido en la aplicación cuando vuelva a enchufar la lámpara. NO ajuste los botones de la aplicación cuando alguna de las lámparas no esté encendida o conectada a wifi (no es el fin del mundo, pero estropeará la lámpara operación). Vea el siguiente paso para saber por qué …

Paso 9: ** ADVERTENCIA PARA UN FUNCIONAMIENTO CORRECTO **

Hay una laguna en el funcionamiento de las lámparas. La interfaz de Blynk no me permite controlar de forma selectiva lo que se puede alternar cuando otra cosa está encendida o apagada, pero puse condiciones en el código tales que si alternas algo que no debería alternarse cuando la lámpara está apagada u otra animación está encendida, la palanca se deshará por sí misma: eso requirió mucha depuración pero funciona bastante bien (demostrado en el video de arriba: la aplicación rechaza los cambios que ocurren cuando la lámpara está apagada, y si las animaciones preestablecidas están encendidas, entonces cualquier cambio en los controles deslizantes no afectan la animación hasta que se apaga el botón preestablecido).

El único escollo que queda es que si alterna cosas en la aplicación cuando el chip no está conectado a Internet, esta función de "deshacer" automática no funcionará y la lámpara no seguirá los comandos de la aplicación. Luego, cuando encienda la lámpara, no reflejará lo que está haciendo con precisión (pase lo que pase, la lámpara comienza a parpadear en blanco cuando la enciende). Para solucionar este problema, simplemente presione el botón grande de encendido / apagado: un ciclo de encendido restablecerá todo en la aplicación para que la lámpara funcione como se esperaba.

En pocas palabras: cada vez que encienda la lámpara, simplemente apague y encienda el botón de encendido en la aplicación para restablecer todo. Simplemente haga esto si alguna vez desconecta la lámpara o usa la aplicación cuando la lámpara no está enchufada (o si la lámpara de repente no responde correctamente incluso cuando le da tiempo para reaccionar, tal vez si su wifi se desconecta al azar)

Paso 10: terminado

¡Y eso es una envoltura! Es un buen regalo para cualquier persona con la que compartas una relación a larga distancia: haz uno para tus padres antes de irte a la universidad o mudarte a otro estado para tu nuevo trabajo, haz uno para tus abuelos cuando tengas menos tiempo para visitarlos, haz uno para hacer compañía a su SO en el trabajo, etc.

Aquí hay algunas variaciones adicionales que podría hacer:

  • Podría destellar a través de varios colores (rojo naranja amarillo) en lugar de las pulsaciones desvaídas que tengo

    • Tenga control de color para esos destellos múltiples (primer rojo, segundo naranja, tercer amarillo) en lugar de solo parpadear versiones brillantes y tenues del mismo tono
    • Para eso, agregaría un mapa de color separado o un conjunto de controles deslizantes para controlar los colores por los que pasa cada animación (por lo tanto, en lugar de siempre rojo naranja amarillo, hágalo controlable individualmente para que pueda tener verde azulado, rosa, blanco, verde, púrpura, azul, etc.)
  • Hay otros tipos de animación que puede probar en el código de ejemplo de prueba de hebra de Adafruit Neopixel, como la opción theaterChase.
  • Si desea agregar una placa de conexión de altavoces, también podría tener una opción de música para sus lámparas. Tal vez haga que toquen música diferente para diferentes ocasiones. O en lugar de música, mensajes grabados por voz.

¡Diviértete personalizando las lámparas! No dude en enviarme un mensaje con preguntas o comentarios.

Recomendado: