INHOUDSOPGAWE:

SONNE DRAADLOSE LAMP MET MAGNETIESE FLEKSIBELE ARM: 8 stappe (met prente)
SONNE DRAADLOSE LAMP MET MAGNETIESE FLEKSIBELE ARM: 8 stappe (met prente)

Video: SONNE DRAADLOSE LAMP MET MAGNETIESE FLEKSIBELE ARM: 8 stappe (met prente)

Video: SONNE DRAADLOSE LAMP MET MAGNETIESE FLEKSIBELE ARM: 8 stappe (met prente)
Video: Auto kamperen in regen, storm op berg - luchttent en hond 2024, Julie
Anonim
SONNE DRAADLOSE LAMP MET MAGNETIESE FLEKSIBELE ARM
SONNE DRAADLOSE LAMP MET MAGNETIESE FLEKSIBELE ARM
SONNE DRAADLOSE LAMP MET MAGNETIESE FLEKSIBELE ARM
SONNE DRAADLOSE LAMP MET MAGNETIESE FLEKSIBELE ARM

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:

Beeld
Beeld

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:

Beeld
Beeld

Stap 2: KRING

KRINGBAND
KRINGBAND

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:

Beeld
Beeld
Beeld
Beeld

Skematiese onderstaande:

Beeld
Beeld

Stap 3: MAGNETIESE BASIS - FLEKSIBELE ARM

MAGNETIESE BASIS - FLEKSIBELE ARM
MAGNETIESE BASIS - FLEKSIBELE ARM

Buigsame arm kan hergebruik word deur gebroke buigsame waterkrane. Iets soos dit:

Beeld
Beeld

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

SOLAR - BATTERYLADER
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

Koppel ALMAL SAAM
Koppel ALMAL SAAM

Verbind alle dele: NodeMCU en reflektor, son- en batteryselle, buigsame arm saam.

AFWERK

Beeld
Beeld

OPLAADMODUS

Beeld
Beeld

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

DRAADLOZE BEHEERPROGRAM EN ANDROID -TOEPASSING
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.

Beeld
Beeld

Nou kan ons die draadlose lamp met 'n skootrekenaar/ tablet/ selfoon beheer deur die adres hierbo in Internet Explorer in te voer.

Beeld
Beeld

Of gebruik Android -app:

Beeld
Beeld

Stap 8: ENKELE PRENTE

Aanbeveel: