Turinys:

AUKŠTAS BEVIELIS LEMPTIS SU MAGNETINIAI LANKSTA GARNA: 8 žingsniai (su paveikslėliais)
AUKŠTAS BEVIELIS LEMPTIS SU MAGNETINIAI LANKSTA GARNA: 8 žingsniai (su paveikslėliais)

Video: AUKŠTAS BEVIELIS LEMPTIS SU MAGNETINIAI LANKSTA GARNA: 8 žingsniai (su paveikslėliais)

Video: AUKŠTAS BEVIELIS LEMPTIS SU MAGNETINIAI LANKSTA GARNA: 8 žingsniai (su paveikslėliais)
Video: Kaip pajungti jungklį? 2024, Gruodis
Anonim
SAULĖ BELAIDĖ ŠVIESA SU MAGNETINIAI LANKSTA GARNA
SAULĖ BELAIDĖ ŠVIESA SU MAGNETINIAI LANKSTA GARNA
SAULĖ BELAIDĖ ŠVIESA SU MAGNETINIAI LANKSTA GARNA
SAULĖ BELAIDĖ ŠVIESA SU MAGNETINIAI LANKSTA GARNA

Šis projektas buvo pagamintas iš sugedusios lempos ir nodeMCU. Ši dekoratyvinė lempa gali būti reguliuojama bet kuria kryptimi, pritvirtinama prie magnetinių medžiagų arba dedama ant stalo. Jis gali būti valdomas dviem režimais:

- Belaidžio valdymo režimas, kaip nurodyta toliau esančioje „YouTube“nuorodoje:

- Interaktyvus valdymo režimas, kaip „YouTube“nuoroda žemiau:

1 žingsnis: SĄRAŠAS MEDŽIAGŲ

B. O. M sąrašas:

Vaizdas
Vaizdas

Interaktyviam režimui naudoju MPU6050, kad gaučiau giroskopo duomenis iš „NodeMCU“, kad valdyčiau lempos spalvą.

Šio projekto medžiagos nuotrauka:

Vaizdas
Vaizdas

2 žingsnis: SROVĖ

SROVĖ
SROVĖ

Tai labai paprasta grandinė, kaip aprašyta aukščiau esančioje Fritzingo schemoje, su 1 RGB Led bendru anodo tipu, trimis ribinės srovės rezistoriais R100 ir MPU6050.

Atšvaitas naudojamas iš bet kokių sugedusių lempų ir 2 varžtais prijungtas prie „nodeMCU“pagrindo arba priklijuojamas tvirtu klijais.

Montavimo darbai:

Vaizdas
Vaizdas
Vaizdas
Vaizdas

Schema žemiau:

Vaizdas
Vaizdas

3 žingsnis: MAGNETINĖ PAGRINDAS - LAPUS GARNAS

MAGNETINIS PAGRINDAS - LANGVAS GARNAS
MAGNETINIS PAGRINDAS - LANGVAS GARNAS

Lanksčią ranką galima pakartotinai naudoti iš sulaužytų lanksčių vandens čiaupų. Kažkas panašaus:

Vaizdas
Vaizdas

Remdamiesi kai kuriais patarimais, bandome juos prijungti prie nuolatinio magneto pagrindo lanksčios rankos apačioje. Viršuje padarėme gręžimo angą, skirtą prijungti prie mūsų plokštės ir saulės/baterijų įkroviklio. Naudodami šį pagrindą, galime pastatyti lempą ant paviršiaus, pavyzdžiui, stalo, grindų…; arba jis gali būti pritvirtintas prie magnetinių medžiagų, tokių kaip plieninis stulpas, plieninė konstrukcija.

4 žingsnis: SAULĖ - AKUMULIATORIUS

SAULĖ - AKUMULIATORIUS
SAULĖ - AKUMULIATORIUS

Jis atsirado iš pažeistos įkrovimo lempos. Pridėjau įjungimo/išjungimo jungiklį ir maitinimo laidų tiekimą į nodeMCU. Jame taip pat yra vienas USB prievado lizdas ir vienas kištukas akumuliatoriaus įkrovikliui.

5 veiksmas: PRISIJUNKITE VISUS KARTU

SUJUNGTI VISUS KARTU
SUJUNGTI VISUS KARTU

Sujungiamos visos dalys: „NodeMCU“ir atšvaitas, saulės ir baterijų elementai, lanksti rankena.

BAIGTI

Vaizdas
Vaizdas

ĮKROVIMO REŽIMAS

Vaizdas
Vaizdas

6 žingsnis: INTERAKTYVUS KONTROLĖS PROGRAMA

Spalva pasikeis, kai sureguliuosime lanksčią rankeną arba pasuksime lempą.

INTERAKTYVUS LEMPAS

#įtraukti
// MPU6050 Slave Device adresas
const uint8_t MPU6050SlaveAddress = 0x68;
// Pasirinkite SDA ir SCL kaiščius, skirtus I2C ryšiui - Numatytasis kaištis WIRE BIBLIOTEKOJE: SCL - D1 & SDA - D2 NODEMCU
// const uint8_t SCL = D1;
// const uint8_t SDA = D2;
const int R = 14;
const int G = 12;
const int B = 13;
// MPU6050 keli konfigūracijos registro adresai
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, Temperatūra, 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 Raudona, žalia, mėlyna;
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H);
// Imk absoliučią vertę
Axe = myAbs (AccelX);
Ay = myAbs (AccelY);
Az = myAbs (AccelZ);
// Skalė diapazone
Raudona = žemėlapis (Axe, 0, 16384, 0, 1023);
Žalia = žemėlapis (Ay, 0, 16384, 0, 1023);
Mėlyna = žemėlapis (Az, 0, 16384, 0, 1023);
// Serijinis spausdinimas, kurį reikia patikrinti
//Serijinis.printas ("Red: "); Serial.print (raudona);
//Serijinis.printas ("Green: "); Serial.print (žalia);
//Serijinis.printas ("Melnas: "); Serial.print (mėlyna);
// Rašykite analogą į LED
analogWrite (R, raudona); // R.
analogWrite (G, žalia); // G
analogWrite (B, mėlyna); // B.
vėlavimas (200);
}
void I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t data) {
Wire.beginTransmission (deviceAddress);
Wire.write (regAddress);
Wire.write (duomenys);
Wire.endTransmission ();
}
// Skaityti visus 14 registrų
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 ());
Temperatūra = ((((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 ());
}
// Konfigūruoti MPU6050
void MPU6050_Init () {
vėlavimas (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); // nustatyti +/- 250 laipsnių/sekundę
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // nustatyti +/- 2 g visos skalės
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);
}
// Absoliučioji vertė
float myAbs (float in) {
grįžti (į)> 0? (į):-(į);
}

peržiūrėti rawINTERAKTYVIOS LEMPOS PROGRAMĄ, kurią su ❤ priglobia „GitHub“

7 žingsnis: BEVIELIO KONTROLĖS PROGRAMA IR „Android“TAIKYMAS

BEVIELIO KONTROLĖS PROGRAMA IR „Android“TAIKYMAS
BEVIELIO KONTROLĖS PROGRAMA IR „Android“TAIKYMAS

Kitas būdas yra „Android“programa, skirta valdyti „RGB LED“su „Android“„WiFi“tinkle. „Android“programos susiejimas: NODEMCU valdymo RGB LED APP

„Arduino“programoje galite kreiptis į:

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

Įkėlus programą į „NodeMCU“, pirmasis paleidimas suteiks mums „NodeMCU“IP adresą serijinio spausdinimo metu. Mano atveju tai yra: 192.164.1.39 prie 80 prievado.

Vaizdas
Vaizdas

Dabar mes galime valdyti belaidę lempą nešiojamu kompiuteriu/ planšetiniu kompiuteriu/ mobiliuoju telefonu, įvesdami aukščiau esantį adresą į „Internet Explorer“.

Vaizdas
Vaizdas

Arba naudodami „Android“programą:

Vaizdas
Vaizdas

8 veiksmas: kai kurios nuotraukos

Rekomenduojamas: