
Tartalomjegyzék:
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:48


Ez a projekt egy törött lámpából és nodeMCU -ból készült. Ez a dekoratív lámpa bármilyen irányba állítható, és mágneses anyagokra rögzíthető, vagy az asztalra helyezhető. Két módban vezérelhető az alábbiak szerint:
- Vezeték nélküli vezérlési mód, a YouTube alábbi linkjével:
- Interaktív vezérlési mód, a YouTube alábbi linkje:
1. lépés: ANYAGSZÁMLA
B. O. M lista:

Interaktív módban az MPU6050 -et használom a giroszkóp adatok lekérésére a NodeMCU -ról a lámpa színének szabályozására.
Anyagkép ehhez a projekthez:

2. lépés: ÁRAMKÖR

Ez egy nagyon egyszerű áramkör, mint a fenti Fritzing sematikus, 1 RGB Led közös anódtípussal, három határáram ellenállással R100 és MPU6050.
A reflektor bármilyen törött lámpából készül, és 2 csavarral csatlakozik a nodeMCU alaphoz, vagy erős ragasztóval ragasztja őket.
Telepítési munka:


Vázlat az alábbiakban:

3. lépés: MAGNETIC BASE - FLEXIBLE ARM

A rugalmas kar újra felhasználható a törött hajlékony vízcsapokból. Valami hasonló:

Néhány tipp segítségével megpróbáljuk csatlakoztatni őket a rugalmas kar alján lévő állandó mágneses alaphoz. A tetején fúrólyukat készítettünk az áramköri lapunkhoz és a szolár/akkumulátortöltőhöz való csatlakoztatáshoz. Ezzel az alappal lámpát helyezhetünk olyan felületre, mint asztal, padló…; vagy rögzíthető mágneses anyagokra, például acéloszlopra, acélszerkezetre.
4. lépés: SOLAR - AKKUMULÁTOR TÖLTŐ

Sérült töltőlámpából származik. Hozzáadtam egy be/ki kapcsolót és tápkábeleket a nodeMCU -hoz. Ezenkívül egy USB -csatlakozóaljzatot és egy akkumulátortöltő csatlakozót tartalmaz.
5. lépés: CSATLAKOZZON EGYÜTT

Az összes alkatrész csatlakoztatása: NodeMCU és reflektor, napelem- és elemcellák, rugalmas kar együtt.
BEFEJEZ

TÖLTÉSI MÓD

6. lépés: INTERAKTÍV VEZÉRLÉSI PROGRAM
A szín megváltozik, ha rugalmas karot állítunk be vagy elforgatjuk a lámpát.
INTERAKTÍV LÁMPA
#befoglalni |
// MPU6050 slave eszköz címe |
const uint8_t MPU6050SlaveAddress = 0x68; |
// SDA és SCL csapok kiválasztása az I2C kommunikációhoz - Alapértelmezett tű a WIRE LIBRARY -ben: SCL - D1 & SDA - D2 a NODEMCU -n |
// const uint8_t SCL = D1; |
// const uint8_t SDA = D2; |
const int R = 14; |
const int G = 12; |
const int B = 13; |
// MPU6050 kevés konfigurációs regisztercím |
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, hőmérséklet, 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 Piros, Zöld, Kék; |
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H); |
// Vegyük az abszolút értéket |
Axe = myAbs (AccelX); |
Ay = myAbs (AccelY); |
Az = myAbs (AccelZ); |
// Scale in range |
Piros = térkép (Ax, 0, 16384, 0, 1023); |
Zöld = térkép (Ay, 0, 16384, 0, 1023); |
Kék = térkép (Az, 0, 16384, 0, 1023); |
// Soros nyomtatás ellenőrzésre |
// Sorozat.nyom ("Red: "); Sorozatnyomat (piros); |
// Sorozat.nyom ("Zöld: "); Sorozatnyomat (zöld); |
// Sorozat.nyom ("Kék: "); Sorozatnyomat (kék); |
// Analóg írása LED -re |
analogWrite (R, piros); R |
analogWrite (G, zöld); G |
analogWrite (B, kék); B |
késleltetés (200); |
} |
void I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t data) { |
Wire.beginTransmission (deviceAddress); |
Wire.write (regAddress); |
Wire.write (adatok); |
Wire.endTransmission (); |
} |
// Olvassa el mind a 14 regisztert |
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 ()); |
Hőmérséklet = ((((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 ()); |
} |
// Az MPU6050 konfigurálása |
void MPU6050_Init () { |
késleltetés (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); // beállítás +/- 250 fok/másodperc teljes skála |
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); |
} |
// Abszolút érték |
float myAbs (float in) { |
visszatérés (be)> 0? (in):-(in); |
} |
Tekintse meg a rawINTERAKTÍV LÁMPAPROGRAMot, amelyet a GitHub ❤ üzemeltet
7. lépés: VEZETÉKES VEZÉRLÉSI PROGRAM ÉS ANDROID ALKALMAZÁS

Egy másik módja, hogy Android -alkalmazással vezérelhetjük az RGB LED -et Androiddal a WiFi hálózatban. Link Android -alkalmazás: NODEMCU vezérlő RGB LED APP
Az Arduino programhoz a következőkre hivatkozhat:
microcontrollerkits.blogspot.com/2016/05/es…
A program NodeMCU -ba való feltöltése után az első futtatás megadja a NodeMCU IP -címét soros nyomtatáskor. Esetemben ez: 192.164.1.39 a 80 -as porton.

Most vezérelhetjük a vezeték nélküli lámpát laptoppal/ táblagéppel/ mobiltelefonnal, ha beírjuk a fenti címet az Internet Explorerbe.

Vagy az Android alkalmazás használatával:

8. lépés: Néhány kép
Ajánlott:
FLEXBALL - Száz pixel rugalmas PCB labda WiFi -vel: 6 lépés (képekkel)

FLEXBALL - Száz Pixel Rugalmas NYÁK -labda WiFi -vel: Üdv, gyártók! Az ESP8285-01f vezérli - az Espressif legkisebb ESP alapú modulja. Ezen kívül ADXL345 gyorsulásmérővel rendelkezik
Hatalmas rugalmas, átlátszó LED -mátrix 150 dollár alatt. Könnyen elkészíthető: 8 lépés (képekkel)

Hatalmas rugalmas, átlátszó LED -mátrix 150 dollár alatt. Könnyen elkészíthető: Szeretném azzal kezdeni, hogy nem vagyok profi, nincs diplomám az elektronikában. Egyszerűen élvezem a kezemmel dolgozni és kitalálni a dolgokat. Ezt azért mondom, hogy bátorító legyen minden hozzám hasonló, nem szakember számára. Képes vagy arra, hogy
Rugalmas laptop: 5 lépés (képekkel)

Rugalmas laptop: Ezt a gyors kis projektet azért tettem, hogy élesen tartsam tervezési és prototípuskészítési készségeimet, és megoszthassak valamit, ami nem tartozik az NDA hatálya alá, vagy valakinek licenc alatt áll. Beküldöm a profi tippek kihívásának, és ez valóban útmutató a
Rugalmas pongjáték pólón: 8 lépés (képekkel)

Rugalmas pongpóló pólón: Ez az én Halloween jelmezem a 2013 -as évre. Körülbelül egy éve készülődik, és jó néhány munkaórát vett igénybe. A képernyő 14 x 15 képpontos, tehát elég alacsony felbontású, de még mindig szórakoztató dolgokat tud csinálni. Fizikailag repült
Rugalmas szövetnyomás -érzékelő: 4 lépés (képekkel)

Rugalmas szövetnyomás -érzékelő: Hogyan készítsünk rugalmas szövetnyomás -érzékelőt 3 réteg vezető anyagból. Ez az Instructable kissé elavult. Kérjük, tekintse meg a következő utasításokat a továbbfejlesztett verziókhoz: > > https://www.instructables.com/id/Conductive-Thread-Pre