Tabla de contenido:

Árbol de Navidad NeoPixel controlado por Bluetooth: 5 pasos
Árbol de Navidad NeoPixel controlado por Bluetooth: 5 pasos

Video: Árbol de Navidad NeoPixel controlado por Bluetooth: 5 pasos

Video: Árbol de Navidad NeoPixel controlado por Bluetooth: 5 pasos
Video: Twinkly - Guirnaldas LED navideñas inteligentes 2024, Mes de julio
Anonim

¿Se ha estado preguntando cómo agregar IoT (Internet of Things) en su árbol de Navidad este año? Bueno, ¡es totalmente posible! Yo personalmente llamo a este proyecto "ArduXmas", y consiste en una tira de led RGB NeoPixel controlada por una placa Arduino a través de Bluetooth. Este es un proyecto amigable para principiantes y una excelente introducción a Arduino e IoT, así que obtenga sus herramientas y ¡hagámoslo!

Suministros:

Para este proyecto necesitarás:

  • Arduino (utilicé Nano, pero cualquier versión funcionará, solo asegúrese de alimentar adecuadamente su placa)
  • Tira de LED NeoPixel WS2812b
  • Módulo Bluetooth HC-06
  • Fuente de alimentación de 5V 2A DC
  • Conector / enchufe de alimentación de barril de CC
  • Placa de fenolita para sujetar los componentes
  • Caja de cerramiento
  • Teléfono inteligente Android con la aplicación Blynk instalada

Paso 1: el circuito

El circuito
El circuito
El circuito
El circuito
El circuito
El circuito

La electrónica de este proyecto es muy sencilla. El Arduino, el módulo Bluetooth y la tira de LED funcionan con la fuente de 5 V (asegúrese de que todos los GND estén conectados entre sí). La placa Arduino se alimenta a través del puerto de 5V (ATENCIÓN: Encender el Arduino usando el puerto de 5V puede dañar su placa si no tiene cuidado. Asegúrese de que está usando una fuente de alimentación regulada de 5V y no mezcle los + 5V y cables GND). La corriente proporcionada por su fuente de alimentación dependerá de la longitud de su tira de LED. Estoy usando 180 leds con el 40% del brillo total y 2 amperios se mantienen bien, pero siempre asegúrese de suministrar la corriente necesaria (RECUERDE: cada LED RGB usa alrededor de 20mA + 20mA + 20mA = 60mA).

El módulo Bluetooth HC-06 está conectado a los pines 0 y 1 (RX, TX) del Arduino, solo recuerde que para usar este módulo, el pin RX del HC-06 está conectado al TX del Arduino y el pin TX del HC-06 es conectado al RX de Arduino. Estos son los pines de conexión en serie de la placa y se utilizan para recibir los comandos del teléfono inteligente. Agregué un interruptor para encender / apagar fácilmente el módulo, por lo que puedo apagarlo al programar la placa, de lo contrario, la computadora no se puede comunicar con el Arduino.

En el circuito, el pin de salida de datos que va a la tira de LED es el pin digital 2, pero puede elegir cualquier pin de PWM y cambiarlo según corresponda en el código (RECUERDE: las tiras de LED de NeoPixel tienen una dirección para la señal de datos. Siempre busque el iconos de flechas en tu tira).

Para hacer las conexiones, estoy usando una placa de fenolita con agujeros para que sea fácil de soldar y desarmar el próximo año.

Paso 2: el recinto

El recinto
El recinto
El recinto
El recinto
El recinto
El recinto

Para el gabinete, solo estoy usando la caja de la fuente de alimentación de una computadora portátil vieja que se ajusta perfectamente a los componentes. Asegure todo con pegamento caliente y deje agujeros para el puerto USB de Arduino, el interruptor HC-06, el conector de CC y el conector de tira de LED.

Paso 3: Aplicación Blynk

Aplicación Blynk
Aplicación Blynk
Aplicación Blynk
Aplicación Blynk
Aplicación Blynk
Aplicación Blynk

Para comunicarnos con Arduino, usamos la aplicación Blynk. Con Blynk, puede crear fácilmente interfaces para enviar datos desde el teléfono inteligente al hardware o al revés, ¡también es posible controlar directamente los puertos del microcontrolador sin cambiar una línea de código!

DESCARGO DE RESPONSABILIDAD: Desafortunadamente, esta aplicación solo funcionará para teléfonos inteligentes Android porque la función Bluetooth todavía está en Beta y aún no está disponible para IOS, esto también significa que no será posible exportar el proyecto como una aplicación independiente.

Configure su aplicación para recibir el token de autenticación para su proyecto en la bandeja de entrada de su correo electrónico (esta autenticación será necesaria más adelante en el código de Arduino). El sitio web de Blynk tiene un excelente tutorial paso a paso sobre esto, échale un vistazo:

Para este proyecto, estoy usando dos botones para encender 2 animaciones de luz precodificadas; un componente RGB para configurar el color de la tira de LED; un control deslizante para controlar el brillo y un componente bluetooth para conectarse al Arduino. Consulte las imágenes para ver cómo está configurado cada componente. Preste atención a los pines utilizados para este proyecto ya que estamos usando los pines virtuales de Blynk, esta es una buena característica que permite enviar datos desde la aplicación al hardware. Para obtener más información sobre los Pines virtuales:

Paso 4: Código Arduino

Código Arduino
Código Arduino

¡Es hora de hacer algo de código! El archivo que proporcioné tiene la estructura básica para ejecutar el proyecto, pero puede cambiarlo como desee. Sin embargo, para que funcione correctamente, debe reemplazar el carácter auth con el token que recibió en la bandeja de entrada de su correo electrónico. También recuerde cambiar las variables LED_PIN y LED_COUNT de acuerdo con su configuración.

El comportamiento de los LED lo dicta la variable anim que cambia cuando la aplicación recibe una solicitud. Puede agregar tantas posibilidades de animaciones como desee, simplemente agregue su función a la estructura del interruptor en la función toggleAnimation () y asigne la lectura de Pin virtual correspondiente en la parte superior del código.

La animación que se ejecuta en bucle () está vinculada a un temporizador que se ejecuta en intervalos de 100 ms. Esto es necesario, y no recomiendo cambiarlo, porque interfiere con el comando Blynk.run () y la conexión se cierra si la biblioteca Blynk detecta demasiadas solicitudes en un corto período de tiempo.

Recomendado: