Taula de continguts:

Làmpada LED intel·ligent controlada per telèfon intel·ligent Bluetooth: 7 passos
Làmpada LED intel·ligent controlada per telèfon intel·ligent Bluetooth: 7 passos

Vídeo: Làmpada LED intel·ligent controlada per telèfon intel·ligent Bluetooth: 7 passos

Vídeo: Làmpada LED intel·ligent controlada per telèfon intel·ligent Bluetooth: 7 passos
Vídeo: Night 2024, Desembre
Anonim
Image
Image
Làmpada LED intel·ligent controlada per telèfon intel·ligent Bluetooth
Làmpada LED intel·ligent controlada per telèfon intel·ligent Bluetooth

Sempre somio amb controlar els meus aparells d’il·luminació. Aleshores algú va fabricar una increïble llum LED de colors. Fa poc em vaig trobar amb una làmpada LED de Joseph Casha a Youtube. Inspirant-me en ell, vaig decidir afegir diverses funcions mantenint el disseny contemporani.

El pla és fer que la làmpada sigui més fàcil d’utilitzar afegint un mòdul Bluetooth i una banda LED WS2812B RGB adreçable. Això va permetre controlar el color de la il·luminació només mitjançant una aplicació per a telèfons intel·ligents.

Pas 1: reuniu els materials

Reuneix els materials
Reuneix els materials
Reuneix els materials
Reuneix els materials

Eines:

• Estació de soldadura

• Pistola de bufador d’escalfador

• Màquina de trepar

• Serra circular

• Trencaclosques

• Alicates talladores de filferro

• Alicates de nas estret

Materials:

• Tauler d’acrílic translúcid

• Fusta de xiprer japonès (o podeu utilitzar qualsevol fusta sempre que sigui prou estable i forta)

• Cargols

• Pal o pal d'acer inoxidable

• Filferro (faig servir filferro vermell i negre)

• Estany de soldadura

Components electrònics:

• Arduino Nano

• Mòdul Bluetooth HC-05 (he decidit utilitzar-lo, ja que és més fàcil de codificar que el mòdul Wifi ESP8266)

• Tira LED LED RGB adreçable WS2812B

• Mòdul de baixada LM2596

• Presa de corrent DC Barrel

Pas 2: Construir l'estructura de la làmpada

Construint l'estructura de la làmpada
Construint l'estructura de la làmpada
Construint l'estructura de la làmpada
Construint l'estructura de la làmpada

En aquest pas, tinc dues maneres de construir l'estructura del mètode per treballar la fusta de les làmpades i el mètode d'impressió 3D. Faig servir el primer mètode. Si preferiu fer-ho mitjançant una impressora 3D, no dubteu a passar al pas 2 del model que he dissenyat.

Per a la part superior de la làmpada, escalfo i dobleixo el tauler acrílic fins a un angle de 90 °, tal com es mostra més amunt. Em prenc força temps doblegar-lo a un angle i una direcció tan perfectes.

A continuació, per a la part inferior del llum. Malauradament … el dia que estic treballant a la part inferior del llum, vaig oblidar completament de fer una foto de la construcció. Em vaig adonar que quan vaig acabar aquest projecte. Però faré tot el possible per proporcionar-vos la mesura de la part inferior del llum.

Bàsicament, només cal tallar quatre blocs de fusta de 13x6x2cm (LxHxW). A continuació, heu de tallar un tall semblant a una escala a la vora de la fusta. La imatge es mostrarà a sobre.

Pas 3: les formes 3D

Les formes 3D
Les formes 3D
Les formes 3D
Les formes 3D

Per a qualsevol persona que tingui la seva pròpia impressora 3D, esteu en el pas correcte. Això va fer que aquesta làmpada fos fàcil d'utilitzar.

Per ser sincer, aquest va ser el pas més dur que vaig fer. Això és el primer que vaig fer just després d’instal·lar el programari.

Utilitzo Sketchup Pro per dissenyar l’estructura del llum. Malauradament, no sóc prou hàbil per dissenyar el seu component interior. L’enllaç al meu model 3D es troba al fitxer següent.

Pas 4: esquema dels components

L'esquema dels components
L'esquema dels components

Utilitzo Fritzing per construir els esquemes dels components. L’esquema és realment bastant fàcil.

Pas 5: el codi

El codi
El codi

Per a la codificació d'aquest llum d'ànim, he utilitzat algunes biblioteques de l'IDE Arduino. Les biblioteques es mostraran al pas 7.

Per al codi, heu de tenir el propi programari Arduino. Proporcionaré l'enllaç per descarregar aquí.

A més, es mostrarà l'esbós o el codi a continuació?

També he proporcionat el fitxer del codi a Github.com per si el codi següent és massa llarg per copiar-lo 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 IMMEDIATELY 0 #define RAINBOW_SPEED 50 leds CRGB [NUM_LEDS];

Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);

bool offOld = BAIX;

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

configuració nul·la () {

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

BT.begin (9600);

BT.println ("Connectat a Arduino");

strip.setBrightness (LLUMINOSITAT);

strip.begin ();

strip.show ();

}

char a;

bucle buit () {

for (int i = 0; i <= 59; i ++) {leds = CRGB (255, 255, 255); FastLED.show (); } bool off = BAIX; bool Blanc = BAIX; bool Blau = BAIX; bool vermell = BAIX; bool Verd = BAIX; bool Topazi = BAIX; bool Lila = BAIX; bool Rainbow = BAIX; bool rgb = BAIX; bool ende; if (BT.available ()) {a = (char) BT.read ();

if (a == 'o')

{off = ALT; BT.println ("LEDS D'APAGADA..");

} més {

apagat = BAIX; } // ================================================ ============================================

if (a == 'w')

{Blanc = ALT; BT.println ("LEDS BLANCS");

} més {

Blanc = BAIX; } // ================================================ ============================================

if (a == 'b')

{Blau = ALT; BT.println ("CANVI AL BLAU"); } else {Blau = BAIX; }

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

if (a == 'r')

{Vermell = ALT; BT.println ("CANVI A VERMELL"); } else {Vermell = BAIX; }

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

if (a == 'g')

{Verd = ALT; BT.println ("CANVI AL VERD"); } else {Verd = BAIX; }

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

if (a == 't')

{Topazi = ALT; BT.println ("CANVI A TOPAZ"); } else {Topazi = BAIX; }

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

if (a == 'l')

{Lila = ALTA; BT.println ("CANVI A LA LILA"); } else {Lila = BAIX; }

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

if (a == 'a')

{Arc de Sant Martí = ALT; BT.println ("ANIMACIÓ DEL RAINBOW"); } else {Arc de Sant Martí = BAIX; } // ================================================ ============================================

if (a == 'm')

{rgb = ALTA; BT.println ("MIX COLORS"); } else {rgb = BAIX; }} if (off == LOW && offOld == HIGH) {delay (20); if (off == BAIX) {showType = 0; // Desactivació de l’animació Tipus 0 startShow (showType); }}

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

if (Blanc == BAIX i & BlancOld == ALT) {

retard (20); if (Blanc == BAIX) {showType = 1; // Animació en blanc Tipus 1 startShow (showType); }}

// ================================================= =========================================== si (vermell == BAIX && RedOld == HIGH) {delay (20); if (Vermell == BAIX) {showType = 2; // Animació vermella Tipus 2 startShow (showType); }}

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

if (Verd == BAIX &&Vell == ALT) {

retard (20); if (Verd == BAIX) {showType = 3; // Animació verda Tipus 3 startShow (showType); }} // =============================================== ==============================================

if (Blau == BAIX i & BlauVell == ALT) {

retard (20); if (Blau == BAIX) {showType = 4; // Animació blava Tipus 4 startShow (showType); }}

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

if (Topazi == BAIX && TopaziOld == ALT) {

retard (20); if (Topazi == BAIX) {showType = 5; // Animació Topazi Tipus 5 startShow (showType); }}

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

if (Lila == BAIX && LilaOld == ALT) {

retard (20); if (Lila == BAIX) {showType = 6; // Animació Topazi Tipus 6 startShow (showType); }} // =============================================== ==============================================

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

retard (20);

if (Arc de Sant Martí == BAIX) {

showType = 8; // Animació Rainbow Tipus 8 startShow (showType); }}

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

if (rgb == BAIX && rgbOld == ALT) {

retard (20);

if (rgb == BAIX) {

showType = 7; // Mix animació Tipus 7 rgb = HIGH;

startShow (showType);

} }

WhiteOld = White;

RedOld = Vermell; BlueOld = Blau; GreenOld = Verd; TopaziOld = Topazi; LilacOld = Lila; offOld = off; RainbowOld = Arc de Sant Martí; rgbOld = rgb;

}

void startShow (int i) {

commutador (i) {

cas 0: colorWipe (strip. Color (0, 0, 0), SPEED); // Negre / apagat

trencar;

cas 1: strip.setBrightness (255); // Canvia la brillantor a MAX

colorWipe (strip. Color (255, 255, 255), IMMEDIATAMENT); // White strip.setBrightness (BRIGHTNESS); // Restableix la brillantor al valor predeterminat;

cas 2: colorWipe (strip. Color (255, 0, 0), SPEED); // Vermell

trencar;

cas 3: colorWipe (strip. Color (0, 255, 0), SPEED); // Verd

trencar;

cas 4: colorWipe (strip. Color (0, 0, 255), SPEED); // Blau

trencar;

cas 5: colorWipe (strip. Color (0, 250, 255), SPEED); // Topazi

trencar;

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

trencar; cas 7: colorWipe (strip. Color (255, 0, 0), SPEED); // Color vermell Netegeu (strip. Color (0, 255, 0), SPEED); // Color verd Netegeu (strip. Color (0, 0, 255), SPEED); // Blue theaterChase (strip. Color (0, 0, 127), SPEED); // Blue theaterChase (strip. Color (127, 0, 0), SPEED); // Red theaterChase (strip. Color (0, 127, 0), SPEED); // Trencament verd;

cas 8: rainbowCycle (25);

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

void rainbowCycle (uint8_t espera) {

uint16_t i, j;

for (j = 0; j <256 * 10; j ++) {// 5 cicles de tots els colors de la roda per a (i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, Wheel (((i * 256 / strip.numPixels ()) + j) & 255)); } strip.show (); retard (esperar); }}

void theatreChase (uint32_t c, uint8_t espera) {

for (int j = 0; j <10; j ++) {// feu 10 cicles de persecució de (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 a} strip.show ();

retard (esperar);

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

uint32_t Wheel (byte WheelPos) {

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

Pas 6: Control de la làmpada

Control de la làmpada
Control de la làmpada
Control de la làmpada
Control de la làmpada
Control de la làmpada
Control de la làmpada

El color de la làmpada es pot controlar mitjançant el telèfon intel·ligent.

En primer lloc, heu d’instal·lar l’aplicació anomenada "Terminal Bluetooth HC-05" de Google Play Store o Apple App Store.

Aquests són els passos per controlar la llum mitjançant el vostre propi telèfon intel·ligent:

1. Activeu el bluetooth al telèfon intel·ligent.

2. Obriu l'aplicació que és "Terminal Bluetooth HC-05".

3. Ara hauríeu de veure els dispositius aparellats a la pantalla. Trieu "HC-05".

4. Ara podeu veure que apareix una pantalla negra al vostre telèfon intel·ligent que indicarà "connectat a Arduino".

5. Aquí teniu la part divertida: si escriviu 'b' al quadre de text, el llum passarà a ser de color blau. Aquí teniu la llista de l'ordre que podeu escriure per al llum:

- w per al blanc

- b per al blau

- g per al verd

- r per al vermell

- t per a topazi

- L per lila

- una animació arc de Sant Martí

- o per fora

Diversió no?

6. Per últim, però no menys important, també podeu personalitzar el botó que hi ha a sota de la pantalla al text que desitgeu, tal com es mostra a la imatge superior.

Pas 7: gaudiu de la vostra làmpada d'ànim

Gaudeix de la teva làmpada d'ànim !!
Gaudeix de la teva làmpada d'ànim !!
Gaudeix de la teva làmpada d'ànim !!
Gaudeix de la teva làmpada d'ànim !!
Gaudeix de la teva làmpada d'ànim !!
Gaudeix de la teva làmpada d'ànim !!

Espero que us agradi aquest Instructables. Va ser un projecte molt desafiador per a mi, però vaig aconseguir acabar-ho completament amb un noi de 14 anys. Doneu-me alguns comentaris per a futures millores.

Gràcies per llegir i Bon Nadal!

Recomanat: