Satura rādītājs:

BEZVADU SAULES LAMPA AR MAGNĒTISKU Elastīgu roku: 8 soļi (ar attēliem)
BEZVADU SAULES LAMPA AR MAGNĒTISKU Elastīgu roku: 8 soļi (ar attēliem)

Video: BEZVADU SAULES LAMPA AR MAGNĒTISKU Elastīgu roku: 8 soļi (ar attēliem)

Video: BEZVADU SAULES LAMPA AR MAGNĒTISKU Elastīgu roku: 8 soļi (ar attēliem)
Video: Страшные истории. ЗАПЕРТАЯ КОМНАТА. Деревенские страшилки. Ужасы. Мистика. 2024, Jūlijs
Anonim
SAULES BEZVADU LAMPA AR MAGNĒTISKU Elastīgu roku
SAULES BEZVADU LAMPA AR MAGNĒTISKU Elastīgu roku
SAULES BEZVADU LAMPA AR MAGNĒTISKU Elastīgu roku
SAULES BEZVADU LAMPA AR MAGNĒTISKU Elastīgu roku

Šis projekts tika izgatavots no salauztas lampas un nodeMCU. Šo dekoratīvo lampu var regulēt jebkurā virzienā un piestiprināt pie magnētiskiem materiāliem vai novietot uz galda. To var kontrolēt divos režīmos:

- Bezvadu vadības režīms, kā YouTube saite zemāk:

- Interaktīvs vadības režīms, kā YouTube saite zemāk:

1. solis: MATERIĀLU BILSTS

B. O. M saraksts:

Attēls
Attēls

Interaktīvajā režīmā es izmantoju MPU6050, lai iegūtu žiroskopu datus no NodeMCU, lai kontrolētu lampas krāsu.

Materiālu attēls šim projektam:

Attēls
Attēls

2. darbība: Ķēde

ĶĒDE
ĶĒDE

Šī ir ļoti vienkārša shēma, kā aprakstīts iepriekš Fritzinga shēmā, ar 1 RGB Led parasto anoda tipu, trīs ierobežojošās strāvas rezistoriem R100 un MPU6050.

Atstarotājs tiek izmantots no salūzušām lampām un savienots ar nodalījuma MCU pamatni ar 2 skrūvēm vai pielīmējiet tās ar stipru līmi.

Uzstādīšanas darbi:

Attēls
Attēls
Attēls
Attēls

Shēma zemāk:

Attēls
Attēls

3. solis: MAGNĒTISKĀ BĀZE - Elastīga roka

MAGNĒTISKAIS PAMATS - Elastīga roka
MAGNĒTISKAIS PAMATS - Elastīga roka

Elastīgo roku var atkārtoti izmantot no salauztiem elastīgajiem ūdens krāniem. Kaut kas tamlīdzīgs:

Attēls
Attēls

Ar dažiem padomiem mēs cenšamies tos savienot ar pastāvīgā magnēta pamatni elastīgās rokas apakšā. Uz augšu mēs izveidojām urbumu savienošanai ar mūsu shēmas plati un saules/akumulatora lādētāju. Ar šo pamatni mēs varam novietot lampu uz virsmas, piemēram, galda, grīdas…; vai to var piestiprināt pie magnētiskiem materiāliem, piemēram, tērauda pīlāra, tērauda konstrukcijas.

4. solis: SAULE - AKUMULATORA LĀDĒTĀJS

SAULES - AKUMULATORA LĀDĒTĀJS
SAULES - AKUMULATORA LĀDĒTĀJS

Tas nāca no bojātas uzlādes lampas. Es pievienoju ieslēgšanas/izslēgšanas slēdzi un barošanas vadu padevi nodalījumam MCU. Tam ir arī viena USB porta kontaktligzda un viens kontaktdakša akumulatora lādētājam.

5. darbība: SAVIENOJIET VISU KOPĀ

SAVIENOJIET VISU KOPĀ
SAVIENOJIET VISU KOPĀ

Visu detaļu savienošana: NodeMCU un atstarotājs, saules baterijas un akumulatora elementi, elastīga roka kopā.

Pabeigt

Attēls
Attēls

LĀDĒŠANAS REŽĪMS

Attēls
Attēls

6. solis: INTERAKTĪVĀS KONTROLES PROGRAMMA

Krāsa tiks mainīta, pielāgojot elastīgo roku vai pagriežot lampu.

INTERAKTĪVĀ LAMPA

#iekļaut
// MPU6050 Vergu ierīces adrese
const uint8_t MPU6050SlaveAddress = 0x68;
// Atlasiet SDA un SCL tapas I2C komunikācijai - PIN noklusējums WIRE BIBLIOTĒKĀ: 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 dažas konfigurācijas reģistra adreses
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, Temperatūra, 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 Cirvis, Ay, Az, T, Gx, Gy, Gz;
uint16_t sarkans, zaļš, zils;
Read_RawValue (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H);
// Ņemiet absolūto vērtību
Cirvis = myAbs (AccelX);
Ay = myAbs (AccelY);
Az = myAbs (AccelZ);
// Mērogs diapazonā
Sarkans = karte (Ax, 0, 16384, 0, 1023);
Zaļa = karte (Ay, 0, 16384, 0, 1023);
Zils = karte (Az, 0, 16384, 0, 1023);
// Sērijas drukāšana, lai pārbaudītu
//Sērijas.print ("Red: "); Sērijas nospiedums (sarkans);
//Sērijas.print ("Green: "); Sērijas nospiedums (zaļš);
//Sērijas.print ("Zila: "); Sērijas nospiedums (zils);
// Ierakstiet analogo uz LED
analogWrite (R, sarkans); R
analogWrite (G, zaļš); // G
analogWrite (B, zils); B
kavēšanās (200);
}
void I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t data) {
Wire.beginTransmission (deviceAddress);
Wire.write (regAddress);
Wire.write (dati);
Wire.endTransmission ();
}
// Lasīt visus 14 reģistrus
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 ());
Temperatūra = ((((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 konfigurēšana
void MPU6050_Init () {
kavēšanā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); // iestatīt +/- 250 grādi/sekundē pilna skala
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // iestatīt +/- 2g pilnā mērogā
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);
}
// Absolūtā vērtība
float myAbs (float in) {
atgriešanās (in)> 0? (in):-(in);
}

apskatīt rawINTERACTIVE LAMP PROGRAMMU, kuru rīkoja GitHub ar ❤

7. solis: BEZVADA KONTROLES PROGRAMMA UN ANDROID PIETEIKUMS

BEZVADU KONTROLES PROGRAMMA UN ANDROID PIETEIKUMS
BEZVADU KONTROLES PROGRAMMA UN ANDROID PIETEIKUMS

Vēl viens veids, kā mēs varam izmantot Android lietotni, lai kontrolētu RGB LED ar Android WiFi tīklā. Android lietotnes saite: NODEMCU vadības RGB LED APP

Arduino programmai varat atsaukties uz:

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

Pēc programmas augšupielādes NodeMCU, pirmā palaišana sērijas drukāšanā sniegs mums NodeMCU IP adresi. Manā gadījumā tas ir: 192.164.1.39 80. ostā.

Attēls
Attēls

Tagad mēs varam vadīt bezvadu lampu ar klēpjdatoru/ planšetdatoru/ mobilo tālruni, ievadot interneta pārlūkprogrammā iepriekš norādīto adresi.

Attēls
Attēls

Vai izmantojot Android lietotni:

Attēls
Attēls

8. solis: DAŽAS BILDES

Ieteicams: