Sadržaj:

SOLARNA BEŽIČNA LAMPA S MAGNETSKOM FLEKSIBILNOM RUKOM: 8 koraka (sa slikama)
SOLARNA BEŽIČNA LAMPA S MAGNETSKOM FLEKSIBILNOM RUKOM: 8 koraka (sa slikama)

Video: SOLARNA BEŽIČNA LAMPA S MAGNETSKOM FLEKSIBILNOM RUKOM: 8 koraka (sa slikama)

Video: SOLARNA BEŽIČNA LAMPA S MAGNETSKOM FLEKSIBILNOM RUKOM: 8 koraka (sa slikama)
Video: Led lampa bežična 2024, Juli
Anonim
SOLARNA BEŽIČNA LAMPA S MAGNETSKOM FLEKSIBILNOM RUKOM
SOLARNA BEŽIČNA LAMPA S MAGNETSKOM FLEKSIBILNOM RUKOM
SOLARNA BEŽIČNA LAMPA SA MAGNETSKOM FLEKSIBILNOM RUKOM
SOLARNA BEŽIČNA LAMPA SA MAGNETSKOM FLEKSIBILNOM RUKOM

Ovaj projekat je napravljen od pokvarene lampe & nodeMCU. Ova ukrasna lampa može se namjestiti u bilo kojem smjeru i pričvrstiti na magnetske materijale ili staviti na stol. Njime se može upravljati na dva načina:

- Bežični način upravljanja, kao što je YouTube veza ispod:

- Interaktivni način upravljanja, kao što je YouTube veza ispod:

Korak 1: MATERIJAL

B. O. M lista:

Image
Image

Za interaktivni način rada koristim MPU6050 za dobivanje žiroskopskih podataka od NodeMCU za kontrolu boje lampe.

Slika materijala za ovaj projekat:

Image
Image

Korak 2: KRUG

KRUG
KRUG

Ovo je vrlo jednostavno kolo, kao što je prikazano gore na shemi Fritzinga, sa 1 RGB Led zajedničkom anodom, tri otpornika granične struje R100 & MPU6050.

Reflektor se koristi od bilo kojih polomljenih svjetiljki i povezan je s nodeMCU bazom pomoću 2 vijka ili ih zalijepi jakim ljepilom.

Montažni radovi:

Image
Image
Image
Image

Shema ispod:

Image
Image

Korak 3: MAGNETNA PODLOGA - FLEKSIBILNI ARM

MAGNETNA PODLOGA - FLEKSIBILNA RUKA
MAGNETNA PODLOGA - FLEKSIBILNA RUKA

Fleksibilna ruka može se ponovno koristiti iz slomljenih fleksibilnih slavina za vodu. Nešto slično tome:

Image
Image

Uz neke savjete, pokušavamo ih spojiti na bazu sa stalnim magnetom na dnu fleksibilne ruke. Na vrhu smo napravili izbušenu rupu za spajanje na našu ploču i solarni/punjač baterija. S ovom bazom možemo postaviti svjetiljku na površinu poput stola, podova….; ili se može pričvrstiti na magnetske materijale poput čeličnog stupa, čelične konstrukcije.

Korak 4: SUNČAN - PUNJAČ BATERIJE

SUNČAN - PUNJAČ BATERIJE
SUNČAN - PUNJAČ BATERIJE

Došao je iz oštećene lampe za punjenje. Dodao sam prekidač za uključivanje/isključivanje i napajanje žica za napajanje na nodeMCU. Takođe ima jednu USB utičnicu i jedan utikač za punjač baterija.

Korak 5: POVEZUJTE SVE ZAJEDNO

POVEZUJTE SVE ZAJEDNO
POVEZUJTE SVE ZAJEDNO

Povezivanje svih dijelova: NodeMCU i reflektor, solarne i baterijske ćelije, fleksibilna ruka zajedno.

ZAVRŠI

Image
Image

NAČIN PUNJENJA

Image
Image

Korak 6: INTERAKTIVNI PROGRAM KONTROLE

Boja će se promijeniti kada prilagodimo fleksibilnu ruku ili rotiramo svjetiljku.

INTERAKTIVNA LAMPA

#include
// MPU6050 Adresa slave uređaja
const uint8_t MPU6050SlaveAddress = 0x68;
// Odaberite SDA i SCL pinove za I2C komunikaciju - Zadana postavka PIN -a u BIBLIOTEKI ŽICE: SCL - D1 & SDA - D2 na NODEMCU -u
// const uint8_t SCL = D1;
// const uint8_t SDA = D2;
const int R = 14;
const int G = 12;
const int B = 13;
// MPU6050 nekoliko adresa registra konfiguracije
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, Temperatura, GyroX, GyroY, GyroZ;
void setup () {
pinMode (R, OUTPUT);
pinMode (G, OUTPUT);
pinMode (B, OUTPUT);
//Serial.begin(9600);
Wire.begin (SDA, SCL);
MPU6050_Init ();
}
void loop () {{100} {101}
uint16_t Axe, Ay, Az, T, Gx, Gy, Gz;
uint16_t Crvena, Zelena, Plava;
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H);
// Uzmi apsolutnu vrijednost
Ax = myAbs (AccelX);
Ay = myAbs (AccelY);
Az = myAbs (AccelZ);
// Skala u rasponu
Crveno = karta (Axe, 0, 16384, 0, 1023);
Zelena = karta (Ay, 0, 16384, 0, 1023);
Plava = karta (Az, 0, 16384, 0, 1023);
// Serijski ispis radi provjere
//Serial.print("Red: "); Serial.print (crveno);
//Serial.print("Green: "); Serial.print (zelena);
//Serial.print("Blue: "); Serial.print (plavo);
// Zapisivanje analognog na LED
analogWrite (R, crveno); // R
analogWrite (G, zeleno); // G
analogWrite (B, plavo); // B
kašnjenje (200);
}
void I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t podaci) {
Wire.beginTransmission (deviceAddress);
Wire.write (regAddress);
Wire.write (podaci);
Wire.endTransmission ();
}
// Pročitajte svih 14 registara
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 ());
Temperature = (((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 ());
}
// Konfiguriranje MPU6050
void MPU6050_Init () {
kašnjenje (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); // postavljanje +/- 250 stepeni/sekundi pune ljestvice
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // postavite +/- 2g u punoj skali
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);
}
// Apsolutna vrijednost
float myAbs (float in) {
return (in)> 0? (in):-(in);
}

pogledajte rawINTERAKTIVNI PROGRAM LAMPI sa ❤ by GitHub

Korak 7: BEŽIČNI PROGRAM KONTROLE I ANDROIDNA PRIMJENA

BEŽIČNI PROGRAM KONTROLE I ANDROID PRIMJENA
BEŽIČNI PROGRAM KONTROLE I ANDROID PRIMJENA

Drugi način, možemo koristiti Android aplikaciju za kontrolu RGB LED -a sa Androidom u WiFi mreži. Povežite Android aplikaciju: NODEMCU kontrolna RGB LED aplikacija

Za Arduino program možete se obratiti na:

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

Nakon učitavanja programa u NodeMCU, prvo pokretanje dat će nam IP adresu NodeMCU -a pri serijskom ispisu. U mom slučaju, to je: 192.164.1.39 na portu 80.

Image
Image

Sada možemo upravljati bežičnom lampom sa prijenosnim računarom/ tabletom/ mobilnim telefonom unosom gore navedene adrese u Internet Explorer.

Image
Image

Ili pomoću Android aplikacije:

Image
Image

Korak 8: NEKE SLIKE

Preporučuje se: