Innholdsfortegnelse:
Video: SOLAR TRÅDLØS LAMPE MED MAGNETISK FLEKSIBEL ARM: 8 trinn (med bilder)
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
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:
For interaktiv modus bruker jeg MPU6050 for å få gyrodata fra NodeMCU for å kontrollere lampens farge.
Materialebilde for dette prosjektet:
Trinn 2: 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:
Skjematisk nedenfor:
Trinn 3: MAGNETISK BASE - FLEKSIBEL ARM
Fleksibel arm kan gjenbrukes fra ødelagte fleksible vannkraner. Noe sånt:
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
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 alle deler: NodeMCU og reflektor, solceller og battericeller, fleksibel arm sammen.
BLI FERDIG
LADEMODUS
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
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.
Nå kan vi kontrollere trådløs lampe med bærbar PC/ nettbrett/ mobiltelefon ved å skrive inn adressen ovenfor i Internet Explorer.
Eller bruk Android -appen: