Tartalomjegyzék:

Bluetooth Okostelefonnal vezérelt intelligens LED-lámpa: 7 lépés
Bluetooth Okostelefonnal vezérelt intelligens LED-lámpa: 7 lépés

Videó: Bluetooth Okostelefonnal vezérelt intelligens LED-lámpa: 7 lépés

Videó: Bluetooth Okostelefonnal vezérelt intelligens LED-lámpa: 7 lépés
Videó: Fireworks LED Tűzijáték Ledszalag, Telefonról vezérelhető dekorvilágítás bluetooth kapcsolattal 2024, Július
Anonim
Image
Image
Bluetooth Okostelefonnal vezérelt Smart LED lámpa
Bluetooth Okostelefonnal vezérelt Smart LED lámpa

Mindig arról álmodozom, hogy irányítsam a világítóberendezéseimet. Aztán valaki hihetetlenül színes LED -es lámpát készített. Nemrég találkoztam Joseph Casha LED -es lámpájával a Youtube -on. Az ihletettség hatására úgy döntöttem, hogy több funkciót adok hozzá, miközben megtartom a modern dizájnt.

A terv az, hogy a lámpát felhasználóbarátabbá tegye Bluetooth modul és címezhető WS2812B RGB LED szalag hozzáadásával. Ez lehetővé tette a világítás színének szabályozását csak egy okostelefonos alkalmazás segítségével.

Lépés: Gyűjtse össze az anyagokat

Gyűjtse össze az anyagokat
Gyűjtse össze az anyagokat
Gyűjtse össze az anyagokat
Gyűjtse össze az anyagokat

Eszközök:

• Forrasztóállomás

• Fűtőfúvó pisztoly

• Fúrógép

• Körfűrész

• Lombfűrész

• Drótvágó fogó

• Keskeny orrú fogó

Anyagok:

• Áttetsző akril lap

• Japán ciprusfa (vagy bármilyen fát használhat, amíg stabil és elég erős)

• Csavarok

• Rozsdamentes acél rúd vagy bot

• Vezetékek (piros és fekete vezetéket használok)

• Ón forrasztása

Elektronikai alkatrészek:

• Arduino Nano

• Bluetooth-modul HC-05 (úgy döntöttem, hogy ezt használom, mivel könnyebb kódolni, mint az ESP8266 Wifi-modult)

• WS2812B címezhető RGB LED szalag

• LM2596 Lépcső modul

• DC Barrel Power Jack

2. lépés: A lámpa szerkezetének felépítése

A lámpa szerkezetének felépítése
A lámpa szerkezetének felépítése
A lámpa szerkezetének felépítése
A lámpa szerkezetének felépítése

Ebben a lépésben két módom van a lámpa szerkezetének felépítésére- fafeldolgozási módszer és 3D nyomtatási módszer. Én az első módszert használom. Ha inkább 3D nyomtatóval szeretné elkészíteni, nyugodtan ugorjon a 2. lépésre az általam tervezett modellhez.

A lámpa felső részéhez az akril lapot a fentiek szerint 90 ° -os szögben melegítem és hajlítom. Elég sok időmbe telik, hogy ilyen tökéletes szögbe és irányba hajlítsam.

Ezután a lámpa alsó részéhez. Sajnos… azon a napon, amikor a lámpa alsó részén dolgozom, teljesen elfelejtettem lefotózni a konstrukciót! Rájöttem, hogy amikor befejeztem ezt a projektet. De megpróbálok minden tőlem telhetőt megadni Önnek a lámpa alsó részének mérését.

Alapvetően csak négy fadarabot kell kivágni, amelyek mérete 13x6x2cm (LxHxW). Ezután lépcsőszerű vágást kell vágnia a fa szélén. A kép fent látható lesz.

3. lépés: A 3D formák

A 3D alakzatok
A 3D alakzatok
A 3D alakzatok
A 3D alakzatok

Bárki, akinek saját 3D nyomtatója van, a megfelelő lépésben van. Ez felhasználóbaráttá tette ezt a lámpát.

Hogy őszinte legyek, ez volt a legnehezebb lépés, amit megtettem. Ez volt az első dolog, amit közvetlenül a szoftver telepítése után csináltam!

A Sketchup Pro segítségével tervezem a lámpa szerkezetét. Sajnos nem vagyok elég ügyes ahhoz, hogy megtervezzem a belső részét. A 3D -s modellre mutató link az alábbi fájlban található.

4. lépés: Az alkatrészek vázlata

Az alkatrészek vázlata
Az alkatrészek vázlata

A komponensek vázlatának elkészítéséhez a Fritzing -t használom. A vázlat valójában nagyon egyszerű.

5. lépés: A kód

A kód
A kód

Ennek a hangulatlámpának a kódolásához az Arduino IDE néhány könyvtárát használtam. A könyvtárak listáját a 7. lépés tartalmazza.

A kódhoz magának az Arduino szoftvernek kell rendelkeznie. Itt adom meg a letölthető linket.

Továbbá a vázlat vagy a kód jelenik meg az alábbiakban?

A kódot tartalmazó fájlt a Github.com webhelyen is megadtam, ha az alábbi kód túl hosszú ahhoz, hogy ide másolja;)

#befoglalás #befoglalás #befoglalás #ifdef _AVR_ #befoglalás #véglet

SoftwareSerial BT (10, 11);

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

Adafruit_NeoPixel csík = 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;

void setup () {

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

BT.begin (9600);

BT.println ("Csatlakozott Arduino -hoz");

strip.setBrightness (BRIGHTNESS);

strip.begin ();

strip.show ();

}

char a;

void loop () {

for (int i = 0; i <= 59; i ++) {leds = CRGB (255, 255, 255); FastLED.show (); } bool off = LOW; bool Fehér = LOW; bool Blue = LOW; bool Red = LOW; bool Zöld = LOW; bool Topaz = LOW; bool Lila = LOW; bool Szivárvány = LOW; bool rgb = LOW; bool ende; ha (BT.hasznos ()) {a = (char) BT.read ();

ha (a == 'o')

{off = HIGH; BT.println ("LED -ek KIKAPCSOLÁSA..");

}más{

ki = LOW; } // ================================================ ==============================================

ha (a == 'w')

{Fehér = MAGAS; BT.println ("FEHÉR TURNING LED");

}más{

Fehér = LOW; } // ================================================ ==============================================

ha (a == 'b')

{Kék = MAGAS; BT.println ("KÉKRE VÁLTOZÓ"); } else {Kék = LOW; }

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

ha (a == 'r')

{Piros = MAGAS; BT.println ("VÁLTOZÁS PIROSRA"); } else {Piros = LOW; }

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

ha (a == 'g')

{Zöld = MAGAS; BT.println ("ZÖLDRE VÁLTOZÓ"); } else {Zöld = LOW; }

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

ha (a == 't')

{Topáz = MAGAS; BT.println ("TOPAZ VÁLTOZTATÁS"); } else {Topaz = LOW; }

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

ha (a == 'l')

{Lila = MAGAS; BT.println ("VÁLTOZÁS LILACRA"); } else {Lila = LOW; }

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

ha (a == 'a')

{Szivárvány = HIGH; BT.println ("RAINBOW ANIMATION"); } else {Szivárvány = LOW; } // ================================================ ==============================================

ha (a == 'm')

{rgb = MAGAS; BT.println ("MIX COLORS"); } else {rgb = LOW; }} if (off == LOW && offOld == HIGH) {delay (20); if (ki == LOW) {showType = 0; // Ki animáció Típus 0 startShow (showType); }}

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

ha (Fehér == ALACSONY && FehérRégi == MAGAS) {

késleltetés (20); ha (fehér == LOW) {showType = 1; // Fehér animáció Type 1 startShow (showType); }}

// ================================================ ============================================ ha (Piros == LOW && RedOld == HIGH) {delay (20); ha (piros == LOW) {showType = 2; // Piros animáció 2. típus startShow (showType); }}

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

ha (zöld == LOW && GreenOld == HIGH) {

késleltetés (20); if (zöld == LOW) {showType = 3; // Zöld animáció Type 3 startShow (showType); }} // ============================================== ==============================================

ha (kék == LOW && BlueOld == HIGH) {

késleltetés (20); ha (kék == LOW) {showType = 4; // Kék animáció Type 4 startShow (showType); }}

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

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

késleltetés (20); ha (Topaz == LOW) {showType = 5; // Topaz animation Type 5 startShow (showType); }}

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

ha (Lila == LOW && LilacOld == HIGH) {

késleltetés (20); ha (Lila == LOW) {showType = 6; // Topáz animáció Type 6 startShow (showType); }} // ============================================== ==============================================

ha (Szivárvány == LOW && RainbowOld == HIGH) {

késleltetés (20);

ha (Szivárvány == LOW) {

showType = 8; // Rainbow animation Type 8 startShow (showType); }}

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

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

késleltetés (20);

ha (rgb == LOW) {

showType = 7; // Mix animáció Típus 7 rgb = HIGH;

startShow (showType);

} }

WhiteOld = Fehér;

RedOld = Piros; BlueOld = Kék; GreenOld = Zöld; TopazOld = Topáz; LilaOld = Lilac; offOld = ki; RainbowOld = Szivárvány; rgbOld = rgb;

}

void startShow (int i) {

kapcsoló (i) {

0. eset: colorWipe (strip. Color (0, 0, 0), SPEED); // Fekete/kikapcsolt

szünet;

1. eset: strip.setBrightness (255); // A fényerőt MAX értékre változtatja

colorWipe (csík. Szín (255, 255, 255), AZONNAL); // Fehér csík.setBrightness (BRIGHTNESS); // Állítsa vissza a fényerőt az alapértelmezett értékre;

2. eset: colorWipe (strip. Color (255, 0, 0), SPEED); // Piros

szünet;

3. eset: colorWipe (strip. Color (0, 255, 0), SPEED); // Zöld

szünet;

4. eset: colorWipe (strip. Color (0, 0, 255), SPEED); // Kék

szünet;

5. eset: colorWipe (csík. Szín (0, 250, 255), SPEED); Topáz

szünet;

6. eset: colorWipe (csík. Szín (221, 130, 255), SPEED); Lila

szünet; 7. eset: colorWipe (strip. Color (255, 0, 0), SPEED); // Red colorWipe (strip. Color (0, 255, 0), SPEED); // Zöld színWipe (strip. Color (0, 0, 255), SPEED); // Kék színházChase (strip. Color (0, 0, 127), SPEED); // Kék színházChase (strip. Color (127, 0, 0), SPEED); // Vörös színházChase (strip. Color (0, 127, 0), SPEED); // Zöld szünet;

8. eset: szivárványCiklus (25);

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

void rainbowCycle (uint8_t wait) {

uint16_t i, j;

for (j = 0; j <256*10; j ++) {// 5 ciklus minden színben a keréken (i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, Wheel (((i * 256 / strip.numPixels ()) + j) & 255)); } strip.show (); késleltetés (várakozás); }}

void TheaterChase (uint32_t c, uint8_t wait) {

for (int j = 0; j <10; j ++) {// végezzen 10 üldözési ciklust (int q = 0; q <3; q ++) {for (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, c); // minden harmadik pixel bekapcsolása} strip.show ();

késleltetés (várakozás);

for (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, 0); // minden harmadik képpont kikapcsolása}}}}

uint32_t Kerék (byte WheelPos) {

WheelPos = 255 - WheelPos; if (WheelPos <85) {return strip. Color (255 - WheelPos * 3, 0, WheelPos * 3); } if (WheelPos <170) {WheelPos -= 85; visszatérő csík. Szín (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; visszatérő csík. Szín (WheelPos * 3, 255 - WheelPos * 3, 0); }

6. lépés: A lámpa vezérlése

A lámpa vezérlése
A lámpa vezérlése
A lámpa vezérlése
A lámpa vezérlése
A lámpa vezérlése
A lámpa vezérlése

A lámpa színét az okostelefon segítségével szabályozhatja.

Először telepítenie kell a „Bluetooth Terminal HC-05” nevű alkalmazást a Google Play Áruházból vagy az Apple App Store-ból.

A következő lépésekkel szabályozhatja a lámpát saját okostelefonján keresztül:

1. Kapcsolja be a Bluetooth -ot az okostelefonján.

2. Nyissa meg az alkalmazást, amely a „Bluetooth Terminal HC-05”.

3. Most látnia kell a párosított eszközöket a képernyőn. Válassza a „HC-05” lehetőséget.

4. Most egy fekete képernyő jelenik meg az okostelefonon, amely azt jelzi, hogy "csatlakozik az Arduino -hoz".

5. Itt a szórakoztató rész, ha beírja a „b” betűt a szövegmezőbe, a lámpa kék színűvé válik. Itt található a lámpához begépelhető parancsok listája:

- w fehérnek

- b a kék

- g a zöld

- r pirosra

- t a topázhoz

- l lila

- a szivárványos animációhoz

- o ki

Szórakozás ugye?

6. Végül, de nem utolsósorban, a képernyő alatti gombot is testreszabhatja a kívánt szöveghez, a fenti képen látható módon.

7. lépés: Élvezze a hangulatlámpát

Élvezze a hangulatlámpát !!
Élvezze a hangulatlámpát !!
Élvezze a hangulatlámpát !!
Élvezze a hangulatlámpát !!
Élvezze a hangulatlámpát !!
Élvezze a hangulatlámpát !!

Remélem tetszik ez az Instructables. Nagyon kihívást jelentő projekt volt számomra, de 14 éves fiúként sikerült teljesen befejeznem. Adjon néhány visszajelzést a jövőbeli fejlesztésekhez.

Köszönöm, hogy elolvastad és Boldog Karácsonyt!

Ajánlott: