Mục lục:
- Bước 1: Thu thập vật liệu
- Bước 2: Xây dựng cấu trúc của đèn
- Bước 3: Hình dạng 3D
- Bước 4: Sơ đồ các thành phần
- Bước 5: Mã
- Bước 6: Điều khiển đèn
- Bước 7: Thưởng thức đèn tâm trạng của bạn !
Video: Đèn LED thông minh điều khiển bằng điện thoại thông minh Bluetooth: 7 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
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
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
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
Đố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
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ã 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
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 !
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:
ESP8266 RGB LED STRIP Điều khiển WIFI - NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi - Điều khiển điện thoại thông minh RGB LED STRIP: 4 bước
ESP8266 RGB LED STRIP Điều khiển WIFI | NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi | Điều khiển bằng điện thoại thông minh RGB LED STRIP: Xin chào các bạn trong hướng dẫn này, chúng ta sẽ học cách sử dụng gật đầu hoặc esp8266 làm điều khiển từ xa IR để điều khiển dải LED RGB và Nodemcu sẽ được điều khiển bằng điện thoại thông minh qua wifi. Vì vậy, về cơ bản bạn có thể điều khiển DÂY CHUYỀN LED RGB bằng điện thoại thông minh của mình
Đèn LED Bluetooth được điều khiển bằng điện thoại thông minh (với Đồng bộ hóa nhạc sống): 7 bước
Đèn LED Bluetooth được điều khiển bằng điện thoại thông minh (với Đồng bộ hóa nhạc trực tiếp): Tôi luôn thích xây dựng mọi thứ, sau khi tôi thấy rằng ký túc xá đại học mới của tôi có ánh sáng khủng khiếp, tôi quyết định thêm gia vị cho nó một chút. *** CẢNH BÁO *** Nếu bạn xây dựng dự án này có quy mô tương tự như thiết lập của tôi, bạn sẽ làm việc với một số tiền kha khá
Giỏ hàng thông minh điều khiển bằng điện thoại thông minh: 7 bước
Giỏ hàng thông minh điều khiển bằng điện thoại thông minh: Tham quan các trung tâm mua sắm có thể rất thú vị. Nhưng kéo theo Giỏ hàng khi bạn chất đầy đồ là một điều gì đó cực kỳ khó chịu. Cảm giác đau đớn khi phải đẩy nó qua những lối đi chật hẹp, tạo nên những khúc quanh gấp khúc! Vì vậy, đây là (loại) một đề nghị mà bạn c
Điều khiển đèn LED bằng điện thoại thông minh của bạn: 6 bước
Điều khiển đèn LED bằng điện thoại thông minh của bạn:
Bộ điều khiển kỹ thuật số cho hệ thống treo khí bằng Arduino và Điều khiển từ xa trên điện thoại thông minh: 7 bước (có hình ảnh)
Bộ điều khiển kỹ thuật số cho hệ thống treo khí bằng Arduino và Điều khiển từ xa trên điện thoại thông minh: Xin chào tất cả mọi người. đây cũng là lần hướng dẫn đầu tiên của tôi nên gấu w