Innholdsfortegnelse:

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

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

Video: SOLAR TRÅDLØS LAMPE MED MAGNETISK FLEKSIBEL ARM: 8 trinn (med bilder)
Video: Bilcamping i regnstorm på bjerg - lufttelt og hund 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 prosjektet ble laget av en ødelagt lampe og nodeMCU. Denne dekorative lampen kan justeres i alle retninger og festes på magnetiske materialer eller settes på bordet. Den kan styres i to moduser som følger:

- Trådløs kontrollmodus, som YouTube -lenken nedenfor:

- Interaktiv kontrollmodus, som YouTube -lenken nedenfor:

Trinn 1: REGNING AV MATERIALER

B. O. M liste:

Bilde
Bilde

For interaktiv modus bruker jeg MPU6050 for å få gyrodata fra NodeMCU for å kontrollere lampens farge.

Materialebilde for dette prosjektet:

Bilde
Bilde

Trinn 2: KRETS

KRETS
KRETS

Dette er en veldig enkel krets, som Fritzing skjematisk ovenfor, med 1 RGB Led vanlig anodetype, tre grensestrømmotstander R100 og MPU6050.

Reflektoren brukes fra alle ødelagte lamper og koblet til nodeMCU -sokkelen med 2 bolter eller lim dem med sterkt lim.

Installasjonsarbeid:

Bilde
Bilde
Bilde
Bilde

Skjematisk nedenfor:

Bilde
Bilde

Trinn 3: MAGNETISK BASE - FLEKSIBEL ARM

MAGNETISK BASE - FLEKSIBEL ARM
MAGNETISK BASE - FLEKSIBEL ARM

Fleksibel arm kan gjenbrukes fra ødelagte fleksible vannkraner. Noe sånt:

Bilde
Bilde

Med noen tips prøver vi å koble dem til den permanente magnetbunnen nederst på den fleksible armen. På toppen laget vi et borehull for tilkobling til kretskortet og sol-/batteriladeren. Med denne basen kan vi sette lampen på overflaten som bord, gulv …; eller den kan festes på magnetiske materialer som stålstolpe, stålkonstruksjon.

Trinn 4: SOLAR - BATTERILADER

SOLAR - BATTERILADER
SOLAR - BATTERILADER

Den kom fra en skadet ladelampe. Jeg la til en av/på -bryter og strømforsyning til nodeMCU. Den har også en USB -portuttak og en plugg for batterilader.

Trinn 5: KOBLE ALT SAMMEN

KOBLE ALT SAMMEN
KOBLE ALT SAMMEN

Koble alle deler: NodeMCU og reflektor, solceller og battericeller, fleksibel arm sammen.

BLI FERDIG

Bilde
Bilde

LADEMODUS

Bilde
Bilde

Trinn 6: INTERAKTIVT KONTROLLPROGRAM

Farge vil bli endret når vi justerer den fleksible armen eller roterer lampen.

INTERAKTIV LAMPE

#inkludere
// MPU6050 Slave Device Address
const uint8_t MPU6050SlaveAddress = 0x68;
// Velg SDA- og SCL -pinner for I2C -kommunikasjon - 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å konfigurasjonsregisteradresser
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;
ugyldig oppsett () {
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ønn, blå;
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H);
// Ta absolutt verdi
Ax = myAbs (AccelX);
Ay = myAbs (AccelY);
Az = myAbs (AccelZ);
// Skala i rekkevidde
Rød = kart (Ax, 0, 16384, 0, 1023);
Grønt = kart (Ay, 0, 16384, 0, 1023);
Blå = kart (Az, 0, 16384, 0, 1023);
// Seriell utskrift for å sjekke
//Serial.print("Red: "); Serial.print (rød);
//Serial.print("Green: "); Serial.print (grønt);
//Serial.print("Blue: "); Serial.print (blå);
// Skriv analog til LED
analogWrite (R, rød); // R
analogWrite (G, grønn); // 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 ();
}
// Les 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); // sett +/- 250 grader/sekund full skala
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // sett +/- 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);
}
// Absolutt verdi
float myAbs (flyte inn) {
return (in)> 0? (in):-(in);
}

se rawINTERACTIVE LAMP PROGRAM hostet av ❤ av GitHub

Trinn 7: TRÅDLØS KONTROLLPROGRAM OG ANDROID -APPLIKASJON

TRÅDLØST KONTROLLPROGRAM OG ANDROID -APPLIKASJON
TRÅDLØST KONTROLLPROGRAM OG ANDROID -APPLIKASJON

En annen måte kan vi bruke Android -appen til å kontrollere RGB LED med Android i WiFi -nettverket. Link Android App: NODEMCU kontroll RGB LED APP

For Arduino -programmet kan du referere til:

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

Etter å ha lastet opp programmet til NodeMCU, vil den første kjøringen gi oss NodeMCUs IP -adresse på seriell utskrift. I mitt tilfelle er det: 192.164.1.39 ved port 80.

Bilde
Bilde

Nå kan vi kontrollere trådløs lampe med bærbar PC/ nettbrett/ mobiltelefon ved å skrive inn adressen ovenfor i Internet Explorer.

Bilde
Bilde

Eller bruk Android -appen:

Bilde
Bilde

Trinn 8: NOE BILDER

Anbefalt: