Բովանդակություն:

ԱՐԵՎԱԿԱՅԻՆ ԱՊԱՌՈ L ԼԱՄ ՄԱԳՆԵՏԻԿ FԵXՎԱ AR ԲԱՌՈՎ. 8 քայլ (նկարներով)
ԱՐԵՎԱԿԱՅԻՆ ԱՊԱՌՈ L ԼԱՄ ՄԱԳՆԵՏԻԿ FԵXՎԱ AR ԲԱՌՈՎ. 8 քայլ (նկարներով)

Video: ԱՐԵՎԱԿԱՅԻՆ ԱՊԱՌՈ L ԼԱՄ ՄԱԳՆԵՏԻԿ FԵXՎԱ AR ԲԱՌՈՎ. 8 քայլ (նկարներով)

Video: ԱՐԵՎԱԿԱՅԻՆ ԱՊԱՌՈ L ԼԱՄ ՄԱԳՆԵՏԻԿ FԵXՎԱ AR ԲԱՌՈՎ. 8 քայլ (նկարներով)
Video: Cleaning a Dirty Aquarium - Fish Tank Maintenance 2024, Հուլիսի
Anonim
ԱՐԵՎԱԿԱԼԻ ԱՆՏԱՀ ԼԱՄ ՄԱԳՆԵՏԻԿ LEԵXՎԱ AR ԲԱՌՈՎ
ԱՐԵՎԱԿԱԼԻ ԱՆՏԱՀ ԼԱՄ ՄԱԳՆԵՏԻԿ LEԵXՎԱ AR ԲԱՌՈՎ
ԱՐԵՎԱԿԱՅԻՆ ԱՆՏԱՌ ԼԱՊ ՄԱԳՆԵՏԻԿ FԵXՎԱ AR ԲԱՌՈՎ
ԱՐԵՎԱԿԱՅԻՆ ԱՆՏԱՌ ԼԱՊ ՄԱԳՆԵՏԻԿ FԵXՎԱ AR ԲԱՌՈՎ

Այս նախագիծը պատրաստված էր կոտրված լամպից և nodeMCU- ից: Այս դեկորատիվ լամպը կարող է ճշգրտվել ցանկացած ուղղությամբ և կցվել մագնիսական նյութերին կամ դրվել սեղանին: Այն կարող է վերահսկվել երկու ռեժիմով ՝ հետևյալ կերպ.

- Անլար կառավարման ռեժիմ, ինչպես ստորև բերված YouTube հղումը.

- Ինտերակտիվ կառավարման ռեժիմ, ինչպես YouTube- ի ստորև բերված հղումը.

Քայլ 1. ՆՅՈԹԵՐԻ ՀԱՇՎԵՏՎՈԹՅՈՆ

B. O. M ցուցակ

Պատկեր
Պատկեր

Ինտերակտիվ ռեժիմի համար ես օգտագործում եմ MPU6050- ը `NodeMCU- ից գիրոյի տվյալներ ստանալու համար` լամպի գույնը վերահսկելու համար:

Այս նախագծի նյութերի պատկերը

Պատկեր
Պատկեր

Քայլ 2. ՇՐIRԱՆ

ՇՐՋԱՆ
ՇՐՋԱՆ

Սա շատ պարզ միացում է, ինչպես վերը նշված է Fritzing- ում, 1 RGB Led ընդհանուր անոդի տեսքով, երեք սահմանափակ ընթացիկ դիմադրող R100 և MPU6050:

Ռեֆլեկտորը օգտագործվում է ցանկացած կոտրված լամպերից և միացված է nodeMCU բազային 2 պտուտակով կամ կպցրեք դրանք ամուր սոսինձով:

Տեղադրման աշխատանքներ

Պատկեր
Պատկեր
Պատկեր
Պատկեր

Ստորև ներկայացված սխեմատիկ պատկերը

Պատկեր
Պատկեր

Քայլ 3. ՄԱԳՆԵՏԻԿԱԿԱՆ ՀԻՄՆԱ - LEԱՌԻԿ ԲԱՆԿ

ՄԱԳՆԵՏԻԿԱԿԱՆ ՀԻՄՆԱ - LEԱՌԻԿ ԲԱՆԿ
ՄԱԳՆԵՏԻԿԱԿԱՆ ՀԻՄՆԱ - LEԱՌԻԿ ԲԱՆԿ

Brokenկուն ձեռքը կարող է կրկին օգտագործվել կոտրված ճկուն ջրի ծորակներից: Նման մի բան:

Պատկեր
Պատկեր

Որոշ խորհուրդներով մենք փորձում ենք դրանք միացնել ճկուն թևի ներքևի մասում գտնվող մշտական մագնիսի հիմքին: Վերևում մենք պատրաստեցինք անցք `մեր տպատախտակին և արևային/մարտկոցի լիցքավորիչին միանալու համար: Այս հիմքով մենք կարող ենք լամպ դնել մակերևույթի վրա, ինչպես սեղանը, հատակը …: կամ այն կարող է կցվել մագնիսական նյութերի վրա, ինչպիսիք են պողպատե սյունը, պողպատե կառուցվածքը:

Քայլ 4: Արևային - մարտկոցի լիցքավորիչ

ԱՐԵՎԱԿԱՆ - Մարտկոցի լիցքավորիչ
ԱՐԵՎԱԿԱՆ - Մարտկոցի լիցքավորիչ

Այն եկել է վնասված լիցքավորման լամպից: NodeMCU- ին ավելացրեցի անջատիչ/անջատիչ և հոսանքի լարերի մատակարարում: Այն ունի նաև մեկ USB պորտի ելք և մեկ վարդակ մարտկոցի լիցքավորիչի համար:

Քայլ 5. ԲՈԼՈՐԻՆ ՄԻԱԵԼ

ԲՈԼՈՐԸ ՄԻԱՅՆ ԿԱՄ
ԲՈԼՈՐԸ ՄԻԱՅՆ ԿԱՄ

Բոլոր մասերի միացում. NodeMCU և ռեֆլեկտոր, արևային և մարտկոցային բջիջներ, ճկուն բազուկ միասին:

ԱՎԱՐՏՎԵԼ

Պատկեր
Պատկեր

Լիցքավորման ռեժիմ

Պատկեր
Պատկեր

Քայլ 6. ՄԻTERԱACԳԱՅԻՆ ՎԵՐԱՀՍԿՈ ՐԱԳԻՐ

Գույնը կփոխվի, երբ մենք կարգավորենք ճկուն թևը կամ պտտենք լամպը:

INTERACTIVE LAMP

#ներառում
// MPU6050 Ստրուկի սարքի հասցե
const uint8_t MPU6050SlaveAddress = 0x68;
// Ընտրեք SDA և SCL կապեր I2C հաղորդակցության համար - Պին լռելյայն WIRE GIBRARY- ում. 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 կոնֆիգուրացիայի գրանցման մի քանի հասցե
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, ջերմաստիճան, GyroX, GyroY, GyroZ;
void setup () {
pinMode (R, OUTPUT);
pinMode (G, OUTPUT);
pinMode (B, OUTPUT);
//Serial.begin(9600);
Wire.begin (SDA, SCL);
MPU6050_Init ();
}
դատարկ շրջան () {
uint16_t Ax, Ay, Az, T, Gx, Gy, Gz;
uint16_t Կարմիր, Կանաչ, Կապույտ;
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H);
// Վերցրեք բացարձակ արժեք
Ax = myAbs (AccelX);
Ay = myAbs (AccelY);
Az = myAbs (AccelZ);
// Սանդղակ միջակայքում
Կարմիր = քարտեզ (Կացին, 0, 16384, 0, 1023);
Կանաչ = քարտեզ (Այ, 0, 16384, 0, 1023);
Կապույտ = քարտեզ (Az, 0, 16384, 0, 1023);
// Սերիական տպում `ստուգելու համար
//Serial.print("Կարմիր ՝ "); Serial.print (Կարմիր);
//Serial.print("Green: "); Serial.print (Կանաչ);
//Serial.print(" Կապույտ. "); Serial.print (Կապույտ);
// Անալոգային գրել LED- ին
analogWrite (R, Red); // Ռ
analogWrite (G, Կանաչ); // Գ
analogWrite (B, Blue); // Բ
ուշացում (200);
}
անվավեր I2C_Write (uint8_t սարքի հասցե, uint8_t regAddress, uint8_t տվյալներ) {
Wire.beginTransmission (deviceAddress);
Wire.write (regAddress);
Wire.write (տվյալներ);
Wire.endTransmission ();
}
// Կարդացեք բոլոր 14 գրանցամատյանները
դատարկ Read_RawValue (uint8_t սարքի հասցե, uint8_t regAddress) {
Wire.beginTransmission (deviceAddress);
Wire.write (regAddress);
Wire.endTransmission ();
Մետաղալար. Խնդրում ենք (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 ());
Peratերմաստիճան = ((((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- ը
անվավեր MPU6050_Init () {
ուշացում (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); // սահմանել +/- 250 աստիճան/վայրկյան լրիվ մասշտաբով
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // սահմանել +/- 2 գ ամբողջական մասշտաբով
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);
}
// Բացարձակ արժեք
float myAbs (float in) {
վերադարձ (in)> 0? (in):-(in);
}

դիտել raw INTERACTIVE LAMP GRՐԱԳԻՐ, որը տեղակայված է it -ի կողմից GitHub- ի կողմից

Քայլ 7: ԱՆIՐԱՅԻՆ ՎԵՐԱՀՍԿՈՈԹՅԱՆ ANDՐԱԳԻՐ ԵՎ ANDROID APՐՈՅ

Անլար վերահսկողության ծրագիր և Android դիմում
Անլար վերահսկողության ծրագիր և Android դիմում

Մեկ այլ եղանակ ՝ մենք կարող ենք օգտագործել Android հավելվածը ՝ RGB LED- ը Android- ով WiFi ցանցում վերահսկելու համար: Հղում Android հավելվածին. NODEMCU հսկողության RGB LED APP

Arduino ծրագրի համար կարող եք վերաբերել ՝

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

NodeMCU- ում ծրագիրը վերբեռնելուց հետո առաջին գործարկումը մեզ կտա NodeMCU- ի IP հասցեն սերիական տպման վրա: Իմ դեպքում, դա ՝ 192.164.1.39, 80 նավահանգստում:

Պատկեր
Պատկեր

Այժմ մենք կարող ենք վերահսկել անլար լամպը նոթբուքով/ պլանշետով/ բջջային հեռախոսով `վերը նշված հասցեն մուտքագրելով Internet Explorer:

Պատկեր
Պատկեր

Կամ օգտագործելով Android ծրագիրը.

Պատկեր
Պատկեր

Քայլ 8: ՈՐՈՇ ՆԿԱՐՆԵՐ

Խորհուրդ ենք տալիս: