Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Ιδέα
- Βήμα 2: Διάγραμμα αποκλεισμού
- Βήμα 3: Προγραμματισμός
- Βήμα 4: Σχηματική και συγκόλληση
- Βήμα 5: Εφαρμογή Android
Βίντεο: IoT Moon Lamp: 5 Βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Σε αυτό το διδακτικό δείχνω πώς να μετατρέψετε μια απλή λάμπα LED με μπαταρία σε συσκευή IoT.
Το έργο αυτό περιλαμβάνει:
- συγκόλληση;
- προγραμματισμός ESP8266 με Arduino IDE.
- δημιουργία εφαρμογής Android με MIT App Inventor.
Το αντικείμενο ενδιαφέροντος είναι αυτή η λάμπα σε σχήμα φεγγαριού που αγόρασα από το gearbest. Αλλά πραγματικά αυτό το σεμινάριο μπορεί να προσαρμοστεί σε οποιαδήποτε συσκευή χαμηλής τάσης DC (οι συσκευές που τροφοδοτούνται με AC απαιτούν πρόσθετα κυκλώματα).
Προμήθειες
- Smartphone Android (δοκιμασμένες εκδόσεις Android 7-9).
- Εργαλεία συγκόλλησης.
- Πρωτότυπο PCB (protoboard).
- Πλακέτα ESP-12E (ή άλλο πλακέτα με μικροελεγκτή ESP8266).
- Σειριακός μετατροπέας USB για προγραμματισμό.
- Διάφορες διαφορετικές τιμές παθητικών εξαρτημάτων (αντιστάσεις και πυκνωτές).
(Προαιρετικό. Δείτε την ενότητα "Αποκλεισμός διαγράμματος")
- 3.3V@500mA LDO IC.
- 3.3V-5V πλακέτα μετατροπέα λογικής στάθμης.
- Τροφοδοσία 5V DC.
Βήμα 1: Ιδέα
Ο λαμπτήρας Moon τροφοδοτείται από ένα κελί Li-ION 18650 και διαθέτει 3 τρόπους λειτουργίας:
- μακριά από;
- εγχειρίδιο;
- αυτο.
Στη χειροκίνητη λυχνία, η λυχνία ελέγχεται με το κουμπί, κάθε πάτημα αλλάζει την κατάσταση φωτισμού LED (μπλε ενεργοποιημένη, πορτοκαλί ενεργοποιημένη, και ενεργοποίηση και απενεργοποίηση), η ένταση φωτός αλλάζει κρατώντας πατημένο το κουμπί. Στην αυτόματη λειτουργία, η κατάσταση φωτός LED αλλάζει με το πάτημα ή το κούνημα του ίδιου του λαμπτήρα.
Αποφάσισα να προσθέσω το ESP8266 για να λειτουργήσει ως διακομιστής ιστού που ακούει αιτήματα και αναλόγως προσομοιώνει το πάτημα κουμπιών. Δεν ήθελα να σπάσω την αρχική λειτουργία της λάμπας, απλώς ήθελα να προσθέσω πρόσθετες δυνατότητες ελέγχου μέσω WiFi, έτσι επέλεξα το ESP για να προσομοιώσω το πάτημα των κουμπιών αντί για τον άμεσο έλεγχο των LED. Επίσης, αυτό μου επέτρεψε να αλληλεπιδράσω ελάχιστα με το αρχικό κύκλωμα.
Όταν τελείωσε το πρωτότυπο, έδιωξε ~ 80mA συνεχώς από την μπαταρία σε κατάσταση απενεργοποίησης (m 400mA σε πλήρη φωτεινότητα). Το ρεύμα αναμονής είναι υψηλό επειδή το ESP8266 λειτουργεί ως διακομιστής και είναι πάντα συνδεδεμένο σε WiFi και ακούει αιτήματα. Η μπαταρία εξαντλήθηκε μετά από μιάμιση ημέρα μόνο σε κατάσταση απενεργοποίησης, οπότε αργότερα αποφάσισα να χρησιμοποιήσω λαμπτήρες θύρα φόρτισης USB για να τροφοδοτήσω όλα τα ηλεκτρονικά από την εξωτερική τροφοδοσία 5V και την μπαταρία να τα βάλω όλα μαζί (αλλά αυτό είναι προαιρετικό).
Βήμα 2: Διάγραμμα αποκλεισμού
Στο μπλοκ διάγραμμα μπορείτε να δείτε ποιο κύκλωμα θα προστεθεί και πώς θα τροποποιηθεί το υπάρχον κύκλωμα. Στην περίπτωσή μου αφαίρεσα εντελώς την μπαταρία και βραχυκύκλωσα την είσοδο IC των φορτιστών μπαταρίας με έξοδο (πάλι, αυτό είναι προαιρετικό). Τα διαφανή μπλοκ στο διάγραμμα υποδεικνύουν στοιχεία που παρακάμπτονται (αν και το κουμπί εξακολουθεί να λειτουργεί όπως είχε αρχικά προβλεφθεί).
Σύμφωνα με την τεκμηρίωση, το ESP8266 ανέχεται μόνο 3.3V, ωστόσο υπάρχουν πολλά παραδείγματα όταν το ESP8266 λειτουργεί εντελώς καλά με 5V, οπότε ο μετατροπέας λογικής στάθμης και το LDO 3.3V μπορούν να μείνουν εκτός, ωστόσο παρέμεινα με τις βέλτιστες πρακτικές και πρόσθεσα αυτά τα εξαρτήματα.
Χρησιμοποίησα 3 ακίδες εισόδου/εξόδου ESP8266 και καρφίτσα ADC. Ένας ψηφιακός ακροδέκτης εξόδου προορίζεται για προσομοίωση πιέσεων κουμπιών, δύο ψηφιακές εισόδους είναι για τον εντοπισμό του χρώματος των λυχνιών LED (από αυτό μπορούμε να καταλάβουμε σε ποια κατάσταση βρίσκεται το MCU και ποια κατάσταση είναι μετά το πάτημα του κουμπιού). Ο πείρος ADC μετρά την τάση εισόδου (μέσω ενός διαχωριστή τάσης), έτσι μπορούμε να παρακολουθούμε το υπόλοιπο επίπεδο φόρτισης της μπαταρίας.
Ως εξωτερική τροφοδοσία χρησιμοποιώ παλιό φορτιστή τηλεφώνου 5V@1A (μην χρησιμοποιείτε γρήγορους φορτιστές).
Βήμα 3: Προγραμματισμός
Με λίγα λόγια το πρόγραμμα λειτουργεί έτσι (για περισσότερες πληροφορίες δείτε τον ίδιο τον κώδικα):
Το ESP8266 συνδέεται με το σημείο πρόσβασης WiFi, τα διαπιστευτήρια που πρέπει να εισαγάγετε στην αρχή του προηγούμενου προγραμματισμού κώδικα, λαμβάνει διεύθυνση IP από τον διακομιστή DHCP των δρομολογητών σας, για να μάθετε την IP που θα χρειαστείτε αργότερα, μπορείτε να ελέγξετε τις ρυθμίσεις διεπαφής Ιστού δρομολογητών ή να ορίσετε εντοπισμός σφαλμάτων στον κωδικό στο 1 και θα δείτε τι IP ESP πήρε στη σειριακή οθόνη (θα πρέπει να κρατήσετε αυτήν την IP στις ρυθμίσεις των δρομολογητών σας, ώστε το ESP να λαμβάνει πάντα την ίδια IP κατά την εκκίνηση).
Όταν προετοιμάζεται το MCU εκτελεί πάντα την ίδια ρουτίνα για πάντα:
- Ελέγξτε εάν εξακολουθείτε να είστε συνδεδεμένοι στο AP, εάν όχι, προσπαθήστε να επανασυνδεθείτε μέχρι την επιτυχία.
-
Περιμένετε μέχρι ο πελάτης να υποβάλει αίτημα HTTP. Όταν συμβεί το αίτημα:
- Ελέγξτε την τάση εισόδου.
- Ελέγξτε σε ποια κατάσταση βρίσκονται οι λυχνίες LED.
- Αντιστοιχίστε το αίτημα HTTP με γνωστές καταστάσεις LED (μπλε ενεργοποιημένο, πορτοκαλί ενεργοποιημένο, αμφότερα ενεργοποιημένο, απενεργοποιημένο).
- Προσομοιώστε τόσα πατήματα κουμπιών όσο χρειάζεται για να επιτύχετε την επιθυμητή κατάσταση.
Θα περιγράψω εν συντομία τις οδηγίες προγραμματισμού, εάν είναι η πρώτη φορά που προγραμματίζετε ESP8266 MCU αναζητήστε περισσότερες λεπτομερείς οδηγίες.
Θα χρειαστείτε Arduino IDE και μετατροπέα σειριακής διεπαφής USB (για παράδειγμα FT232RL). Για να προετοιμάσετε το IDE ακολουθήστε αυτές τις οδηγίες.
Ακολουθήστε το διάγραμμα κυκλώματος για να συνδέσετε τη μονάδα ESP-12E για προγραμματισμό. Μερικές συμβουλές:
- χρησιμοποιήστε εξωτερικό τροφοδοτικό 3.3V@500mA (στις περισσότερες περιπτώσεις η σειριακή τροφοδοσία USB δεν είναι αρκετή).
- Ελέγξτε εάν ο σειριακός μετατροπέας USB είναι συμβατός σε επίπεδο λογικής 3.3V.
- Ελέγξτε εάν τα προγράμματα οδήγησης μετατροπέα USB-serial εγκαταστάθηκαν με επιτυχία (από τον διαχειριστή συσκευών Windows), μπορείτε επίσης να ελέγξετε αν λειτουργεί σωστά από το IDE, απλώς σύντομες ακίδες RX και TX, παρά από το IDE επιλέξτε θύρα COM, ανοίξτε σειριακή οθόνη και γράψτε κάτι, αν όλα λειτουργούν θα πρέπει να δείτε το κείμενο που στέλνετε να εμφανίζεται στην κονσόλα.
- Για κάποιο λόγο μπόρεσα να προγραμματίσω το ESP μόνο όταν συνδέσα για πρώτη φορά τον σειριακό μετατροπέα USB σε υπολογιστή και στη συνέχεια τροφοδοτήθηκα με ESP από εξωτερική πηγή 3.3V.
- μετά τον επιτυχημένο προγραμματισμό μην ξεχάσετε να τραβήξετε το GPIO0 ψηλά στην επόμενη εκκίνηση.
Βήμα 4: Σχηματική και συγκόλληση
Ακολουθήστε το σχηματικό σχήμα για να κολλήσετε όλα τα εξαρτήματα στο protoboard. Όπως προαναφέρθηκε, ορισμένα εξαρτήματα είναι προαιρετικά. Χρησιμοποίησα το KA78M33 3.3V LDO IC και αυτόν τον πίνακα μετατροπέα λογικού επιπέδου από sparkfun, εναλλακτικά, μπορείτε να κάνετε μετατροπέα μόνοι σας όπως φαίνεται στο σχήμα (μπορείτε να χρησιμοποιήσετε οποιοδήποτε mosfet καναλιού Ν αντί για BSS138). Σε περίπτωση που συνεχίσετε να χρησιμοποιείτε μπαταρία Li-ION, το δίκτυο ισχύος +5V θα είναι θετικό τερματικό μπαταρίας. Η τάση αναφοράς ESP8266 ADC είναι 1V, οι επιλεγμένες τιμές διαχωριστή αντίστασης επιτρέπουν τη μέτρηση της τάσης εισόδου έως και 5,7V.
Θα πρέπει να υπάρχουν 5 συνδέσεις με το αρχικό PCB λαμπτήρων: +5V (ή +Μπαταρία), GND, κουμπί πίεσης, σήματα PWM από λαμπτήρες MCU για έλεγχο μπλε και πορτοκαλί LED. Εάν τροφοδοτείτε τη λάμπα από πηγή 5V, όπως έκανα, θα θέλετε να βραχυκυκλώσετε τους ακροδέκτες IC VCC με καρφίτσα OUTPUT, έτσι όλα τα ηλεκτρονικά θα τροφοδοτούνται απευθείας από +5V και όχι από φορτιστή μπαταρίας OUTPUT.
Ακολουθήστε τη δεύτερη εικόνα για όλα τα σημεία συγκόλλησης που θα χρειαστεί να κάνετε σε λαμπτήρες PCB.
ΣΗΜΕΙΩΣΕΙΣ:
- Εάν αποφασίσατε να κάνετε βραχυκύκλωμα +5V με έξοδο IC φορτιστή μπαταρίας, αφαιρέστε εντελώς την μπαταρία προτού το κάνετε, δεν θέλετε να συνδέσετε +5V απευθείας σε μια μπαταρία.
- Δώστε προσοχή σε ποια καρφίτσα κουμπιού συγκολλάτε την έξοδο ESP, επειδή 2 ακίδες ενός κουμπιού είναι συνδεδεμένες στη γείωση και δεν θέλετε να βραχυκυκλώσετε όταν η έξοδος ESP ανεβαίνει Υ HIGHΗΛΗ, καλύτερα διπλός έλεγχος με πολύμετρο.
Βήμα 5: Εφαρμογή Android
Η εφαρμογή Android δημιουργήθηκε με εφευρέτη εφαρμογών MIT, για να κατεβάσετε μια εφαρμογή ή/και να κλωνοποιήσετε ένα έργο για τον εαυτό σας, μεταβείτε σε αυτόν τον σύνδεσμο (θα χρειαστείτε λογαριασμό Google για να αποκτήσετε πρόσβαση σε αυτόν).
Κατά την πρώτη εκκίνηση θα πρέπει να ανοίξετε τις ρυθμίσεις και να εισαγάγετε τη διεύθυνση IP ESP8266. Αυτή η IP θα αποθηκευτεί, οπότε δεν χρειάζεται να την εισαγάγετε ξανά μετά την επανεκκίνηση του προγράμματος.
Η εφαρμογή δοκιμάστηκε με πολλές συσκευές Android 9 και Android 7.
Συνιστάται:
E-Ink: Moon / ISS / People in Space : 6 Βήματα
E-Ink: Moon / ISS / People in Space …: Είχα ένα Raspberry και ένα e-Paper HAT και ήθελα να το χρησιμοποιήσω για να δείξω πληροφορίες όπως το ISS ή πόσοι άνθρωποι βρίσκονται τώρα στο διάστημα. . Δήλωσα να κοιτάξω αν υπάρχουν API στο Διαδίκτυο για να λάβω αυτά τα δεδομένα και τα βρήκα. ΟΚ, γκότα !!!! Περίμενε
Smart Walkway Lighting System- Team Sailor Moon: 12 Βήματα
Smart Walkway Lighting System- Team Sailor Moon: Γεια! Πρόκειται για τους Grace Rhee, Srijesh Konakanchi και Juan Landi, και μαζί είμαστε Team Sailor Moon! Σήμερα θα σας φέρουμε ένα έργο DIY δύο μερών που μπορείτε να εφαρμόσετε στο σπίτι σας. Το τελευταίο μας έξυπνο σύστημα φωτισμού διαδρόμου περιλαμβάνει μια
Earth & Moon Magic Mirror: 4 Βήματα
Earth & Moon Magic Mirror: Ρολόι Magic Mirror Mirror με Tablet που δείχνει τη Σελήνη / Γη και τις τρέχουσες εξωτερικές συνθήκες
Tiny Moon Tide Clock: 5 βήματα (με εικόνες)
Tiny Moon Tide Clock: Αυτό είναι ένα έργο που γίνεται με το Alaska SeaLife Center. Ενδιαφέρθηκαν για ένα έργο σχετικό με τη θάλασσα που θα εμπλέκει τους μαθητές τους στην ηλεκτρονική κατασκευή και παρακολούθηση του ωκεάνιου περιβάλλοντος. Ο σχεδιασμός είναι σχετικά φθηνός για κατασκευή
RBG 3D Printed Moon Controlled With Blynk (iPhone ή Android): 4 βήματα (με εικόνες)
RBG 3D Printed Moon Controlled With Blynk (iPhone ή Android): Πρόκειται για τρισδιάστατο φεγγάρι με βάση. Κατασκευασμένο με λωρίδα LED RGB με 20 led συνδεδεμένα σε arduino uno και προγραμματισμένα να ελέγχονται με blynk. Το arduino είναι τότε δυνατό να ελεγχθεί μέσω της εφαρμογής από το blynk σε iPhone ή Android