Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
See projekt tehti katkisest lambist ja nodeMCU -st. Seda dekoratiivlampi saab reguleerida mis tahes suunas ja kinnitada magnetmaterjalidele või panna lauale. Seda saab juhtida kahes režiimis järgmiselt:
- Juhtmevaba juhtimisrežiim, nagu YouTube'i link allpool:
- Interaktiivne juhtimisrežiim, nagu YouTube'i link allpool:
1. samm: ARVE MATERJALID
B. O. M nimekiri:
Interaktiivse režiimi jaoks kasutan MPU6050, et saada NodeMCU -lt güroskoopilisi andmeid lambi värvi juhtimiseks.
Selle projekti materjalide pilt:
2. etapp: Ahel
See on väga lihtne vooluahel, nagu ülaltoodud Fritzingi skeemil, 1 RGB Led ühise anooditüübiga, kolme piirvoolutakistiga R100 ja MPU6050.
Helkurit kasutatakse purunenud lampidest ja see on ühendatud 2 poldiga sõlme MCU alusega või kleepige need tugeva liimiga.
Paigaldustööd:
Skeem allpool:
3. samm: MAGNEETILINE ALUS - PAINDLIK ARM
Painduvat kätt saab katkistest painduvatest veekraanidest uuesti kasutada. Midagi sellist:
Mõne näpunäite abil proovime need ühendada painduva õla allosas oleva püsimagneti alusega. Peale selle tegime puuraugu, et ühendada meie trükkplaat ja päikeseenergia/akulaadija. Selle aluse abil saame lambi panna lauale, põrandale…; või seda saab kinnitada magnetmaterjalidele nagu terasest sammas, teraskonstruktsioon.
4. samm: PÄIKESEPÄEV - AKULAADIJA
See tuli kahjustatud laadimislambist. Lisasin nodeMCU -le sisse/välja lüliti ja toitejuhtmete toite. Sellel on ka üks USB -pistikupesa ja üks pistik akulaadija jaoks.
Samm: Ühendage kõik koos
Kõikide osade ühendamine: NodeMCU ja reflektor, päikesepatareid ja akupatareid, painduv õlg koos.
LÕPETAMA
LAADIMISREŽIIM
6. samm: interaktiivne juhtimisprogramm
Värv muutub, kui reguleerime painduvat kätt või pöörame lampi.
INTERAKTIIVNE LAMP
#kaasake |
// MPU6050 Alamseadme aadress |
const uint8_t MPU6050SlaveAddress = 0x68; |
// Valige SDA- ja SCL -tihvtid I2C -side jaoks - PIN -koodi vaikimisi juhtmeraamatukogus: SCL - D1 & SDA - D2 NODEMCU -s |
// const uint8_t SCL = D1; |
// const uint8_t SDA = D2; |
const int R = 14; |
const int G = 12; |
const int B = 13; |
// MPU6050 vähe konfiguratsiooniregistri aadresse |
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_ET = 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, temperatuur, GyroX, GyroY, GyroZ; |
tühine seadistus () { |
pinMode (R, VÄLJUND); |
pinMode (G, VÄLJUND); |
pinMode (B, VÄLJUND); |
//Seriaalne.algus (9600); |
Wire.begin (SDA, SCL); |
MPU6050_Init (); |
} |
void loop () { |
uint16_t Axe, Ay, Az, T, Gx, Gy, Gz; |
uint16_t punane, roheline, sinine; |
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H); |
// Võtke absoluutväärtus |
Kirves = myAbs (AccelX); |
Ay = myAbs (AccelY); |
Az = myAbs (AccelZ); |
// Skaala vahemikus |
Punane = kaart (Axe, 0, 16384, 0, 1023); |
Roheline = kaart (Ay, 0, 16384, 0, 1023); |
Sinine = kaart (Az, 0, 16384, 0, 1023); |
// Seeriatrükk kontrollimiseks |
//Sarja.print ("Red: "); Serial.print (punane); |
//Sarja.print ("Green: "); Serial.print (roheline); |
//Sarja.print ("Sinine: "); Serial.print (sinine); |
// Kirjutage analoog LED -i |
analogWrite (R, punane); R |
analogWrite (G, roheline); // G |
analogWrite (B, sinine); // B |
viivitus (200); |
} |
tühine I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t data) { |
Wire.beginTransmission (deviceAddress); |
Wire.write (regAddress); |
Wire.write (andmed); |
Wire.endTransmission (); |
} |
// Loe kõiki 14 registrit |
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 ()); |
Temperatuur = ((((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 ()); |
} |
// MPU6050 seadistamine |
tühine MPU6050_Init () { |
viivitus (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); // seatud +/- 250 kraadi/sekund täisskaala |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // komplekt +/- 2 g täisskaala |
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); |
} |
// Absoluutne väärtus |
float myAbs (hõlju sisse) { |
tagasitulek (sisse)> 0? (sisse):-(sisse); |
} |
vaata tooresINTERAKTIIVSET LAMPPROGRAMMI, mille hostiks on GitHub ❤
7. toiming: traadita juhtimise programm ja androidi rakendus
Teine võimalus on kasutada Androidi rakendust, et juhtida WiFi võrgus Androidiga RGB LED -i. Linkige Androidi rakendus: NODEMCU juhtimis -RGB LED -APP
Arduino programmi jaoks võite viidata:
microcontrollerkits.blogspot.com/2016/05/es…
Pärast programmi NodeMCU -sse üleslaadimist annab esimene kord meile seeriaprintimisel NodeMCU IP -aadressi. Minu puhul on see: 192.164.1.39 sadamas 80.
Nüüd saame juhtmevaba lampi sülearvuti/ tahvelarvuti/ mobiiltelefoniga juhtida, sisestades Internet Explorerisse ülaltoodud aadressi.
Või kasutades Androidi rakendust: