Sommario:

Lampada LED intelligente controllata da smartphone Bluetooth: 7 passaggi
Lampada LED intelligente controllata da smartphone Bluetooth: 7 passaggi

Video: Lampada LED intelligente controllata da smartphone Bluetooth: 7 passaggi

Video: Lampada LED intelligente controllata da smartphone Bluetooth: 7 passaggi
Video: SwitchBot Lampadina a LED Smart | Non necessita di Hub per funzionare bastano Bluetooth e Wi-Fi 2024, Novembre
Anonim
Image
Image
Lampada LED intelligente controllata da smartphone Bluetooth
Lampada LED intelligente controllata da smartphone Bluetooth

Sogno sempre di controllare i miei apparecchi di illuminazione. Poi qualcuno ha realizzato un'incredibile lampada a LED colorata. Di recente mi sono imbattuto in una lampada a LED di Joseph Casha su Youtube. Prendendo spunto da esso, ho deciso di aggiungere diverse funzioni mantenendo il design contemporaneo.

Il piano è rendere la lampada più user-friendly aggiungendo un modulo Bluetooth e una striscia LED RGB indirizzabile WS2812B. Ciò ha permesso di controllare il colore dell'illuminazione semplicemente utilizzando un'app per smartphone.

Passaggio 1: raccogliere i materiali

Raccogli i materiali
Raccogli i materiali
Raccogli i materiali
Raccogli i materiali

Utensili:

• Stazione di saldatura

• Pistola di soffiaggio del riscaldatore

• Trapano

• Sega circolare

• Puzzle

• Pinze tagliafili

• Pinze a becchi stretti

Materiali:

• Lavagna acrilica traslucida

• Legno di cipresso giapponese (oppure puoi usare qualsiasi legno purché sia stabile e abbastanza forte)

• Viti

• Palo o bastone in acciaio inossidabile

• Fili (io uso il filo rosso e nero)

• Stagno di saldatura

Componenti elettronici:

• Arduino Nano

• Modulo Bluetooth HC-05 (ho deciso di usarlo perché è più facile da codificare rispetto al modulo Wifi ESP8266)

• Striscia LED RGB indirizzabile WS2812B

• Modulo step-down LM2596

• Jack di alimentazione a barilotto CC

Passaggio 2: costruzione della struttura della lampada

Costruire la struttura della lampada
Costruire la struttura della lampada
Costruire la struttura della lampada
Costruire la struttura della lampada

In questo passaggio, ho due modi per costruire la struttura del metodo di lavorazione del legno a lampada e del metodo di stampa 3D. Io uso il primo metodo. Se preferisci realizzarlo utilizzando una stampante 3D, sentiti libero di passare al passaggio 2 per il modello che ho progettato.

Per la parte superiore della lampada, riscaldo e piego la tavola acrilica a un angolo di 90° come mostrato sopra. Ci vuole molto tempo per piegarlo ad un angolo e una direzione così perfetti.

Successivamente, per la parte inferiore della lampada. Purtroppo… il giorno in cui sto lavorando alla parte inferiore della lampada, mi sono completamente dimenticata di fare una foto della costruzione! Me ne sono accorto quando ho finito questo progetto. Ma farò del mio meglio per fornirti la misura della parte inferiore della lampada.

Fondamentalmente, devi solo tagliare quattro blocchi di legno che misurano 13x6x2 cm (LxAxP). Successivamente, è necessario eseguire un taglio simile a una scala sul bordo del legno. L'immagine verrà mostrata sopra.

Passaggio 3: le forme 3D

Le forme 3D
Le forme 3D
Le forme 3D
Le forme 3D

Per chiunque abbia la propria stampante 3D, sei nel passo giusto. Ciò ha reso questa lampada facile da usare.

Ad essere onesti, questo è stato il passo più difficile che ho fatto. Questa è la prima cosa che ho fatto subito dopo aver installato il software!

Uso Sketchup Pro per progettare la struttura della lampada. Sfortunatamente, non sono abbastanza abile per progettare la sua componente interna. Il link al mio modello 3D è nel file sottostante.

Passaggio 4: lo schema dei componenti

Lo schema dei componenti
Lo schema dei componenti

Uso Fritzing per costruire gli schemi dei componenti. Lo schema è in realtà abbastanza facile.

Passaggio 5: il codice

Il codice
Il codice

Per la codifica di questa lampada d'atmosfera, ho utilizzato alcune librerie dell'IDE di Arduino. Le librerie verranno elencate in basso al passaggio 7.

Per il codice, è necessario disporre del software Arduino stesso. Fornirò il link per il download qui.

Inoltre, lo schizzo o il codice verrà mostrato di seguito?

Ho anche fornito il file per il codice in Github.com nel caso in cui il codice sottostante fosse troppo lungo per essere copiato qui;)

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

SoftwareSeriale BT(10, 11);

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

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

bool offOld = LOW;

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

void setup() {

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

BT.begin(9600);

BT.println("Connesso ad Arduino");

strip.setBrightness(LUMINOSITÀ);

strip.begin();

strip.show();

}

carattere a;

ciclo vuoto() {

for (int i = 0; i <= 59; i++) { leds = CRGB(255, 255, 255); FastLED.show(); } bool off = BASSO; bool Bianco = BASSO; bool Blu = BASSO; bool Rosso = BASSO; bool Verde = BASSO; bool Topazio = BASSO; bool Lilla = BASSO; bool Arcobaleno = BASSO; bool rgb = BASSO; fine bollo; if (BT.disponibile()) { a= (char)BT.read();

if(a=='o')

{ spento = ALTO; BT.println("SPEGNIMENTO LED..");

}altro{

spento = BASSO; } // ============================================== ============================================

if(a=='w')

{ Bianco = ALTO; BT.println("I LED DIVENTANO BIANCHI");

}altro{

Bianco = BASSO; } // ============================================== ============================================

if(a=='b')

{ Blu = ALTO; BT.println("CAMBIA IN BLU"); }else{ Blu = BASSO; }

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

if(a=='r')

{ Rosso = ALTO; BT.println("CAMBIA IN ROSSO"); }else{ Rosso = BASSO; }

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

if(a=='g')

{ Verde = ALTO; BT.println("CAMBIA IN VERDE"); }else{ Verde = BASSO; }

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

if(a=='t')

{ Topazio = ALTO; BT.println("CAMBIA IN TOPAZIO"); }else{ Topazio = BASSO; }

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

if(a=='l')

{ Lilla = ALTO; BT.println("CAMBIA IN LILLA"); }else{ Lilla = BASSO; }

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

if(a=='a')

{ Arcobaleno = ALTO; BT.println("ANIMAZIONE ARCOBALENO"); }else{ Arcobaleno = BASSO; } // ============================================== ============================================

if(a=='m')

{rgb = ALTO; BT.println("MIX COLORI"); }altrimenti{ rgb = BASSO; } } if (off == BASSO && offOld == ALTO) { ritardo(20); if (off == BASSO) { showType = 0; // Off tipo di animazione 0 startShow(showType); } }

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

if (Bianco == BASSO && Bianco Vecchio == ALTO) {

ritardo(20); if (Bianco == BASSO) { showType = 1; // Animazione bianca Tipo 1 startShow(showType); } }

// =============================================== =========================================== if (Rosso == BASSO && RedOld == HIGH) { ritardo (20); if (Rosso == BASSO) { showType = 2; // Animazione rossa Tipo 2 startShow(showType); } }

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

if (Verde == BASSO && VerdeVecchio == ALTO) {

ritardo(20); if (Verde == BASSO) { showType = 3; // Animazione verde Tipo 3 startShow(showType); } } // ============================================= =============================================

if (Blu == BASSO && Blu Vecchio == ALTO) {

ritardo(20); if (Blu == BASSO) { showType = 4; // Animazione blu Tipo 4 startShow(showType); } }

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

if (Topazio == BASSO && Topazio Vecchio == ALTO) {

ritardo(20); if (Topazio == BASSO) { showType = 5; // Animazione Topaz Tipo 5 startShow(showType); } }

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

if (Lilla == BASSO && LillaOld == ALTO) {

ritardo(20); if (Lilla == BASSO) { showType = 6; // Animazione Topaz Tipo 6 startShow(showType); } } // ============================================= =============================================

if (Arcobaleno == BASSO && Arcobaleno Vecchio == ALTO) {

ritardo(20);

if (Arcobaleno == BASSO) {

showType = 8; // Animazione arcobaleno Tipo 8 startShow(showType); } }

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

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

ritardo(20);

if (rgb == BASSO) {

showType = 7; // Mix tipo di animazione 7 rgb = HIGH;

startShow(showType);

} }

BiancoVecchio = Bianco;

RossoVecchio = Rosso; BluVecchio = Blu; VerdeVecchio = Verde; TopazOld = Topazio; LilacOld = Lilla; spentoVecchio = spento; RainbowOld = Arcobaleno; rgbOld = rgb;

}

void startShow(int i) {

interruttore(i){

caso 0: colorWipe(strip. Color(0, 0, 0), SPEED); // Nero/spento

rottura;

caso 1: strip.setBrightness(255); // Cambia la luminosità in MAX

colorWipe(strip. Color(255, 255, 255), IMMEDIATAMENTE); // Striscia bianca.setBrightness(BRIGHTNESS); // Reimposta la luminosità al valore predefinito break;

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

rottura;

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

rottura;

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

rottura;

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

rottura;

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

rottura; 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 theaterChase(strip. Color(0, 0, 127), SPEED); // Blue theaterChase(strip. Color(127, 0, 0), SPEED); // Red theaterChase(strip. Color(0, 127, 0), SPEED); // Pausa verde;

caso 8: rainbowCycle(25);

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

void rainbowCycle(uint8_t wait) {

uint16_t io, j;

for(j=0; j<256*10; j++) { // 5 cicli di tutti i colori sulla ruota for(i=0; i< strip.numPixels(); i++) { strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255)); } strip.show(); ritardo (attesa); } }

void theaterChase(uint32_t c, uint8_t wait) {

for (int j=0; j<10; j++) { //esegui 10 cicli di inseguimento per (int q=0; q < 3; q++) { for (int i=0; i < strip.numPixels(); i=i+3) { strip.setPixelColor(i+q, c); //attiva ogni terzo pixel } strip.show();

ritardo (attesa);

for (int i=0; i < strip.numPixels(); i=i+3) { strip.setPixelColor(i+q, 0); //spegne ogni terzo pixel } } } }

uint32_t Wheel(byte WheelPos) {

WheelPos = 255 - WheelPos; if(WheelPos < 85) { return strip. Color(255 - WheelPos * 3, 0, WheelPos * 3); } if(PosRuota < 170) { PosRuota -= 85; striscia di ritorno. Color(0, WheelPos * 3, 255 - WheelPos * 3); } PosizioneRuota -= 170; striscia di ritorno. Color(WheelPos * 3, 255 - WheelPos * 3, 0); }

Passaggio 6: controllo della lampada

Controllo della lampada
Controllo della lampada
Controllo della lampada
Controllo della lampada
Controllo della lampada
Controllo della lampada

Il colore della lampada può essere controllato utilizzando il tuo smartphone.

Innanzitutto, devi installare l'app chiamata "Bluetooth Terminal HC-05" da Google Play Store o Apple App Store.

Questi sono i passaggi per controllare la lampada tramite il proprio smartphone:

1. Attiva il bluetooth nel tuo smartphone.

2. Aprire l'app "Bluetooth Terminal HC-05".

3. Ora dovresti vedere i dispositivi associati sullo schermo. Scegli 'HC-05'.

4. Ora puoi vedere apparire una schermata nera nel tuo smartphone che indicherà 'connesso ad Arduino'.

5. Ecco la parte divertente, se digiti 'b' nella casella di testo, la lampada diventerà di colore blu. Ecco l'elenco dei comandi che puoi digitare per la lampada:

- w per bianco

-b per blu

- g per il verde

- r per rosso

- t per topazio

- l per lilla

- un'animazione per l'arcobaleno

- o per spento

Divertente vero?

6. Ultimo ma non meno importante, puoi anche personalizzare il pulsante sotto lo schermo con il testo desiderato, come mostrato nell'immagine sopra.

Passaggio 7: goditi la tua lampada d'atmosfera

Goditi la tua lampada d'atmosfera!!
Goditi la tua lampada d'atmosfera!!
Goditi la tua lampada dell'umore!!
Goditi la tua lampada dell'umore!!
Goditi la tua lampada d'atmosfera!!
Goditi la tua lampada d'atmosfera!!

Spero che questo Instructables ti piaccia. È stato un progetto molto impegnativo per me ma sono riuscito a portarlo a termine completamente quando ero un ragazzo di 14 anni. Dammi qualche feedback per futuri miglioramenti.

Grazie per la lettura e Buon Natale!

Consigliato: