- Εισαγωγή στο ESP8285
- Διάγραμμα κυκλώματος πίνακα ανάπτυξης ESP
- Κατασκευή της πλακέτας Dev ESP8285
- Παραγγελία PCB από PCBWay
- Συναρμολόγηση και προγραμματισμός του πίνακα ESP8285
- Δοκιμή με ένα απλό LED Σκίτσο αναλαμπής
- Δοκιμή σκίτσου διακομιστή ιστού στο ESP8285
Οι ESP Controllers από την Espressif γίνονται μια ευρέως δημοφιλής επιλογή για σχέδια με βάση το IoT. Υπάρχουν πολλά είδη μονάδων ESP και αναπτυξιακών πινάκων ήδη διαθέσιμα στην αγορά, μεταξύ των οποίων το NodeMCU είναι το πιο δημοφιλές. Εκτός από αυτό, ESP-12E, ESP01 είναι επίσης δημοφιλείς επιλογές. Αλλά αν θέλετε να κάνετε το σχέδιό σας πιο ευέλικτο και συμπαγές, οι πιθανότητες είναι ότι πρέπει να σχεδιάσουμε τη δική μας μονάδα ESP από το επίπεδο των τσιπ, αντί να χρησιμοποιήσουμε άμεσα μια εύκολα διαθέσιμη μονάδα. Σε αυτό το άρθρο, θα μάθουμε πώς να σχεδιάζουμε ένα κύκλωμα και PCB για τη χρήση των ελεγκτών ESP (ESP8285) απευθείας χωρίς τη χρήση μιας μονάδας.
Σε αυτό το έργο χρησιμοποιήσαμε το ESP8285 επειδή είναι ένα πολύ ενδιαφέρον μικρό τσιπ. Είναι ένα μικρό SoC (System on Chip), με IoT (Internet of Things) και δυνατότητες βαθύ ύπνου. Έχει την ίδια δύναμη με τον μεγάλο αδερφό του ESP8266 και ως μπόνους, έρχεται με μια ενσωματωμένη μνήμη flash 1MB με πολλά GPIO's. Μπορείτε επίσης να χρησιμοποιήσετε το ESP8266 ως εναλλακτική λύση και τα περισσότερα από τα πράγματα που συζητούνται σε αυτό το άρθρο θα παραμείνουν τα ίδια.
Σε ένα προηγούμενο άρθρο, σας έδειξα πώς μπορείτε να σχεδιάσετε τη δική σας κεραία PCB για 2.4GHz, χρησιμοποιώντας το ίδιο τσιπ ESP8285 ως παράδειγμα. Μπορείτε να διαβάσετε αυτό το άρθρο για να μάθετε σχετικά με τη σχεδίαση κεραίας για ESP8266 / ESP8285.
Έτσι, σε αυτό το άρθρο, θα καλύψω πώς λειτουργούν όλα τα κυκλώματα και τέλος θα υπάρχει ένα βίντεο που θα εξηγεί όλα αυτά. Έχω επίσης καλύψει λεπτομερώς την πλήρη διαδικασία σχεδιασμού και παραγγελίας των πλακέτων PCB από το PCBWay για το σχεδιασμό της μονάδας ESP.
Εισαγωγή στο ESP8285
Εάν δεν γνωρίζετε για αυτό το ευέλικτο τσιπ ESP8285, ακολουθεί μια γρήγορη εξήγηση με μια λίστα χαρακτηριστικών. Το ESP8285 είναι ένα μικρό τσιπ με ενσωματωμένο φλας 1M και RAM, είναι αρκετά παρόμοιο με το ESP8286, ESP-01 module, αλλά η εσωτερική μνήμη flash το καθιστά πολύ πιο συμπαγές και φθηνότερο.
Αυτό το τσιπ φιλοξενεί τον επεξεργαστή 32-bit πυρήνα Tensilica L106 Diamond και το ίδιο ισχύει και για το ESP8266, γι 'αυτό όλος ο κωδικός για το ESP8266 μπορεί να αναβοσβήνει απευθείας σε αυτό το τσιπ χωρίς καμία τροποποίηση και έχει την ίδια στοίβα δικτύου με τη δόση ESp8266.
Το ESP8285 ενσωματώνει διακόπτες κεραίας, RF balun, ενισχυτή ισχύος, ενισχυτή χαμηλού θορύβου, φίλτρα και μονάδες διαχείρισης ισχύος. Ο συμπαγής σχεδιασμός ελαχιστοποιεί το μέγεθος PCB και απαιτεί ελάχιστα εξωτερικά κυκλώματα. Εάν θέλετε να μάθετε περισσότερα σχετικά με αυτό το IC, μπορείτε πάντα να ελέγξετε το φύλλο δεδομένων του ESP8285 της συσκευής στο Espressif Systems.
Διάγραμμα κυκλώματος πίνακα ανάπτυξης ESP
Το κύκλωμα είναι πολύ απλό και το έχω σπάσει για καλύτερη κατανόηση. Το παρακάτω σχήμα ESP δείχνει ολόκληρο το κύκλωμα, όπως μπορείτε να δείτε ότι υπάρχουν οκτώ λειτουργικά μπλοκ, θα περάσω από κάθε ένα και θα εξηγήσω κάθε μπλοκ.
ESP8285 SOC:
Στην καρδιά του έργου βρίσκεται το ESP8285 SoC, όλα τα GPIO και άλλες απαραίτητες συνδέσεις ορίζονται εδώ.
Φίλτρο ισχύος: Υπάρχουν 7 ακροδέκτες τροφοδοσίας σε αυτό το IC, πρώτος είναι ο πείρος τροφοδοσίας για τους ADC και IO Έχω συντομεύσει μαζί και χρησιμοποιώ έναν πυκνωτή φίλτρου ισχύος 47uF και έναν πυκνωτή αποσύνδεσης 0.1uF για να φιλτράρω την είσοδο DC 3,3V.
Φίλτρο PI: Το φίλτρο PI είναι ένα από τα πιο σημαντικά μπλοκ αυτού του σχεδιασμού, επειδή είναι υπεύθυνο για την τροφοδοσία του ενισχυτή RF και του LNA, οποιοσδήποτε εσωτερικός ή εξωτερικός θόρυβος μπορεί να είναι περιγραφικός για αυτήν την ενότητα, οπότε για αυτό, η ενότητα RF δεν θα λειτουργήσει. Γι 'αυτό το φίλτρο χαμηλής διέλευσης για την ενότητα LNA είναι πολύ σημαντικό. Μπορείτε να μάθετε περισσότερα σχετικά με τα φίλτρα PI ακολουθώντας τον σύνδεσμο.
Crystal Oscillator: Ο κρυσταλλικός ταλαντωτής 40MHz χρησιμεύει ως πηγή ρολογιού για το ESP8285 SoC και οι πυκνωτές αποσύνδεσης 10pF προστέθηκαν όπως συνιστάται από το φύλλο δεδομένων.
Ενότητα LNA: Ένα άλλο πιο σημαντικό τμήμα αυτού του κυκλώματος είναι το τμήμα LNA. εδώ είναι όπου η κεραία PCB συνδέεται με τον φυσικό πείρο του ESP. Όπως συνιστάται από το δελτίο δεδομένων, χρησιμοποιείται ένας πυκνωτής 5,6pF και θα πρέπει να λειτουργεί καλά ως το αντίστοιχο κύκλωμα. Αλλά έχω προσθέσει δύο σύμβολα κράτησης θέσης για δύο επαγωγείς σαν σε περίπτωση που η διαφωνία αντιστοίχισης κυκλώματος λειτουργεί, μπορώ πάντα να βάλω μερικούς επαγωγείς, για να τροποποιήσω τις τιμές ώστε να ταιριάζουν με την αντίσταση κεραίας.
Το τμήμα LNA διαθέτει επίσης δύο άλτες PCB με υποδοχή UFL. Η κεραία PCB έχει οριστεί από προεπιλογή, αλλά εάν η εφαρμογή σας απαιτεί λίγο περισσότερο εύρος, μπορείτε να αποκολλήσετε τον βραχυκυκλωτήρα PCB και να βραχυκυκλώσετε τον βραχυκυκλωτήρα για την υποδοχή UFL και μπορείτε να συνδέσετε μια εξωτερική κεραία ακριβώς έτσι.
Συνδετήρας εισόδου μπαταρίας:
Μπορείτε να δείτε παραπάνω, έχω βάλει παράλληλα τρεις τύπους συνδέσμων μπαταρίας, επειδή εάν δεν μπορούσατε να βρείτε έναν, μπορείτε πάντα να βάλετε έναν άλλο.
Κεφαλίδες GPIO και κεφαλίδες προγραμματισμού:
Οι κεφαλίδες GPIO είναι εκεί για πρόσβαση στις καρφίτσες GPIO και η κεφαλίδα προγραμματισμού είναι εκεί για να αναβοσβήνει το κύριο Soc.
Αυτόματη επαναφορά κυκλώματος:
Σε αυτό το μπλοκ, δύο τρανζίστορ NPN, το MMBT2222A σχηματίζει το κύκλωμα αυτόματης επαναφοράς όταν πατάτε το κουμπί μεταφόρτωσης στο Arduino IDE, το εργαλείο python λαμβάνει κλήση, αυτό το εργαλείο python είναι το εργαλείο flash για τις συσκευές ESP, αυτό το εργαλείο pi δίνει το σήμα στον μετατροπέα UART για επαναφορά της πλακέτας ενώ κρατάτε τον ακροδέκτη GPIO στη γείωση. Μετά από αυτό, ξεκινά η διαδικασία μεταφόρτωσης και επαλήθευσης.
Power LED, On-board LED και Voltage Divider
Power LED: Το LED τροφοδοσίας διαθέτει βραχυκυκλωτήρα PCB Εάν χρησιμοποιείτε αυτήν την πλακέτα όπως και για εφαρμογή με μπαταρία, μπορείτε να κολλήσετε αυτό το βραχυκυκλωτήρα για να εξοικονομήσετε αρκετή ενέργεια.
Ενσωματωμένο LED: Πολλά dev-board στην αγορά διαθέτουν ενσωματωμένο LED και αυτό το board δεν αποτελεί εξαίρεση. το GPIO16 του IC είναι συνδεδεμένο σε ενσωματωμένο led. Παράλληλα, υπάρχει ένα σύμβολο κράτησης θέσης για μια αντίσταση 0 OHMs συμπληρώνοντας την αντίσταση 0 Ohms, συνδέετε το GPIO16 στην επαναφορά και, όπως ίσως γνωρίζετε, αυτό είναι ένα πολύ σημαντικό βήμα για να θέσετε ένα ESP σε κατάσταση βαθιάς ύπνου.
Διαχωριστής τάσης: Όπως ίσως γνωρίζετε, η μέγιστη τάση εισόδου του ADC είναι 1V. Έτσι, για να αλλάξετε το εύρος της εισόδου σε 3.3V, χρησιμοποιείται το διαχωριστικό τάσης. Η διαμόρφωση είναι έτσι ώστε να μπορείτε πάντα να προσθέσετε μια αντίσταση σε σειρά με τον πείρο για να αλλάξετε το εύρος σε 5V.
HT7333 LDO:
Ένας ρυθμιστής LDO ή Low Dropout Voltage Regulator χρησιμοποιείται για τη ρύθμιση της τάσης σε ESP8285 από μια μπαταρία με ελάχιστη απώλεια ισχύος.
Η μέγιστη τάση εισόδου του HT7333 LDO είναι 12V και χρησιμοποιείται για τη μετατροπή της τάσης της μπαταρίας σε 3,3V, επέλεξα αυτό το HT7333 LDO επειδή είναι μια συσκευή με πολύ χαμηλό ρεύμα ηρεμίας. Οι πυκνωτές αποσύνδεσης 4.7uF χρησιμοποιούνται για τη σταθεροποίηση του LDO.
Κουμπί για τη λειτουργία προγραμματισμού:
Το μπουτόν είναι συνδεδεμένο στο GPIO0, εάν ο μετατροπέας UART δεν διαθέτει πείρο RTS ή DTR, μπορείτε να χρησιμοποιήσετε αυτό το κουμπί για να τραβήξετε χειροκίνητα το GPIO0 στη γείωση.
Αντίσταση Pullup και Pulldown:
Οι αντιστάσεις pullup και pulldown υπάρχουν όπως συνιστάται από το φύλλο δεδομένων.
Εκτός από αυτό, ακολουθήθηκαν πολλοί κανόνες και οδηγίες σχεδιασμού κατά το σχεδιασμό του PCB. Αν θέλετε να μάθετε περισσότερα για αυτό, μπορείτε να το βρείτε στον οδηγό σχεδιασμού υλικού για το ESP8266.
Κατασκευή της πλακέτας Dev ESP8285
Το σχηματικό έχει ολοκληρωθεί και μπορούμε να προχωρήσουμε με την τοποθέτηση του PCB. Χρησιμοποιήσαμε το λογισμικό σχεδίασης Eagle PCB για την κατασκευή του PCB, αλλά μπορείτε να σχεδιάσετε το PCB με το λογισμικό που προτιμάτε. Ο σχεδιασμός PCB μας μοιάζει με αυτό όταν ολοκληρωθεί.
Τα αρχεία BOM και Gerber είναι διαθέσιμα για λήψη από τους ακόλουθους συνδέσμους:
- ESP8282 Devber Board Gerber Files
- ESP8282 Dev-Board BOM
Τώρα, που ο σχεδιασμός μας είναι έτοιμος, είναι καιρός να κατασκευάσουμε τα PCB. Για να το κάνετε αυτό, απλώς ακολουθήστε τα παρακάτω βήματα:
Παραγγελία PCB από PCBWay
Βήμα 1: Μπείτε στο https://www.pcbway.com/, εγγραφείτε εάν αυτή είναι η πρώτη σας φορά. Στη συνέχεια, στην καρτέλα Πρωτότυπο PCB, εισαγάγετε τις διαστάσεις του PCB σας, τον αριθμό των επιπέδων και τον αριθμό των PCB που χρειάζεστε.
Βήμα 2: Συνεχίστε κάνοντας κλικ στο κουμπί «Προσφορά τώρα». Θα μεταφερθείτε σε μια σελίδα όπου θα ορίσετε μερικές επιπλέον παραμέτρους όπως τον τύπο πίνακα, τα επίπεδα, το υλικό για PCB, το πάχος και πολλά άλλα, τα περισσότερα από αυτά επιλέγονται από προεπιλογή, εάν επιλέγετε συγκεκριμένες παραμέτρους, μπορείτε να επιλέξετε το ακούω.
Όπως μπορείτε να δείτε, χρειαζόμασταν τα PCB μας μαύρα! Έτσι, έχω επιλέξει μαύρο στην ενότητα χρώματος μάσκας κολλητικής ουσίας
Βήμα 3: Το τελευταίο βήμα είναι να ανεβάσετε το αρχείο Gerber και να προχωρήσετε στην πληρωμή. Για να βεβαιωθείτε ότι η διαδικασία είναι ομαλή, το PCBWAY επαληθεύει εάν το αρχείο Gerber είναι έγκυρο πριν προχωρήσετε στην πληρωμή. Με αυτόν τον τρόπο, μπορείτε να είστε σίγουροι ότι το PCB σας είναι φιλικό στην κατασκευή και θα σας φτάσει ως δεσμευμένο.
Συναρμολόγηση και προγραμματισμός του πίνακα ESP8285
Μετά από λίγες ημέρες, λάβαμε το PCB μας σε ένα τακτοποιημένο κουτί συσκευασίας και η ποιότητα του PCB ήταν καλή όπως πάντα. Το άνω στρώμα και το κάτω στρώμα του πίνακα φαίνονται παρακάτω:
Αφού έλαβα το ταμπλό, άρχισα αμέσως να συγκολλώνω τον πίνακα. Έχω χρησιμοποιήσει έναν σταθμό συγκόλλησης ζεστού αέρα και πολλή ροή συγκόλλησης για τη συγκόλληση της κύριας CPU και άλλα εξαρτήματα στο PCB συγκολλούνται μέσω κολλητήρι. Η συναρμολογημένη μονάδα φαίνεται παρακάτω.
Μόλις γίνει αυτό, έχω συνδέσει την αξιόπιστη μονάδα FTDI για να δοκιμάσω τον πίνακα ανεβάζοντας ένα σκίτσο, τις συνδεδεμένες καρφίτσες και μια εικόνα του πίνακα που φαίνεται παρακάτω:
ESP8285 Dev Board FTDI Module
3.3V -> 3.3V
Tx -> Rx
Rx -> Tx
DTR -> DTR
RST -> RST
GND -> GND
Όταν ολοκληρωθούν όλες οι απαραίτητες συνδέσεις, έχω ρυθμίσει το Arduino IDE επιλέγοντας το Generic ESP8285 Board από Tools > Board > Generic ESP8285 Module .
Δοκιμή με ένα απλό LED Σκίτσο αναλαμπής
Στη συνέχεια, ήρθε η ώρα να δοκιμάσετε τον πίνακα αναβοσβήνοντας ένα LED, για αυτό, έχω χρησιμοποιήσει τον ακόλουθο κωδικό:
/ * ESP8285 Αναβοσβήνει Αναβοσβήνει η μπλε LED στη μονάδα ESP828285 * / #define LED_PIN 16 // Ορισμός ρύθμισης κενού πινέλου LED που αναβοσβήνει () {pinMode (LED_PIN, OUTPUT); // Αρχικοποιήστε τον πείρο LED ως έξοδο} // η λειτουργία βρόχου εκτελείται ξανά και ξανά για πάντα άκυρο βρόχο () {digitalWrite (LED_PIN, LOW). // Ενεργοποιήστε το LED (Σημειώστε ότι το LOW είναι το επίπεδο τάσης) καθυστέρηση (1000). // Περιμένετε ένα δεύτερο digitalWrite (LED_PIN, HIGH). // Απενεργοποιήστε το LED κάνοντας την καθυστέρηση ΥΨΗΛΗΣ τάσης (1000). // Περιμένετε δύο δευτερόλεπτα}
Ο κωδικός είναι πολύ απλός, πρώτα έχω ορίσει τον πείρο LED για αυτόν τον πίνακα και είναι στο GPIO 16. Έπειτα, έχω ορίσει αυτόν τον πείρο ως έξοδο στην ενότητα εγκατάστασης. Και τέλος, στην ενότητα βρόχου, έχω ενεργοποιήσει και απενεργοποιήσει τον πείρο με καθυστέρηση ενός δευτερολέπτου στο μεταξύ.
Δοκιμή σκίτσου διακομιστή ιστού στο ESP8285
Μόλις λειτούργησε καλά, ήρθε η ώρα να δοκιμάσετε το σκίτσο HelloServer από το παράδειγμα ESP8266WebServer. Χρησιμοποιώ ένα παράδειγμα ESP8266 επειδή το μεγαλύτερο μέρος του κώδικα είναι συμβατό με το τσιπ esp8285. Το παράδειγμα κώδικα βρίσκεται επίσης στο κάτω μέρος αυτής της σελίδας.
Αυτός ο κώδικας είναι επίσης πολύ απλός. Πρώτον, πρέπει να καθορίσουμε όλες τις απαραίτητες βιβλιοθήκες, #περιλαμβάνω
Στη συνέχεια, πρέπει να εισαγάγουμε το όνομα και τον κωδικό πρόσβασης του hotspot.
#ifndef STASSID #define STASSID "your-ssid" #define STAPSK "your-password" #endif const char * ssid = STASSID; const char * κωδικός πρόσβασης = STAPSK;
Στη συνέχεια, πρέπει να ορίσουμε το αντικείμενο ESP8266WebServer. Το παράδειγμα εδώ το ορίζει ως διακομιστή (80) ο (80) είναι ο αριθμός θύρας.
Στη συνέχεια, πρέπει να ορίσουμε έναν πείρο για ένα LED στην περίπτωσή μου ήταν ο πείρος αρ.
const int led = 16;
Στη συνέχεια, ορίζεται η συνάρτηση handleRoot () . Αυτή η λειτουργία θα κληθεί όταν η κλήση στη διεύθυνση IP από το πρόγραμμα περιήγησής μας.
void handleRoot () {digitalWrite (led, 1); server.send (200, "text / plain", "γεια από esp8266!"); digitalWrite (led, 0); }
Στη συνέχεια είναι η λειτουργία εγκατάστασης, ακούστε ότι πρέπει να καθορίσουμε όλες τις απαραίτητες παραμέτρους όπως:
pinMode (led, OUTPUT); // έχουμε ορίσει τον οδηγό πείρο ως έξοδο Serial.begin (115200); // έχουμε ξεκινήσει μια σειριακή σύνδεση με 115200 baud WiFi.mode (WIFI_STA). // έχουμε ορίσει τη λειτουργία wifi ως σταθμό WiFi.begin (SSD, κωδικός πρόσβασης); τότε ξεκινάμε τη σύνδεση wifi Serial.println (""); // αυτή η γραμμή δίνει επιπλέον χώρο ενώ (WiFi.status ()! = WL_CONNECTED) {καθυστέρηση (500); Serial.print ("."); } / * στο βρόχο while δοκιμάζουμε την κατάσταση σύνδεσης που μπορεί να συνδέσει το ESP στο hotspot που θα φρενάρει ο βρόχος * / Serial.println (""); Serial.print ("Connected to"); Serial.println (SSD); Serial.print ("Διεύθυνση IP:"); Serial.println (WiFi.localIP ());
Στη συνέχεια, εκτυπώνουμε το όνομα και τη διεύθυνση IP του συνδεδεμένου SSID στο παράθυρο σειριακής οθόνης.
server.on ("/", handleRoot); // η μέθοδος on του αντικειμένου διακομιστή καλείται να χειριστεί τη λειτουργία root server.on ("/ inline", () {server.send (200, "text / plain", "αυτό λειτουργεί επίσης");}); // και πάλι καλέσαμε τη μέθοδο on για το / inline example server.begin (); // στη συνέχεια ξεκινάμε τον διακομιστή με τη μέθοδο εκκίνησης Serial.println ("Ο διακομιστής HTTP ξεκίνησε"); // και τέλος εκτυπώνουμε μια δήλωση στη σειριακή οθόνη. } // που σηματοδοτεί το τέλος της λειτουργίας ρύθμισης void loop (void) {server.handleClient (); }
Στη λειτουργία βρόχου, καλέσαμε τις μεθόδους handleClient () για τη σωστή λειτουργία του esp.
Μόλις γίνει αυτό, ο πίνακας ESP8285 πήρε λίγο χρόνο για να συνδεθεί με τον διακομιστή ιστού και λειτούργησε με επιτυχία όπως αναμενόταν, γεγονός που σηματοδότησε το τέλος αυτού του έργου.
Η πλήρης λειτουργία του πίνακα μπορεί επίσης να βρεθεί στο παρακάτω βίντεο. Ελπίζω να απολαύσατε αυτό το άρθρο και να μάθετε κάτι νέο από αυτό. Εάν έχετε οποιαδήποτε αμφιβολία, μπορείτε να ρωτήσετε στα παρακάτω σχόλια ή να χρησιμοποιήσετε τα φόρουμ μας για λεπτομερή συζήτηση.