Agregue iluminación controlada por Wi-Fi a su computadora con NodeMCU

Aprenda cómo darle vida a su carcasa de computadora mediante la construcción de un sistema Neopixel controlado por Wi-Fi con NodeMCU y algunos programas básicos.

Aprenda cómo darle vida a su carcasa de computadora mediante la construcción de un sistema Neopixel controlado por Wi-Fi con NodeMCU y algunos programas básicos.
Anuncio

Las torres de PC de escritorio han recorrido un largo camino desde los días en que las torres de plástico gris se escondían debajo de los escritorios. Además de los estuches que cumplen diferentes funciones, los estuches para PC han evolucionado en sentido estético, con paneles de vidrio mostrando orgullosamente los componentes y fuertes diseños futuristas que ocupan un lugar central en cualquier escritorio de geek orgulloso.

Las instalaciones LED son cada vez más comunes. Se puede comprar una tira simple de 12v RGB por tan solo $ 1 por metro e iluminará perfectamente el interior de una funda (junto con casi cualquier otra cosa).

Sin embargo, ¡queremos hacer algo un poco más especial que esto! Hoy utilizaremos Pixel LED para crear iluminación de casos controlable por Wi-Fi, con notificaciones personalizadas If If Then That (IFTTT). Todo este sistema funciona con un conector Molex de repuesto dentro de la torre, lo que lo hace totalmente autónomo. Lo mejor de todo es que todo este proyecto cuesta menos de $ 10.

Este tutorial está disponible en formato de video a continuación, o sigue leyendo para la versión escrita.

Luces con cerebros

Usaremos LED direccionables individualmente para este proyecto. A veces conocidos como Neopixels, hay varios modelos para elegir. Los LED utilizados aquí son de una tira WS2812B, disponible por alrededor de $ 4 por metro.

Usaremos la placa NodeMCU para controlarlos. Si bien puedes usar cualquier placa compatible con Arduino con Wi-Fi, la NodeMCU es nuestra favorita como asesino de Arduino. Conoce al asesino de Arduino: ESP8266 Conoce al asesino de Arduino: ESP8266 ¿Qué pasa si te digo que hay una placa de desarrollo compatible con Arduino? Wi-Fi incorporado por menos de $ 10? Bueno, lo hay. Lee mas .

Que necesitas

  1. Tira del LED del pixel 1 x 5v, Neopixel / WS2811 / 12 / 12B
  2. 1 x NodeMCU ($ 3 en AliExpress)
  3. 1 resistencia a 220-500 ohmios
  4. 1 x 100-1000 condensador microFaradio
  5. 1 x interruptor de palanca o interruptor de circuito
  6. 1 x Conector hembra Molex
  7. 1 x Tablero
  8. 1 fuente de alimentación de 5 voltios (para probar)
  9. 1 x Protoboard y cable (para instalar el circuito)
  10. Varios cables de conexión
  11. Soldador y soldadura

Lo único en esta lista que está fuera de lo común aquí es el conector Molex . Muchos propietarios de PC en estos días no usan una unidad de CD para nada en sus compilaciones, aunque los suministros de energía todavía vienen con una conexión para ellos. Podemos usar estas líneas eléctricas de repuesto para nuestra ventaja. Recuperé mi conector hembra de una unidad de disco antigua, aunque están disponibles por tan solo $ 0.30.

Construye tu circuito

Para evitar pinchazos innecesarios en nuestro caso, probaremos nuestra configuración con una fuente de alimentación externa. Configure su placa de prueba de esta manera.

tablero llevado del caso

Si esta es la primera vez que configura este tipo de LED, le aconsejaría que consulte primero nuestra guía en profundidad para usar estas tiras con Arduino.

El interruptor simplemente rompe el NodeMCU del circuito. En esta construcción, en realidad usaré un interruptor de circuito simple en lugar del interruptor. Su función es permitirnos aislar el pin VIN de la placa mientras está conectado a través de USB. Si bien la cantidad de energía que consumirán nuestros LED es relativamente pequeña, es una buena práctica evitar tomar demasiada energía a través del USB.

Una vez que la placa de prueba esté configurada, debería verse más o menos así:

configuración del tablero

En mi ejemplo, el condensador y la resistencia ya están en protoboard ya que fueron rescatados de un proyecto anterior, aunque el circuito es exactamente el mismo.

Ahora que tenemos el hardware configurado, creemos nuestro código.

Los cerebros de la operación

Codificará su NodeMCU con Arduino IDE. Para este ejemplo, configuraremos dos modos de operación, un interruptor principal de encendido / apagado y una señal de notificación cuando se reciba un correo electrónico. Utilizaremos Blynk, un servicio web para dispositivos de Internet de las cosas para comunicarnos con nuestra junta directiva.

Asegúrese de consultar nuestro artículo introductorio de Blynk Comenzar con Blynk: Dispositivos de IoT DIY sencillos Comenzar con Blynk: Dispositivos de IoT DIY sencillos Blynk es un servicio de Internet de las cosas (IoT) diseñado para realizar control remoto y leer datos de sensores de sus dispositivos como lo más rápido y fácil posible. Lea más si nunca lo ha usado antes.

En la aplicación Blynk, configure un nuevo proyecto y seleccione NodeMCU como su tablero. Se enviará un código de autorización a su dirección de correo electrónico registrada con Blynk. Agregue 3 botones y 3 deslizadores .

Botones y controles deslizantes de la aplicación blynk

Estos botones y controles deslizantes se deben configurar para enviar valores a Virtual Pins V0-V5. El botón "Prueba" probará nuestra notificación por correo electrónico por ahora. Etiquete los otros dos botones Encendido y Automático / Manual o algo similar, y los tres controles deslizantes son para Rojo, Verde y Azul .

Ahora abre el Arduino IDE. Necesitará las bibliotecas Blynk y FastLED para este proyecto, así que asegúrese de tener ambas instaladas. Si recién está comenzando con el Arduino IDE, consulte nuestra guía de Arduino para principiantes. Cómo comenzar con Arduino: una guía para principiantes Cómo comenzar con Arduino: una guía para principiantes Arduino es una plataforma de creación de prototipos de electrónica de código abierto basada en un uso flexible y fácil de usar hardware y software. Está dirigido a artistas, diseñadores, aficionados y cualquier persona interesada en crear objetos o entornos interactivos. Lee mas .

Aquí dividiremos el código en fragmentos, aunque si prefiere simplemente descargar el código completo, puede encontrarlo en GitHub.

Si decide hacerlo, asegúrese de agregar sus propios detalles de Wi-Fi, código de autorización y pin NodeMCU relevante y Número de LED a la secuencia de comandos. Si recién está empezando a aprender programación, lo revisaré desde cero para aprender cómo funciona cada parte. Esta es una de las muchas maneras de familiarizarse con la codificación. Cómo aprender a programar sin tener estrés. Cómo aprender a programar sin todo el estrés Tal vez hayas decidido seguir con la programación, ya sea para una carrera o simplemente como un hobby. ¡Estupendo! Pero tal vez estás empezando a sentirse abrumado. No muy bien. Aquí hay ayuda para facilitar su viaje. Lee mas .

Cree un nuevo boceto y guárdelo con un nombre apropiado. Asegúrese de seleccionar la placa y el puerto correctos en Herramientas > Tablero y Herramientas > Menús de puertos . Comience por incluir los espacios de nombres Blynk y FastLED relevantes:

#define BLYNK_PRINT Serial #include #include #include "FastLED.h" 

A continuación, agregue algunas definiciones para FastLED:

 //---FastLED definitions and CRGB--- #define LED_PIN 3 // GPIO pin for RGB LEDs. #define NUM_LEDS 44 // Number of LEDs connected. #define BRIGHTNESS 64 // Default LED brightness. #define LED_TYPE WS2812B #define COLOR_ORDER GRB CRGB leds[NUM_LEDS]; 

A continuación, declararemos las variables para nuestros valores RGB, nuestro modo automático / manual y nuestro interruptor maestro. También agregamos un valor para un color base requerido por el preset FastLED que usaremos más adelante.

 //---variables for our RGB values (0-1023) --- int r = 500; int g = 500; int b = 500; //---variables for On/Off, and Auto/Manual toggle int masterSwitch = 1; int autoMode = 1; //--- int/byte for automatic hue incrementation--- uint8_t gHue = 0; // rotating "base color" used by many of the patterns 

Cuando agregue sus detalles de Blynk, asegúrese de ingresar sus propios detalles de Wi-Fi aquí:

 //---Blynk auth code and wifi details--- char auth[] = "YourAuthCode";//Blynk authorisation char ssid[] = "YourWifiName"; char pass[] = "YourWifiPassword"; 

Usamos nuestra función de configuración para agregar nuestros LED a FastLED y establecer comunicación con Blynk.

 void setup() { // power-up safety delay delay(3000); Serial.begin(9600); //--- add the LEDS to FastLED and set the brightness--- FastLED.addLeds(leds, NUM_LEDS).setCorrection(TypicalSMD5050); FastLED.setBrightness(BRIGHTNESS); #define FRAMES_PER_SECOND 120 //---start communication with the Blynk server --- Blynk.begin(auth, ssid, pass); } 

Use if-statements en su función Loop para hacer diferentes cosas dependiendo de en qué modo se encuentre.

 void loop() { Blynk.run(); if(masterSwitch == 0) { for (int i = 0; i< NUM_LEDS; i++) { leds[i] = CRGB::Black; FastLED.show(); delay(30); } } if(autoMode == 0 && masterSwitch == 1) { for (int i = 0; i< NUM_LEDS; i++){ leds[i] = CRGB(r, g, b); FastLED.show(); delay(30); } } if(autoMode == 1 && masterSwitch == 1) { fill_rainbow( leds, NUM_LEDS, gHue, 7); // send the 'leds' array out to the actual LED strip FastLED.show(); // insert a delay to keep the framerate modest FastLED.delay(1000/FRAMES_PER_SECOND); EVERY_N_MILLISECONDS(20) { gHue++; // slowly cycle the "base color" through the rainbow } } } 

Ahora, use las funciones BLYNK_WRITE para cambiar estas variables dependiendo de lo que seleccione en la aplicación Blynk:

 //---Master On/Off--- BLYNK_WRITE(V0) { masterSwitch = param.asInt(); } //--- Red slider value--- BLYNK_WRITE(V1) { r = param.asInt(); } //--- Green slider value--- BLYNK_WRITE(V2) { g = param.asInt(); } //--- Blue slider value--- BLYNK_WRITE(V3) { b = param.asInt(); } //--- Toggle Auto/Manual Mode --- BLYNK_WRITE(V4) { autoMode = param.asInt(); } 

Finalmente, realice una función que cause que una secuencia repetida de luces rojas se use como notificación por correo electrónico. Esto está diseñado para activarse sin importar qué más esté sucediendo, lo que significa que siempre recibirá la notificación, incluso si las luces están apagadas.

 //---Email notification light--- BLYNK_WRITE(V5) { int g = param.asInt(); if(g == 1) { for(int a = 0; a< 10 ; a++) { for (int i = 0; i< NUM_LEDS; i++) { leds[i] = CRGB(1023, 0, 0); FastLED.show(); delay(10); FastLED.clear(); delay(10); } } } } 

Una vez que tenga este código completo en su lugar, use el interruptor / disyuntor para aislar el NodeMCU del circuito y conéctelo mediante USB. Suba el boceto a la pizarra. Una vez cargado, desconecta el cable USB y conecta tu fuente de alimentación de 5v. Si todo está bien, la tira LED debería iniciarse en el modo automático, que es el modo fill_rainbow de FastLED. Puede probar la señal de notificación usando el botón de prueba.

pruebas de luces led

Como puede ver aquí, coloqué mis LED aproximadamente en el costado de mi caja, así que sabía cuántos necesitaría. En mi caso fue 44, aunque utilizo una mini torre, por lo que es posible que pueda usar muchas más. Solo asegúrese de tener en cuenta el consumo de energía de los LED que usa y cuánto puede proporcionar la fuente de alimentación de su PC.

Configurando IFTTT

Usaremos la integración de Gmail de IFTTT para activar nuestra secuencia de notificaciones. Si nunca antes ha utilizado IFTTT, se sorprenderá de la gran cantidad de formas en que puede automatizar sus aplicaciones web favoritas. Si esto y luego: conecte y automatice cualquiera de sus aplicaciones web favoritas si es así, entonces: conecte y automatice Dos de tus aplicaciones web favoritas Conecta dos de tus aplicaciones web favoritas de forma creativa. Una especie de "cinta adhesiva digital" según Linden Tibbets, el creador de la aplicación, If This Then That (ifttt), le permite encontrar nuevos usos para ... Leer más.

Configure un nuevo applet. Para "Esto", elija Cualquier nuevo correo electrónico en la bandeja de entrada del canal de Gmail . Para "Eso", seleccione Maker Webhooks y hacer una solicitud web .

La sección URL es donde llamamos nuestro pin de notificación. Deberá modificar la URL para trabajar con su proyecto. El formato es http: // BlynkIpAddress / YourAuthCode / pin / V5 . Puede encontrar el Blynk ip escribiendo ping blynk-cloud.com en el símbolo del sistema.

ifttt url

Elija PUT como el Método y application / json como el Tipo de contenido . Finalmente, agregue ["1"] a la sección del cuerpo, luego haga clic en Crear acción .

Ahora, cada vez que llega un correo electrónico a la bandeja de entrada de la dirección de Gmail asociada con IFTTT, se envía un mensaje "1" a Virtual Pin 5 en el servidor Blynk, que activará nuestra notificación. Intenta enviarte un correo electrónico para probarlo. Sea paciente, ¡IFTTT puede tomar algo de tiempo!

Ahora puede deshacerse del botón Prueba en su aplicación Blynk si lo desea.

Poniendolo todo junto

Ahora que hemos probado todo, es hora de terminar e instalar nuestro hardware. Mueva su proyecto de la placa de prueba al protoboard. Si es nuevo en la soldadura y está buscando algunos consejos, consulte nuestra guía de soldadura Aprenda a soldar, con estos sencillos consejos y proyectos Aprenda a soldar, con estos simples consejos y proyectos ¿Está un poco intimidado por la idea? de un hierro caliente y metal fundido? Si quieres empezar a trabajar con productos electrónicos, vas a necesitar aprender a soldar. Permítanos ayudar. Lee mas .

Antes de conectar su conector Molex a la placa, tome nota de los pines que va a utilizar. El conector macho que proviene de la fuente de alimentación de su PC tendrá cuatro cables. Los dos cables negros son cables de tierra comunes, el cable amarillo es + 12v y el rojo es + 5v. Asegúrese de conectar los pines correspondientes del conector hembra a la placa. ¡Escogí solo unir dos alfileres para evitar freír accidentalmente mi tablero y los LED!

molex

Decidí conectar cables DuPont entre mi placa y los LED para que el lateral de la carcasa de la PC aún se pueda extraer por completo sin tener que quitar la placa base. Sugiero que coloque los LED en la caja y los asegure con cinta para empezar, solo para verificar que encajen correctamente dentro de la caja cuando están cerrados.

Nota: Cuando esté soldando sus tiras LED juntas, todas las líneas de datos deben fluir en la misma dirección. Esto se denotará en la tira.

tiras de soldadura

Finalmente, monte su protoboard dentro de la torre de su PC. Como se trata de una construcción temporal para mí, elegí aislar la parte posterior de la placa, y atado con cremallera a la parte posterior de mi caso. Independientemente de cómo decida colocar la placa, tenga cuidado de no causar cortocircuitos y desconfíe del peligro que representa la electricidad estática en los componentes internos.

Ilustrado

iluminación led iluminada completa

Todo bien, debe tener una luz totalmente funcional operada por Wi-Fi con notificaciones automáticas por correo electrónico. Ahora que tiene este sistema en su lugar, puede usar el interruptor de apagado en la placa para conectar su NodeMCU de manera segura a través de USB y cambiar el código. Podría intentar agregar otra notificación integrada con IFTTT (luz azul para menciones en Twitter o Facebook, por ejemplo), o experimentar con configuraciones personalizadas en la biblioteca FastLED para darle un poco de movimiento a sus luces.

¿Ha instalado LEDs en la torre de su PC? ¿Has configurado alguna automatización impresionante para ellos? ¡Háganos saber acerca de sus proyectos y planes en la sección de comentarios a continuación!

Crédito de la imagen: David Brown / Flickr

In this article