Tabla de contenido:

Lámpara LED inteligente controlada por teléfono inteligente Bluetooth: 7 pasos
Lámpara LED inteligente controlada por teléfono inteligente Bluetooth: 7 pasos

Video: Lámpara LED inteligente controlada por teléfono inteligente Bluetooth: 7 pasos

Video: Lámpara LED inteligente controlada por teléfono inteligente Bluetooth: 7 pasos
Video: Probando Foco Inteligente RGB (Review) 2024, Mes de julio
Anonim
Image
Image
Lámpara LED inteligente controlada por teléfono inteligente Bluetooth
Lámpara LED inteligente controlada por teléfono inteligente Bluetooth

Siempre sueño con controlar mis aparatos de iluminación. Entonces alguien hizo una lámpara LED increíblemente colorida. Recientemente me encontré con una lámpara LED de Joseph Casha en Youtube. Inspirándome, decidí agregar varias funciones manteniendo el diseño contemporáneo.

El plan es hacer que la lámpara sea más fácil de usar agregando un módulo Bluetooth y una tira de LED RGB WS2812B direccionable. Esto hizo posible controlar el color de la iluminación con solo usar una aplicación de teléfono inteligente.

Paso 1: Reúna los materiales

Reúna los materiales
Reúna los materiales
Reúna los materiales
Reúna los materiales

Instrumentos:

• Estación de soldadura

• Pistola sopladora de calefactor

• Taladro

• Sierra circular

• Rompecabezas

• Alicates cortadores de alambre

• Alicates de punta estrecha

Materiales:

• Tablero de acrílico translúcido

• Madera de ciprés japonés (o puede usar cualquier madera siempre que sea lo suficientemente estable y fuerte)

• Tornillos

• Poste o palo de acero inoxidable

• Cables (yo uso cable rojo y negro)

• Estaño para soldar

Componentes electrónicos:

• Arduino Nano

• Módulo Bluetooth HC-05 (decidí usar esto porque es más fácil de codificar que el Módulo Wifi ESP8266)

• Tira de LED RGB direccionable WS2812B

• Módulo reductor LM2596

• Conector de alimentación de barril de CC

Paso 2: construcción de la estructura de la lámpara

Construyendo la estructura de la lámpara
Construyendo la estructura de la lámpara
Construyendo la estructura de la lámpara
Construyendo la estructura de la lámpara

En este paso, tengo dos formas de construir la estructura del método de carpintería con lámpara y el método de impresión 3D. Yo utilizo el primer método. Si prefiere hacerlo utilizando una impresora 3D, no dude en pasar al paso 2 para el modelo que diseñé.

Para la parte superior de la lámpara, caliento y doblo el tablero acrílico en un ángulo de 90 ° como se muestra arriba. Me toma bastante tiempo doblarlo en un ángulo y una dirección tan perfectos.

A continuación, para la parte inferior de la lámpara. Desafortunadamente… el día que estaba trabajando en la parte inferior de la lámpara, ¡me olvidé por completo de tomar una foto de la construcción! Me di cuenta de eso cuando terminé este proyecto. Pero haré todo lo posible para proporcionarle la medida de la parte inferior de la lámpara.

Básicamente, solo necesita cortar cuatro bloques de madera que midan 13x6x2cm (LxHxW). A continuación, debe hacer un corte en forma de escalera en el borde de la madera. La imagen se mostrará arriba.

Paso 3: las formas 3D

Las formas 3D
Las formas 3D
Las formas 3D
Las formas 3D

Para cualquiera que tenga su propia impresora 3D, está en el paso correcto. Esto hizo que esta lámpara fuera fácil de usar.

Para ser honesto, este fue el paso más difícil que di. ¡Esto es lo primero que hice justo después de instalar el software!

Utilizo Sketchup Pro para diseñar la estructura de la lámpara. Desafortunadamente, no soy lo suficientemente hábil para diseñar su componente interior. El enlace a mi modelo 3D se encuentra en el archivo a continuación.

Paso 4: Esquema de los componentes

El esquema de los componentes
El esquema de los componentes

Utilizo Fritzing para construir los esquemas de los componentes. El esquema es bastante sencillo.

Paso 5: el código

El código
El código

Para la codificación de esta lámpara de estado de ánimo, utilicé algunas bibliotecas del IDE de Arduino. Las bibliotecas se enumerarán en el paso 7.

Para el código, debe tener el propio software Arduino. Proporcionaré el enlace para descargar aquí.

Además, ¿el boceto o el código se mostrarán a continuación?

También proporcioné el archivo para el código en Github.com en caso de que el código a continuación sea demasiado largo para copiarlo aquí;)

#include #include #include #ifdef _AVR_ #include #endif

SoftwareSerial BT (10, 11);

#define LED_PIN 7 #define NUM_LEDS 60 #define BRIGHTNESS 200 #define SPEED 10 #define INMEDIATELY 0 #define RAINBOW_SPEED 50 leds CRGB [NUM_LEDS];

Tira de Adafruit_NeoPixel = Adafruit_NeoPixel (NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);

bool offOld = LOW;

bool WhiteOld = BAJO; bool RedOld = BAJO; bool GreenOld = BAJO; bool BlueOld = BAJO; bool TopazOld = BAJO; bool LilacOld = BAJO; bool RainbowOld = BAJO; bool rgbOld = BAJO; int showType = 0;

configuración vacía () {

FastLED.addLeds (leds, NUM_LEDS); //////////

BT.begin (9600);

BT.println ("Conectado a Arduino");

strip.setBrightness (BRILLO);

strip.begin ();

strip.show ();

}

char a;

bucle vacío () {

para (int i = 0; i <= 59; i ++) {leds = CRGB (255, 255, 255); FastLED.show (); } bool off = LOW; bool Blanco = BAJO; bool Azul = BAJO; bool Rojo = BAJO; bool Verde = BAJO; bool Topacio = BAJO; bool Lila = BAJO; bool Rainbow = BAJO; bool rgb = BAJO; bool ende; if (BT.available ()) {a = (char) BT.read ();

si (a == 'o')

{off = HIGH; BT.println ("APAGANDO LOS LED …");

}demás{

apagado = BAJO; } // ============================================= ==========================================

si (a == 'w')

{Blanco = ALTO; BT.println ("APAGANDO LOS LEDES BLANCOS");

}demás{

Blanco = BAJO; } // ============================================= ==========================================

si (a == 'b')

{Azul = ALTO; BT.println ("CAMBIANDO A AZUL"); } else {Azul = BAJO; }

// ===========================================================================================

si (a == 'r')

{Rojo = ALTO; BT.println ("CAMBIANDO A ROJO"); } else {Rojo = BAJO; }

// ===========================================================================================

si (a == 'g')

{Verde = ALTO; BT.println ("CAMBIANDO A VERDE"); } else {Verde = BAJO; }

// ===========================================================================================

si (a == 't')

{Topacio = ALTO; BT.println ("CAMBIANDO A TOPAZ"); } más {Topacio = BAJO; }

// ===========================================================================================

si (a == 'l')

{Lila = ALTO; BT.println ("CAMBIANDO A LILA"); } else {Lilac = LOW; }

// ===========================================================================================

si (a == 'a')

{Arco iris = ALTO; BT.println ("ANIMACIÓN ARCO IRIS"); } else {Rainbow = LOW; } // ============================================= ==========================================

si (a == 'm')

{rgb = ALTO; BT.println ("MEZCLA DE COLORES"); } else {rgb = LOW; }} if (off == LOW && offOld == HIGH) {delay (20); if (apagado == BAJO) {showType = 0; // Desactivada la animación Type 0 startShow (showType); }}

// ===========================================================================================

if (Blanco == BAJO && BlancoOld == ALTO) {

retraso (20); if (Blanco == BAJO) {showType = 1; // Animación blanca Tipo 1 startShow (showType); }}

// ============================================== =========================================== Si (Rojo == LOW && RedOld == HIGH) {retraso (20); if (Rojo == BAJO) {showType = 2; // Animación roja Tipo 2 startShow (showType); }}

// ===========================================================================================

if (Verde == BAJO && VerdeOld == ALTO) {

retraso (20); if (Verde == BAJO) {showType = 3; // Animación verde Tipo 3 startShow (showType); }} // ============================================ ===========================================

if (Azul == BAJO && AzulOld == ALTO) {

retraso (20); if (Azul == BAJO) {showType = 4; // Animación azul Tipo 4 startShow (showType); }}

// ===========================================================================================

if (Topaz == BAJO && TopazOld == ALTO) {

retraso (20); si (Topacio == BAJO) {showType = 5; // Animación de topacio Tipo 5 startShow (showType); }}

// ===========================================================================================

if (Lila == BAJA && LilacViejo == ALTA) {

retraso (20); if (Lila == LOW) {showType = 6; // Animación de topacio Tipo 6 startShow (showType); }} // ============================================ ===========================================

if (Rainbow == LOW && RainbowOld == HIGH) {

retraso (20);

if (Arco iris == BAJO) {

showType = 8; // Animación de arco iris Tipo 8 startShow (showType); }}

// ===========================================================================================

if (rgb == BAJO && rgbOld == ALTO) {

retraso (20);

if (rgb == BAJO) {

showType = 7; // Mezcla de animación Tipo 7 rgb = HIGH;

startShow (showType);

} }

WhiteOld = Blanco;

RedOld = Rojo; BlueOld = Azul; GreenOld = Verde; TopazOld = Topacio; LilacOld = Lila; offOld = desactivado; RainbowOld = Arco iris; rgbOld = rgb;

}

void startShow (int i) {

cambiar (i) {

caso 0: colorWipe (strip. Color (0, 0, 0), SPEED); // Fuera negro

rotura;

caso 1: strip.setBrightness (255); // Cambia el brillo a MAX

colorWipe (strip. Color (255, 255, 255), INMEDIATAMENTE); // White strip.setBrightness (BRIGHTNESS); // Restablecer la ruptura de brillo al valor predeterminado;

caso 2: colorWipe (strip. Color (255, 0, 0), SPEED); // Rojo

rotura;

caso 3: colorWipe (strip. Color (0, 255, 0), SPEED); // Verde

rotura;

caso 4: colorWipe (strip. Color (0, 0, 255), SPEED); // Azul

rotura;

caso 5: colorWipe (strip. Color (0, 250, 255), SPEED); // Topacio

rotura;

caso 6: colorWipe (strip. Color (221, 130, 255), SPEED); // Lila

rotura; caso 7: colorWipe (strip. Color (255, 0, 0), SPEED); // Red colorWipe (strip. Color (0, 255, 0), SPEED); // Green colorWipe (strip. Color (0, 0, 255), SPEED); // Blue theatreChase (strip. Color (0, 0, 127), SPEED); // Blue theatreChase (strip. Color (127, 0, 0), SPEED); // Red theatreChase (strip. Color (0, 127, 0), SPEED); // Rotura verde;

caso 8: rainbowCycle (25);

rotura; }} void colorWipe (uint32_t c, uint8_t espera) {for (uint16_t i = 0; i

void rainbowCycle (uint8_t espera) {

uint16_t i, j;

for (j = 0; j <256 * 10; j ++) {// 5 ciclos de todos los colores en la rueda para (i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, Wheel (((i * 256 / strip.numPixels ()) + j) y 255)); } strip.show (); retrasar (esperar); }}

void theaterChase (uint32_t c, uint8_t espera) {

for (int j = 0; j <10; j ++) {// haz 10 ciclos de persecución for (int q = 0; q <3; q ++) {for (int i = 0; i <strip.numPixels (); i = i + 3) {strip.setPixelColor (i + q, c); // activa cada tercer píxel} strip.show ();

retrasar (esperar);

para (int i = 0; i <strip.numPixels (); i = i + 3) {strip.setPixelColor (i + q, 0); // apagar cada tercer píxel}}}}

uint32_t Wheel (byte WheelPos) {

WheelPos = 255 - WheelPos; if (WheelPos <85) {return strip. Color (255 - WheelPos * 3, 0, WheelPos * 3); } si (WheelPos <170) {WheelPos - = 85; return strip. Color (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos - = 170; return strip. Color (WheelPos * 3, 255 - WheelPos * 3, 0); }

Paso 6: controlar la lámpara

Controlando la Lámpara
Controlando la Lámpara
Controlando la Lámpara
Controlando la Lámpara
Controlando la Lámpara
Controlando la Lámpara

El color de la lámpara se puede controlar usando su teléfono inteligente.

Primero, debe instalar la aplicación llamada 'Bluetooth Terminal HC-05' de Google Play Store o Apple App Store.

Estos son los pasos para controlar la lámpara a través de su propio teléfono inteligente:

1. Encienda el bluetooth en su teléfono inteligente.

2. Abra la aplicación que es 'Bluetooth Terminal HC-05'.

3. Ahora debería ver los dispositivos emparejados en la pantalla. Elija 'HC-05'.

4. Ahora puede ver que aparece una pantalla negra en su teléfono inteligente que indicará 'conectado a Arduino'.

5. Aquí está la parte divertida, si escribe 'b' en el cuadro de texto, la lámpara cambiará a color azul. Aquí está la lista del comando que puede escribir para la lámpara:

- w para blanco

- b de azul

- g de verde

- r para rojo

- t de topacio

- l para lila

- a para la animación del arco iris

- o para fuera

Divertido, ¿verdad?

6. Por último, pero no menos importante, también puede personalizar el botón debajo de la pantalla con el texto que desee, como se muestra en la imagen de arriba.

Paso 7: ¡Disfruta de tu lámpara de humor

¡Disfruta de tu lámpara de humor!
¡Disfruta de tu lámpara de humor!
¡Disfruta de tu lámpara de humor!
¡Disfruta de tu lámpara de humor!
¡Disfruta de tu lámpara de humor!
¡Disfruta de tu lámpara de humor!

Espero que les guste este Instructables. Fue un proyecto muy desafiante para mí, pero logré terminarlo por completo cuando tenía 14 años. Envíenme algunos comentarios para futuras mejoras.

¡Gracias por leer y Feliz Navidad!

Recomendado: