Talaan ng mga Nilalaman:

SOLAR WIRELESS LAMP WITH WITH MAGNETIC FLEXIBLE ARM: 8 Hakbang (na may Mga Larawan)
SOLAR WIRELESS LAMP WITH WITH MAGNETIC FLEXIBLE ARM: 8 Hakbang (na may Mga Larawan)

Video: SOLAR WIRELESS LAMP WITH WITH MAGNETIC FLEXIBLE ARM: 8 Hakbang (na may Mga Larawan)

Video: SOLAR WIRELESS LAMP WITH WITH MAGNETIC FLEXIBLE ARM: 8 Hakbang (na may Mga Larawan)
Video: The ACHOICE ID207 MINI: The Stylish and Functional Smartwatch That Won't Break the Bank 2024, Hulyo
Anonim
SOLAR WIRELESS LAMP NA MAY MAGNETIC FLEXIBLE ARM
SOLAR WIRELESS LAMP NA MAY MAGNETIC FLEXIBLE ARM
SOLAR WIRELESS LAMP NA MAY MAGNETIC FLEXIBLE ARM
SOLAR WIRELESS LAMP NA MAY MAGNETIC FLEXIBLE ARM

Ang proyektong ito ay ginawa mula sa isang sirang lampara at nodeMCU. Ang pandekorasyon na lampara na ito ay maaaring iakma sa anumang mga direksyon at nakakabit sa mga magnetikong materyales o ilagay sa mesa. Maaari itong makontrol sa dalawang mga mode tulad ng sumusunod:

- Wireless control mode, tulad ng link sa YouTube sa ibaba:

- Interactive control mode, tulad ng link sa YouTube sa ibaba:

Hakbang 1: BILL OF MATERIALS

Listahan ng B. O. M:

Larawan
Larawan

Para sa interactive mode, gumagamit ako ng MPU6050 upang makakuha ng data ng gyro mula sa NodeMCU upang makontrol ang kulay ng ilawan.

Larawan ng materyal para sa proyektong ito:

Larawan
Larawan

Hakbang 2: CIRCUIT

CIRCUIT
CIRCUIT

Ito ay napaka-simpleng circuit, tulad ng Fritzing eskematiko sa itaas, na may 1 RGB Led karaniwang uri ng anode, tatlong limitasyon kasalukuyang resistors R100 & MPU6050.

Ang reflector ay ginagamit mula sa anumang sirang lampara at konektado sa base ng nodeMCU ng 2 bolts o idikit ang mga ito gamit ang malakas na pandikit.

Trabaho sa pag-install:

Larawan
Larawan
Larawan
Larawan

Skema sa ibaba:

Larawan
Larawan

Hakbang 3: MAGNETIC BASE - FLEXIBLE ARM

MAGNETIC BASE - FLEXIBLE ARM
MAGNETIC BASE - FLEXIBLE ARM

Ang nababaluktot na braso ay maaaring magamit muli mula sa sirang nababaluktot na mga gripo ng tubig. Isang bagay na tulad nito:

Larawan
Larawan

Sa ilang mga tip, sinubukan naming ikonekta ang mga ito sa permanenteng base ng magnet sa ilalim ng kakayahang umangkop na braso. Sa tuktok, gumawa kami ng isang butas ng drill para sa pagkonekta sa aming circuit board at solar / baterya na charger. Sa batayang ito, maaari naming ilagay ang lampara sa ibabaw tulad ng mesa, sahig…. o maaari itong ikabit sa mga magnetikong materyales tulad ng steel pou, bakal na istraktura.

Hakbang 4: SOLAR - BATTERY CHARGER

SOLAR - BATTERY CHARGER
SOLAR - BATTERY CHARGER

Galing ito sa isang nasira na lampara ng singilin. Nagdagdag ako ng isang on / off switch at power wires supply sa nodeMCU. Mayroon din itong isang USB port outlet at isang plug para sa charger ng baterya.

Hakbang 5: Ikonekta ang LAHAT NG MAGKASAMA

Ikonekta ang LAHAT NG MAGKASAMA
Ikonekta ang LAHAT NG MAGKASAMA

Kumokonekta sa lahat ng mga bahagi: NodeMCU at reflector, solar at baterya na mga cell, nababaluktot na braso nang magkasama.

TAPOS

Larawan
Larawan

CHARGING MODE

Larawan
Larawan

Hakbang 6: PROGRAMA NG INTERACTIVE CONTROL

Ang kulay ay mababago kapag inaayos namin ang kakayahang umangkop braso o paikutin ang lampara.

INTERACTIVE LAMP

# isama
// MPU6050 Slave Device Address
const uint8_t MPU6050SlaveAddress = 0x68;
// Piliin ang mga pin ng SDA at SCL para sa komunikasyon ng I2C - Pin default sa WIRE LIBRARY: SCL - D1 & SDA - D2 sa NODEMCU
// const uint8_t SCL = D1;
// const uint8_t SDA = D2;
const int R = 14;
const int G = 12;
const int B = 13;
// MPU6050 ilang mga rehistro sa rehistro ng pagsasaayos
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, Temperatura, GyroX, GyroY, GyroZ;
walang bisa ang pag-setup () {
pinMode (R, OUTPUT);
pinMode (G, OUTPUT);
pinMode (B, OUTPUT);
//Serial.begin(9600);
Wire.begin (SDA, SCL);
MPU6050_Init ();
}
void loop () {
uint16_t Axe, Ay, Az, T, Gx, Gy, Gz;
uint16_t Pula, berde, Asul;
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H);
// Kumuha ng ganap na halaga
Ax = myAbs (AccelX);
Ay = myAbs (AccelY);
Az = myAbs (AccelZ);
// Scale in range
Pula = mapa (Ax, 0, 16384, 0, 1023);
Green = mapa (Ay, 0, 16384, 0, 1023);
Blue = mapa (Az, 0, 16384, 0, 1023);
// Serial print upang suriin
//Serial.print("Red: "); Serial.print (Pula);
//Serial.print("Green: "); Serial.print (Green);
//Serial.print("Blue: "); Serial.print (Blue);
// Sumulat ng analog sa LED
analogWrite (R, Red); // R
analogWrite (G, Green); // G
analogWrite (B, Blue); // B
pagkaantala (200);
}
walang bisa ang I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t data) {
Wire.beginTransmission (aparatoAddress);
Wire.write (regAddress);
Wire.write (data);
Wire.endTransmission ();
}
// Basahin ang lahat ng 14 na rehistro
walang bisa ang Read_RawValue (uint8_t deviceAddress, uint8_t regAddress) {
Wire.beginTransmission (aparatoAddress);
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 ());
Temperatura = ((((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 ());
}
// I-configure ang MPU6050
walang bisa MPU6050_Init () {
pagkaantala (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 degree / pangalawang buong sukat
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // set +/- 2g buong sukat
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);
}
// Ganap na Halaga
float myAbs (float in) {
bumalik (sa)> 0? (sa):-(in);
}

tingnan ang RawINTERACTIVE LAMP PROGRAM na naka-host sa ❤ ng GitHub

Hakbang 7: WIRELESS CONTROL PROGRAM AT ANDROID APPLICATION

WIRELESS CONTROL PROGRAM AT ANDROID APPLICATION
WIRELESS CONTROL PROGRAM AT ANDROID APPLICATION

Ang isa pang paraan, maaari naming gamitin ang Android App upang makontrol ang RGB LED sa Android sa WiFi Network. I-link ang Android App: kontrol ng NODEMCU RGB LED APP

Para sa programa ng Arduino, maaari kang mag-refer sa:

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

Matapos ang pag-upload ng programa sa NodeMCU, ang unang pagtakbo ay magbibigay sa amin ng IP address ng NodeMCU sa serial print. Sa aking kaso, ito ay: 192.164.1.39 sa port 80.

Larawan
Larawan

Ngayon, makokontrol natin ang wireless lamp gamit ang laptop / tablet / mobile phone sa pamamagitan ng paglalagay ng address sa itaas sa internet explorer.

Larawan
Larawan

O gumagamit ng Android app:

Larawan
Larawan

Hakbang 8: ILANG LARAWAN

Inirerekumendang: