Tabla de contenido:
- Paso 1: Reúna los materiales
- Paso 2: construcción de la estructura de la lámpara
- Paso 3: las formas 3D
- Paso 4: Esquema de los componentes
- Paso 5: el código
- Paso 6: controlar la lámpara
- Paso 7: ¡Disfruta de tu lámpara de humor
Video: Lámpara LED inteligente controlada por teléfono inteligente Bluetooth: 7 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
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
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
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
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
Utilizo Fritzing para construir los esquemas de los componentes. El esquema es bastante sencillo.
Paso 5: 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
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
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:
ESP 8266 Nodemcu Ws 2812 Lámpara LED MOOD basada en Neopixel controlada por servidor web local: 6 pasos
ESP 8266 Nodemcu Ws 2812 Lámpara LED MOOD basada en Neopixel controlada por servidor web local: ESP 8266 Nodemcu Ws 2812 Lámpara LED MOOD basada en Neopixel controlada mediante servidor web
Control WIFI ESP8266 RGB LED STRIP - NODEMCU como mando a distancia por infrarrojos para tira de led controlado por wifi - Control de teléfono inteligente RGB LED STRIP: 4 pasos
Control WIFI ESP8266 RGB LED STRIP | NODEMCU como mando a distancia por infrarrojos para tira de led controlado por wifi | Control de teléfono inteligente con tiras de LED RGB: Hola chicos, en este tutorial aprenderemos a usar nodemcu o esp8266 como control remoto IR para controlar una tira de LED RGB y Nodemcu será controlado por teléfono inteligente a través de wifi. Entonces, básicamente, puedes controlar la TIRA LED RGB con tu teléfono inteligente
The Mummy Lamp - Lámpara inteligente controlada por WiFi: 5 pasos (con imágenes)
La lámpara de la momia - Lámpara inteligente controlada por WiFi: Hace aproximadamente 230 mil años el ser humano aprendió a controlar el fuego, esto lleva a un cambio importante en su estilo de vida ya que comenzó a trabajar por la noche también usando la luz del fuego. Podemos decir que este es el comienzo de la Iluminación Interior. Ahora yo
Carrito de compras inteligente controlado por teléfono inteligente: 7 pasos
Carrito de compras inteligente controlado por teléfono inteligente: visitar los centros comerciales puede ser divertido. Pero arrastrar el carrito de compras mientras lo llena con cosas es algo que es francamente molesto. ¡El dolor de empujarlo por esos pasillos estrechos, haciendo esos giros bruscos! Entonces, aquí hay (una especie de) oferta que puedes
Lámpara inteligente fácil de $ 5 con interfaz web para teléfono inteligente: 4 pasos
Lámpara inteligente fácil de $ 5 con interfaz web para teléfono inteligente: ¡Hola! Mi nombre es Rafael. ¡Este es mi primer Instructable! Mi principal motivo para crear esta lámpara es ayudar a las personas con movilidad reducida. Algún día, no tendremos interruptores en las paredes o enchufes difíciles de alcanzar, sino nuestros teléfonos inteligentes para controlar