Sisällysluettelo:

AURINKOINEN LANGATON LAMPPU MAGNEETTISELLA JOUSTAVALLA: 8 vaihetta (kuvilla)
AURINKOINEN LANGATON LAMPPU MAGNEETTISELLA JOUSTAVALLA: 8 vaihetta (kuvilla)

Video: AURINKOINEN LANGATON LAMPPU MAGNEETTISELLA JOUSTAVALLA: 8 vaihetta (kuvilla)

Video: AURINKOINEN LANGATON LAMPPU MAGNEETTISELLA JOUSTAVALLA: 8 vaihetta (kuvilla)
Video: 40 käsin poimittua Aliexpress-autotuotetta, jotka helpottavat jokaisen auton omistajan elämää # 1 2024, Heinäkuu
Anonim
AURINKOINEN LANGATON LAMPPU MAGNEETTIJOUSTAVASTI
AURINKOINEN LANGATON LAMPPU MAGNEETTIJOUSTAVASTI
AURINKOINEN LANGATON LAMPPU MAGNEETTIJOUSTAVASTI
AURINKOINEN LANGATON LAMPPU MAGNEETTIJOUSTAVASTI

Tämä projekti tehtiin rikkinäisestä lampusta ja nodeMCU: sta. Tätä koristelamppua voidaan säätää mihin tahansa suuntaan ja kiinnittää magneettisiin materiaaleihin tai asettaa pöydälle. Sitä voidaan ohjata kahdella tavalla seuraavasti:

- Langaton ohjaustila, kuten alla oleva YouTube -linkki:

- Interaktiivinen ohjaustila, kuten alla oleva YouTube -linkki:

Vaihe 1: MATERIAALILUETTELO

B. O. M -lista:

Kuva
Kuva

Vuorovaikutteisessa tilassa käytän MPU6050: tä saadakseni gyro -tietoja NodeMCU: sta lampun värin hallitsemiseksi.

Materiaalikuva tälle projektille:

Kuva
Kuva

Vaihe 2: VIRTA

PIIRI
PIIRI

Tämä on hyvin yksinkertainen piiri, kuten yllä olevassa Fritzing -kaaviossa, yhdellä RGB -yleisellä anodityypillä, kolmella rajavirran vastuksella R100 ja MPU6050.

Heijastinta käytetään kaikista rikkoutuneista lampuista ja se on kytketty nodeMCU -pohjaan 2 pultilla tai kiinnitä ne vahvalla liimalla.

Asennustyöt:

Kuva
Kuva
Kuva
Kuva

Alla oleva kaavio:

Kuva
Kuva

Vaihe 3: MAGNETIC BASE - JOUSTAVA ARM

MAGNETIC BASE - JOUSTAVA ARM
MAGNETIC BASE - JOUSTAVA ARM

Joustava varsi voidaan käyttää uudelleen rikkoutuneista joustavista vesihanoista. Jotain sellaista:

Kuva
Kuva

Joidenkin vinkkien avulla yritämme yhdistää ne joustavan varren alaosassa olevaan kestomagneettipohjaan. Lisäksi teimme porausreiän piirilevyyn ja aurinko-/akkulaturiin liittämistä varten. Tämän pohjan avulla voimme laittaa lampun pintaan, kuten pöydälle, lattialle…; tai se voidaan kiinnittää magneettisiin materiaaleihin, kuten teräspylvääseen, teräsrakenteeseen.

Vaihe 4: AURINKO - AKKULATURI

AURINKO - AKKULATURI
AURINKO - AKKULATURI

Se tuli vahingoittuneesta latauslampusta. Lisäsin on/off -kytkimen ja virtajohtojen syötön nodeMCU: hon. Siinä on myös yksi USB -portti ja yksi pistoke akkulaturia varten.

Vaihe 5: KYTKE KAIKKI YHDESSÄ

KYTKE KAIKKI YHDESSÄ
KYTKE KAIKKI YHDESSÄ

Kaikkien osien liittäminen: NodeMCU ja heijastin, aurinko- ja akkukennot, joustava varsi yhdessä.

VIEDÄ LOPPUUN

Kuva
Kuva

LATUSTILA

Kuva
Kuva

Vaihe 6: INTERAKTIIVINEN OHJAUSOHJELMA

Väri muuttuu, kun säädetään joustavaa vartta tai käännetään lamppua.

INTERAKTIIVINEN LAMPPU

#sisältää
// MPU6050 Slave Device Address
const uint8_t MPU6050SlaveAddress = 0x68;
// Valitse SDA- ja SCL -nastat I2C -tiedonsiirtoa varten - PIN -oletus WIRE -KIRJASTO: SCL - D1 & SDA - D2 NODEMCUssa
// const uint8_t SCL = D1;
// const uint8_t SDA = D2;
const int R = 14;
const int G = 12;
const int B = 13;
// MPU6050 muutama määritysrekisteriosoite
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_FI = 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, lämpötila, GyroX, GyroY, GyroZ;
void setup () {
pinMode (R, OUTPUT);
pinMode (G, OUTPUT);
pinMode (B, OUTPUT);
//Sarja.alku (9600);
Wire.begin (SDA, SCL);
MPU6050_Init ();
}
void loop () {
uint16_t Axe, Ay, Az, T, Gx, Gy, Gz;
uint16_t Punainen, vihreä, sininen;
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H);
// Ota absoluuttinen arvo
Axe = myAbs (AccelX);
Ay = myAbs (AccelY);
Az = myAbs (AccelZ);
// Asteikko alueella
Punainen = kartta (Axe, 0, 16384, 0, 1023);
Vihreä = kartta (Ay, 0, 16384, 0, 1023);
Sininen = kartta (Az, 0, 16384, 0, 1023);
// Sarjatulostus tarkistettavaksi
//Sarja.print ("Punainen: "); Sarjanjälki (punainen);
//Sarja.print ("Vihreä: "); Sarjajälki (vihreä);
//Sarja.print ("Sininen: "); Sarjanjälki (sininen);
// Kirjoita analoginen LED -valolle
analogWrite (R, punainen); // R.
analogWrite (G, vihreä); // G
analogWrite (B, sininen); // B
viive (200);
}
void I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t data) {
Wire.beginTransmission (deviceAddress);
Wire.write (regAddress);
Wire.write (data);
Wire.endTransmission ();
}
// Lue kaikki 14 rekisteriä
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 ());
Lämpötila = ((((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 ());
}
// Määritä MPU6050
void MPU6050_Init () {
viive (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); // aseta +/- 250 astetta/sekunti täysi asteikko
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // set +/- 2g full scale
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);
}
// Absoluuttinen arvo
float myAbs (float in) {
paluu (sisään)> 0? (sisään):-(sisään);
}

katso raakaINTERAKTIIVINEN LAMPPU -OHJELMA, jonka isännöi GitHub ❤

Vaihe 7: LANGATON OHJAUSOHJELMA JA ANDROID -SOVELLUS

LANGATON OHJAUSOHJELMA JA ANDROID -SOVELLUS
LANGATON OHJAUSOHJELMA JA ANDROID -SOVELLUS

Toinen tapa, voimme käyttää Android -sovellusta hallita RGB -LEDiä Androidin kanssa WiFi -verkossa. Linkitä Android -sovellus: NODEMCU -ohjaus RGB LED APP

Arduino -ohjelmassa voit viitata:

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

Kun ohjelma on ladattu NodeMCU: hon, ensimmäinen suoritus antaa meille NodeMCU: n IP -osoitteen sarjatulosteessa. Minun tapauksessani se on: 192.164.1.39 portissa 80.

Kuva
Kuva

Nyt voimme ohjata langatonta lamppua kannettavalla tietokoneella/ tabletilla/ matkapuhelimella kirjoittamalla yllä olevan osoitteen Internet Exploreriin.

Kuva
Kuva

Tai käyttämällä Android -sovellusta:

Kuva
Kuva

Vaihe 8: Jotkut KUVAT

Suositeltava: