Mündəricat:
Video: MAGNETİK ESNƏK QOLU İLƏ GÜNƏŞSİZ LAMP: 8 addım (şəkillərlə)
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
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ı:
İ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:
Addım 2: CURCUIT
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:
Aşağıdakı sxematik:
Addım 3: MAGNETİK BAZA - ESNEK QOL
Qırılan çevik su kranlarından çevik qolu yenidən istifadə etmək olar. Belə bir şey:
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İ
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 hissələri birləşdirən: NodeMCU və reflektor, günəş və batareya hüceyrələri, çevik qol.
SONLA
ŞARJLAMA MODU
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İ
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.
İ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.
Və ya Android tətbiqindən istifadə edərək: