INHOUDSOPGAWE:
Video: SONNE DRAADLOSE LAMP MET MAGNETIESE FLEKSIBELE ARM: 8 stappe (met prente)
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Hierdie projek is gemaak van 'n gebreekte lamp en nodeMCU. Hierdie dekoratiewe lamp kan in enige rigting verstel word en op magnetiese materiaal geheg word of op die tafel gesit word. Dit kan soos volg in twee modusse beheer word:
- Draadlose beheermodus, soos die YouTube -skakel hieronder:
- Interaktiewe beheermodus, soos die YouTube -skakel hieronder:
Stap 1: MATERIAALWETENSKAPPE
B. O. M lys:
Vir die interaktiewe modus gebruik ek MPU6050 om gyrodata van NodeMCU af te kry om die kleur van die lamp te beheer.
Materiaalfoto vir hierdie projek:
Stap 2: KRING
Dit is 'n baie eenvoudige stroombaan, soos die Fritzing -skema hierbo, met 1 RGB Led -algemene anode -tipe, drie eindstroom -weerstande R100 en MPU6050.
Die reflektor word gebruik van alle gebreekte lampe en is met 2 boute aan die nodeMCU -basis gekoppel of met sterk gom vasgemaak.
Installasie werk:
Skematiese onderstaande:
Stap 3: MAGNETIESE BASIS - FLEKSIBELE ARM
Buigsame arm kan hergebruik word deur gebroke buigsame waterkrane. Iets soos dit:
Met 'n paar wenke probeer ons dit verbind met die permanente magneetbasis onderaan die buigsame arm. Boonop het ons 'n boorgat gemaak om aan te sluit op ons printplaat en son-/batterylaaier. Met hierdie basis kan ons 'n lamp op die oppervlak sit, soos tafel, vloere …; of dit kan op magnetiese materiale soos staalpilaar, staalstruktuur geheg word.
Stap 4: SOLAR - BATTERYLADER
Dit kom van 'n beskadigde laai lamp. Ek het 'n aan/uit -skakelaar en kragdrade by nodeMCU gevoeg. Dit het ook 'n USB -aansluiting en 'n prop vir 'n laaier.
Stap 5: Koppel ALMAL SAAM
Verbind alle dele: NodeMCU en reflektor, son- en batteryselle, buigsame arm saam.
AFWERK
OPLAADMODUS
Stap 6: INTERAKTIEWE BEHEERPROGRAM
Die kleur sal verander as ons die buigsame arm verstel of die lamp draai.
INTERAKTIEWE LAMP
#insluit |
// MPU6050 Slawe -toesteladres |
const uint8_t MPU6050SlaveAddress = 0x68; |
// Kies SDA- en SCL -penne vir I2C -kommunikasie - Standaard standaard in WIRE LIBRARY: SCL - D1 & SDA - D2 op NODEMCU |
// const uint8_t SCL = D1; |
// const uint8_t SDA = D2; |
const int R = 14; |
const int G = 12; |
const int B = 13; |
// MPU6050 paar konfigurasieregisteradresse |
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, Temperature, GyroX, GyroY, GyroZ; |
ongeldige opstelling () { |
pinMode (R, UITGANG); |
pinMode (G, UITGANG); |
pinMode (B, UITGANG); |
//Serial.begin(9600); |
Wire.begin (SDA, SCL); |
MPU6050_Init (); |
} |
leemte -lus () { |
uint16_t Ax, Ay, Az, T, Gx, Gy, Gz; |
uint16_t Rooi, groen, blou; |
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H); |
// Neem absolute waarde |
Ax = myAbs (AccelX); |
Ay = myAbs (AccelY); |
Az = myAbs (AccelZ); |
// Skaal binne bereik |
Rooi = kaart (Ax, 0, 16384, 0, 1023); |
Groen = kaart (Ay, 0, 16384, 0, 1023); |
Blou = kaart (Az, 0, 16384, 0, 1023); |
// Seriële druk om na te gaan |
//Serial.print("Red: "); Serial.print (rooi); |
//Serial.print("Green: "); Serial.print (groen); |
//Serial.print("Blue: "); Reeks.afdruk (blou); |
// Skryf analoog na LED |
analogWrite (R, rooi); // R |
analogWrite (G, groen); // G |
analogWrite (B, blou); // B |
vertraging (200); |
} |
ongeldig I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t data) { |
Wire.beginTransmission (deviceAddress); |
Wire.write (regAddress); |
Wire.write (data); |
Wire.endTransmission (); |
} |
// Lees al 14 registers |
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 ()); |
Temperatuur = (((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 ()); |
} |
// Stel MPU6050 op |
nietig MPU6050_Init () { |
vertraging (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); // stel +/- 250 grade/sekonde volskaal |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // stel +/- 2g volskaal |
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); |
} |
// Absolute waarde |
dryf myAbs (dryf in) { |
return (in)> 0? (in):-(in); |
} |
sien rouINTERAKTIEWE LAMPPROGRAM aangebied deur ❤ deur GitHub
Stap 7: DRAADLOZE BEHEERPROGRAM EN ANDROID -TOEPASSING
Op 'n ander manier kan ons die Android -app gebruik om RGB LED met Android in 'n WiFi -netwerk te beheer. Koppel Android -app: NODEMCU -beheer RGB LED -app
Vir die Arduino -program kan u verwys na:
microcontrollerkits.blogspot.com/2016/05/es…
Na die oplaai van die program na NodeMCU, gee die eerste lopie ons die IP -adres van die NodeMCU op seriële druk. In my geval is dit: 192.164.1.39 by poort 80.
Nou kan ons die draadlose lamp met 'n skootrekenaar/ tablet/ selfoon beheer deur die adres hierbo in Internet Explorer in te voer.
Of gebruik Android -app: