Daftar Isi:
Video: LAMPU NIRKABEL SURYA DENGAN LENGAN FLEKSIBEL MAGNETIK: 8 Langkah (dengan Gambar)
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Proyek ini dibuat dari lampu rusak & nodeMCU. Lampu hias ini dapat diatur ke segala arah & ditempelkan pada bahan magnetis atau diletakkan di atas meja. Hal ini dapat dikendalikan dalam dua mode sebagai berikut:
- Mode kontrol nirkabel, seperti tautan YouTube di bawah ini:
- Mode kontrol interaktif, seperti tautan YouTube di bawah ini:
Langkah 1: BILL OF MATERIAL
Daftar B. O. M:
Untuk mode interaktif, saya menggunakan MPU6050 untuk mendapatkan data gyro dari NodeMCU untuk mengontrol warna lampu.
Bahan gambar untuk proyek ini:
Langkah 2: SIRKUIT
Ini adalah rangkaian yang sangat sederhana, seperti skema Fritzing di atas, dengan 1 jenis anoda umum Led RGB, tiga resistor arus batas R100 & MPU6050.
Reflektor digunakan dari lampu yang rusak & dihubungkan ke dasar nodeMCU dengan 2 baut atau rekatkan dengan lem yang kuat.
Pekerjaan instalasi:
Skema di bawah ini:
Langkah 3: DASAR MAGNETIK - LENGAN FLEKSIBEL
Lengan fleksibel dapat digunakan kembali dari keran air fleksibel yang rusak. Sesuatu seperti itu:
Dengan beberapa tips, kami mencoba menghubungkannya ke dasar magnet permanen di bagian bawah lengan fleksibel. Di atas, kami membuat lubang bor untuk menghubungkan ke papan sirkuit dan pengisi daya surya/baterai. Dengan dasar ini, kami dapat meletakkan lampu di permukaan seperti meja, lantai….; atau dapat dilekatkan pada bahan magnetik seperti pilar baja, struktur baja.
Langkah 4: SURYA – PENGISI BATERAI
Itu berasal dari lampu pengisian daya yang rusak. Saya menambahkan sakelar hidup/mati dan catu kabel daya ke nodeMCU. Ini juga memiliki satu outlet port USB dan satu colokan untuk pengisi daya baterai.
Langkah 5: HUBUNGKAN SEMUA BERSAMA
Menghubungkan semua bagian: NodeMCU & reflektor, sel surya & baterai, lengan fleksibel bersama.
MENYELESAIKAN
MODE PENGISIAN
Langkah 6: PROGRAM KONTROL INTERAKTIF
Warna akan berubah ketika kita menyesuaikan lengan fleksibel atau memutar lampu.
LAMPU INTERAKTIF
#termasuk |
// Alamat Perangkat Budak MPU6050 |
const uint8_t MPU6050SlaveAddress = 0x68; |
// Pilih pin SDA dan SCL untuk komunikasi I2C - Pin default di WIRE LIBRARY: SCL - D1 & SDA - D2 pada NODEMCU |
// const uint8_t SCL = D1; |
// const uint8_t SDA = D2; |
const int R = 14; |
konstanta int G = 12; |
konstanta int B = 13; |
// MPU6050 beberapa alamat register 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; |
batalkan pengaturan() { |
pinMode(R, OUTPUT); |
pinMode(G, OUTPUT); |
pinMode(B, OUTPUT); |
//Serial.begin(9600); |
Kawat.mulai(SDA, SCL); |
MPU6050_Init(); |
} |
lingkaran kosong() { |
uint16_t Kapak, Ay, Az, T, Gx, Gy, Gz; |
uint16_t Merah, Hijau, Biru; |
Read_RawValue(MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H); |
// Ambil nilai absolut |
Ax = myAbs(AccelX); |
Ay = myAbs(AccelY); |
Az = myAbs(AccelZ); |
// Skala dalam jangkauan |
Merah = peta(Kapak, 0, 16384, 0, 1023); |
Hijau = peta(Ay, 0, 16384, 0, 1023); |
Biru = peta(Az, 0, 16384, 0, 1023); |
// Cetak serial untuk diperiksa |
//Serial.print("Merah: "); Serial.print(Merah); |
//Serial.print("Hijau: "); Serial.print(Hijau); |
//Serial.print("Biru: "); Serial.print(Biru); |
// Tulis analog ke LED |
analogWrite(R, Merah); // R |
analogWrite(G, Hijau); // G |
analogWrite(B, Biru); // B |
penundaan (200); |
} |
void I2C_Write(uint8_t deviceAddress, uint8_t regAddress, uint8_t data){ |
Wire.beginTransmission(Alamat perangkat); |
Wire.write(regAddress); |
Kawat.tulis(data); |
Kawat.endTransmisi(); |
} |
// Baca semua 14 register |
void Read_RawValue(Uint8_t deviceAddress, uint8_t regAddress){ |
Wire.beginTransmission(Alamat perangkat); |
Wire.write(regAddress); |
Kawat.endTransmisi(); |
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()); |
} |
// Konfigurasi MPU6050 |
batal MPU6050_Init(){ |
penundaan(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);//set +/-250 derajat/detik skala penuh |
I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00);// set +/- 2g skala penuh |
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 |
float myAbs(float in){ |
kembali (dalam)>0?(dalam):-(dalam); |
} |
lihat rawINTERACTIVE LAMP PROGRAM dihosting dengan ❤ oleh GitHub
Langkah 7: PROGRAM KONTROL NIRKABEL DAN APLIKASI ANDROID
Cara lain, kita dapat menggunakan Aplikasi Android untuk mengontrol LED RGB dengan Android di Jaringan WiFi. Tautkan Aplikasi Android: NODEMCU mengontrol APLIKASI LED RGB
Untuk program Arduino, Anda dapat merujuk ke:
microcontrollerkits.blogspot.com/2016/05/es…
Setelah mengupload program ke NodeMCU, run pertama akan memberi kita alamat IP NodeMCU pada serial print. Dalam kasus saya, ini adalah: 192.164.1.39 di port 80.
Sekarang, kita dapat mengontrol lampu nirkabel dengan laptop/tablet/ponsel dengan memasukkan alamat di atas ke internet explorer.
Atau menggunakan aplikasi Android: