Isi kandungan:

LAMPU WIRELESS SOLAR DENGAN ARM FLEKSIBEL MAGNETIK: 8 Langkah (dengan Gambar)
LAMPU WIRELESS SOLAR DENGAN ARM FLEKSIBEL MAGNETIK: 8 Langkah (dengan Gambar)

Video: LAMPU WIRELESS SOLAR DENGAN ARM FLEKSIBEL MAGNETIK: 8 Langkah (dengan Gambar)

Video: LAMPU WIRELESS SOLAR DENGAN ARM FLEKSIBEL MAGNETIK: 8 Langkah (dengan Gambar)
Video: Proses pasang Ring Jantung atau Cincin Jantung #cardio #cardiology #ringjantung 2024, Julai
Anonim
LAMPU WIRELESS SOLAR DENGAN ARM FLEXIBLE MAGNETIK
LAMPU WIRELESS SOLAR DENGAN ARM FLEXIBLE MAGNETIK
LAMPU WIRELESS SOLAR DENGAN ARM FLEXIBLE MAGNETIK
LAMPU WIRELESS SOLAR DENGAN ARM FLEXIBLE MAGNETIK

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:

Imej
Imej

Untuk mod interaktif, saya menggunakan MPU6050 untuk mendapatkan data gyro dari NodeMCU untuk mengawal warna lampu.

Gambar bahan untuk projek ini:

Imej
Imej

Langkah 2: PEKELILING

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

Imej
Imej
Imej
Imej

Skema di bawah:

Imej
Imej

Langkah 3: MAGNETIC BASE - FLEXIBLE ARM

ASAS MAGNETIK - ARM FLEKSIBEL
ASAS MAGNETIK - ARM FLEKSIBEL

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

Imej
Imej

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

SOLAR - PENGISIAN BATERAI
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

HUBUNGI SEMUA BERSAMA
HUBUNGI SEMUA BERSAMA

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

SELESAI

Imej
Imej

MOD CAJ

Imej
Imej

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

PROGRAM KAWALAN WIRELESS DAN APLIKASI ANDROID
PROGRAM KAWALAN 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.

Imej
Imej

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

Imej
Imej

Atau menggunakan aplikasi Android:

Imej
Imej

Langkah 8: BEBERAPA GAMBAR

Disyorkan: