Daftar Isi:

Lampu LED Cerdas yang dikendalikan oleh Smartphone Bluetooth: 7 Langkah
Lampu LED Cerdas yang dikendalikan oleh Smartphone Bluetooth: 7 Langkah

Video: Lampu LED Cerdas yang dikendalikan oleh Smartphone Bluetooth: 7 Langkah

Video: Lampu LED Cerdas yang dikendalikan oleh Smartphone Bluetooth: 7 Langkah
Video: Menyalakan Peralatan Listrik Dengan Smartphone Berbasis Arduino – Tutorial Arduino Keren 2024, Desember
Anonim
Image
Image
Lampu LED Cerdas yang dikendalikan Smartphone Bluetooth
Lampu LED Cerdas yang dikendalikan Smartphone Bluetooth

Saya selalu bermimpi mengendalikan peralatan pencahayaan saya. Kemudian seseorang membuat lampu LED warna-warni yang luar biasa. Saya baru-baru ini menemukan Lampu LED oleh Joseph Casha di Youtube. Terinspirasi olehnya, saya memutuskan untuk menambahkan beberapa fungsi sambil mempertahankan desain kontemporer.

Rencananya, lampu ini akan lebih ramah pengguna dengan menambahkan Modul Bluetooth dan strip LED WS2812B RGB yang dapat dialamatkan. Ini memungkinkan untuk mengontrol warna pencahayaan hanya dengan menggunakan aplikasi smartphone.

Langkah 1: Kumpulkan Bahan

Kumpulkan Bahannya
Kumpulkan Bahannya
Kumpulkan Bahannya
Kumpulkan Bahannya

Peralatan:

• Stasiun Solder

• Pistol Peniup Pemanas

• Mesin bor

• Gergaji

• Jigsaw

• Tang Pemotong Kawat

• Tang Hidung Sempit

Bahan:

• Papan Akrilik Tembus Pandang

• Kayu Cypress Jepang (atau bisa menggunakan kayu apa saja asalkan kayunya kuat dan stabil)

• Sekrup

• Tiang atau Tongkat Stainless Steel

• Kabel (saya menggunakan kabel merah dan hitam)

• Timah Solder

Komponen Elektronik:

• Arduino Nano

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

• Strip LED RGB Beralamat WS2812B

• Modul Step-down LM2596

• Soket Listrik Barel DC

Langkah 2: Membangun Struktur Lampu

Membangun Struktur Lampu
Membangun Struktur Lampu
Membangun Struktur Lampu
Membangun Struktur Lampu

Pada langkah ini, saya memiliki dua cara membangun struktur yaitu metode pengerjaan kayu lampu dan metode pencetakan 3D. Saya menggunakan cara pertama. Jika Anda lebih suka membuatnya dengan menggunakan printer 3D, silakan lewati ke langkah 2 untuk model yang saya rancang.

Untuk bagian atas lampu, saya memanaskan dan menekuk papan akrilik hingga membentuk sudut 90° seperti pada gambar di atas. Saya membutuhkan waktu yang cukup lama untuk membengkokkannya ke sudut dan arah yang sempurna.

Selanjutnya, untuk bagian bawah lampu. Sayangnya… pada hari saya mengerjakan bagian bawah lampu, saya benar-benar lupa memotret konstruksinya! Saya menyadari itu ketika saya menyelesaikan proyek ini. Tapi saya akan mencoba yang terbaik untuk memberi Anda ukuran bagian bawah lampu.

Pada dasarnya, Anda hanya perlu memotong empat balok kayu berukuran 13x6x2cm (PxLxW). Selanjutnya, Anda perlu memotong potongan seperti tangga di tepi kayu. Gambar akan ditampilkan di atas.

Langkah 3: Bentuk 3D

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

Bagi siapa saja yang memiliki printer 3D sendiri, Anda berada di langkah yang tepat. Ini membuat lampu ini mudah digunakan.

Sejujurnya, ini adalah langkah tersulit yang saya lakukan. Ini adalah hal pertama yang saya lakukan setelah menginstal perangkat lunak!

Saya menggunakan Sketchup Pro untuk mendesain struktur lampu. Sayangnya, saya tidak cukup ahli untuk mendesain komponen interiornya. Tautan ke model 3D saya ada di file di bawah ini.

Langkah 4: Skema Komponen

Skema Komponen
Skema Komponen

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

Langkah 5: Kode

Kode
Kode

Untuk pengkodean lampu mood ini, saya menggunakan beberapa library dari Arduino IDE. Perpustakaan akan terdaftar di langkah 7.

Untuk kodenya, Anda harus memiliki perangkat lunak Arduino itu sendiri. Saya akan memberikan tautan untuk mengunduh di sini.

Juga, sketsa atau kode akan ditampilkan di bawah ini?

Saya juga menyediakan file untuk kode di Github.com jika kode di bawah ini terlalu panjang untuk disalin di sini;)

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

Perangkat LunakSerial BT(10, 11);

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

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

bool offLama = RENDAH;

bool PutihLama = RENDAH; bool Merah Tua = RENDAH; bool HijauLama = RENDAH; bool Biru Tua = RENDAH; bool TopazOld = RENDAH; bool LilacOld = RENDAH; bool RainbowOld = RENDAH; bool rgbOld = RENDAH; int showType = 0;

batalkan pengaturan() {

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

BT.mulai (9600);

BT.println("Terhubung ke Arduino");

strip.setBrightness(KECERAHAN);

strip.mulai();

strip.tampilkan();

}

karakter;

lingkaran kosong() {

for (int i = 0; i <= 59; i++) { leds = CRGB(255, 255, 255); FastLED.show(); } mundur = RENDAH; bool Putih = RENDAH; bool Biru = RENDAH; bool Merah = RENDAH; bool Hijau = RENDAH; bool Topaz = RENDAH; bool Lilac = RENDAH; bool Pelangi = RENDAH; bool rgb = RENDAH; bool ende; if (BT.available()) { a= (char)BT.read();

jika (a=='o')

{ mati = TINGGI; BT.println("MATI LED..");

}lain{

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

jika (a=='w')

{ Putih = TINGGI; BT.println("MENUBAH LED PUTIH");

}lain{

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

jika (a=='b')

{ Biru = TINGGI; BT.println("UBAH KE BIRU"); }else{ Biru = RENDAH; }

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

jika (a=='r')

{ Merah = TINGGI; BT.println("UBAH MENJADI MERAH"); }else{ Merah = RENDAH; }

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

jika(a=='g')

{ Hijau = TINGGI; BT.println("UBAH KE HIJAU"); }else{ Hijau = RENDAH; }

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

jika (a=='t')

{ Batu Topaz = TINGGI; BT.println("UBAH KE TOPAZ"); }else{ Topaz = RENDAH; }

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

jika (a=='l')

{ Ungu = TINGGI; BT.println("UBAH KE LILA"); }else{ Ungu = RENDAH; }

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

jika (a=='a')

{ Pelangi = TINGGI; BT.println("ANIMASI PELANGI"); }else{ Pelangi = RENDAH; } // =============================================== ==============================================

jika (a=='m')

{ rgb = TINGGI; BT.println("CAMPURAN WARNA"); }lain{ rgb = RENDAH; } } if (mati == RENDAH && matiLama == TINGGI) { delay(20); if (mati == RENDAH) { showType = 0; // Matikan animasi Ketik 0 startShow(showType); } }

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

if (Putih == RENDAH && Putih Tua == TINGGI) {

penundaan (20); if (Putih == RENDAH) { showType = 1; // Animasi putih Ketik 1 startShow(showType); } }

// ================================================ =========================================== jika (Merah == RENDAH && MerahLama == TINGGI) { delay(20); if (Merah == RENDAH) { showType = 2; // Animasi merah Tipe 2 startShow(showType); } }

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

if (Hijau == RENDAH && HijauLama == TINGGI) {

penundaan (20); if (Hijau == RENDAH) { showType = 3; // Animasi hijau Tipe 3 startShow(showType); } } // ============================================== ===============================================

if (Biru == RENDAH && BiruLama == TINGGI) {

penundaan (20); if (Biru == RENDAH) { showType = 4; // Animasi biru Ketik 4 startShow(showType); } }

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

if (Topas == RENDAH && TopazOld == TINGGI) {

penundaan (20); if (Topaz == RENDAH) { showType = 5; // Animasi Topaz Ketik 5 startShow(showType); } }

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

if (Ungu == RENDAH && Ungu Tua == TINGGI) {

penundaan (20); if (Ungu == RENDAH) { showType = 6; // Animasi Topaz Ketik 6 startShow(showType); } } // ============================================== ===============================================

if (Pelangi == RENDAH && PelangiLama == TINGGI) {

penundaan (20);

if (Pelangi == RENDAH) {

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

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

if (rgb == RENDAH && rgbOld == TINGGI) {

penundaan (20);

if (rgb == RENDAH) {

showType = 7; // Animasi campuran Ketik 7 rgb = TINGGI;

startShow(showType);

} }

PutihLama = Putih;

MerahTua = Merah; BiruLama = Biru; HijauLama = Hijau; TopazLama = Batu Topaz; LilacOld = Ungu; matiLama = mati; PelangiLama = Pelangi; rgbLama = rgb;

}

void startShow(int i) {

beralih (i){

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

merusak;

kasus 1: strip.setBrightness(255); // Mengubah Kecerahan menjadi MAX

colorWipe(strip. Color(255, 255, 255), SEGERA); // Strip putih.setBrightness(BRIGHTNESS); // Atur ulang Brightness ke Default value break;

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

merusak;

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

merusak;

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

merusak;

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

merusak;

case 6: colorWipe(strip. Color(221, 130, 255), SPEED); // ungu

merusak; kasus 7: colorWipe(strip. Color(255, 0, 0), SPEED); // Warna merah Hapus(strip. Color(0, 255, 0), SPEED); // Warna hijauWipe(strip. Color(0, 0, 255), SPEED); // Blue theaterChase(strip. Color(0, 0, 127), SPEED); // Blue theaterChase(strip. Color(127, 0, 0), SPEED); // Red theaterChase(strip. Color(0, 127, 0), SPEED); // istirahat hijau;

kasus 8: rainbowCycle(25);

merusak; } } void colorWipe(uint32_t c, uint8_t tunggu) { for(uint16_t i=0; i

void rainbowCycle(uint8_t tunggu) {

uint16_t i, j;

for(j=0; j<256*10; j++) { // 5 siklus semua warna pada roda for(i=0; i< strip.numPixels(); i++) { strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255); } strip.tampilkan(); tunda (tunggu); } }

void theaterChase(uint32_t c, uint8_t tunggu) {

for (int j=0; j<10; j++) { //lakukan 10 siklus pengejaran for (int q=0; q < 3; q++) { for (int i=0; i < strip.numPixels(); i=i+3) { strip.setPixelColor(i+q, c); //mengaktifkan setiap piksel ketiga } strip.show();

tunda (tunggu);

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

Roda uint32_t(byte WheelPos) {

WheelPos = 255 - WheelPos; if(WheelPos < 85) { kembali strip. Warna(255 - WheelPos * 3, 0, WheelPos * 3); } if(WheelPos < 170) { WheelPos -= 85; kembali strip. Color(0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; kembali strip. Warna(WheelPos * 3, 255 - WheelPos * 3, 0); }

Langkah 6: Mengontrol Lampu

Mengontrol Lampu
Mengontrol Lampu
Mengontrol Lampu
Mengontrol Lampu
Mengontrol Lampu
Mengontrol Lampu

Warna lampu dapat dikontrol dengan menggunakan smartphone Anda.

Pertama, Anda perlu menginstal aplikasi bernama 'Bluetooth Terminal HC-05' dari Google Play Store atau Apple App Store.

Berikut langkah-langkah untuk mengontrol lampu melalui smartphone Anda sendiri:

1. Aktifkan bluetooth di smartphone Anda.

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

3. Anda sekarang akan melihat perangkat yang dipasangkan di layar. Pilih 'HC-05'.

4. Sekarang Anda dapat melihat layar hitam muncul di smartphone Anda yang akan menunjukkan 'terhubung ke Arduino'.

5. Inilah bagian yang menyenangkan, jika Anda mengetik 'b' di kotak teks, lampu akan berubah menjadi warna biru. Berikut adalah daftar perintah yang dapat Anda ketik untuk lampu:

- w untuk putih

- b untuk biru

- g untuk hijau

- r untuk merah

- t untuk topas

- l untuk lilac

- untuk animasi pelangi

- o untuk off

Menyenangkan bukan?

6. Last but not least, Anda juga dapat menyesuaikan tombol di bawah layar dengan teks yang Anda inginkan seperti yang ditunjukkan pada gambar di atas.

Langkah 7: Nikmati Lampu Suasana Hati Anda

Nikmati Lampu Suasana Hati Anda!!
Nikmati Lampu Suasana Hati Anda!!
Nikmati Lampu Suasana Hati Anda!!
Nikmati Lampu Suasana Hati Anda!!
Nikmati Lampu Suasana Hati Anda!!
Nikmati Lampu Suasana Hati Anda!!

Saya harap Anda menyukai Instruksi ini. Itu adalah proyek yang sangat menantang bagi saya, tetapi saya berhasil menyelesaikannya sepenuhnya sebagai anak laki-laki berusia 14 tahun. Beri saya umpan balik untuk perbaikan di masa mendatang.

Terima kasih telah membaca dan Selamat Natal!

Direkomendasikan: