Isi kandungan:

Lampu LED Pintar yang dikendalikan oleh Telefon Pintar Bluetooth: 7 Langkah
Lampu LED Pintar yang dikendalikan oleh Telefon Pintar Bluetooth: 7 Langkah

Video: Lampu LED Pintar yang dikendalikan oleh Telefon Pintar Bluetooth: 7 Langkah

Video: Lampu LED Pintar yang dikendalikan oleh Telefon Pintar Bluetooth: 7 Langkah
Video: 10 LAMPU PINTAR TERBAIK 🔥 Canggih, Awet & Murah 2024, Julai
Anonim
Image
Image
Lampu LED Pintar yang dikendalikan oleh Telefon Pintar Bluetooth
Lampu LED Pintar yang dikendalikan oleh Telefon Pintar Bluetooth

Saya selalu bermimpi untuk mengawal peralatan pencahayaan saya. Kemudian seseorang membuat lampu LED berwarna-warni yang luar biasa. Saya baru-baru ini menemui Lampu LED oleh Joseph Casha di Youtube. Dengan terinspirasi olehnya, saya memutuskan untuk menambah beberapa fungsi sambil mengekalkan reka bentuk kontemporari.

Rancangannya adalah untuk menjadikan lampu menjadi lebih mesra pengguna dengan menambahkan Modul Bluetooth dan jalur LED WS2812B RGB. Ini memungkinkan untuk mengawal warna pencahayaan hanya dengan menggunakan aplikasi telefon pintar.

Langkah 1: Kumpulkan Bahan

Kumpulkan Bahan
Kumpulkan Bahan
Kumpulkan Bahan
Kumpulkan Bahan

Alat:

• Stesen Pematerian

• Pemanas Blower Gun

• Mesin gerudi

• Gergaji bulat

• Jigsaw

• Tang Pemotong Kawat

• Tang hidung sempit

Bahan:

• Papan Akrilik lut

• Kayu Cypress Jepun (atau anda boleh menggunakan kayu apa pun selagi ia cukup stabil dan kuat)

• Skru

• Tiang atau tongkat keluli tahan karat

• Wayar (saya menggunakan wayar merah dan hitam)

• Timah Pematerian

Komponen Elektronik:

• Arduino Nano

• Modul Bluetooth HC-05 (Saya memutuskan untuk menggunakan ini kerana kodnya lebih mudah daripada Modul Wifi ESP8266)

• Jalur LED RGB WS2812B yang Beralamat

• Modul Langkah LM2596

• Jack Power Barrel DC

Langkah 2: Membina Struktur Lampu

Membina Struktur Lampu
Membina Struktur Lampu
Membina Struktur Lampu
Membina Struktur Lampu

Dalam langkah ini, saya mempunyai dua cara untuk membina struktur kaedah kerja kayu-kayu dan kaedah pencetakan 3D. Saya menggunakan kaedah pertama. Sekiranya anda lebih suka membuatnya dengan pencetak 3D, jangan ragu untuk melangkah ke langkah 2 untuk model yang saya reka.

Untuk bahagian atas lampu, saya memanaskan dan membengkokkan papan akrilik ke sudut 90 ° seperti gambar di atas. Saya mengambil masa yang lama untuk membengkokkannya ke sudut dan arah yang sempurna.

Seterusnya, untuk bahagian bawah lampu. Malangnya … pada hari saya mengusahakan bahagian bawah lampu, saya terlupa sepenuhnya untuk mengambil gambar pembinaannya! Saya menyedari bahawa semasa saya menyelesaikan projek ini. Tetapi saya akan berusaha sebaik mungkin untuk memberi anda ukuran bahagian bawah lampu.

Pada asasnya, anda hanya perlu memotong empat blok kayu yang berukuran 13x6x2cm (LxHxW). Seterusnya, anda perlu memotong potongan seperti tangga di tepi kayu. Gambar akan ditunjukkan di atas.

Langkah 3: Bentuk 3D

Bentuk 3D
Bentuk 3D
Bentuk 3D
Bentuk 3D

Bagi sesiapa yang mempunyai pencetak 3D mereka sendiri, anda berada di langkah yang betul. Ini menjadikan lampu ini mesra pengguna.

Sejujurnya, ini adalah langkah paling sukar yang saya lakukan. Ini adalah perkara pertama yang saya buat setelah memasang perisian!

Saya menggunakan Sketchup Pro untuk merancang struktur lampu. Malangnya, saya tidak cukup mahir untuk merancang komponen dalamannya. Pautan ke model 3D saya ada dalam fail di bawah.

Langkah 4: Skema Komponen

Skema Komponen
Skema Komponen

Saya menggunakan Fritzing untuk membina skema komponen. Skema sebenarnya cukup mudah.

Langkah 5: Kod

Kod tersebut
Kod tersebut

Untuk pengekodan lampu suasana ini, saya menggunakan beberapa perpustakaan dari Arduino IDE. Perpustakaan akan disenaraikan di langkah 7.

Untuk kodnya, anda perlu mempunyai perisian Arduino itu sendiri. Saya akan memberikan pautan untuk memuat turun di sini.

Juga, lakaran atau kod akan ditunjukkan di bawah?

Saya juga memberikan fail untuk kod di Github.com sekiranya kod di bawah terlalu panjang untuk disalin di sini;)

#sertakan #sertakan #sertakan #ifdef _AVR_ #kemasukan #endif

SoftwareSerial BT (10, 11);

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

Jalur Adafruit_NeoPixel = Adafruit_NeoPixel (NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);

bool offOld = RENDAH;

bool WhiteOld = RENDAH; bool RedOld = RENDAH; bool GreenOld = RENDAH; bool BlueOld = RENDAH; bool TopazOld = RENDAH; bool LilacOld = RENDAH; bool RainbowOld = RENDAH; bool rgbOld = RENDAH; int showType = 0;

batal persediaan () {

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

BT.begin (9600);

BT.println ("Bersambung ke Arduino");

strip.setBrightness (CERAH);

jalur.begin ();

strip.show ();

}

char a;

gelung kosong () {

untuk (int i = 0; i <= 59; i ++) {leds = CRGB (255, 255, 255); FastLED.show (); } bool mati = RENDAH; bool Putih = RENDAH; bool Biru = RENDAH; bool Merah = RENDAH; bool Hijau = RENDAH; bool Topaz = RENDAH; bool Lilac = RENDAH; bool Rainbow = RENDAH; bool rgb = RENDAH; bool ende; jika (BT. tersedia ()) {a = (char) BT.read ();

jika (a == 'o')

{off = TINGGI; BT.println ("MENGHIDUPKAN LED..");

} lain {

mati = RENDAH; } // =============================================== ============================================

jika (a == 'w')

{Putih = TINGGI; BT.println ("TURNING LEDs WHITE");

} lain {

Putih = RENDAH; } // =============================================== ============================================

jika (a == 'b')

{Biru = TINGGI; BT.println ("MENGUBAH KE BLUE"); } lain {Biru = RENDAH; }

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

jika (a == 'r')

{Merah = TINGGI; BT.println ("MENGUBAH KE MERAH"); } lain {Merah = RENDAH; }

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

jika (a == 'g')

{Hijau = TINGGI; BT.println ("MENGUBAH KE HIJAU"); } lain {Hijau = RENDAH; }

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

jika (a == 't')

{Topaz = TINGGI; BT.println ("MENGUBAH TOPAZ"); } lain {Topaz = RENDAH; }

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

jika (a == 'l')

{Lilac = TINGGI; BT.println ("MENGUBAH KE LILAC"); } lain {Lilac = RENDAH; }

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

jika (a == 'a')

{Pelangi = TINGGI; BT.println ("ANIMASI RAINBOW"); } lain {Pelangi = RENDAH; } // =============================================== ============================================

jika (a == 'm')

{rgb = TINGGI; BT.println ("CAMPURAN WARNA"); } lain {rgb = RENDAH; }} jika (off == RENDAH && offOld == TINGGI) {kelewatan (20); jika (mati == RENDAH) {showType = 0; // Off animasi Jenis 0 startShow (showType); }}

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

jika (Putih == RENDAH && WhiteOld == TINGGI) {

kelewatan (20); jika (Putih == RENDAH) {showType = 1; // Animasi putih Jenis 1 startShow (showType); }}

// ================================================ =========================================== jika (Merah == RENDAH && RedOld == TINGGI) {kelewatan (20); jika (Merah == RENDAH) {showType = 2; // Animasi merah Jenis 2 startShow (showType); }}

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

jika (Hijau == RENDAH && GreenOld == TINGGI) {

kelewatan (20); jika (Hijau == RENDAH) {showType = 3; // Animasi hijau Jenis 3 startShow (showType); }} // ============================================== =============================================

jika (Biru == RENDAH && BlueOld == TINGGI) {

kelewatan (20); jika (Biru == RENDAH) {showType = 4; // Animasi biru Jenis 4 startShow (showType); }}

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

jika (Topaz == RENDAH && TopazOld == TINGGI) {

kelewatan (20); jika (Topaz == RENDAH) {showType = 5; // Topaz animasi Type 5 startShow (showType); }}

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

jika (Lilac == RENDAH && LilacOld == TINGGI) {

kelewatan (20); jika (Lilac == RENDAH) {showType = 6; // Topaz animasi Type 6 startShow (showType); }} // ============================================== =============================================

jika (Rainbow == RENDAH && RainbowOld == TINGGI) {

kelewatan (20);

jika (Pelangi == RENDAH) {

showType = 8; // Animasi pelangi Jenis 8 startShow (showType); }}

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

jika (rgb == RENDAH && rgbTua == TINGGI) {

kelewatan (20);

jika (rgb == RENDAH) {

showType = 7; // Campurkan animasi Jenis 7 rgb = TINGGI;

startShow (showType);

} }

WhiteOld = Putih;

RedOld = Merah; BlueOld = Biru; GreenOld = Hijau; TopazOld = Topaz; LilacOld = Lilac; offOld = mati; RainbowOld = Pelangi; rgbOld = rgb;

}

batal startShow (int i) {

beralih (i) {

kes 0: colorWipe (strip. Color (0, 0, 0), SPEED); // Hitam / mati

rehat;

kes 1: strip.setBrightness (255); // Menukar Kecerahan menjadi MAX

colorWipe (strip. Color (255, 255, 255), SEGERA); // Jalur putih.setBrightness (BRIGHTNESS); // Tetapkan semula kecerahan ke jeda nilai Lalai;

kes 2: colorWipe (strip. Color (255, 0, 0), SPEED); // Merah

rehat;

kes 3: colorWipe (strip. Color (0, 255, 0), SPEED); // Hijau

rehat;

kes 4: colorWipe (strip. Color (0, 0, 255), SPEED); // Biru

rehat;

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

rehat;

kes 6: colorWipe (strip. Color (221, 130, 255), SPEED); // Lilac

rehat; kes 7: colorWipe (strip. Color (255, 0, 0), SPEED); // Warna merahWipe (strip. Color (0, 255, 0), SPEED); // Warna hijauWipe (strip. Color (0, 0, 255), SPEED); // Teater biruChase (strip. Color (0, 0, 127), SPEED); // Teater biruChase (strip. Color (127, 0, 0), SPEED); // Red TheaterChase (strip. Color (0, 127, 0), SPEED); // Rehat hijau;

kes 8: Kitaran pelangi (25);

rehat; }} void colorWipe (uint32_t c, uint8_t waiting) {untuk (uint16_t i = 0; i

kekosongan pelangi kosong (uint8_tunggu) {

uint16_t i, j;

untuk (j = 0; j <256 * 10; j ++) {// 5 kitaran semua warna pada roda untuk (i = 0; i <strip.numPixels (); i ++) {strip.setPixelColor (i, Wheel (((i * 256 / strip.numPixels ()) + j) & 255)); } strip.show (); kelewatan (tunggu); }}

batal teaterChase (uint32_t c, uint8_t tunggu) {

untuk (int j = 0; j <10; j ++) {// lakukan 10 kitaran mengejar untuk (int q = 0; q <3; q ++) {untuk (int i = 0; i <strip.numPixels (); i = i + 3) {strip.setPixelColor (i + q, c); // hidupkan setiap piksel ketiga} strip.show ();

kelewatan (tunggu);

untuk (int i = 0; i <strip.numPixels (); i = i + 3) {strip.setPixelColor (i + q, 0); // matikan setiap piksel ketiga}}}}

uint32_t Wheel (byte WheelPos) {

WheelPos = 255 - WheelPos; jika (WheelPos <85) {jalur balik. Warna (255 - WheelPos * 3, 0, WheelPos * 3); } jika (WheelPos <170) {WheelPos - = 85; jalur balik. Warna (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos - = 170; jalur balik. Color (WheelPos * 3, 255 - WheelPos * 3, 0); }

Langkah 6: Mengawal Lampu

Mengawal Lampu
Mengawal Lampu
Mengawal Lampu
Mengawal Lampu
Mengawal Lampu
Mengawal Lampu

Warna lampu dapat dikawal dengan menggunakan telefon pintar anda.

Pertama, anda perlu memasang aplikasi yang dipanggil 'Bluetooth Terminal HC-05' dari Google Play Store atau Apple App Store.

Ini adalah langkah-langkah untuk mengawal lampu melalui telefon pintar anda sendiri:

1. Hidupkan bluetooth di telefon pintar anda.

2. Buka aplikasi iaitu 'Terminal Bluetooth HC-05'.

3. Anda kini harus melihat peranti berpasangan di skrin. Pilih 'HC-05'.

4. Sekarang anda dapat melihat layar hitam muncul di telefon pintar anda yang akan menunjukkan 'disambungkan ke Arduino'.

5. Inilah bahagian yang menyeronokkan, jika anda menaip 'b' di kotak teks, lampu akan berubah menjadi warna biru. Berikut adalah senarai arahan yang boleh anda taipkan untuk lampu:

- w untuk putih

- b untuk warna biru

- g untuk hijau

- r untuk merah

- t untuk topaz

- l untuk ungu

- untuk animasi pelangi

- o untuk dimatikan

Seronok kan?

6. Akhir sekali, anda juga boleh menyesuaikan butang di bawah skrin untuk teks yang anda inginkan seperti yang ditunjukkan pada gambar di atas.

Langkah 7: Nikmati Lampu Mood Anda

Nikmati Lampu Mood Anda !!
Nikmati Lampu Mood Anda !!
Nikmati Lampu Mood Anda !!
Nikmati Lampu Mood Anda !!
Nikmati Lampu Mood Anda !!
Nikmati Lampu Mood Anda !!

Saya harap anda menyukai Instructables ini. Ini adalah projek yang sangat mencabar bagi saya tetapi saya berjaya menyiapkannya sepenuhnya sebagai anak lelaki berusia 14 tahun. Jangan beri saya maklum balas untuk penambahbaikan masa depan.

Terima kasih kerana membaca dan Selamat Hari Krismas!

Disyorkan: