Inhaltsverzeichnis:

DRAHTLOSE SOLARLAMPE MIT MAGNETISCHEM FLEXIBLE ARM - Gunook
DRAHTLOSE SOLARLAMPE MIT MAGNETISCHEM FLEXIBLE ARM - Gunook

Video: DRAHTLOSE SOLARLAMPE MIT MAGNETISCHEM FLEXIBLE ARM - Gunook

Video: DRAHTLOSE SOLARLAMPE MIT MAGNETISCHEM FLEXIBLE ARM - Gunook
Video: Kein Gefummel mehr! Ladekabel mit magnetischem Stecker mit Vivien Konca (Januar 2019) 4K UHD 2024, November
Anonim
SOLAR DRAHTLOSE LAMPE MIT MAGNETISCHEM FLEXIBLEM ARM
SOLAR DRAHTLOSE LAMPE MIT MAGNETISCHEM FLEXIBLEM ARM
SOLAR DRAHTLOSE LAMPE MIT MAGNETISCHEM FLEXIBLEM ARM
SOLAR DRAHTLOSE LAMPE MIT MAGNETISCHEM FLEXIBLEM ARM

Dieses Projekt wurde aus einer defekten Lampe und einer KnotenMCU erstellt. Diese dekorative Lampe lässt sich in alle Richtungen ausrichten & auf magnetischen Materialien befestigen oder auf den Tisch stellen. Es kann in zwei Modi wie folgt gesteuert werden:

- Drahtloser Steuerungsmodus, als YouTube-Link unten:

- Interaktiver Steuerungsmodus, als YouTube-Link unten:

Schritt 1: STÜCKLISTE

Stückliste:

Bild
Bild

Für den interaktiven Modus verwende ich MPU6050, um Kreiseldaten von NodeMCU zu erhalten, um die Farbe der Lampe zu steuern.

Materialbild für dieses Projekt:

Bild
Bild

Schritt 2: SCHALTUNG

SCHALTKREIS
SCHALTKREIS

Dies ist eine sehr einfache Schaltung, wie Fritzing-Schema oben, mit 1 RGB-LED-Anodentyp, drei Grenzstromwiderständen R100 und MPU6050.

Der Reflektor wird von allen kaputten Lampen verwendet und mit 2 Schrauben mit der NodeMCU-Basis verbunden oder mit starkem Kleber verklebt.

Installationsarbeit:

Bild
Bild
Bild
Bild

Schema unten:

Bild
Bild

Schritt 3: MAGNETISCHE BASIS - FLEXIBLER ARM

MAGNETISCHE BASIS - FLEXIBLER ARM
MAGNETISCHE BASIS - FLEXIBLER ARM

Flexibler Arm kann von defekten flexiblen Wasserhähnen wiederverwendet werden. Sowas in der Art:

Bild
Bild

Mit einigen Tipps versuchen wir, sie mit der Permanentmagnetbasis unten am flexiblen Arm zu verbinden. Oben haben wir ein Bohrloch für den Anschluss an unsere Platine und das Solar- / Batterieladegerät gemacht. Mit diesem Sockel können wir die Lampe auf Oberflächen wie Tische, Böden usw. stellen. oder es kann auf magnetischen Materialien wie Stahlsäulen, Stahlkonstruktionen befestigt werden.

Schritt 4: SOLAR – BATTERIELADEGERÄT

SOLAR – BATTERIELADEGERÄT
SOLAR – BATTERIELADEGERÄT

Es kam von einer beschädigten Ladelampe. Ich habe der nodeMCU einen Ein-/Aus-Schalter und eine Stromkabelversorgung hinzugefügt. Es hat auch eine USB-Port-Steckdose und einen Stecker für das Batterieladegerät.

Schritt 5: VERBINDEN SIE ALLE ZUSAMMEN

VERBINDEN SIE ALLE ZUSAMMEN
VERBINDEN SIE ALLE ZUSAMMEN

Alle Teile verbinden: NodeMCU & Reflektor, Solar- & Batteriezellen, flexibler Arm zusammen.

BEENDEN

Bild
Bild

LADEMODUS

Bild
Bild

Schritt 6: INTERAKTIVES STEUERUNGSPROGRAMM

Die Farbe wird geändert, wenn wir den flexiblen Arm einstellen oder die Lampe drehen.

INTERAKTIVE LAMPE

#enthalten
// MPU6050 Slave-Geräteadresse
const uint8_t MPU6050SlaveAddress = 0x68;
// SDA- und SCL-Pins für die I2C-Kommunikation auswählen - Pin-Standard in der WIRE LIBRARY: SCL - D1 & SDA - D2 auf NODEMCU
// const uint8_t SCL = D1;
// const uint8_t SDA = D2;
const int R = 14;
const int G = 12;
const int B = 13;
// MPU6050 wenige Konfigurationsregisteradressen
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;
Leere Einrichtung () {
pinMode (R, AUSGANG);
pinMode (G, AUSGANG);
pinMode (B, AUSGANG);
//Seriell.begin(9600);
Wire.begin(SDA, SCL);
MPU6050_Init();
}
Leere Schleife () {
uint16_t Ax, Ay, Az, T, Gx, Gy, Gz;
uint16_t Rot, Grün, Blau;
Read_RawValue(MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H);
// Absoluten Wert nehmen
Ax = myAbs(AccelX);
Ay = myAbs(AccelY);
Az = myAbs(AccelZ);
// Im Bereich skalieren
Rot = Karte(Ax, 0, 16384, 0, 1023);
Grün = Karte(Ay, 0, 16384, 0, 1023);
Blau = Karte(Az, 0, 16384, 0, 1023);
// Seriendruck zur Überprüfung
//Serial.print("Rot:"); Serial.print (Rot);
//Serial.print("Grün:"); Serial.print (Grün);
//Seriell.print("Blau:"); Serial.print (Blau);
// Schreiben analog zu LED
analogWrite (R, Rot); // R
analogWrite (G, Grün); // G
analogWrite (B, Blau); // B
Verzögerung (200);
}
void I2C_Write(uint8_t deviceAddress, uint8_t regAddress, uint8_t data){
Wire.beginTransmission(deviceAddress);
Wire.write (regAddress);
Wire.write (Daten);
Wire.endTransmission();
}
// Alle 14 Register lesen
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());
}
// MPU6050 konfigurieren
void MPU6050_Init(){
Verzögerung (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); // setze +/-250 Grad/Sekunde Vollausschlag
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // setze +/- 2g Vollausschlag
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);
}
// Absolutwert
float myAbs(hineinschwimmen){
Rückgabe (in)>0?(in):-(in);
}

rawINTERAKTIVES LAMPENPROGRAMM ansehen, gehostet mit ❤ von GitHub

Schritt 7: DRAHTLOSES STEUERUNGSPROGRAMM UND ANDROID-ANWENDUNG

DRAHTLOSES STEUERUNGSPROGRAMM UND ANDROID-ANWENDUNG
DRAHTLOSES STEUERUNGSPROGRAMM UND ANDROID-ANWENDUNG

Auf andere Weise können wir die Android-App verwenden, um RGB-LED mit Android im WiFi-Netzwerk zu steuern. Android-App verknüpfen: NODEMCU-Steuerung RGB-LED-APP

Für Arduino-Programm können Sie sich beziehen auf:

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

Nach dem Hochladen des Programms auf NodeMCU gibt uns der erste Lauf die IP-Adresse des NodeMCU im Seriendruck. In meinem Fall ist es: 192.164.1.39 an Port 80.

Bild
Bild

Jetzt können wir die drahtlose Lampe mit Laptop / Tablet / Mobiltelefon steuern, indem wir die Adresse oben in den Internet Explorer eingeben.

Bild
Bild

Oder über die Android-App:

Bild
Bild

Schritt 8: EINIGE BILDER

Empfohlen: