Daftar Isi:

LAMPU NIRKABEL SURYA DENGAN LENGAN FLEKSIBEL MAGNETIK: 8 Langkah (dengan Gambar)
LAMPU NIRKABEL SURYA DENGAN LENGAN FLEKSIBEL MAGNETIK: 8 Langkah (dengan Gambar)

Video: LAMPU NIRKABEL SURYA DENGAN LENGAN FLEKSIBEL MAGNETIK: 8 Langkah (dengan Gambar)

Video: LAMPU NIRKABEL SURYA DENGAN LENGAN FLEKSIBEL MAGNETIK: 8 Langkah (dengan Gambar)
Video: Proses pasang Ring Jantung atau Cincin Jantung #cardio #cardiology #ringjantung 2024, November
Anonim
LAMPU NIRKABEL SURYA DENGAN LENGAN FLEKSIBEL MAGNETIK
LAMPU NIRKABEL SURYA DENGAN LENGAN FLEKSIBEL MAGNETIK
LAMPU NIRKABEL SURYA DENGAN LENGAN FLEKSIBEL MAGNETIK
LAMPU NIRKABEL SURYA DENGAN LENGAN FLEKSIBEL MAGNETIK

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:

Gambar
Gambar

Untuk mode interaktif, saya menggunakan MPU6050 untuk mendapatkan data gyro dari NodeMCU untuk mengontrol warna lampu.

Bahan gambar untuk proyek ini:

Gambar
Gambar

Langkah 2: SIRKUIT

SIRKUIT
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:

Gambar
Gambar
Gambar
Gambar

Skema di bawah ini:

Gambar
Gambar

Langkah 3: DASAR MAGNETIK - LENGAN FLEKSIBEL

DASAR MAGNETIK - LENGAN FLEKSIBEL
DASAR MAGNETIK - LENGAN FLEKSIBEL

Lengan fleksibel dapat digunakan kembali dari keran air fleksibel yang rusak. Sesuatu seperti itu:

Gambar
Gambar

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

SURYA – PENGISI BATERAI
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

HUBUNGKAN SEMUA BERSAMA
HUBUNGKAN SEMUA BERSAMA

Menghubungkan semua bagian: NodeMCU & reflektor, sel surya & baterai, lengan fleksibel bersama.

MENYELESAIKAN

Gambar
Gambar

MODE PENGISIAN

Gambar
Gambar

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

PROGRAM KONTROL NIRKABEL DAN APLIKASI ANDROID
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.

Gambar
Gambar

Sekarang, kita dapat mengontrol lampu nirkabel dengan laptop/tablet/ponsel dengan memasukkan alamat di atas ke internet explorer.

Gambar
Gambar

Atau menggunakan aplikasi Android:

Gambar
Gambar

Langkah 8: BEBERAPA GAMBAR

Direkomendasikan: