Përmbajtje:

Bluetooth Llambë Smart Smart e kontrolluar nga smartphone: 7 hapa
Bluetooth Llambë Smart Smart e kontrolluar nga smartphone: 7 hapa

Video: Bluetooth Llambë Smart Smart e kontrolluar nga smartphone: 7 hapa

Video: Bluetooth Llambë Smart Smart e kontrolluar nga smartphone: 7 hapa
Video: 12V Bluetooth Relay to control AC or DC load using mobile Phone 2024, Korrik
Anonim
Image
Image
Bluetooth Llambë Smart Smart e kontrolluar nga Smartphone
Bluetooth Llambë Smart Smart e kontrolluar nga Smartphone

Unë gjithmonë ëndërroj të kontrolloj pajisjet e mia të ndriçimit. Pastaj dikush bëri një llambë LED të jashtëzakonshme shumëngjyrëshe. Kohët e fundit hasa në një Llambë LED nga Joseph Casha në Youtube. Duke u frymëzuar nga ajo, vendosa të shtoj disa funksione duke ruajtur modelin bashkëkohor.

Plani është që llamba të jetë më miqësore për përdoruesit duke shtuar një Modul Bluetooth dhe një shirit LED të adresueshëm WS2812B RGB. Kjo bëri të mundur kontrollin e ngjyrës së ndriçimit vetëm duke përdorur një aplikacion smartphone.

Hapi 1: Mblidhni materialet

Mblidhni materialet
Mblidhni materialet
Mblidhni materialet
Mblidhni materialet

Mjetet:

• Stacioni i saldimit

• Armë me ventilator ngrohës

• Makineri stërvitore

• Sharrë rrethore

• Jigsaw

• Pincë për prerjen e telave

• Pincë me hundë të ngushtë

Materiale:

• Pllakë akrilike e tejdukshme

• Druri i Qiparisit Japonez (ose mund të përdorni çdo dru për aq kohë sa është i qëndrueshëm dhe mjaft i fortë)

• Vida

• Shtylla ose shkop Stainless Steel

• Tela (unë përdor tela të kuq dhe të zi)

• Kallaji i saldimit

Komponentët elektronikë:

• Arduino Nano

• Moduli Bluetooth HC-05 (vendosa ta përdor këtë pasi është më e lehtë të kodosh sesa Moduli Wifi ESP8266)

• Rrip LED i adresueshëm WS2812B RGB

• LM2596 Moduli i Shkallëzimit

• Fuqia e fuçisë DC

Hapi 2: Ndërtimi i strukturës së llambës

Ndërtimi i strukturës së llambës
Ndërtimi i strukturës së llambës
Ndërtimi i strukturës së llambës
Ndërtimi i strukturës së llambës

Në këtë hap, unë kam dy mënyra për të ndërtuar strukturën e llambës- metoda e përpunimit të drurit dhe metoda e printimit 3D. Unë përdor metodën e parë. Nëse preferoni ta bëni atë duke përdorur një printer 3D, mos ngurroni të kaloni në hapin 2 për modelin që kam projektuar.

Për pjesën e sipërme të llambës, e ngroh dhe e përkul bordin akrilik në një kënd prej 90 ° siç tregohet më sipër. Më duhet shumë kohë për ta përkulur atë në një kënd dhe drejtim kaq të përsosur.

Tjetra, për pjesën e poshtme të llambës. Fatkeqësisht … ditën kur jam duke punuar në pjesën e poshtme të llambës, kam harruar plotësisht të bëj një fotografi të konstruksionit! E kuptova kur e mbarova këtë projekt. Por unë do të përpiqem më të mirën për t'ju siguruar matjen e pjesës së poshtme të llambës.

Në thelb, ju vetëm duhet të prerë katër blloqe druri që matin 13x6x2cm (LxHxW). Tjetra, ju duhet të prerë një prerje të ngjashme me shkallët në buzë të drurit. Fotografia do të shfaqet më lart.

Hapi 3: Format 3D

Format 3D
Format 3D
Format 3D
Format 3D

Për këdo që ka printerin e tij 3D, ju jeni në hapin e duhur. Kjo e bëri këtë llambë miqësore për përdoruesit.

Për të qenë i sinqertë, ky ishte hapi më i vështirë që kam bërë. Kjo është gjëja e parë që bëra menjëherë pas instalimit të softuerit!

Unë përdor Sketchup Pro për të hartuar strukturën e llambës. Fatkeqësisht, nuk jam aq i aftë sa të dizajnoj përbërësin e tij të brendshëm. Lidhja me modelin tim 3D është në skedarin më poshtë.

Hapi 4: Skema e Komponentëve

Skema e Komponentëve
Skema e Komponentëve

Unë përdor Fritzing për të ndërtuar skemat e përbërësve. Skema është në të vërtetë mjaft e lehtë.

Hapi 5: Kodi

Kodi
Kodi

Për kodimin e kësaj llambë të humorit, kam përdorur disa biblioteka nga Arduino IDE. Bibliotekat do të renditen në hapin 7.

Për kodin, duhet të keni vetë softuerin Arduino. Unë do të jap lidhjen për ta shkarkuar këtu.

Gjithashtu, skica ose kodi do të shfaqen më poshtë?

Unë gjithashtu sigurova skedarin për kodin në Github.com në rast se kodi më poshtë është shumë i gjatë për tu kopjuar këtu;)

#përfshi #përfshi #përfshi #ifdef _AVR_ #përfshi #endif

SoftwareSerial BT (10, 11);

#përcakto LED_PIN 7 #përcakto NUM_LEDS 60 #përcakto SHKURT 200SIN 200 #përcakto SHPEJTSIN #10 #përcakto MENJIHER 0 #përcakto RAINBOW_SPEED 50 led CRGB [NUM_LEDS];

Rrip 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 = I UL; bool LilacOld = I UL; bool RainbowOld = LOW; bool rgbOld = I UL;; int showType = 0;

void setup () {

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

BT.filloj (9600);

BT.println ("Lidhur me Arduino");

strip.setBrightness (BRIGHTNESS);

strip.filloj ();

shirit.shfaq ();

}

char a;

lak void () {

për (int i = 0; i <= 59; i ++) {leds = CRGB (255, 255, 255); FastLED.shfaq (); } bool off = LOW; bool White = LOW; bool Blu = LOW; bool Red = LOW; bool Green = LOW; bool Topaz = I UL; bool Lilac = I UL;; bool Rainbow = LOW; bool rgb = I UL; bool ende; nëse (BT. në dispozicion ()) {a = (char) BT.read ();

nëse (a == 'o')

{off = LART; BT.println ("FIKJA E LED -ve..");

} tjetër {

joaktiv = I UL; } // =============================================== ============================================

nëse (a == 'w')

{E bardhë = E LART; BT.println ("KTHIMI I ZHELIT T WH BARDH");

} tjetër {

E bardhë = E ULT; } // =============================================== ============================================

nëse (a == 'b')

{Blu = LART; BT.println ("NDRYSHIMI N BL BLU"); } else {Blu = LOW; }

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

nëse (a == 'r')

{E kuqe = LART; BT.println ("NDRYSHIMI N TO KUQ"); } else {E kuqe = LOW; }

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

nëse (a == 'g')

{E gjelbër = LART; BT.println ("NDRYSHIMI N G GJELBR"); } else {E gjelbër = LOW; }

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

nëse (a == 't')

{Topaz = LART; BT.println ("NDRYSHIMI N TO TOPAZ"); } tjetër {Topaz = LOW; }

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

nëse (a == 'l')

{Jargavani = LART; BT.println ("NDRYSHIMI N L LILAC"); } else {Jargavan = I UL;; }

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

nëse (a == 'a')

{Ylber = LART; BT.println ("ANIMIMI I YLERIT"); } else {Rainbow = LOW; } // =============================================== ============================================

nëse (a == 'm')

{rgb = LART; BT.println ("NGJYRA PIXRZIER"); } else {rgb = LOW; }} if (off == LOW && offOld == HIGH) {vonesë (20); if (off == LOW) {showType = 0; // Fikur animacion Lloji 0 startShow (showType); }}

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

nëse (E bardhë == LOW && WhiteOld == LART) {

vonesa (20); nëse (E bardhë == LOW) {showType = 1; // Animacion i bardhë Lloji 1 startShow (showType); }}

// ================================================ ========================================= nëse (E kuqe == LOW && RedOld == LART {vonesë (20); nëse (E kuqe == LOW) {showType = 2; // Animacion i kuq Lloji 2 startShow (showType); }}

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

nëse (E gjelbër == LOW && GreenOld == LART) {

vonesa (20); nëse (E gjelbër == LOW) {showType = 3; // Animacion i gjelbër Lloji 3 startShow (showType); }} // ============================================= =============================================

nëse (Blu == LOW && BlueOld == LART) {

vonesa (20); nëse (Blu == LOW) {showType = 4; // Animacion blu i tipit 4 startShow (showType); }}

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

nëse (Topaz == LOW && TopazOld == LART) {

vonesa (20); nëse (Topaz == LOW) {showType = 5; // Animacioni Topaz Lloji 5 startShow (showType); }}

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

nëse (jargavan == LOW && LilacOld == LART) {

vonesa (20); nëse (jargavan == LOW) {showType = 6; // Animacioni Topaz Lloji 6 startShow (showType); }} // ============================================= =============================================

nëse (Rainbow == LOW && RainbowOld == LART) {

vonesa (20);

nëse (Rainbow == LOW) {

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

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

nëse (rgb == LOW && rgbOld == LART) {

vonesa (20);

nëse (rgb == LOW) {

showType = 7; // Mix animacion Lloji 7 rgb = HIGH;

startShow (showType);

} }

WhiteOld = E bardhë;

RedOld = E kuqe; BlueOld = Blu; GreenOld = E gjelbër; TopazOld = Topaz; LilacOld = jargavan; offOld = joaktiv; RainbowOld = Ylber; rgbOld = rgb;

}

void startShow (int i) {

kaloni (i) {

rasti 0: colorWipe (shirit. Ngjyra (0, 0, 0), SPEED); // E zezë/fikur

pushim;

rasti 1: strip.setBrightness (255); // Ndryshon Shkëlqimin në MAX

colorWipe (shirit. Ngjyra (255, 255, 255), MENJIHER); // Rrip i bardhë.setBrightness (BRIGHTNESS); // Rivendos ndërprerjen e vlerës së Ndriçimit në Default;

rast 2: colorWipe (shirit. Ngjyra (255, 0, 0), SPEED); // E kuqe

pushim;

rasti 3: colorWipe (shirit. Ngjyra (0, 255, 0), SPEED); // E gjelbër

pushim;

rasti 4: colorWipe (shirit. Ngjyra (0, 0, 255), SPEED); // Blu

pushim;

rasti 5: colorWipe (shirit. Ngjyra (0, 250, 255), SPEED); // Topaz

pushim;

rasti 6: colorWipe (shirit. Ngjyra (221, 130, 255), SPEED); // jargavan

pushim; rast 7: colorWipe (shirit. Ngjyra (255, 0, 0), SPEED); // Fshirje me ngjyrë të kuqe (shirit. Ngjyra (0, 255, 0), SHPEJTSI); // Ngjyra e gjelbër Fshij (shirit. Ngjyra (0, 0, 255), SPEED); // Teatri bluChase (shirit. Ngjyra (0, 0, 127), SPEED); // Teatri bluChase (shirit. Ngjyra (127, 0, 0), SPEED); // Teatri i kuqChase (shirit. Ngjyra (0, 127, 0), SPEED); // Pushim jeshil;

rasti 8: rainbowCycle (25);

pushim; }} ngjyra e pavlefshme Fshij (uint32_t c, uint8_t pres) {për (uint16_t i = 0; i

void rainbowCycle (uint8_t prisni) {

uint16_t i, j;

për (j = 0; j <256*10; j ++) {// 5 cikle të të gjitha ngjyrave në timon për (i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, Rrota (((i * 256 / strip.numPixels ()) + j) & 255)); } strip.shfaq (); vonesë (pritje); }}

void theaterChase (uint32_t c, uint8_t pres) {

për (int j = 0; j <10; j ++) {// bëni 10 cikle ndjekjeje për (int q = 0; q <3; q ++) {për (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, c); // ndizni çdo piksel të tretë në} strip.show ();

vonesë (pritje);

për (int i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, 0); // fik çdo piksel të tretë}}}}

uint32_t Rrota (byte WheelPos) {

WheelPos = 255 - WheelPos; nëse (WheelPos <85) {shiriti i kthimit. Color (255 - WheelPos * 3, 0, WheelPos * 3); } nëse (WheelPos <170) {WheelPos -= 85; shiriti i kthimit. Ngjyra (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; shiriti i kthimit. Ngjyra (WheelPos * 3, 255 - WheelPos * 3, 0); }

Hapi 6: Kontrolli i llambës

Kontrolli i llambës
Kontrolli i llambës
Kontrolli i llambës
Kontrolli i llambës
Kontrolli i llambës
Kontrolli i llambës

Ngjyra e llambës mund të kontrollohet duke përdorur smartphone tuaj.

Së pari, duhet të instaloni aplikacionin e quajtur 'Bluetooth Terminal HC-05' nga Google Play Store ose Apple App Store.

Këtu janë hapat për të kontrolluar llambën përmes smartphone -it tuaj:

1. Ndizni bluetooth -in në telefonin tuaj të mençur.

2. Hapni aplikacionin i cili është 'Bluetooth Terminal HC-05'.

3. Tani duhet të shihni pajisjet e çiftuara në ekran. Zgjidhni 'HC-05'.

4. Tani mund të shihni që shfaqet një ekran i zi në smartphone tuaj i cili do të tregojë 'i lidhur me Arduino'.

5. Këtu është pjesa argëtuese, nëse shkruani 'b' në kutinë e tekstit, llamba do të kthehet në ngjyrë blu. Këtu është lista e komandës që mund të shtypni për llambën:

- w për të bardhë

- b për ngjyrën blu

- g për të gjelbër

- r për të kuqen

- t për topaz

- l për jargavan

- një animacion për ylberin

- o për fikje

Argëtim apo jo?

6. Së fundmi, por jo më pak e rëndësishme, gjithashtu mund të personalizoni butonin poshtë ekranit në tekstin tuaj të dëshiruar siç tregohet në figurën e mësipërme.

Hapi 7: Shijoni llambën tuaj të humorit !

Gëzoni llambën tuaj të humorit !!
Gëzoni llambën tuaj të humorit !!
Gëzoni llambën tuaj të humorit !!
Gëzoni llambën tuaj të humorit !!
Gëzoni llambën tuaj të humorit !!
Gëzoni llambën tuaj të humorit !!

Shpresoj se ju pëlqen kjo Instructables. Ishte një projekt shumë sfidues për mua, por arrita ta përfundoj plotësisht si një djalë 14 vjeç. Më jepni disa komente për përmirësimet e ardhshme.

Faleminderit për leximin dhe Gëzuar Krishtlindjet!

Recommended: