Daftar Isi:
- Langkah 1: Kumpulkan Bahan
- Langkah 2: Membangun Struktur Lampu
- Langkah 3: Bentuk 3D
- Langkah 4: Skema Komponen
- Langkah 5: Kode
- Langkah 6: Mengontrol Lampu
- Langkah 7: Nikmati Lampu Suasana Hati Anda
Video: Lampu LED Cerdas yang dikendalikan oleh Smartphone Bluetooth: 7 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
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
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
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
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
Saya menggunakan Fritzing untuk membangun skema komponen. Skema sebenarnya cukup mudah.
Langkah 5: 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
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
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:
Lampu LED Meja Cerdas - Pencahayaan Cerdas Dengan Arduino - Ruang Kerja Neopiksel: 10 Langkah (dengan Gambar)
Lampu LED Meja Cerdas | Pencahayaan Cerdas Dengan Arduino | Ruang Kerja Neopiksel: Saat ini kita menghabiskan banyak waktu di rumah, belajar dan bekerja secara virtual, jadi mengapa tidak membuat ruang kerja kita lebih luas dengan sistem pencahayaan khusus dan cerdas berbasis Arduino dan LED Ws2812b. Di sini saya tunjukkan cara membangun Smart Anda Lampu LED Meja yang
Berkedip Sakelar Lampu yang Mudah Dipasang: Dikendalikan Smartphone Dengan BLYNK: 10 Langkah
Berkedip Sakelar Lampu yang Mudah Dipasang: Dikendalikan Ponsel Cerdas Dengan BLYNK: Perangkat IoT dengan cepat menjadi semakin populer, jadi mengapa Anda tidak belajar dan membuat perangkat IoT Anda sendiri dari bahan murah dan kerja keras untuk melakukan hal-hal yang sebelumnya tidak dapat Anda lakukan ?Nama saya Szehuai dan saya selalu menemukan diri saya akan tertidur, tapi
Pompa Mesin Kopi Cerdas Dikendalikan oleh Sensor Ultrasonik Raspberry Pi & HC-SR04 dan Cloud4RPi: 6 Langkah
Pompa Mesin Kopi Cerdas Dikendalikan oleh Sensor Ultrasonik Raspberry Pi & HC-SR04 dan Cloud4RPi: Secara teori, setiap kali Anda pergi ke mesin kopi untuk cangkir pagi Anda, hanya ada satu dari dua puluh kemungkinan Anda harus mengisi air tangki. Namun, dalam praktiknya, tampaknya mesin itu entah bagaimana menemukan cara untuk selalu memberikan tugas ini pada Anda. NS
ESP 8266 Nodemcu Ws 2812 Lampu LED MOOD Berbasis Neopiksel Dikendalikan oleh Server Web Lokal: 6 Langkah
ESP 8266 Nodemcu Ws 2812 Lampu LED MOOD Berbasis Neopiksel Dikendalikan oleh Server Web Lokal: ESP 8266 Nodemcu Ws 2812 Lampu LED MOOD Berbasis Neopiksel Dikendalikan Menggunakan Server Web
Lampu Labu LED Dikendalikan oleh Arduino: 5 Langkah
Lampu Labu LED Dikendalikan oleh Arduino: Visi awal proyek ini adalah menyiapkan LED untuk hidup dan mati sendiri berdasarkan cahaya sekitar, dan berkedip serta memvariasikan intensitas untuk mensimulasikan lilin. Suku cadang yang dibutuhkan:1 x Arduino1 x LED (sebaiknya yang kuning cerah untuk realisme) 1 x LDR