Mündəricat:

MAGNETİK ESNƏK QOLU İLƏ GÜNƏŞSİZ LAMP: 8 addım (şəkillərlə)
MAGNETİK ESNƏK QOLU İLƏ GÜNƏŞSİZ LAMP: 8 addım (şəkillərlə)

Video: MAGNETİK ESNƏK QOLU İLƏ GÜNƏŞSİZ LAMP: 8 addım (şəkillərlə)

Video: MAGNETİK ESNƏK QOLU İLƏ GÜNƏŞSİZ LAMP: 8 addım (şəkillərlə)
Video: Malandra Jr. - Magnetik (Original Mix) [Diynamic] 2024, Iyul
Anonim
MAGNETİK ESNEK QOLU İLƏ GÜNƏŞSİZ TELSİZ LAMBA
MAGNETİK ESNEK QOLU İLƏ GÜNƏŞSİZ TELSİZ LAMBA
MAGNETİK ESNƏK QOLU İLƏ GÜNƏŞSİZ TELSİZ LAMBA
MAGNETİK ESNƏK QOLU İLƏ GÜNƏŞSİZ TELSİZ LAMBA

Bu layihə qırıq bir lampadan və nodeMCU -dan hazırlanmışdır. Bu dekorativ lampa istənilən istiqamətdə tənzimlənə bilər və maqnit materiallara yapışdırıla bilər və ya masaya qoyula bilər. Aşağıdakı kimi iki rejimdə idarə oluna bilər:

- Simsiz idarəetmə rejimi, aşağıdakı YouTube bağlantısı olaraq:

- Aşağıdakı YouTube bağlantısı olaraq interaktiv idarəetmə rejimi:

Addım 1: MALZEMƏ BİLDİRİSİ

B. O. M siyahısı:

Şəkil
Şəkil

İnteraktiv rejim üçün lampanın rəngini idarə etmək üçün NodeMCU -dan girro məlumatları almaq üçün MPU6050 istifadə edirəm.

Bu layihə üçün materiallar şəkli:

Şəkil
Şəkil

Addım 2: CURCUIT

Dairə
Dairə

Bu, yuxarıdakı Fritzing sxemində olduğu kimi, 1 RGB Led ümumi anod tipli, R100 və MPU6050 üç məhdud cərəyan müqavimətinə malik çox sadə bir sxemdir.

Reflektor, hər hansı bir qırılmış lampadan istifadə olunur və nodeMCU bazasına 2 boltla bağlanır və ya möhkəm yapışqan ilə yapışdırılır.

Quraşdırma işləri:

Şəkil
Şəkil
Şəkil
Şəkil

Aşağıdakı sxematik:

Şəkil
Şəkil

Addım 3: MAGNETİK BAZA - ESNEK QOL

Maqnit bazası - çevik qol
Maqnit bazası - çevik qol

Qırılan çevik su kranlarından çevik qolu yenidən istifadə etmək olar. Belə bir şey:

Şəkil
Şəkil

Bəzi ipuçları ilə, onları çevik qolun altındakı daimi maqnit bazasına bağlamağa çalışırıq. Yuxarıda, dövrə lövhəmizə və günəş/batareya şarj cihazına qoşulmaq üçün bir qazma çuxuru hazırladıq. Bu baza ilə masa, döşəmə kimi səthə lampa qoya bilərik …..; və ya polad dirək, polad quruluş kimi maqnit materiallara yapışdırıla bilər.

Addım 4: GÜNƏŞ - BATARYA ŞARJ EDİCİ

GÜNƏŞ - BATARİYA ŞARJ EDİCİ
GÜNƏŞ - BATARİYA ŞARJ EDİCİ

Zədələnmiş şarj lampasından gəldi. NodeMCU -ya açma/söndürmə açarı və elektrik naqilləri əlavə etdim. Bir USB portu və bir şarj cihazı üçün bir fiş də var.

Addım 5: BÜTÜN BİRGƏ BAXIN

BÜTÜN BÜTÜN BAĞLAYIN
BÜTÜN BÜTÜN BAĞLAYIN

Bütün hissələri birləşdirən: NodeMCU və reflektor, günəş və batareya hüceyrələri, çevik qol.

SONLA

Şəkil
Şəkil

ŞARJLAMA MODU

Şəkil
Şəkil

Addım 6: INTERACTIVE CONTROL PROGRAMI

Çevik qolu tənzimlədikdə və ya lampanı döndərəndə rəng dəyişəcək.

INTERACTIVE LAMP

#daxil edin
// MPU6050 Slave Cihaz Ünvanı
const uint8_t MPU6050SlaveAddress = 0x68;
// I2C ünsiyyəti üçün SDA və SCL sancaqlarını seçin - WIRE KİTABXANASINDA default olaraq pin edin: NODEMCU -da SCL - D1 & SDA - D2
// const uint8_t SCL = D1;
// const uint8_t SDA = D2;
const int R = 14;
const int G = 12;
const int B = 13;
// MPU6050 bir neçə konfiqurasiya qeydiyyatı ünvanı
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, Temperatur, GyroX, GyroY, GyroZ;
boş quraşdırma () {
pinMode (R, Çıxış);
pinMode (G, Çıxış);
pinMode (B, Çıxış);
//Serial.begin (9600);
Wire.begin (SDA, SCL);
MPU6050_Init ();
}
boşluq döngəsi () {
uint16_t Ax, Ay, Az, T, Gx, Gy, Gz;
uint16_t Qırmızı, Yaşıl, Mavi;
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H);
// Mütləq dəyər alın
Ax = myAbs (AccelX);
Ay = myAbs (AccelY);
Az = myAbs (AccelZ);
// Aralıqda miqyas
Qırmızı = xəritə (Ax, 0, 16384, 0, 1023);
Yaşıl = xəritə (Ay, 0, 16384, 0, 1023);
Mavi = xəritə (Az, 0, 16384, 0, 1023);
// Yoxlamaq üçün seriya çapı
//Serial.print("Qırmızı: "); Serial. çap (Qırmızı);
//Serial.print("Green: "); Serial. çap (Yaşıl);
//Serial.print("Mavi: "); Serial. çap (Mavi);
// LED -ə analoq yazın
analogWrite (R, Qırmızı); // R.
analogWrite (G, Yaşıl); // G.
analogWrite (B, Mavi); // B
gecikmə (200);
}
etibarsız I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t data) {
Wire.beginTransmission (cihaz ünvanı);
Wire.write (regAddress);
Wire.write (məlumatlar);
Wire.endTransmission ();
}
// 14 qeydin hamısını oxuyun
etibarsız Read_RawValue (uint8_t deviceAddress, uint8_t regAddress) {
Wire.beginTransmission (cihaz ünvanı);
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 ());
Temperatur = (((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 ());
}
// MPU6050 -ni konfiqurasiya edin
boş MPU6050_Init () {
gecikmə (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 dərəcə/saniyə tam miqyaslı
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // set +/- 2g tam miqyaslı
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);
}
// Mütləq dəyər
float myAbs (üzmək) {
qayıt (in)> 0? (in):-(in);
}

GitHub tərəfindən ❤ ilə ev sahibliyi edilən rawINTERACTIVE LAMP PROGRAMINA baxın

Addım 7: KABLOSUZ NƏZARƏT PROQRAMI VƏ ANDROID TƏTBİQİ

KABLOSUZ NƏZARƏT PROQRAMI VƏ ANDROID TƏTBİQİ
KABLOSUZ NƏZARƏT PROQRAMI VƏ ANDROID TƏTBİQİ

Başqa bir yol, WiFi Şəbəkəsində Android ilə RGB LEDini idarə etmək üçün Android Tətbiqindən istifadə edə bilərik. Android Tətbiqini Bağlayın: NODEMCU RGB LED Tətbiqini idarə edir

Arduino proqramı üçün müraciət edə bilərsiniz:

microcontrollerkits.blogspot.com/2016/05/es…

Proqramı NodeMCU -ya yüklədikdən sonra, ilk iş bizə NodeMCU -nun IP ünvanını serial çapda verəcək. Mənim vəziyyətimdə: 80 portda 192.164.1.39.

Şəkil
Şəkil

İndi, yuxarıda göstərilən ünvanı İnternet Explorer -ə daxil edərək, dizüstü kompüter/ planşet/ cib telefonu ilə simsiz lampanı idarə edə bilərik.

Şəkil
Şəkil

Və ya Android tətbiqindən istifadə edərək:

Şəkil
Şəkil

Adım 8: BƏZİ ŞƏKİLLƏR

Tövsiyə: