Innehållsförteckning:

SOLAR TRÅDLÖS LAMPA MED MAGNETISK FLEXIBEL ARM: 8 steg (med bilder)
SOLAR TRÅDLÖS LAMPA MED MAGNETISK FLEXIBEL ARM: 8 steg (med bilder)

Video: SOLAR TRÅDLÖS LAMPA MED MAGNETISK FLEXIBEL ARM: 8 steg (med bilder)

Video: SOLAR TRÅDLÖS LAMPA MED MAGNETISK FLEXIBEL ARM: 8 steg (med bilder)
Video: Part 03 - Moby Dick Audiobook by Herman Melville (Chs 026-040) 2024, Juli
Anonim
SOLAR TRÅDLÖS LAMPA MED MAGNETISK FLEXIBEL ARM
SOLAR TRÅDLÖS LAMPA MED MAGNETISK FLEXIBEL ARM
SOLAR TRÅDLÖS LAMPA MED MAGNETISK FLEXIBEL ARM
SOLAR TRÅDLÖS LAMPA MED MAGNETISK FLEXIBEL ARM

Detta projekt gjordes av en trasig lampa och nodMCU. Denna dekorativa lampa kan justeras i alla riktningar och fästas på magnetiska material eller läggas på bordet. Den kan styras i två lägen enligt följande:

- Trådlöst kontrolläge, som YouTube -länk nedan:

- Interaktivt kontrolläge, som YouTube -länk nedan:

Steg 1: RÄKNING AV MATERIAL

B. O. M lista:

Bild
Bild

För interaktivt läge använder jag MPU6050 för att få gyrodata från NodeMCU för att styra lampans färg.

Materialbild för detta projekt:

Bild
Bild

Steg 2: CIRCUIT

KRETS
KRETS

Detta är en mycket enkel krets, enligt Fritzing -schemat ovan, med 1 RGB Led vanlig anodtyp, tre gränsströmsmotstånd R100 & MPU6050.

Reflektorn används från alla trasiga lampor och ansluten till nodeMCU -basen med två bultar eller klistra fast dem med starkt lim.

Installationsarbete:

Bild
Bild
Bild
Bild

Schemat nedan:

Bild
Bild

Steg 3: MAGNETISK BAS - FLEXIBEL ARM

MAGNETISK BAS - FLEXIBEL ARM
MAGNETISK BAS - FLEXIBEL ARM

Flexibel arm kan återanvändas från trasiga flexibla vattenkranar. Något sådant:

Bild
Bild

Med några tips försöker vi ansluta dem till den permanenta magnetbasen längst ner på den flexibla armen. Ovanpå gjorde vi ett borrhål för anslutning till vårt kretskort och sol-/batteriladdare. Med denna bas kan vi sätta lampan på ytan som bord, golv …; eller det kan fästas på magnetiska material som stålpelare, stålkonstruktion.

Steg 4: SOLAR - BATTERILADDARE

SOLAR - BATTERILADDARE
SOLAR - BATTERILADDARE

Den kom från en skadad laddningslampa. Jag lade till en på/av -omkopplare och strömförsörjning till nodeMCU. Den har också ett USB -uttag och en kontakt för batteriladdare.

Steg 5: ANSLUT ALLT SAMMAN

ANSLUT ALLT SAMMAN
ANSLUT ALLT SAMMAN

Ansluter alla delar: NodeMCU & reflektor, solceller och battericeller, flexibel arm tillsammans.

AVSLUTA

Bild
Bild

LADDNINGSLÄGE

Bild
Bild

Steg 6: INTERAKTIVT KONTROLLPROGRAM

Färgen ändras när vi justerar den flexibla armen eller roterar lampan.

INTERAKTIV LAMPA

#omfatta
// MPU6050 Slave Device Address
const uint8_t MPU6050SlaveAddress = 0x68;
// Välj SDA- och SCL -stift för I2C -kommunikation - Pin -standard i WIRE LIBRARY: SCL - D1 & SDA - D2 på NODEMCU
// const uint8_t SCL = D1;
// const uint8_t SDA = D2;
const int R = 14;
const int G = 12;
const int B = 13;
// MPU6050 få konfigurationsregisteradresser
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;
void setup () {
pinMode (R, OUTPUT);
pinMode (G, OUTPUT);
pinMode (B, OUTPUT);
//Serial.begin(9600);
Wire.begin (SDA, SCL);
MPU6050_Init ();
}
void loop () {
uint16_t Ax, Ay, Az, T, Gx, Gy, Gz;
uint16_t Rött, grönt, blått;
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H);
// Ta absolut värde
Ax = myAbs (AccelX);
Ay = myAbs (AccelY);
Az = myAbs (AccelZ);
// Skala inom räckvidd
Röd = karta (Ax, 0, 16384, 0, 1023);
Grön = karta (Ay, 0, 16384, 0, 1023);
Blå = karta (Az, 0, 16384, 0, 1023);
// Seriell utskrift för att kontrollera
//Serial.print("Red: "); Serial.print (röd);
//Serial.print("Green: "); Serial.print (grönt);
//Serial.print("Blue: "); Serial.print (blå);
// Skriv analogt till LED
analogWrite (R, röd); // R
analogWrite (G, grön); // G
analogWrite (B, blå); // B
fördröjning (200);
}
void I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t data) {
Wire.beginTransmission (deviceAddress);
Wire.write (regAddress);
Wire.write (data);
Wire.endTransmission ();
}
// Läs alla 14 register
void 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 ());
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 ());
}
// Konfigurera MPU6050
ogiltig MPU6050_Init () {
fördröjning (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 grader/sekund full skala
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // set +/- 2g full skala
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);
}
// Absolutvärde
float myAbs (float in) {
return (in)> 0? (in):-(in);
}

visa rawINTERACTIVE LAMP PROGRAM värd med ❤ av GitHub

Steg 7: TRÅDLÖS KONTROLLPROGRAM OCH ANDROID -APPLIKATION

TRÅDLÖS KONTROLLPROGRAM OCH ANDROID -APPLIKATION
TRÅDLÖS KONTROLLPROGRAM OCH ANDROID -APPLIKATION

Ett annat sätt kan vi använda Android App för att styra RGB LED med Android i WiFi -nätverk. Länk Android -app: NODEMCU -kontroll RGB LED -APP

För Arduino -programmet kan du hänvisa till:

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

Efter att ha laddat upp programmet till NodeMCU kommer den första körningen att ge oss NodeMCU: s IP -adress vid seriell utskrift. I mitt fall är det: 192.164.1.39 vid port 80.

Bild
Bild

Nu kan vi styra den trådlösa lampan med bärbar dator/ surfplatta/ mobiltelefon genom att ange adressen ovan i Internet Explorer.

Bild
Bild

Eller använda Android -appen:

Bild
Bild

Steg 8: Vissa BILDER

Rekommenderad: