Indholdsfortegnelse:

SOLAR TRÅDLØS LAMPE MED MAGNETISK FLEKSIBEL ARM: 8 trin (med billeder)
SOLAR TRÅDLØS LAMPE MED MAGNETISK FLEKSIBEL ARM: 8 trin (med billeder)

Video: SOLAR TRÅDLØS LAMPE MED MAGNETISK FLEKSIBEL ARM: 8 trin (med billeder)

Video: SOLAR TRÅDLØS LAMPE MED MAGNETISK FLEKSIBEL ARM: 8 trin (med billeder)
Video: DIY solar project/ inventions ideas / rechargeable solar emergency light 2024, Juli
Anonim
SOLAR TRÅDLØS LAMPE MED MAGNETISK FLEKSIBEL ARM
SOLAR TRÅDLØS LAMPE MED MAGNETISK FLEKSIBEL ARM
SOLAR TRÅDLØS LAMPE MED MAGNETISK FLEKSIBEL ARM
SOLAR TRÅDLØS LAMPE MED MAGNETISK FLEKSIBEL ARM

Dette projekt blev lavet af en ødelagt lampe og nodeMCU. Denne dekorative lampe kan justeres i alle retninger og fastgøres på magnetiske materialer eller sættes på bordet. Det kan styres i to tilstande som følger:

- Trådløs kontroltilstand, som YouTube -link herunder:

- Interaktiv kontroltilstand, som YouTube -link nedenfor:

Trin 1: REGNING AF MATERIALER

B. O. M liste:

Billede
Billede

I interaktiv tilstand bruger jeg MPU6050 til at få gyrodata fra NodeMCU til at styre lampens farve.

Materialebillede til dette projekt:

Billede
Billede

Trin 2: CIRCUIT

KREDSLØB
KREDSLØB

Dette er meget simpelt kredsløb, som Fritzing skematisk ovenfor, med 1 RGB Led fælles anodetype, tre grænsestrømsmodstande R100 & MPU6050.

Reflektoren bruges fra alle ødelagte lamper og forbundet til nodeMCU -base med 2 bolte eller klæb dem med stærk lim.

Installationsarbejde:

Billede
Billede
Billede
Billede

Skematisk herunder:

Billede
Billede

Trin 3: MAGNETISK BASE - FLEKSIBEL ARM

MAGNETISK BASE - FLEKSIBEL ARM
MAGNETISK BASE - FLEKSIBEL ARM

Fleksibel arm kan genbruges fra brudte fleksible vandhaner. Noget i den stil:

Billede
Billede

Med nogle tips forsøger vi at forbinde dem til den permanente magnetbase i bunden af den fleksible arm. Ovenpå lavede vi et borhul til tilslutning til vores printkort og sol-/batterioplader. Med denne base kan vi sætte lampe på overfladen som bord, gulve….; eller det kan fastgøres på magnetiske materialer som stålsøjle, stålkonstruktion.

Trin 4: SOLAR - BATTERILADER

SOLAR - BATTERILADER
SOLAR - BATTERILADER

Det kom fra en beskadiget ladelampe. Jeg tilføjede en tænd/sluk -kontakt og strømforsyning til nodeMCU. Det har også en USB -port og et stik til batterioplader.

Trin 5: TILSLUT ALT SAMMEN

TILSLUT ALT SAMMEN
TILSLUT ALT SAMMEN

Tilslutning af alle dele: NodeMCU & reflektor, sol- og battericeller, fleksibel arm sammen.

AFSLUT

Billede
Billede

OPLADNINGSTILSTAND

Billede
Billede

Trin 6: INTERAKTIVT KONTROLPROGRAM

Farven ændres, når vi justerer den fleksible arm eller roterer lampen.

INTERAKTIV LAMPE

#omfatte
// MPU6050 Slave Device Address
const uint8_t MPU6050SlaveAddress = 0x68;
// Vælg SDA- og SCL -ben til 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_DA = 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;
ugyldig opsætning () {
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ød, Grøn, Blå;
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H);
// Tag absolut værdi
Ax = myAbs (AccelX);
Ay = myAbs (AccelY);
Az = myAbs (AccelZ);
// Skala inden for rækkevidde
Rød = kort (Ax, 0, 16384, 0, 1023);
Grøn = kort (Ay, 0, 16384, 0, 1023);
Blå = kort (Az, 0, 16384, 0, 1023);
// Serielt print for at kontrollere
//Serial.print("Rød: "); Serial.print (rød);
//Serial.print("Green: "); Serial.print (grøn);
//Serial.print("Blue: "); Serial.print (blå);
// Skriv analog til LED
analogWrite (R, rød); // R
analogWrite (G, grøn); // G
analogWrite (B, blå); // B
forsinkelse (200);
}
ugyldig I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t data) {
Wire.beginTransmission (deviceAddress);
Wire.write (regAddress);
Wire.write (data);
Wire.endTransmission ();
}
// Læs alle 14 registre
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 ());
}
// Konfigurer MPU6050
ugyldig MPU6050_Init () {
forsinkelse (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); // sæt +/- 250 grader/sekund fuld skala
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // sæt +/- 2g fuld 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);
}
// Absolut værdi
float myAbs (flyd ind) {
return (in)> 0? (in):-(in);
}

se rawINTERACTIVE LAMP PROGRAM hostet af ❤ af GitHub

Trin 7: WIRELESS CONTROL PROGRAM AND ANDROID APPLICATION

TRÅDLØS KONTROLPROGRAM OG ANDROID -ANVENDELSE
TRÅDLØS KONTROLPROGRAM OG ANDROID -ANVENDELSE

En anden måde kan vi bruge Android App til at styre RGB LED med Android i WiFi -netværk. Link Android App: NODEMCU kontrol RGB LED APP

For Arduino -program kan du referere til:

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

Efter upload af program til NodeMCU vil det første løb give os NodeMCU's IP -adresse ved seriel udskrivning. I mit tilfælde er det: 192.164.1.39 ved port 80.

Billede
Billede

Nu kan vi styre den trådløse lampe med bærbar/ tablet/ mobiltelefon ved at indtaste adressen ovenfor i internet explorer.

Billede
Billede

Eller ved hjælp af Android -appen:

Billede
Billede

Trin 8: NOGLE BILLEDER

Anbefalede: