Mục lục:

Đèn LED thông minh điều khiển bằng điện thoại thông minh Bluetooth: 7 bước
Đèn LED thông minh điều khiển bằng điện thoại thông minh Bluetooth: 7 bước

Video: Đèn LED thông minh điều khiển bằng điện thoại thông minh Bluetooth: 7 bước

Video: Đèn LED thông minh điều khiển bằng điện thoại thông minh Bluetooth: 7 bước
Video: Hướng dẫn sử dụng đèn led RGB điều khiển bằng APP - Cách dùng đèn led RGB trên tiktok| vua đèn led 2024, Tháng mười một
Anonim
Image
Image
Đèn LED thông minh điều khiển bằng điện thoại thông minh Bluetooth
Đèn LED thông minh điều khiển bằng điện thoại thông minh Bluetooth

Tôi luôn mơ ước được điều khiển các thiết bị chiếu sáng của mình. Sau đó, ai đó đã làm ra một chiếc đèn LED nhiều màu sắc lạ thường. Gần đây tôi đã xem một chiếc đèn LED của Joseph Casha trên Youtube. Lấy cảm hứng từ nó, tôi quyết định thêm một số chức năng trong khi vẫn giữ thiết kế đương đại.

Kế hoạch là làm cho đèn trở nên thân thiện hơn với người dùng bằng cách thêm Mô-đun Bluetooth và dải đèn LED RGB WS2812B có địa chỉ. Điều này giúp bạn có thể kiểm soát màu sắc của ánh sáng chỉ bằng cách sử dụng ứng dụng trên điện thoại thông minh.

Bước 1: Thu thập vật liệu

Thu thập tài liệu
Thu thập tài liệu
Thu thập tài liệu
Thu thập tài liệu

Công cụ:

• Trạm hàn

• Súng thổi hơi nóng

• Máy khoan

• Cưa tròn

• Ghép hình

• Kìm cắt dây

• Kìm mũi hẹp

Vật liệu:

• Bảng Acrylic mờ

• Gỗ Bách Nhật (hoặc bạn có thể sử dụng bất kỳ loại gỗ nào miễn là nó đủ ổn định và chắc chắn)

• Vít

• Cực hoặc thanh thép không gỉ

• Dây điện (tôi sử dụng dây màu đỏ và đen)

• Thiếc hàn

Linh kiện Điện tử:

• Arduino Nano

• Mô-đun Bluetooth HC-05 (Tôi quyết định sử dụng mô-đun này vì nó dễ viết mã hơn Mô-đun Wifi ESP8266)

• Dải đèn LED RGB địa chỉ WS2812B

• Mô-đun bước xuống LM2596

• Giắc cắm nguồn DC Barrel

Bước 2: Xây dựng cấu trúc của đèn

Xây dựng cấu trúc của đèn
Xây dựng cấu trúc của đèn
Xây dựng cấu trúc của đèn
Xây dựng cấu trúc của đèn

Trong bước này, tôi có hai cách để xây dựng cấu trúc là phương pháp chế biến gỗ bằng đèn và phương pháp in 3D. Tôi sử dụng phương pháp đầu tiên. Nếu bạn muốn tạo ra nó bằng cách sử dụng máy in 3D, vui lòng bỏ qua bước 2 cho mô hình mà tôi đã thiết kế.

Đối với phần trên của đèn, tôi đốt nóng và uốn tấm acrylic một góc 90 ° như hình trên. Tôi mất khá nhiều thời gian để uốn nó theo một góc và hướng hoàn hảo như vậy.

Tiếp theo, đối với phần dưới của đèn. Thật không may… vào ngày mà tôi đang làm việc ở phần dưới của chiếc đèn, tôi đã hoàn toàn quên chụp ảnh công trình! Tôi nhận ra điều đó khi tôi hoàn thành dự án này. Nhưng tôi sẽ cố gắng hết sức để cung cấp cho bạn số đo phần dưới của đèn.

Về cơ bản, bạn chỉ cần cắt bốn khối gỗ có kích thước 13x6x2cm (LxHxW). Tiếp theo, bạn cần cắt một đường cắt giống cầu thang ở mép gỗ. Hình ảnh sẽ được hiển thị ở trên.

Bước 3: Hình dạng 3D

Hình dạng 3D
Hình dạng 3D
Hình dạng 3D
Hình dạng 3D

Đối với bất kỳ ai có máy in 3D của riêng mình, bạn đang ở đúng bước. Điều này làm cho đèn này thân thiện với người dùng.

Thành thật mà nói, đây là bước khó nhất mà tôi đã làm. Đây là điều đầu tiên tôi làm ngay sau khi cài đặt phần mềm!

Tôi sử dụng Sketchup Pro để thiết kế cấu trúc của đèn. Thật không may, tôi không đủ khéo léo để thiết kế thành phần nội thất của nó. Liên kết đến mô hình 3D của tôi có trong tệp bên dưới.

Bước 4: Sơ đồ các thành phần

Sơ đồ các thành phần
Sơ đồ các thành phần

Tôi sử dụng Fritzing để xây dựng sơ đồ của các thành phần. Sơ đồ thực sự khá dễ dàng.

Bước 5: Mã

Mật mã
Mật mã

Để mã hóa đèn tâm trạng này, tôi đã sử dụng một số thư viện từ Arduino IDE. Các thư viện sẽ được liệt kê ở bước 7.

Để có mã, bạn cần có phần mềm Arduino. Tôi sẽ cung cấp liên kết để tải về tại đây.

Ngoài ra, bản phác thảo hoặc mã sẽ được hiển thị bên dưới?

Tôi cũng đã cung cấp tệp cho mã trong Github.com trong trường hợp mã bên dưới quá dài để sao chép vào đây;)

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

Phần mềm trên không BT (10, 11);

#define LED_PIN 7 #define NUM_LEDS 60 #define BRIGHTNESS 200 #define SPEED 10 #define NGAY LẬP TỨC 0 #define RAINBOW_SPEED 50 LED CRGB [NUM_LEDS];

Dải 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 = LOW; bool rgbOld = LOW; int showType = 0;

void setup () {

FastLED.addLeds (đã dẫn, NUM_LEDS); //////////

BT.begin (9600);

BT.println ("Đã kết nối với Arduino");

dải.setBrightness (BRIGHTNESS);

dải.begin ();

dải.show ();

}

ký tự a;

void loop () {

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

if (a == 'o')

{tắt = CAO; BT.println ("TẮT LED..");

}khác{

tắt = THẤP; } // =============================================== ============================================

if (a == 'w')

{Trắng = CAO; BT.println ("ĐÈN LED TRẮNG");

}khác{

Trắng = THẤP; } // =============================================== ============================================

if (a == 'b')

{Xanh lam = CAO; BT.println ("ĐỔI THÀNH MÀU XANH"); } else {Blue = LOW; }

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

if (a == 'r')

{Đỏ = CAO; BT.println ("ĐỔI SANG ĐỎ"); } else {Red = LOW; }

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

if (a == 'g')

{Màu xanh lá cây = CAO; BT.println ("ĐỔI THÀNH XANH"); } else {Green = LOW; }

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

if (a == 't')

{Topaz = CAO; BT.println ("ĐỔI ĐẾN TOPAZ"); } else {Topaz = LOW; }

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

if (a == 'l')

{Tử đinh hương = CAO; BT.println ("ĐỔI THÀNH LILAC"); } else {Lilac = LOW; }

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

if (a == 'a')

{Cầu vồng = CAO; BT.println ("HÌNH ẢNH RAINBOW"); } else {Cầu vồng = LOW; } // =============================================== ============================================

if (a == 'm')

{rgb = CAO; BT.println ("MÀU SẮC MIX"); } else {rgb = LOW; }} if (off == LOW && offOld == HIGH) {delay (20); if (tắt == LOW) {showType = 0; // Tắt hoạt ảnh Gõ 0 startShow (showType); }}

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

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

chậm trễ (20); if (Trắng == LOW) {showType = 1; // Hoạt ảnh màu trắng Loại 1 startShow (showType); }}

// ================================================ =========================================== nếu (Đỏ == LOW && RedOld == HIGH) {delay (20); if (Red == LOW) {showType = 2; // Hoạt ảnh màu đỏ Loại 2 startShow (showType); }}

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

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

chậm trễ (20); if (Green == LOW) {showType = 3; // Hoạt hình xanh Loại 3 startShow (showType); }} // ============================================== =============================================

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

chậm trễ (20); if (Blue == LOW) {showType = 4; // Hoạt hình màu xanh Loại 4 startShow (showType); }}

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

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

chậm trễ (20); if (Topaz == LOW) {showType = 5; // Hoạt hình Topaz Loại 5 startShow (showType); }}

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

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

chậm trễ (20); if (Lilac == LOW) {showType = 6; // Hoạt hình Topaz Loại 6 startShow (showType); }} // ============================================== =============================================

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

chậm trễ (20);

if (Cầu vồng == LOW) {

showType = 8; // Hoạt hình cầu vồng Loại 8 startShow (showType); }}

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

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

chậm trễ (20);

if (rgb == LOW) {

showType = 7; // Trộn hoạt ảnh Loại 7 rgb = HIGH;

startShow (showType);

} }

WhiteOld = Màu trắng;

RedOld = Đỏ; BlueOld = Xanh lam; GreenOld = Màu xanh lá cây; TopazOld = Topaz; LilacOld = Tử đinh hương; offOld = tắt; RainbowOld = Cầu vồng; rgbOld = rgb;

}

void startShow (int i) {

chuyển đổi (i) {

trường hợp 0: colorWipe (dải. Color (0, 0, 0), SPEED); // Đen / tắt

nghỉ;

trường hợp 1: strip.setBrightness (255); // Thay đổi độ sáng thành MAX

colorWipe (dải. Color (255, 255, 255), NGAY LẬP TỨC); // White strip.setBrightness (BRIGHTNESS); // Đặt lại giá trị Brightness thành Default;

trường hợp 2: colorWipe (dải. Color (255, 0, 0), SPEED); // Màu đỏ

nghỉ;

trường hợp 3: colorWipe (dải. Color (0, 255, 0), SPEED); // Màu xanh lá

nghỉ;

trường hợp 4: colorWipe (dải. Color (0, 0, 255), SPEED); // Màu xanh dương

nghỉ;

trường hợp 5: colorWipe (dải. Color (0, 250, 255), SPEED); // Topaz

nghỉ;

trường hợp 6: colorWipe (dải. Color (221, 130, 255), SPEED); // Tử đinh hương

nghỉ; trường hợp 7: colorWipe (dải. Color (255, 0, 0), SPEED); // Màu đỏ colorWipe (dải. Color (0, 255, 0), SPEED); // Màu xanh lá cây colorWipe (dải. Color (0, 0, 255), SPEED); // Blue TheaterChase (dải. Color (0, 0, 127), SPEED); // Blue TheaterChase (dải. Color (127, 0, 0), SPEED); // Red TheaterChase (dải. Color (0, 127, 0), SPEED); // Dấu ngắt màu xanh lá cây;

trường hợp 8: cầu vồngCycle (25);

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

void cầu vồngCycle (uint8_t chờ đã) {

uint16_t tôi, j;

for (j = 0; j <256 * 10; j ++) {// 5 chu kỳ của tất cả các màu trên bánh xe for (i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, Wheel (((i * 256 / strip.numPixels ()) + j) & 255)); } dải.show (); trì hoãn (chờ đợi); }}

void TheaterChase (uint32_t c, uint8_t wait) {

for (int j = 0; j <10; j ++) {// thực hiện 10 chu kỳ truy tìm for (int q = 0; q <3; q ++) {for (int i = 0; i <strip.numPixels (); i = i + 3) {dải.setPixelColor (i + q, c); // biến mọi pixel thứ ba trên} strip.show ();

trì hoãn (chờ đợi);

for (int i = 0; i <strip.numPixels (); i = i + 3) {strip.setPixelColor (i + q, 0); // tắt từng pixel thứ ba}}}}

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; dải trả về. Color (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos - = 170; dải trả về. Color (WheelPos * 3, 255 - WheelPos * 3, 0); }

Bước 6: Điều khiển đèn

Điều khiển đèn
Điều khiển đèn
Điều khiển đèn
Điều khiển đèn
Điều khiển đèn
Điều khiển đèn

Màu sắc của đèn có thể được kiểm soát bằng cách sử dụng điện thoại thông minh của bạn.

Trước tiên, bạn cần cài đặt ứng dụng có tên 'Bluetooth Terminal HC-05' từ Google Play Store hoặc Apple App Store.

Đây là các bước để điều khiển đèn thông qua điện thoại thông minh của riêng bạn:

1. Bật bluetooth trên điện thoại thông minh của bạn.

2. Mở ứng dụng là 'Bluetooth Terminal HC-05'.

3. Bây giờ bạn sẽ thấy các thiết bị được ghép nối trên màn hình. Chọn 'HC-05'.

4. Bây giờ bạn có thể thấy một màn hình đen xuất hiện trong điện thoại thông minh của bạn sẽ cho biết 'đã kết nối với Arduino'.

5. Đây là một phần thú vị, nếu bạn gõ 'b' vào hộp văn bản, đèn sẽ chuyển sang màu xanh lam. Đây là danh sách lệnh mà bạn có thể nhập cho đèn:

- w cho màu trắng

- b cho màu xanh lam

- g cho màu xanh lá cây

- r cho màu đỏ

- t cho topaz

- l cho tử đinh hương

- một hoạt hình cầu vồng

- o cho tắt

Vui vẻ phải không?

6. Cuối cùng nhưng không kém phần quan trọng, bạn cũng có thể tùy chỉnh nút bên dưới màn hình thành văn bản mong muốn của bạn như trong hình trên.

Bước 7: Thưởng thức đèn tâm trạng của bạn !

Thưởng thức đèn tâm trạng của bạn !!
Thưởng thức đèn tâm trạng của bạn !!
Thưởng thức đèn tâm trạng của bạn !!
Thưởng thức đèn tâm trạng của bạn !!
Thưởng thức đèn tâm trạng của bạn !!
Thưởng thức đèn tâm trạng của bạn !!

Tôi hy vọng bạn thích Tài liệu hướng dẫn này. Đó là một dự án rất thách thức đối với tôi nhưng tôi đã cố gắng hoàn thành nó một cách trọn vẹn khi còn là một cậu bé 14 tuổi. Hãy cho tôi một số phản hồi để cải thiện trong tương lai.

Cảm ơn đã đọc và Giáng sinh vui vẻ!

Đề xuất: