Sisällysluettelo:
Video: AURINKOINEN LANGATON LAMPPU MAGNEETTISELLA JOUSTAVALLA: 8 vaihetta (kuvilla)
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
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:
Vuorovaikutteisessa tilassa käytän MPU6050: tä saadakseni gyro -tietoja NodeMCU: sta lampun värin hallitsemiseksi.
Materiaalikuva tälle projektille:
Vaihe 2: VIRTA
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:
Alla oleva kaavio:
Vaihe 3: MAGNETIC BASE - JOUSTAVA ARM
Joustava varsi voidaan käyttää uudelleen rikkoutuneista joustavista vesihanoista. Jotain sellaista:
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
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Ä
Kaikkien osien liittäminen: NodeMCU ja heijastin, aurinko- ja akkukennot, joustava varsi yhdessä.
VIEDÄ LOPPUUN
LATUSTILA
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
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.
Nyt voimme ohjata langatonta lamppua kannettavalla tietokoneella/ tabletilla/ matkapuhelimella kirjoittamalla yllä olevan osoitteen Internet Exploreriin.
Tai käyttämällä Android -sovellusta: