
Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-23 14:39


Αυτό το έργο δημιουργήθηκε από σπασμένη λάμπα & 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 για να ελέγξουμε το 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: ΜΕΡΙΚΕΣ ΕΙΚΟΝΕΣ
Συνιστάται:
Ευέλικτο PCB Extender I/O για τον έλεγχο πολλών σωλήνων Nixie με I2C: 9 βήματα (με εικόνες)

Ευέλικτο I/O Extender PCB για τον έλεγχο πολλών σωλήνων Nixie με I2C: Επί του παρόντος υπάρχει πολύ ενδιαφέρον για να ζωντανέψουν vintage σωλήνες nixie. Πολλά σετ ρολογιών σωλήνων nixie διατίθενται στην αγορά. Φαίνεται ότι υπήρχε ακόμη μια έντονη συναλλαγή σε παλιά αποθέματα ρωσικών σωλήνων nixie. Επίσης εδώ στο Instructables there
Μαγνητικό μαγνητικό ρολόι τοίχου: 24 βήματα (με εικόνες)

Μαγνητικό μαγνητικό ρολόι τοίχου: Τα μηχανικά ρολόγια πάντα με γοήτευαν. Ο τρόπος με τον οποίο όλα τα εσωτερικά γρανάζια, ελατήρια και διαφυγές συνεργάζονται για να καταλήξουν σε ένα σταθερό αξιόπιστο ρολόι έμοιαζε ανέκαθεν για το περιορισμένο σετ δεξιοτήτων μου. Ευτυχώς σύγχρονα ηλεκτρονικά
Ευέλικτο NearBot: 11 βήματα (με εικόνες)

Ευπροσάρμοστο NearBot: Αυτό το διδακτικό θα σας δείξει πώς να δημιουργήσετε μια ευέλικτη σκανδάλη ρομπότ που μπορεί να μετακινήσει κάτι όπως ένα κουμπί, διακόπτη ή κλήση σε διάφορες συσκευές όταν είστε (με το τηλέφωνό σας ή ένα φανάρι στην τσέπη σας) κοντά. Αυτό σημαίνει ότι θα μπορούσε αυτόματα να
Ευέλικτο μετρητή τάσης, αμπέρ και ισχύος: 6 βήματα (με εικόνες)

Ευέλικτο μετρητή τάσης, αμπέρ και ισχύος: Τα πολύμετρα είναι κατάλληλα για πολλούς σκοπούς. Συνήθως, μετρούν μόνο μία τιμή κάθε φορά. Εάν ασχολούμαστε με μετρήσεις ισχύος, χρειαζόμαστε δύο πολύμετρα, ένα για την τάση και το δεύτερο για το Ampere. Και αν θέλουμε να μετρήσουμε την αποδοτικότητα, χρειαζόμαστε τέσσερις
Ασύρματος ηλιακός φορτιστής: 5 βήματα (με εικόνες)

Ασύρματο ηλιακό φορτιστή: Κάθε μαθητής γνωρίζει τον αγώνα να βρει πρίζα για να φορτίσει το τηλέφωνό του. Αυτός ο καθημερινός μας αγώνας μας παρακίνησε να βρούμε μια δημιουργική λύση. Θέλαμε να δημιουργήσουμε μια συσκευή φόρτισης που δεν απαιτεί πρίζα σε καμία περίπτωση και είχε επίσης