Kazalo:

SOLARNA BREŽIČNA ŽARNICA Z MAGNETNO FLEKSIBILNO ARMO: 8 korakov (s slikami)
SOLARNA BREŽIČNA ŽARNICA Z MAGNETNO FLEKSIBILNO ARMO: 8 korakov (s slikami)

Video: SOLARNA BREŽIČNA ŽARNICA Z MAGNETNO FLEKSIBILNO ARMO: 8 korakov (s slikami)

Video: SOLARNA BREŽIČNA ŽARNICA Z MAGNETNO FLEKSIBILNO ARMO: 8 korakov (s slikami)
Video: LA ENERGIA LIBRE NO EXISTE Free energy does not exist 2024, November
Anonim
SOLARNA BREŽIČNA ŽARNICA Z MAGNETNO FLEKSIBILNO ARMO
SOLARNA BREŽIČNA ŽARNICA Z MAGNETNO FLEKSIBILNO ARMO
SOLARNA BREŽIČNA ŽARNICA Z MAGNETNO FLEKSIBILNO ARMO
SOLARNA BREŽIČNA ŽARNICA Z MAGNETNO FLEKSIBILNO ARMO

Ta projekt je bil narejen iz pokvarjene svetilke & nodeMCU. To dekorativno svetilko lahko nastavite v vseh smereh in jo pritrdite na magnetne materiale ali postavite na mizo. Upravljamo ga lahko v dveh načinih:

- Brezžični način upravljanja, kot je spodnja povezava YouTube:

- Interaktivni način upravljanja, kot je spodnja povezava YouTube:

1. korak: MATERIJAL

Seznam B. O. M:

Slika
Slika

Za interaktivni način uporabljam MPU6050 za pridobivanje žiroskopskih podatkov iz NodeMCU za nadzor barve svetilke.

Slika materiala za ta projekt:

Slika
Slika

2. korak: VEZEK

VEZJE
VEZJE

To je zelo preprosto vezje, kot je prikazano zgoraj na shemi Fritzing, z 1 običajno anodo tipa RGB Led, tremi upori za omejen tok R100 in MPU6050.

Odsevnik se uporablja iz polomljenih svetilk in je z osnovo nodeMCU povezan z 2 vijakoma ali pa ga zlepimo z močnim lepilom.

Montažna dela:

Slika
Slika
Slika
Slika

Shema spodaj:

Slika
Slika

3. korak: MAGNETNA PODLOGA - FLEKSIBILNA ARMA

MAGNETNA PODLOGA - FLEKSIBILNA ROKA
MAGNETNA PODLOGA - FLEKSIBILNA ROKA

Prilagodljivo roko lahko znova uporabite iz zlomljenih fleksibilnih pip za vodo. Nekaj takega:

Slika
Slika

Z nekaj nasveti jih poskušamo povezati s podnožjem trajnega magneta na dnu fleksibilne roke. Na vrhu smo naredili vrtalno luknjo za priključitev na tiskano vezje in solarni/polnilnik baterij. S to podlago lahko postavimo svetilko na površino, kot je miza, tla …; ali pa se lahko pritrdi na magnetne materiale, kot so jekleni steber, jeklena konstrukcija.

4. korak: SOLARNI - POLNILNIK BATERIJE

SOLARNI - POLNILNIK BATERIJE
SOLARNI - POLNILNIK BATERIJE

Prišel je iz poškodovane svetilke za polnjenje. NodeMCU sem dodal stikalo za vklop/izklop in napajanje žic. Ima tudi eno vtičnico USB in en vtič za polnilnik baterij.

5. korak: VZDRŽITE VSE SKUPAJ

VZDRŽITE VSE SKUPAJ
VZDRŽITE VSE SKUPAJ

Povezovanje vseh delov: NodeMCU in reflektor, sončne celice in baterije, prilagodljiva roka skupaj.

KONČAJ

Slika
Slika

NAČIN POLNJENJA

Slika
Slika

6. korak: PROGRAM ZA INTERAKTIVNO NADZOR

Barva se bo spremenila, ko prilagodimo fleksibilno roko ali zavrtimo svetilko.

INTERAKTIVNA SVETILKA

#vključi
// Naslov podrejene naprave MPU6050
const uint8_t MPU6050SlaveAddress = 0x68;
// Izberite nožice SDA in SCL za komunikacijo I2C - Privzeti pin v WIRE LIBRARY: SCL - D1 & SDA - D2 na NODEMCU
// const uint8_t SCL = D1;
// const uint8_t SDA = D2;
const int R = 14;
const int G = 12;
const int B = 13;
// MPU6050 nekaj naslovov 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 () {
uint16_t Axe, Ay, Az, T, Gx, Gy, Gz;
uint16_t Rdeča, zelena, modra;
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H);
// Vzemite absolutno vrednost
Ax = myAbs (AccelX);
Ay = myAbs (AccelY);
Az = myAbs (AccelZ);
// Merilo v dosegu
Rdeča = zemljevid (Axe, 0, 16384, 0, 1023);
Zelena = zemljevid (Ay, 0, 16384, 0, 1023);
Modra = zemljevid (Az, 0, 16384, 0, 1023);
// Serijski tisk za preverjanje
//Serial.print("Rdeča: "); Serial.print (rdeča);
//Serial.print(" Green: "); Serial.print (zelena);
//Serial.print("Blue: "); Serial.print (modra);
// Zapis analognega v LED
analogWrite (R, rdeča); // R
analogWrite (G, zelena); // G
analogWrite (B, modra); // B
zamuda (200);
}
void I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t data) {
Wire.beginTransmission (deviceAddress);
Wire.write (regAddress);
Wire.write (podatki);
Wire.endTransmission ();
}
// Preberite vseh 14 registrov
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 ());
Temperatura = (((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 ());
}
// Konfigurirajte MPU6050
void MPU6050_Init () {
zamuda (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); // nastavi +/- 250 stopinj/sekundo po celotni lestvici
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // nastavi +/- 2g polnega obsega
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);
}
// Absolutna vrednost
float myAbs (float in) {
return (in)> 0? (in):-(in);
}

Oglejte si rawINTERAKTIVNI LAMP PROGRAM, ki ga gosti ❤ GitHub

7. korak: PROGRAM ZA BREZŽIČNI NADZOR IN UPORABA ANDROID

BREZŽIČNI NADZORNI PROGRAM IN UPORABA ANDROID
BREZŽIČNI NADZORNI PROGRAM IN UPORABA ANDROID

Drug način je, da lahko z aplikacijo Android upravljamo LED RGB z Androidom v omrežju WiFi. Povežite aplikacijo za Android: NODEMCU nadzorna aplikacija RGB LED

Za program Arduino se lahko obrnete na:

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

Po nalaganju programa v NodeMCU nam bo prvi zagon dal naslov IP NodeMCU pri serijskem tiskanju. V mojem primeru je: 192.164.1.39 na vratih 80.

Slika
Slika

Zdaj lahko upravljamo brezžično svetilko s prenosnikom/ tabličnim računalnikom/ mobilnim telefonom tako, da vnesemo naslov zgoraj v Internet Explorer.

Slika
Slika

Ali pa uporabite aplikacijo za Android:

Slika
Slika

8. korak: NEKE SLIKE

Priporočena: