Cuprins:

Lampă cu LED-uri inteligente Bluetooth controlate de smartphone: 7 pași
Lampă cu LED-uri inteligente Bluetooth controlate de smartphone: 7 pași

Video: Lampă cu LED-uri inteligente Bluetooth controlate de smartphone: 7 pași

Video: Lampă cu LED-uri inteligente Bluetooth controlate de smartphone: 7 pași
Video: Bec inteligent LED RGB PNI SH01 controlat prin Bluetooth 2024, Iulie
Anonim
Image
Image
Lampă cu LED-uri Smart controlate de smartphone-uri Bluetooth
Lampă cu LED-uri Smart controlate de smartphone-uri Bluetooth

Întotdeauna visez să-mi controlez aparatele de iluminat. Apoi cineva a realizat o lampă LED colorată incredibilă. Recent am dat peste o lampă LED de Joseph Casha pe Youtube. Inspirându-mă, am decis să adaug câteva funcții, păstrând în același timp designul contemporan.

Planul este de a face lampa să fie mai ușor de utilizat prin adăugarea unui modul Bluetooth și a unei benzi LED WS2812B RGB adresabile. Acest lucru a făcut posibilă controlul culorii iluminatului doar prin utilizarea unei aplicații pentru smartphone.

Pasul 1: Adunați materialele

Adunați materialele
Adunați materialele
Adunați materialele
Adunați materialele

Instrumente:

• Stație de lipit

• Pistol de încălzire a încălzitorului

• Mașină de găurit

• Fierăstrău circular

• Jigsaw

• Cleste pentru tăiat sârmă

• Cleste cu nas îngust

Materiale:

• Placă acrilică translucidă

• Lemn de chiparos japonez (sau puteți folosi orice lemn atâta timp cât este suficient de stabil și de puternic)

• Șuruburi

• Stâlp sau baston din oțel inoxidabil

• Sârme (folosesc sârmă roșie și neagră)

• Tinut de lipit

Componente electronice:

• Arduino Nano

• Modulul Bluetooth HC-05 (am decis să folosesc acest lucru deoarece este mai ușor de codat decât modulul Wifi ESP8266)

• Benzi LED RGB adresabile WS2812B

• LM2596 Step-down Module

• Mufă de alimentare DC Barrel

Pasul 2: Construirea structurii lămpii

Construirea structurii lămpii
Construirea structurii lămpii
Construirea structurii lămpii
Construirea structurii lămpii

În acest pas, am două moduri de a construi structura metodei de prelucrare a lemnului și a metodei de imprimare 3D. Folosesc prima metodă. Dacă preferați să o faceți utilizând o imprimantă 3D, nu ezitați să treceți la pasul 2 pentru modelul pe care l-am proiectat.

Pentru partea superioară a lămpii, încălzesc și îndoiesc placa acrilică la un unghi de 90 ° așa cum se arată mai sus. Îmi iau destul de mult timp să o îndoi într-un astfel de unghi și direcție perfectă.

Apoi, pentru partea inferioară a lămpii. Din păcate … în ziua în care lucrez la partea inferioară a lămpii, am uitat complet să fac o fotografie a construcției! Am realizat asta când am terminat acest proiect. Dar voi face tot posibilul să vă ofer măsurarea părții inferioare a lămpii.

Practic, trebuie doar să tăiați patru blocuri de lemn care măsoară 13x6x2cm (LxHxW). Apoi, trebuie să tăiați o tăietură asemănătoare unei scări la marginea lemnului. Imaginea va fi afișată mai sus.

Pasul 3: Formele 3D

Formele 3D
Formele 3D
Formele 3D
Formele 3D

Pentru oricine are propria imprimantă 3D, sunteți în pasul potrivit. Acest lucru a făcut această lampă ușor de utilizat.

Sincer să fiu, acesta a fost cel mai greu pas pe care l-am făcut. Acesta este primul lucru pe care l-am făcut imediat după instalarea software-ului!

Folosesc Sketchup Pro pentru a proiecta structura lămpii. Din păcate, nu sunt suficient de abil pentru a-i proiecta componenta interioară. Link-ul către modelul meu 3D se află în fișierul de mai jos.

Pasul 4: Schema componentelor

Schema componentelor
Schema componentelor

Folosesc Fritzing pentru a construi schemele componentelor. Schema este de fapt destul de ușoară.

Pasul 5: Codul

Codul
Codul

Pentru codarea acestei lămpi de dispoziție, am folosit câteva biblioteci din Arduino IDE. Bibliotecile vor fi listate la pasul 7.

Pentru cod, trebuie să aveți software-ul Arduino în sine. Voi oferi linkul de descărcat aici.

De asemenea, schița sau codul vor fi afișate mai jos?

De asemenea, am furnizat fișierul pentru cod în Github.com în cazul în care codul de mai jos este prea lung pentru a fi copiat aici;)

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

Software Serial BT (10, 11);

#define LED_PIN 7 #define NUM_LEDS 60 #define BRIGHTNESS 200 #define SPEED 10 #define IMEDIAT 0 #define RAINBOW_SPEED 50 led-uri CRGB [NUM_LEDS];

Adafruit_NeoPixel strip = 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 = LOW; bool rgbOld = LOW; int showType = 0;

configurare nulă () {

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

BT.begin (9600);

BT.println („Conectat la Arduino”);

strip.setBrightness (LUMINOSITATE);

strip.begin ();

strip.show ();

}

char a;

bucla nulă () {

for (int i = 0; i <= 59; i ++) {leds = CRGB (255, 255, 255); FastLED.show (); } bool off = LOW; bool Alb = LOW; bool Blue = LOW; bool Red = LOW; bool Verde = LOW; bool Topaz = LOW; bool Lilac = LOW; bool Rainbow = LOW; bool rgb = LOW; bool ende; if (BT.available ()) {a = (char) BT.read ();

if (a == 'o')

{off = HIGH; BT.println ("OPRIRE LED-uri..");

} altceva {

off = LOW; } // ================================================ ============================================

if (a == 'w')

{Alb = ÎNALT; BT.println („LED-urile de ALBARE”);

} altceva {

Alb = LOW; } // ================================================ ============================================

if (a == 'b')

{Albastru = HIGH; BT.println („SCHIMBARE LA ALBASTRU”); } else {Albastru = LOW; }

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

if (a == 'r')

{Roșu = ÎNALT; BT.println („CHANGING TO RED”); } else {Red = LOW; }

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

if (a == 'g')

{Verde = ÎNALT; BT.println („SCHIMBARE LA VERDE”); } else {Green = LOW; }

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

if (a == 't')

{Topaz = HIGH; BT.println ("SCHIMBARE LA TOPAZ"); } else {Topaz = LOW; }

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

if (a == 'l')

{Liliac = HIGH; BT.println („SCHIMBARE LA LILAC”); } else {Lilac = LOW; }

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

if (a == 'a')

{Curcubeu = ÎNALT; BT.println ("ANIMAȚIA RAINBOW"); } else {Rainbow = LOW; } // ================================================ ============================================

if (a == 'm')

{rgb = HIGH; BT.println ("MIX CULORI"); } else {rgb = LOW; }} if (off == LOW && offOld == HIGH) {întârziere (20); if (off == LOW) {showType = 0; // Dezactivare animație Tipul 0 startShow (showType); }}

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

if (Alb == LOW && WhiteOld == HIGH) {

întârziere (20); if (Alb == LOW) {showType = 1; // Animație albă Tip 1 startShow (showType); }}

// ================================================= ========================================== dacă (roșu == LOW && RedOld == HIGH) {întârziere (20); if (Red == LOW) {showType = 2; // Animatie rosie Tip 2 startShow (showType); }}

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

if (Verde == LOW && GreenOld == HIGH) {

întârziere (20); if (Verde == LOW) {showType = 3; // Animatie verde Tip 3 startShow (showType); }} // =============================================== ==============================================

if (Albastru == LOW && BlueOld == HIGH) {

întârziere (20); if (Albastru == LOW) {showType = 4; // Animație albastră Tip 4 startShow (showType); }}

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

if (Topaz == LOW && TopazOld == HIGH) {

întârziere (20); if (Topaz == LOW) {showType = 5; // Topaz animație Tipul 5 startShow (showType); }}

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

if (Lilac == LOW && LilacOld == HIGH) {

întârziere (20); if (Liliac == LOW) {showType = 6; // Topaz animație Tip 6 startShow (showType); }} // =============================================== ==============================================

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

întârziere (20);

if (Rainbow == LOW) {

showType = 8; // Curcubeu animație Tip 8 startShow (showType); }}

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

if (rgb == LOW && rgbOld == HIGH) {

întârziere (20);

if (rgb == LOW) {

showType = 7; // Mixare animație Tip 7 rgb = HIGH;

startShow (showType);

} }

WhiteOld = White;

RedOld = Red; BlueOld = Albastru; GreenOld = Verde; TopazOld = Topaz; LilacOld = Lilac; offOld = off; RainbowOld = Rainbow; rgbOld = rgb;

}

void startShow (int i) {

comuta (i) {

caz 0: colorWipe (strip. Color (0, 0, 0), SPEED); // Negru / oprit

pauză;

cazul 1: strip.setBrightness (255); // Schimbă Luminozitatea la MAX

colorWipe (strip. Color (255, 255, 255), IMEDIAT); // White strip.setBrightness (LUMINOSITATE); // Resetați Luminozitatea la valoarea implicită;

cazul 2: colorWipe (strip. Color (255, 0, 0), SPEED); // Roșu

pauză;

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

pauză;

cazul 4: colorWipe (strip. Color (0, 0, 255), SPEED); // Albastru

pauză;

cazul 5: colorWipe (strip. Color (0, 250, 255), SPEED); // Topaz

pauză;

cazul 6: colorWipe (strip. Color (221, 130, 255), SPEED); // Liliac

pauză; cazul 7: colorWipe (strip. Color (255, 0, 0), SPEED); // Culoare roșie Ștergeți (strip. Color (0, 255, 0), SPEED); // Culoare verde Ștergeți (strip. Color (0, 0, 255), SPEED); // Blue theaterChase (strip. Color (0, 0, 127), SPEED); // Blue TheatreChase (strip. Color (127, 0, 0), SPEED); // Red theaterChase (strip. Color (0, 127, 0), SPEED); // Pauza verde;

cazul 8: rainbowCycle (25);

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

void rainbowCycle (uint8_t așteptați) {

uint16_t i, j;

for (j = 0; j <256 * 10; j ++) {// 5 cicluri de toate culorile pe roată pentru (i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, Wheel (((i * 256 / strip.numPixels ()) + j) & 255)); } strip.show (); întârziere (așteptați); }}

void theatreChase (uint32_t c, uint8_t așteptați) {

for (int j = 0; j <10; j ++) {// faceți 10 cicluri de urmărire pentru (int q = 0; q <3; q ++) {for (int i = 0; i <strip.numPixels (); i = i + 3) {strip.setPixelColor (i + q, c); // porniți fiecare al treilea pixel pe} strip.show ();

întârziere (așteptați);

for (int i = 0; i <strip.numPixels (); i = i + 3) {strip.setPixelColor (i + q, 0); // opriți fiecare al treilea pixel}}}}

uint32_t Wheel (octet WheelPos) {

WheelPos = 255 - WheelPos; if (WheelPos <85) {return strip. Color (255 - WheelPos * 3, 0, WheelPos * 3); } if (WheelPos <170) {WheelPos - = 85; bandă de întoarcere. Culoare (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos - = 170; bandă de întoarcere. Culoare (WheelPos * 3, 255 - WheelPos * 3, 0); }

Pasul 6: Controlul lămpii

Controlul lămpii
Controlul lămpii
Controlul lămpii
Controlul lămpii
Controlul lămpii
Controlul lămpii

Culoarea lămpii poate fi controlată utilizând telefonul smartphone.

Mai întâi, trebuie să instalați aplicația numită „Terminal Bluetooth HC-05” din Google Play Store sau Apple App Store.

Iată pașii pentru a controla lampa prin intermediul propriului smartphone:

1. Porniți Bluetooth în telefonul smartphone.

2. Deschideți aplicația care este „Terminalul Bluetooth HC-05”.

3. Acum ar trebui să vedeți dispozitivele asociate pe ecran. Alegeți „HC-05”.

4. Acum puteți vedea pe ecranul dvs. un ecran negru care va indica „conectat la Arduino”.

5. Iată partea distractivă, dacă tastați „b” în caseta de text, lampa se va transforma în culoare albastră. Iată lista comenzii pe care o puteți introduce pentru lampă:

- w pentru alb

- b pentru albastru

- g pentru verde

- r pentru roșu

- t pentru topaz

- Eu pentru liliac

- o pentru animație curcubeu

- o pentru off

Distracție nu?

6. Nu în ultimul rând, puteți personaliza butonul de sub ecran cu textul dorit, așa cum se arată în imaginea de mai sus.

Pasul 7: Bucurați-vă de lampa voastră de dispoziție

Bucurați-vă de lampa voastră de dispoziție !!
Bucurați-vă de lampa voastră de dispoziție !!
Bucurați-vă de lampa voastră de dispoziție !!
Bucurați-vă de lampa voastră de dispoziție !!
Bucurați-vă de lampa voastră de dispoziție !!
Bucurați-vă de lampa voastră de dispoziție !!

Sper să vă placă acest Instructables. A fost un proiect foarte provocator pentru mine, dar am reușit să-l termin complet ca un băiat de 14 ani. Dă-mi feedback pentru îmbunătățirile viitoare.

Mulțumesc pentru lectură și Crăciun fericit!

Recomandat: