Përmbajtje:
Video: Llambë diellore pa tel me krah MAGNETIK FLEKSIBLE: 8 hapa (me fotografi)
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Ky projekt është bërë nga një llambë e thyer & nodeMCU. Kjo llambë dekorative mund të rregullohet në çdo drejtim dhe të ngjitet në materiale magnetike ose të vendoset në tryezë. Mund të kontrollohet në dy mënyra si më poshtë:
- Mënyra e kontrollit pa tel, si lidhja e YouTube më poshtë:
- Mënyra e kontrollit interaktiv, si lidhja e YouTube më poshtë:
Hapi 1: Fatura e materialeve
Lista e B. O. M:
Për modalitetin interaktiv, unë përdor MPU6050 për të marrë të dhëna xhiro nga NodeMCU për të kontrolluar ngjyrën e llambës.
Fotografia e materialeve për këtë projekt:
Hapi 2: QARKU
Ky është një qark shumë i thjeshtë, sipas skemës Fritzing më lart, me 1 lloj anode të zakonshme RGB Led, tre rezistorë të rrymës kufitare R100 & MPU6050.
Reflektori përdoret nga çdo llambë e thyer dhe lidhet me bazën nodeMCU me 2 bulona ose ngjitini ato me zam të fortë.
Puna e instalimit:
Skema më poshtë:
Hapi 3: BAZA MAGNETIKE - ARM FLEKSIBLE
Krahu fleksibël mund të ripërdoret nga çezmat fleksibël të thyer të ujit. Diçka e tillë:
Me disa këshilla, ne përpiqemi t'i lidhim ato me bazën e magnetit të përhershëm në fund të krahut fleksibël. Në krye, ne bëmë një vrimë stërvitore për t'u lidhur me tabelën tonë të qarkut dhe ngarkuesin diellor/bateri. Me këtë bazë, ne mund të vendosim llambë në sipërfaqe si tavolina, dysheme ….; ose mund të ngjitet në materiale magnetike si shtylla çeliku, strukturë çeliku.
Hapi 4: NGA NGARKIMI I BOTTERRIS S SOLAR
Ajo erdhi nga një llambë karikimi e dëmtuar. Shtova një ndërprerës ndezës/fikur dhe furnizim me tela të energjisë në nodeMCU. Gjithashtu ka një prizë USB dhe një prizë për karikuesin e baterisë.
Hapi 5: LIDHUNI T ALL GJITH BASHKU
Lidhja e të gjitha pjesëve: NodeMCU & reflektor, qeliza diellore dhe bateri, krah fleksibël së bashku.
P FRFUNDIM
MDNYRA E NGARKIMIT
Hapi 6: PROGRAMI I KONTROLLIT INTERAKTIV
Ngjyra do të ndryshojë kur rregullojmë krahun fleksibël ose rrotullojmë llambën.
LAMP INTERAKTIVE
#përfshi |
// Adresa e pajisjes së skllevërve MPU6050 |
const uint8_t MPU6050SlaveAdresa = 0x68; |
// Përzgjidhni kunjat SDA dhe SCL për komunikimin I2C - Parazgjedhja e pinit në WIRE LIBRITARE: SCL - D1 & SDA - D2 në NODEMCU |
// const uint8_t SCL = D1; |
// const uint8_t SDA = D2; |
const int R = 14; |
const int G = 12; |
const int B = 13; |
// MPU6050 pak adresa të regjistrit të konfigurimit |
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, Temperatura, GyroX, GyroY, GyroZ; |
void setup () { |
pinMode (R, OUTPUT); |
pinMode (G, OUTPUT); |
pinMode (B, OUTPUT); |
//Serial.fillo (9600); |
Wire.begin (SDA, SCL); |
MPU6050_Init (); |
} |
lak void () { |
uint16_t Ax, Ay, Az, T, Gx, Gy, Gz; |
uint16_t E kuqe, jeshile, blu; |
Read_RawValue (MPU6050SlaveAdresa, MPU6050_REGISTER_ACCEL_XOUT_H); |
// Merrni vlerën absolute |
Ax = myAbs (AccelX); |
Ay = myAbs (AccelY); |
Az = myAbs (AccelZ); |
// Shkalla në rang |
E kuqe = harta (Axe, 0, 16384, 0, 1023); |
E gjelbër = harta (Ay, 0, 16384, 0, 1023); |
Blu = hartë (Az, 0, 16384, 0, 1023); |
// Shtypja serike për tu kontrolluar |
//Serial.print("E kuqe: "); Serial.print (E kuqe); |
//Serial.print("Green: "); Serial.print (Green); |
//Serial.print("Blu: "); Serial.print (Blu); |
// Shkruani analog me LED |
analogWrite (R, Kuq); // R |
analogWrite (G, Green); // G |
analogWrite (B, Blu); // B |
vonesë (200); |
} |
i pavlefshëm I2C_Write (uint8_t adresa Adresa, uint8_t regAdresa, uint8_t të dhëna) { |
Wire.beginTransmission (pajisje Adresa); |
Wire.write (regAdresa); |
Wire.write (të dhënat); |
Wire.endTransmission (); |
} |
// Lexoni të 14 regjistrat |
pavlefshme Read_RawValue (uint8_t pajisje Adresa, uint8_t regAdresa) { |
Wire.beginTransmission (pajisje Adresa); |
Wire.write (regAdresa); |
Wire.endTransmission (); |
Tela. Kërkohet Nga (pajisja Adresa, (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 ()); |
Temperatura = ((((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 ()); |
} |
// Konfiguro MPU6050 |
void MPU6050_Init () { |
vonesa (150); |
I2C_Write (MPU6050SlaveAdresa, MPU6050_REGISTER_SMPLRT_DIV, 0x07); |
I2C_Write (MPU6050SlaveAdresa, MPU6050_REGISTER_PWR_MGMT_1, 0x01); |
I2C_Write (MPU6050SlaveAdresa, MPU6050_REGISTER_PWR_MGMT_2, 0x00); |
I2C_Write (MPU6050SlaveAdresa, MPU6050_REGISTER_CONFIG, 0x00); |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_GYRO_CONFIG, 0x00); // vendos +/- 250 gradë/shkallë e dytë e plotë |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // vendos +/- 2g shkallë të plotë |
I2C_Write (MPU6050SlaveAdresa, MPU6050_REGISTER_FIFO_EN, 0x00); |
I2C_Write (MPU6050SlaveAdresa, MPU6050_REGISTER_INT_ENABLE, 0x01); |
I2C_Write (MPU6050SlaveAdresa, MPU6050_REGISTER_SIGNAL_PATH_RESET, 0x00); |
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_USER_CTRL, 0x00); |
} |
// Vlere absolute |
float myAbs (noto brenda) { |
kthehet (në)> 0? (në):-(në); |
} |
shikoni programin e papërpunuar të llambave INTERACTIVE të organizuar me ❤ nga GitHub
Hapi 7: PROGRAMI I KONTROLLIT pa tel dhe APLIKIMI ANDROID
Një mënyrë tjetër, ne mund të përdorim Android App për të kontrolluar RGB LED me Android në WiFi Network. Lidh Android App: NODEMCU kontroll RGB LED APP
Për programin Arduino, mund t'i referoheni:
microcontrollerkits.blogspot.com/2016/05/es…
Pas ngarkimit të programit në NodeMCU, ekzekutimi i parë do të na japë adresën IP të NodeMCU në printimin serik. Në rastin tim, është: 192.164.1.39 në portin 80.
Tani, ne mund të kontrollojmë llambën pa tel me laptop/ tablet/ telefon celular duke futur adresën më lart në internet explorer.
Ose duke përdorur aplikacionin Android: