
Isi kandungan:
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:01


Projek ini dibuat dari lampu yang rosak & nodeMCU. Lampu hiasan ini boleh disesuaikan ke mana-mana arah & dilekatkan pada bahan magnet atau diletakkan di atas meja. Ia dapat dikendalikan dalam dua mod seperti berikut:
- Mod kawalan tanpa wayar, seperti pautan YouTube di bawah:
- Mod kawalan interaktif, seperti pautan YouTube di bawah:
Langkah 1: BIL BAHAN
Senarai B. O. M:

Untuk mod interaktif, saya menggunakan MPU6050 untuk mendapatkan data gyro dari NodeMCU untuk mengawal warna lampu.
Gambar bahan untuk projek ini:

Langkah 2: PEKELILING

Ini adalah litar yang sangat sederhana, seperti skema Fritzing di atas, dengan 1 jenis anod biasa RGB Led, tiga had arus perintang R100 & MPU6050.
Reflektor digunakan dari mana-mana lampu yang rosak & disambungkan ke pangkalan nodeMCU dengan 2 bolt atau lekatkannya dengan gam yang kuat.
Kerja pemasangan:


Skema di bawah:

Langkah 3: MAGNETIC BASE - FLEXIBLE ARM

Lengan fleksibel boleh digunakan semula dari paip air fleksibel yang pecah. Sesuatu seperti itu:

Dengan beberapa petua, kami cuba menghubungkannya ke pangkalan magnet kekal di bahagian bawah lengan fleksibel. Di atas, kami membuat lubang bor untuk menyambung ke papan litar kami dan pengecas solar / bateri. Dengan pangkalan ini, kami dapat meletakkan lampu di permukaan seperti meja, lantai….; atau boleh dilekatkan pada bahan magnet seperti tiang keluli, struktur keluli.
Langkah 4: SOLAR - PENGISIAN BATERAI

Ia datang dari lampu pengecas yang rosak. Saya menambah suis hidup / mati dan bekalan wayar kuasa ke nodeMCU. Ia juga mempunyai satu soket port USB dan satu palam untuk pengecas bateri.
Langkah 5: Sambungkan SEMUA BERSAMA

Menyambungkan semua bahagian: NodeMCU & reflektor, sel solar & bateri, lengan fleksibel bersama.
SELESAI

MOD CAJ

Langkah 6: PROGRAM KAWALAN INTERAKTIF
Warna akan berubah ketika kita menyesuaikan lengan fleksibel atau memutar lampu.
Lampu INTERAKTIF
#sertakan |
// Alamat Peranti Hamba MPU6050 |
const uint8_t MPU6050SlaveAddress = 0x68; |
// Pilih pin SDA dan SCL untuk komunikasi I2C - Pin default dalam WIRE LIBRARY: SCL - D1 & SDA - D2 on NODEMCU |
// const uint8_t SCL = D1; |
// const uint8_t SDA = D2; |
const int R = 14; |
const int G = 12; |
const int B = 13; |
// MPU6050 beberapa alamat daftar konfigurasi |
const uint8_t MPU6050_REGISTER_SMPLRT_DIV = 0x19; |
const uint8_t MPU6050_REGISTER_USER_CTRL = 0x6A; |
const uint8_t MPU6050_REGISTER_PWR_MGMT_1 = 0x6B; |
const uint8_t MPU6050_REGISTER_PWR_MGMT_2 = 0x6C; |
const uint8_t MPU6050_REGISTER_CONFIG = 0x1A; |
const uint8_t MPU6050_REGISTER_GYRO_CONFIG = 0x1B; |
const uint8_t MPU6050_REGISTER_ACCEL_CONFIG = 0x1C; |
const uint8_t MPU6050_REGISTER_FIFO_EN = 0x23; |
const uint8_t MPU6050_REGISTER_INT_ENABLE = 0x38; |
const uint8_t MPU6050_REGISTER_ACCEL_XOUT_H = 0x3B; |
const uint8_t MPU6050_REGISTER_SIGNAL_PATH_RESET = 0x68; |
int16_t AccelX, AccelY, AccelZ, Suhu, GyroX, GyroY, GyroZ; |
batal persediaan () { |
pinMode (R, OUTPUT); |
pinMode (G, OUTPUT); |
pinMode (B, OUTPUT); |
//Serial.begin(9600); |
Wire.begin (SDA, SCL); |
MPU6050_Init (); |
} |
gelung kosong () { |
uint16_t Ax, Ay, Az, T, Gx, Gy, Gz; |
uint16_t Merah, Hijau, Biru; |
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H); |
// Ambil nilai mutlak |
Ax = myAbs (AccelX); |
Ay = myAbs (AccelY); |
Az = myAbs (AccelZ); |
// Skala dalam jarak |
Merah = peta (Ax, 0, 16384, 0, 1023); |
Hijau = peta (Ay, 0, 16384, 0, 1023); |
Biru = peta (Az, 0, 16384, 0, 1023); |
// Cetakan bersiri untuk diperiksa |
//Serial.print("Red: "); Cetakan bersiri (Merah); |
//Serial.print("Green: "); Cetakan bersiri (Hijau); |
//Serial.print("Blue: "); Cetakan bersiri (Biru); |
// Tulis analog ke LED |
analogWrite (R, Merah); // R |
analogWrite (G, Hijau); // G |
analogWrite (B, Biru); // B |
kelewatan (200); |
} |
batal I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t data) { |
Wire.beginTransmission (deviceAddress); |
Wire.write (regAddress); |
Wire.write (data); |
Wire.endTransmission (); |
} |
// Baca kesemua 14 daftar |
batal Read_RawValue (uint8_t deviceAddress, uint8_t regAddress) { |
Wire.beginTransmission (deviceAddress); |
Wire.write (regAddress); |
Wire.endTransmission (); |
Wire.requestFrom (deviceAddress, (uint8_t) 14); |
AccelX = (((int16_t) Wire.read () << 8) | Wire.read ()); |
AccelY = (((int16_t) Wire.read () << 8) | Wire.read ()); |
AccelZ = (((int16_t) Wire.read () << 8) | Wire.read ()); |
Suhu = (((int16_t) Wire.read () << 8) | Wire.read ()); |
GyroX = (((int16_t) Wire.read () << 8) | Wire.read ()); |
GyroY = (((int16_t) Wire.read () << 8) | Wire.read ()); |
GyroZ = (((int16_t) Wire.read () << 8) | Wire.read ()); |
} |
// Konfigurasikan MPU6050 |
batal MPU6050_Init () { |
kelewatan (150); |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_SMPLRT_DIV, 0x07); |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_PWR_MGMT_1, 0x01); |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_PWR_MGMT_2, 0x00); |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_CONFIG, 0x00); |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_GYRO_CONFIG, 0x00); // tetapkan +/- 250 darjah / skala penuh kedua |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // tetapkan skala penuh +/- 2g |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_FIFO_EN, 0x00); |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_INT_ENABLE, 0x01); |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_SIGNAL_PATH_RESET, 0x00); |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_USER_CTRL, 0x00); |
} |
// Nilai mutlak |
terapung myAbs (terapung) { |
pulangan (dalam)> 0? (dalam):-(dalam); |
} |
lihat PROGRAM LAMPU INTERAKTIF yang dihoskan dengan ❤ oleh GitHub
Langkah 7: PROGRAM PENGENDALIAN WIRELESS DAN APLIKASI ANDROID

Dengan cara lain, kita dapat menggunakan Aplikasi Android untuk mengawal LED RGB dengan Android di Rangkaian WiFi. Paut Aplikasi Android: NODEMCU mengawal RGB LED APP
Untuk program Arduino, anda boleh merujuk:
microcontrollerkits.blogspot.com/2016/05/es…
Setelah memuat naik program ke NodeMCU, jalan pertama akan memberi kami alamat IP NodeMCU pada cetakan bersiri. Dalam kes saya, ia adalah: 192.164.1.39 di port 80.

Sekarang, kita dapat mengawal lampu tanpa wayar dengan komputer riba / tablet / telefon bimbit dengan memasukkan alamat di atas ke dalam penjelajah internet.

Atau menggunakan aplikasi Android:

Langkah 8: BEBERAPA GAMBAR
Disyorkan:
FLEXBALL - Bola PCB Fleksibel Seratus Piksel Dengan WiFi: 6 Langkah (dengan Gambar)

FLEXBALL - Bola PCB Fleksibel Seratus Piksel Dengan WiFi: Pembuat Hello, pembuatnya moekoe! Flexball didasarkan pada PCB fleksibel yang dilengkapi dengan 100 LED WS2812 2020 yang dapat dialamatkan. Ia dikendalikan oleh ESP8285-01f - modul berasaskan ESP terkecil oleh Espressif. Selain itu ia mempunyai pecutan ADXL345
Rangka LED Magnetik Peti Sejuk Magnetik: 8 Langkah (dengan Gambar)

Magnetic Fridge RGB LED Frame: Dengan projek ini gambar anda, magnet peti sejuk atau apa sahaja yang anda mahukan dapat menyinari peti sejuk anda dalam kegelapan. Ia adalah projek DIY yang sangat mudah dan tidak mahal yang sangat disukainya kepada anak-anak lelaki saya, jadi saya ingin berkongsi dengan awak.Saya harap anda menyukainya
Hoki Meja Magnetik DIY Dengan Karton, Lampu RGB dan Sensor: 11 Langkah (dengan Gambar)

Hoki Meja Magnetik DIY Dengan Kadbod, Lampu RGB dan Sensor: Anda mesti bermain Air Hoki! Bayar beberapa $$ dolar $$ ke zon permainan dan mulailah menjaringkan gol untuk mengalahkan rakan anda. Bukankah itu sangat ketagihan? Anda pasti berfikir untuk menyimpan satu meja di rumah, tapi hei! pernah terfikir untuk membuatnya sendiri? Kami
Lampu Peti Sejuk Magnetik: 8 Langkah (dengan Gambar)

Lampu Peti Sejuk Magnetik: Hidupkan peti sejuk anda menjadi kanvas untuk seni LED. Setiap orang yang lewat boleh meletakkan dan memindahkan LED magnetik dengan cara yang mereka mahu untuk membuat gambar dan mesej yang diterangi. Ia bagus untuk dapur dengan trafik tinggi dan sangat menyeronokkan untuk kanak-kanak dan orang dewasa
UVIL: Lampu Malam Lampu Latar Hitam (atau Lampu Petunjuk SteamPunk): 5 Langkah (dengan Gambar)

UVIL: Lampu Latar Lampu Latar Hitam (atau Lampu Indikator SteamPunk): Cara memasang lampu penunjuk ultraviolet neo-retropostmodern yang menyala yang mengerikan. Ini menunjukkan pembinaan dua yang pertama yang saya buat sebagai kaedah untuk menilai proses etsa PCB yang digariskan dalam Instruktif lain . Idea saya adalah menggunakan ini kerana saya