ΗΛΙΑΚΟΣ ΑΣΥΡΜΑΤΟΣ ΦΩΤΙΣΤΗΣ ΜΕ ΜΑΓΝΗΤΙΚΟ ΕΥΕΛΙΚΤΟ ΒΡΑΧΙΟΛΙ: 8 Βήματα (με Εικόνες)
ΗΛΙΑΚΟΣ ΑΣΥΡΜΑΤΟΣ ΦΩΤΙΣΤΗΣ ΜΕ ΜΑΓΝΗΤΙΚΟ ΕΥΕΛΙΚΤΟ ΒΡΑΧΙΟΛΙ: 8 Βήματα (με Εικόνες)

Βίντεο: ΗΛΙΑΚΟΣ ΑΣΥΡΜΑΤΟΣ ΦΩΤΙΣΤΗΣ ΜΕ ΜΑΓΝΗΤΙΚΟ ΕΥΕΛΙΚΤΟ ΒΡΑΧΙΟΛΙ: 8 Βήματα (με Εικόνες)

Βίντεο: ΗΛΙΑΚΟΣ ΑΣΥΡΜΑΤΟΣ ΦΩΤΙΣΤΗΣ ΜΕ ΜΑΓΝΗΤΙΚΟ ΕΥΕΛΙΚΤΟ ΒΡΑΧΙΟΛΙ: 8 Βήματα (με Εικόνες)
Βίντεο: ΑΣΥΡΜΑΤΗ ΦΟΡΤΙΣΗ ΣΕ ΟΠΟΙΟΔΉΠΟΤΕ ΚΙΝΗΤΟ 2025, Ιανουάριος
Anonim
ΗΛΙΑΚΟΣ ΑΣΥΡΜΑΤΟΣ ΦΩΤΙΣΤΗΣ ΜΕ ΜΑΓΝΗΤΙΚΟ ΕΥΕΛΙΚΤΟ ΒΡΑΧΙΟ
ΗΛΙΑΚΟΣ ΑΣΥΡΜΑΤΟΣ ΦΩΤΙΣΤΗΣ ΜΕ ΜΑΓΝΗΤΙΚΟ ΕΥΕΛΙΚΤΟ ΒΡΑΧΙΟ
ΗΛΙΑΚΟΣ ΑΣΥΡΜΑΤΟΣ ΦΩΤΙΣΤΗΣ ΜΕ ΜΑΓΝΗΤΙΚΟ ΕΥΕΛΙΚΤΟ ΒΡΑΧΙΟ
ΗΛΙΑΚΟΣ ΑΣΥΡΜΑΤΟΣ ΦΩΤΙΣΤΗΣ ΜΕ ΜΑΓΝΗΤΙΚΟ ΕΥΕΛΙΚΤΟ ΒΡΑΧΙΟ

Αυτό το έργο δημιουργήθηκε από σπασμένη λάμπα & nodeMCU. Αυτός ο διακοσμητικός λαμπτήρας μπορεί να ρυθμιστεί προς οποιαδήποτε κατεύθυνση και να προσαρτηθεί σε μαγνητικά υλικά ή να τοποθετηθεί στο τραπέζι. Μπορεί να ελεγχθεί σε δύο τρόπους λειτουργίας ως εξής:

- Λειτουργία ασύρματου ελέγχου, όπως ο παρακάτω σύνδεσμος YouTube:

- Διαδραστική λειτουργία ελέγχου, όπως ο παρακάτω σύνδεσμος YouTube:

Βήμα 1: ΛΟΓΑΡΙΑΣΜΟΣ ΥΛΙΚΩΝ

Λίστα B. O. M:

Εικόνα
Εικόνα

Για διαδραστική λειτουργία, χρησιμοποιώ το MPU6050 για να λαμβάνω γυροσκοπικά δεδομένα από το NodeMCU για τον έλεγχο του χρώματος της λάμπας.

Εικόνα υλικών για αυτό το έργο:

Εικόνα
Εικόνα

Βήμα 2: ΚΥΚΛΩΜΑ

ΚΥΚΛΩΜΑ
ΚΥΚΛΩΜΑ

Αυτό είναι ένα πολύ απλό κύκλωμα, όπως φαίνεται από το Fritzing παραπάνω, με 1 τύπο κοινής ανόδου 1 RGB Led, τρεις αντιστάσεις ορίου ρεύματος R100 & MPU6050.

Ο ανακλαστήρας χρησιμοποιείται από τυχόν σπασμένους λαμπτήρες και συνδέεται με τη βάση nodeMCU με 2 μπουλόνια ή κολλήστε τα με ισχυρή κόλλα.

Εργασίες εγκατάστασης:

Εικόνα
Εικόνα
Εικόνα
Εικόνα

Σχηματικό παρακάτω:

Εικόνα
Εικόνα

Βήμα 3: ΜΑΓΝΗΤΙΚΗ ΒΑΣΗ - ΕΥΕΛΙΚΤΟΣ ΣΤΡΑΤΟΣ

ΜΑΓΝΗΤΙΚΗ ΒΑΣΗ - ΕΥΕΛΙΚΤΟΣ ΣΤΡΑΤΟΣ
ΜΑΓΝΗΤΙΚΗ ΒΑΣΗ - ΕΥΕΛΙΚΤΟΣ ΣΤΡΑΤΟΣ

Ο εύκαμπτος βραχίονας μπορεί να επαναχρησιμοποιηθεί από σπασμένες εύκαμπτες βρύσες νερού. Κάτι τέτοιο:

Εικόνα
Εικόνα

Με μερικές συμβουλές, προσπαθούμε να τα συνδέσουμε στη βάση του μόνιμου μαγνήτη στο κάτω μέρος του εύκαμπτου βραχίονα. Στην κορυφή, κάναμε μια τρύπα για σύνδεση με την πλακέτα κυκλώματος και τον φορτιστή ηλιακών/μπαταριών. Με αυτή τη βάση, μπορούμε να βάλουμε λάμπα στην επιφάνεια όπως τραπέζι, δάπεδα….? ή μπορεί να στερεωθεί σε μαγνητικά υλικά όπως χαλύβδινη κολόνα, κατασκευή χάλυβα.

Βήμα 4: ΗΛΙΑΚΟΣ - ΦΟΡΤΙΣΤΗΣ ΜΠΑΤΑΡΙΑΣ

ΗΛΙΑΚΟΣ - ΦΟΡΤΙΣΤΗΣ ΜΠΑΤΑΡΙΑΣ
ΗΛΙΑΚΟΣ - ΦΟΡΤΙΣΤΗΣ ΜΠΑΤΑΡΙΑΣ

Προήλθε από χαλασμένη λάμπα φόρτισης. Πρόσθεσα έναν διακόπτη on/off και τροφοδοτικό καλωδίων τροφοδοσίας στο nodeMCU. Διαθέτει επίσης μία πρίζα θύρας USB και ένα βύσμα για φορτιστή μπαταρίας.

Βήμα 5: ΣΥΝΔΕΣΕ ΟΛΟΥΣ ΜΑΖΙ

ΣΥΝΔΕΣΕ ΟΛΟΥΣ ΜΑΖΙ
ΣΥΝΔΕΣΕ ΟΛΟΥΣ ΜΑΖΙ

Σύνδεση όλων των μερών: NodeMCU & ανακλαστήρα, ηλιακά στοιχεία και μπαταρίες, εύκαμπτος βραχίονας μαζί.

ΦΙΝΙΡΙΣΜΑ

Εικόνα
Εικόνα

ΤΡΟΠΟΣ ΦΟΡΤΙΣΗΣ

Εικόνα
Εικόνα

Βήμα 6: ΔΙΑΔΡΑΣΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΕΛΕΓΧΟΥ

Το χρώμα θα αλλάξει όταν προσαρμόσουμε τον εύκαμπτο βραχίονα ή περιστρέψουμε τη λάμπα.

ΔΙΑΔΡΑΣΤΙΚΟΣ ΦΩΤΟΣ

#περιλαμβάνω
// Διεύθυνση συσκευής MPU6050 Slave
const uint8_t MPU6050SlaveAddress = 0x68;
// Επιλέξτε καρφίτσες SDA και SCL για επικοινωνία I2C - Προεπιλογή καρφιτσών στη ΒΙΒΛΙΟΘΗΚΗ WIRE: 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 Β = 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_EL = 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 ();
}
void loop () {
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);
// Κλίμακα στο εύρος
Κόκκινο = χάρτης (Ax, 0, 16384, 0, 1023);
Πράσινο = χάρτης (Ay, 0, 16384, 0, 1023);
Μπλε = χάρτης (Az, 0, 16384, 0, 1023);
// Σειριακή εκτύπωση για έλεγχο
//Serial.print("Red: "); Serial.print (Κόκκινο);
//Serial.print("Πράσινο: "); Serial.print (Πράσινο);
//Serial.print("Blue: "); Serial.print (Μπλε);
// Γράψτε αναλογικό σε LED
analogWrite (R, Red); // Ρ
analogWrite (G, Green); // G
analogWrite (Β, Μπλε); // Β
καθυστέρηση (200)?
}
void I2C_Write (uint8_t deviceAddress, uint8_t regAddress, uint8_t data) {
Wire.beginTransmission (deviceAddress);
Wire.write (regAddress);
Wire.write (δεδομένα);
Wire.endTransmission ();
}
// Διαβάστε και τους 14 καταχωρητές
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 ());
Θερμοκρασία = (((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
void 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); // set +/- 250 μοίρες/δευτερόλεπτο πλήρους κλίμακας
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00); // set +/- 2g πλήρους κλίμακας
I2C_Write (MPU6050SlaveAddress, MPU6050_REGISTER_FIFO_EL, 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) {
επιστροφή (σε)> 0; (σε):-(σε);
}

προβολή ακατέργαστου προγράμματος INTERACTIVE LAMP που φιλοξενείται με ❤ από το GitHub

Βήμα 7: ΠΡΟΓΡΑΜΜΑ ΑΣΥΡΜΑΤΟΥ ΕΛΕΓΧΟΥ ΚΑΙ ΕΦΑΡΜΟΓΗ ANDROID

ΠΡΟΓΡΑΜΜΑ ΑΣΥΡΜΑΤΟΥ ΕΛΕΓΧΟΥ ΚΑΙ ΕΦΑΡΜΟΓΗ ANDROID
ΠΡΟΓΡΑΜΜΑ ΑΣΥΡΜΑΤΟΥ ΕΛΕΓΧΟΥ ΚΑΙ ΕΦΑΡΜΟΓΗ ANDROID

Ένας άλλος τρόπος, μπορούμε να χρησιμοποιήσουμε την εφαρμογή Android για να ελέγξουμε το RGB LED με το Android σε δίκτυο WiFi. Σύνδεση Android App: NODEMCU Έλεγχος RGB LED APP

Για το πρόγραμμα Arduino, μπορείτε να ανατρέξετε:

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

Μετά τη μεταφόρτωση του προγράμματος στο NodeMCU, η πρώτη εκτέλεση θα μας δώσει τη διεύθυνση IP του NodeMCU σε σειριακή εκτύπωση. Στην περίπτωσή μου, είναι: 192.164.1.39 στη θύρα 80.

Εικόνα
Εικόνα

Τώρα, μπορούμε να ελέγξουμε την ασύρματη λάμπα με φορητό υπολογιστή/ tablet/ κινητό τηλέφωνο εισάγοντας τη διεύθυνση παραπάνω στον Internet Explorer.

Εικόνα
Εικόνα

Or χρησιμοποιώντας την εφαρμογή Android:

Εικόνα
Εικόνα

Βήμα 8: ΜΕΡΙΚΕΣ ΕΙΚΟΝΕΣ