Firmware 1m για esp 01. Μικροελεγκτής ESP8266: σύνδεση και διαμόρφωση. Μετατροπέας USB σε TTL χρησιμοποιώντας υποδοχή DTR

Στη διαδικασία της μελέτης και του σχεδιασμού όλο και πιο περίπλοκων έργων, έρχεται η στιγμή που προκύπτει η ανάγκη και η επιθυμία να μάθετε πώς να εργάζεστε με έναν τόσο κοινό τύπο επικοινωνίας όπως το WiFi. Επειδή αυτός ο τύπος επικοινωνίας μπορεί να σας επιτρέψει να δημιουργήσετε άνετα ένα ενιαίο δίκτυο για τις έξυπνες οικιακές συσκευές σας και να τις διαχειριστείτε, για παράδειγμα, με κινητό τηλέφωνο, tablet ή υπολογιστή, δηλαδή, με άλλα λόγια, δημιουργήστε ένα πραγματικό έξυπνο σπίτι, που θα σας κοστίσει δεκάδες φορές φθηνότερα από το να αγοράσετε έτοιμες λύσεις σε κατάστημα. Η χρήση του WiFi, φυσικά, δεν περιορίζεται σε αυτό και υπάρχουν τόσα πολλά παραδείγματα χρήσης αυτού του τύπου επικοινωνίας που δεν έχει νόημα να τα αναφέρετε και αν έχετε φτάσει σε αυτήν τη σελίδα, σημαίνει ότι πρέπει ήδη να χρησιμοποιήστε το WiFi για κάποιο λόγο, απλά πρέπει να καταλάβετε πώς να εργαστείτε σωστά με αυτό.

Θα το ταξινομήσουμε με βάση το φθηνότερο και πιο δημοφιλές Μονάδα WiFi ESP8266-01. Μπορείτε να αγοράσετε τη μονάδα WiFi ESP8266-01 από τον ιστότοπό μας.

Ένα από τα κύρια πλεονεκτήματα μιας τέτοιας μονάδας είναι η παρουσία μνήμης και του δικού της μικροελεγκτή στην πλακέτα, που της επιτρέπει να λειτουργεί ανεξάρτητα, φορτώνοντας το σκίτσο απευθείας στην ίδια τη μονάδα.

Υπάρχουν πραγματικά πολλές τροποποιήσεις της μονάδας WiFi ESP8266 και δεν θα τις αναφέρουμε εδώ· μόλις μάθετε πώς να εργάζεστε με ένα, μπορείτε εύκολα να ξεκινήσετε να εργάζεστε με άλλους. Θα ήθελα να σημειώσω αμέσως ότι η εργασία με WiFi μπορεί να φαίνεται αρκετά δύσκολη δουλειά και αν έχετε λίγα ολοκληρωμένα έργα στις αποσκευές σας, είναι καλύτερα να εγκαταλείψετε την επικοινωνία WiFi προς το παρόν και να χρησιμοποιήσετε ραδιοεπικοινωνίες στα έργα σας. είναι πολύ πιο εύκολο να γίνει κατανοητό. Ολόκληρες κοινότητες και θεματικά φόρουμ δημιουργούνται για εργασία με μονάδες WiFi, γεγονός που αποδεικνύει για άλλη μια φορά πόσο δύσκολο είναι για τους περισσότερους ανθρώπους να κατανοήσουν αμέσως αυτόν τον τύπο επικοινωνίας και αφού ξαναδιαβάσουν όλες τις πληροφορίες, οι περισσότεροι απλά τα παρατάνε. Το πιθανότερο είναι ότι δεν θα τα καταφέρω όλα σημαντικές πληροφορίεςνα ενταχθεί μόνο στο πλαίσιο αυτού του άρθρου, και δεν έχει νόημα σε αυτό, διαφορετικά θα αποδειχθεί μια άλλη σύγχυση. Θα προσπαθήσω να ακολουθήσω το μονοπάτι μιας αυστηρής ακολουθίας από τα πιο σημαντικά σημεία, ώστε να μπορέσετε να αρχίσετε να κατανοείτε την αρχή λειτουργίας αυτού του τύπου επικοινωνίας και στη συνέχεια απλώς να αναπτύξετε τις δικές σας δεξιότητες προς αυτή την κατεύθυνση.

Λοιπόν, ας ξεκινήσουμε και ας δούμε πρώτα τις ακίδες της μονάδας WiFi ESP8266-01.

VCC- Τροφοδοσία μονάδας από 3V έως 3,6V

GND- Γη.

RST- Επαναφέρετε την έξοδο που είναι υπεύθυνη για την επανεκκίνηση της μονάδας.

CH_PD- "Cip power-down" όταν τροφοδοτείται με ρεύμα, η λειτουργία της μονάδας ενεργοποιείται.

TX- μεταφορά δεδομένων (διεπαφή UART)

RX- λήψη δεδομένων (διεπαφή UART)

GPIO0

GPIO2- Θύρα I/O γενικής χρήσης

Οι ακίδες GPIO0 και GPIO2 είναι ακριβώς οι ίδιες ψηφιακές ακίδες με τις οποίες εργαζόμαστε στις πλακέτες Arduino για διασύνδεση με διάφορους αισθητήρες, και χρησιμοποιούνται σε περίπτωση ανεξάρτητης λειτουργίας στον εσωτερικό μικροελεγκτή WiFi της μονάδας ESP8266-01.

Για να τροφοδοτήσετε αξιόπιστα τη μονάδα ESP8266-01, χρησιμοποιήστε μια εξωτερική σταθεροποιημένη τροφοδοσία ρεύματος 3,3 V και είναι καλύτερα να μην προσπαθήσετε να πάρετε ρεύμα από την πλακέτα Arduino, καθώς η μονάδα καταναλώνει ρεύμα έως και 215 mA και αυτό μπορεί να καταλήξει άσχημα συμβούλιο ανάπτυξης. Πού να βρείτε ένα σταθεροποιημένο τροφοδοτικό 3,3 V Ελπίζω να μην είναι πρόβλημα για εσάς, διαφορετικά είναι σαφώς πολύ νωρίς για να ασχοληθείτε με αυτήν την ενότητα. Για παράδειγμα, μου αρέσει να χρησιμοποιώ αυτήν τη μονάδα τροφοδοσίας 3,3 V και 5,0 V YWRobot για τη γρήγορη συναρμολόγηση κυκλωμάτων σε πίνακες ψωμιού, που σας επιτρέπει να λαμβάνετε γρήγορα σταθεροποιημένη τάση 3,3 V ή 5 V στις αντίστοιχες διαδρομές ισχύος της πλακέτας ψωμιού.

Συνδέοντας το συν (+) από το τροφοδοτικό μας 3,3 V στο pin VCCμονάδα ESP8266-01 και μείον (-) φέρτε το τροφοδοτικό στην έξοδο GND. Σε αυτήν την κατάσταση, η κόκκινη λυχνία LED στη μονάδα θα ανάψει, σηματοδοτώντας μας ότι η τροφοδοσία έχει συνδεθεί σωστά. Για να ενεργοποιηθεί η μονάδα, είναι επίσης απαραίτητο να συνδέσετε το συν (+) τροφοδοτικό με έξοδο CH_PDμονάδα ESP8266-01 και συνιστάται να το κάνετε αυτό απευθείας μέσω μιας αντίστασης 10 kOhm. Τώρα, όταν ενεργοποιούμε την τροφοδοσία, η κόκκινη λυχνία LED στη μονάδα πρέπει να ανάβει και η μπλε λυχνία LED θα πρέπει να αναβοσβήνει γρήγορα μερικές φορές. Εάν αυτό συμβαίνει σε εσάς, τότε όλα είναι καλά, έχετε συνδέσει τα πάντα σωστά και η μονάδα σας λειτουργεί. Διαφορετικά, ελέγξτε ξανά τη σύνδεση ή αντικαταστήστε τη μονάδα, καθώς πιθανότατα δεν λειτουργεί.

Προχώρα. Για να δουλέψουμε με τη μονάδα WiFi ESP8266, χρειαζόμαστε έναν προσαρμογέα USB-UART. Υπάρχουν διαφορετικοί προσαρμογείς, για παράδειγμα: FT232RL, CP2102, PL2303. Αλλά θα υποθέσουμε ότι δεν έχετε τέτοιους προσαρμογείς και θα χρησιμοποιήσουμε μια πλακέτα Arduino ως προσαρμογέα USB-UART. Θα χρησιμοποιήσω μια πλακέτα Arduino NANO για αυτό, αλλά μπορείτε να χρησιμοποιήσετε οποιαδήποτε άλλη έχετε στη διάθεσή σας. Η σύνδεση σε οποιαδήποτε πλακέτα είναι πανομοιότυπη. Κάνουμε τη σύνδεση σύμφωνα με το παρακάτω διάγραμμα.

Ας δούμε τι κάναμε εδώ. Σημειώστε αμέσως ότι έχουμε συνδέσει τις ακίδες στην πλακέτα Arduino με ένα βραχυκυκλωτήρα RSTΚαι GND. Αυτός ο χειρισμός απενεργοποιεί τον μικροελεγκτή και μας επιτρέπει να φτιάξουμε έναν πραγματικό προσαρμογέα USB-UART από την πλακέτα Arduino.

Εφόσον τροφοδοτούμε τη μονάδα WiFi ESP8266-01 από ένα ξεχωριστό εξωτερικό τροφοδοτικό, να θυμάστε ότι πρέπει πάντα να συνδέουμε τη γείωση όλων των τροφοδοτικών στα έργα μας. Επομένως συνδέουμε την έξοδο GNDΠλακέτες Arduino με γείωση (-) Το εξωτερικό μας τροφοδοτικό 3,3 V που έχει σχεδιαστεί για να τροφοδοτεί τη μονάδα ESP8266-01.

συμπέρασμα TXσυνδέστε την πλακέτα Arduino στην καρφίτσα TXΜονάδα ESP8266-01. Αυτή η γραμμή θα μεταδίδει δεδομένα από τη μονάδα WiFi στην πλακέτα Arduino. Όποιος είναι εξοικειωμένος με τη διεπαφή UART μπορεί να αναρωτηθεί: "Αλλά πώς μπορεί να είναι αυτό; Παντού δίδασκαν ότι το TX πρέπει να συνδεθεί με το RX. Το TX μεταδίδει πληροφορίες και το RX λαμβάνει." Και θα έχεις δίκιο. Σωστά, το TX είναι πάντα συνδεδεμένο στο RX, αλλά στην περίπτωση που φτιάχνουμε έναν προσαρμογέα UART από το Arduino, πρέπει να συνδέσουμε τις συσκευές απευθείας. Θεωρήστε αυτό την εξαίρεση στον κανόνα.

Γραμμή RXΣυνδέουμε επίσης την πλακέτα Arduino απευθείας στη γραμμή RXΜονάδα ESP8266-01. Αυτή η γραμμή θα μεταδίδει πληροφορίες από την πλακέτα Arduino στο Κάρτα WiFiμονάδα μέτρησης. Αλλά κάνουμε αυτή τη σύνδεση μέσω ενός λεγόμενου διαιρέτη τάσης, που αποτελείται από δύο αντιστάσεις με ονομαστικές τιμές 1 kOhm και 2 kOhm. Πρέπει να μειώσουμε την τάση σε αυτή τη γραμμή χρησιμοποιώντας δύο αντιστάσεις (διαιρέτης τάσης), καθώς η πλακέτα Arduino μεταδίδει ένα λογικό σήμα με τάση 5 V και η μονάδα WiFi λειτουργεί με τάση 3,3 V. Για να μετατρέψουμε το λογικό σήμα, θα μπορούσαμε να χρησιμοποιήσουμε μια ειδική πλακέτα μετατροπέα λογικού επιπέδου, η οποία φυσικά θα ήταν πιο σωστή, αλλά και πάλι, ας υποθέσουμε ότι δεν έχετε, και έπρεπε να ακολουθήσουμε μια απλούστερη διαδρομή και να το κάνουμε χρησιμοποιώντας ένα διαιρέτης τάσης.

Τώρα έχουμε συνδέσει όλα τα απαραίτητα για περαιτέρω εργασία, αλλά έχουμε ακόμα 3 ακίδες που δεν χρησιμοποιήθηκαν ( GPIO0, GPIO2Και RST) επί Μονάδα WiFi ESP8266-01. Για σταθερό WiFi δουλειάμονάδα πρέπει να τραβήξουμε αυτούς τους εναπομείναντες αχρησιμοποίητους ακροδέκτες στο θετικό (+) ηλεκτρικές γραμμές της μονάδας μέσω αντιστάσεων 10 kOhm.

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

Και πάλι ελέγχουμε τη λειτουργικότητα της μονάδας WiFi ESP8266-01. Ανοίξτε την τροφοδοσία και δείτε ότι το κόκκινο LED ανάβει και το μπλε LED αναβοσβήνει μερικές φορές. Αν όλα γίνονται έτσι, τότε υπέροχα, ας προχωρήσουμε. Διαφορετικά, ελέγχουμε την ορθότητα των συνδέσεων, καθώς και την ποιότητα όλων των επαφών. Μπορεί να είναι απλώς μια ασήμαντη κατάσταση όταν ελέγξατε τα πάντα δέκα φορές και βεβαιωθείτε ότι όλα είναι συνδεδεμένα σωστά, αλλά όταν ενεργοποιείτε τη μονάδα, βλέπετε ότι το μπλε LED δεν συμπεριφέρεται σωστά, είναι συνεχώς αναμμένο, αναβοσβήνει συνεχώς, ή δεν ανταποκρίνεται σε τίποτα απολύτως. Αυτό μπορεί να οφείλεται σε κακή επαφή σε κάποια γραμμή. Για παράδειγμα, όταν συναρμολογείτε ένα κύκλωμα σε ένα breadboard, μια από τις αντιστάσεις δεν κάθεται σφιχτά στη θέση της και αυτό προκαλεί παρεμβολές. Ελέγξτε την ποιότητα των συνδέσεων. Η μονάδα είναι πολύ ευαίσθητη. Μην το παραμελείτε αυτό. Αυτός είναι ένας συνηθισμένος λόγος για ασταθή λειτουργία.

Γενικά, τελειώσαμε με τη σύνδεση. Τώρα πρέπει να ετοιμάσουμε ένα πρόγραμμα Arduino IDEγια εργασία με τη μονάδα WiFi ESP8266-01. Για να γίνει αυτό, πρέπει να κατεβάσουμε και να εγκαταστήσουμε στο Arduino IDE το απαραίτητο αρχείο με βιβλιοθήκες, παραδείγματα και πλακέτες ESP, που θα μας επιτρέψουν στη συνέχεια να ανεβάσουμε σκίτσα απευθείας στον μικροελεγκτή της μονάδας ESP8266-01, να αλλάξουμε το υλικολογισμικό κ.λπ. Για τους σκοπούς αυτού του άρθρου, πιθανότατα δεν θα χρειαστούμε αυτές τις ρυθμίσεις, αλλά μου φαίνεται ότι αφού καταλάβουμε πώς να συνδέσουμε τη μονάδα, η διαδικασία θα είναι σωστή εάν κατεβάσουμε αμέσως όλα όσα είναι απαραίτητα για να δουλέψουμε με το Arduino IDE . Όλα εδώ είναι απλά κατ 'αρχήν.

Εκκινήστε το πρόγραμμα Arduino IDEκαι πηγαίνετε στο μενού "Αρχείο" - "Ρυθμίσεις"

Στο παράθυρο που εμφανίζεται, στο επάνω πεδίο γράφουμε “esp8266”. Ως αποτέλεσμα, θα έχουμε μόνο το απαιτούμενο υλικολογισμικό στο παράθυρο. Όταν κάνετε κλικ στο υλικολογισμικό, θα εμφανιστεί ένα κουμπί "Εγκατάσταση". Κάντε κλικ στο κουμπί "Εγκατάσταση"και περιμένετε μέχρι να εγκατασταθούν όλα. Το αρχείο είναι αρκετά μεγάλο, περίπου 150 megabyte, οπότε θα πρέπει να περιμένετε.

Αφού ολοκληρωθεί η εγκατάσταση. Κάνουμε επανεκκίνηση του Arduino IDE και βλέπουμε πώς έχουν εμφανιστεί νέες πλακέτες ESP στο μενού "Εργαλεία" - "Πίνακες". Αυτό είναι όλο. ΜΕ Ρύθμιση ArduinoΤελειώσαμε με το IDE. Δεν χρειαζόμαστε αυτές τις ρυθμίσεις προς το παρόν, αλλά σε μελλοντική εργασία δεν θα μπορούμε να κάνουμε χωρίς αυτές.

Έχουμε τα πάντα συνδεδεμένα και προετοιμασμένα, τώρα μπορούμε να αρχίσουμε να κατανοούμε τους ελέγχους. Στην πραγματικότητα, τώρα θα συνεχίσουμε να ελέγχουμε και να διαμορφώνουμε τη μονάδα χρησιμοποιώντας εντολές AT και δεν υπάρχει τρόπος να το κάνουμε χωρίς αυτό. Οι μονάδες WiFi υλοποιούνται με τέτοιο τρόπο ώστε όλη η επικοινωνία μαζί τους να πραγματοποιείται χρησιμοποιώντας τις λεγόμενες εντολές AT, οι οποίες είναι ενσωματωμένες στο υλικολογισμικό της μονάδας. Δεν θα απαριθμήσουμε όλες τις εντολές AT εδώ, υπάρχουν πολλές από αυτές και αν θέλετε να μελετήσετε τα πάντα προσεκτικά, μπορείτε εύκολα να τις βρείτε στο Διαδίκτυο. Και τώρα θα χρησιμοποιήσουμε μόνο τα πιο απαραίτητα για να ξεκινήσουμε.

Και έτσι, συνδέουμε την πλακέτα μας Arduino μέσω καλώδιο USBστον υπολογιστή. ΕΝΑ εξωτερική πηγήτροφή που θρέφει Μονάδα WiFi ESP8266-01Δεν χρειάζεται να το ενεργοποιήσετε ακόμα. Ας ξεκινήσουμε Το πρόγραμμα arduino IDE, επιλέξτε την πλακέτα μας Arduino από το μενού "Εργαλεία", στην περίπτωσή μου είναι το Arduino NANO και επιλέξτε τη δική σας. Επίσης, μην ξεχάσετε να επιλέξετε τη θύρα στην οποία είναι συνδεδεμένο το Arduino μας. Ελπίζω να τα καταλαβαίνεις όλα αυτά και να ξέρεις πώς να τα κάνεις.

Παρακολούθηση ανοιχτής θύρας "Tools" - "Port Monitor". Επιλογή της ταχύτητας θύρας 74880 (με αυτή την ταχύτητα ξεκινά η μονάδα) και επιλέξτε "NL & CR" στη λίστα στα αριστερά

Τώρα συνδέουμε μια εξωτερική πηγή τροφοδοσίας που τροφοδοτεί τη μονάδα WiFi μας. Μετά από αυτό θα πρέπει να δείτε περίπου τις ακόλουθες πληροφορίες στην οθόνη θύρας.

Εδώ βλέπουμε κάποιες πληροφορίες για τη μονάδα WiFi μας (ταχύτητα, ποσότητα μνήμης επί του σκάφους, κ.λπ.). Οι πληροφορίες που λαμβάνονται ενδέχεται να διαφέρουν ανάλογα με την έκδοση Υλικολογισμικό WiFiμονάδα μέτρησης. Ας μην εστιάσουμε σε αυτό. Κάτι άλλο είναι σημαντικό. Παρακάτω βλέπουμε ένα σύνολο χαρακτήρων χωρίς νόημα, αυτό σημαίνει ότι η ταχύτητα θύρας (74880 baud) που ορίσαμε είναι κατάλληλη μόνο για bootstrapμονάδα για να βλέπετε αυτές τις πληροφορίες κανονικά, αλλά αυτή η ταχύτητα δεν είναι κατάλληλη για κανονική επικοινωνία με τη μονάδα WiFi.

Για να επιλέξετε τη σωστή ταχύτητα θύρας, απλώς θα αλλάξουμε την ταχύτητα της θύρας και θα στείλουμε σύμβολα στη θύρα (το πεδίο στο επάνω μέρος και το κουμπί αποστολής) ΣΤΟμέχρι να πάρουμε απάντηση Εντάξει. Αν προσπαθήσετε να στείλετε χαρακτήρες τώρα ΣΤΟστη θύρα με ταχύτητα 74880, θα λάβετε άλλους έναν ή δύο χαρακτήρες χωρίς νόημα ως απάντηση.

Δοκιμάστε να ρυθμίσετε αμέσως την ταχύτητα στα 115200 baud και να στείλετε την εντολή AT. Τις περισσότερες φορές, οι μονάδες αναβοσβήνουν με αυτήν την ταχύτητα.

Αυτή είναι η εικόνα που πρέπει να δείτε στην οθόνη της θύρας σας. Εάν εξακολουθείτε να λαμβάνετε ένα ακατανόητο σύνολο χαρακτήρων ως απάντηση, χαμηλώστε την ταχύτητα και στείλτε ξανά ΣΤΟεντολές μέχρι να επιστρέψει η απάντηση Εντάξει. Εάν δοκιμάσατε όλες τις ταχύτητες και δεν λάβατε τη σωστή απάντηση, τότε δεν έχετε τύχη και η μονάδα αναβοσβήνει με υλικολογισμικό σε μη τυπική ταχύτητα. Στη συνέχεια, το μόνο που μένει είναι να ανανεώσετε τη μονάδα με κανονικό υλικολογισμικό, αλλά αυτό είναι ένα θέμα για ξεχωριστό άρθρο.

Ελπίζω να είναι όλα καλά και να έχετε επιλέξει τη σωστή ταχύτητα. Παρεμπιπτόντως, εάν προσπαθήσετε να απενεργοποιήσετε και να ενεργοποιήσετε ξανά τη μονάδα WiFi αφού έχετε επιλέξει τη σωστή ταχύτητα, τότε αντί για τις ίδιες αρχικές πληροφορίες που εμφανίστηκαν σωστά με ταχύτητα 74880 baud, αντίθετα, δείτε ένα μπερδεμένο σύνολο χαρακτήρων, αλλά στο τέλος θα δείτε τη λέξη "έτοιμος" ". Αλλά έχουμε την ευκαιρία να δούμε αυτές τις αρχικές πληροφορίες σε κανονική μορφή με τη σωστή ταχύτητα· για να γίνει αυτό, πρέπει να επανεκκινήσουμε μέσω προγραμματισμού τη μονάδα χρησιμοποιώντας την εντολή AT AT+RST.

Για να μάθετε την έκδοση υλικολογισμικού της μονάδας WiFi ESP8266-01, πρέπει να στείλετε μια εντολή στην οθόνη θύρας AT+GMRκαι ως απάντηση θα λάβετε περίπου τις ακόλουθες πληροφορίες:

Η μονάδα WiFi ESP8266-01 μπορεί να λειτουργήσει και σε λειτουργίες σημείου πρόσβασης και πελάτη. Για να επιτρέψετε στη μονάδα να λειτουργεί σε όλες τις λειτουργίες ταυτόχρονα, στείλτε την εντολή στην οθόνη θύρας AT+CWMODE=3και ως απάντηση θα πρέπει να λάβετε Εντάξει.

Ομάδα AT+CWLAPθα σας επιτρέψει να δείτε όλα τα σημεία πρόσβασης WiFi στα οποία βλέπετε αυτή τη στιγμήτην ενότητα σας. Η μονάδα μου, για παράδειγμα, προς το παρόν βλέπει μόνο τρία σημεία πρόσβασης WiFi στην περιοχή κάλυψής της. Η απάντηση πρέπει να είναι κάπως έτσι:

Για παράδειγμα, γνωρίζουμε τον κωδικό πρόσβασης για το τρίτο σημείο πρόσβασης και για να συνδεθούμε σε αυτό εκτελούμε την εντολή AT+CWJAP="name","password", στην περίπτωσή μου αυτή η εντολή μοιάζει AT+CWJAP="dsl_unlim_512_home","11111111", στο οποίο λαμβάνουμε επιτυχή απάντηση:

Οι παράμετροι εντολών γράφονται στη μνήμη flash της μονάδας WiFi ESP8266-01 και αν απενεργοποιήσουμε τη μονάδα και την ενεργοποιήσουμε ξανά, θα συνδεθεί αυτόματα σε αυτό το σημείο πρόσβασης. Κοιτάξτε, κατά τύχη, μην αφήσετε κενό στην εντολή, διαφορετικά θα λάβετε απάντηση ΛΑΘΟΣ. Λάβετε υπόψη ότι στις πιο πρόσφατες εκδόσεις υλικολογισμικού συνιστάται η χρήση της εντολής AT+CWJAP_CUR, δηλαδή η εντολή θα μοιάζει AT+CWJAP_CUR="όνομα","κωδικός πρόσβασης".Εάν ξαφνικά ξεχάσαμε σε ποιο σημείο πρόσβασης είναι συνδεδεμένη η μονάδα μας, πρέπει να στείλουμε μια εντολή AT+CWJAP;ή AT+CWJAP_CUR;και σε απάντηση θα λάβουμε το σημείο πρόσβασης στο οποίο είναι συνδεδεμένη η μονάδα WiFi αυτήν τη στιγμή.

Με σύνδεση και αρχική εγκατάσταση Μονάδα WiFi ESP8266-01το καταλάβαμε. Η ενότητα λειτουργεί και είναι έτοιμη για την υλοποίηση των μελλοντικών σας έργων. Απλώς δεν είναι δυνατό να αναλυθούν όλα τα πιθανά παραδείγματα εργασίας με αυτήν την ενότητα στο πλαίσιο ενός άρθρου και θα ασχοληθούμε με αυτό στα επόμενα άρθρα. Και για όσους δεν είναι πολύ εξοικειωμένοι με τον προγραμματισμό, αλλά θέλουν πραγματικά να αρχίσουν γρήγορα να διαχειρίζονται τα έργα τους χρησιμοποιώντας WiFi, συνιστώ να τους συστήσετε στον σχεδιαστή έργου RemoteXY WiFi. Αυτός ο ιστότοπος θα σας βοηθήσει να δημιουργήσετε εύκολα μια διεπαφή ελέγχου για το κινητό τηλέφωνο ή το tablet σας και να τη χρησιμοποιήσετε για να ελέγξετε τη συσκευή σας στην οποία συνδέετε μια μονάδα WiFi.

Moule esp-01
Σχέδιο σωστή σύνδεσηΜονάδα esp-01 για προγραμματισμό και υλικολογισμικό.

Η μονάδα αναβοσβήνει μεταβαίνοντας στη λειτουργία προγραμματισμού· για να το κάνετε αυτό, κρατήστε πατημένο το κουμπί FLASH και, στη συνέχεια, χωρίς να το απελευθερώσετε, πατήστε στιγμιαία το κουμπί RESET και αφήστε το FLASH.
Η μονάδα τίθεται σε λειτουργία προγραμματισμού.
Στο τερματικό αυτή τη στιγμή μπορείτε να δείτε

ets 8 Ιανουαρίου 2013, πρώτη αιτία:2, λειτουργία εκκίνησης:(1.6)
λειτουργία εκκίνησης: (1,6) - επανεκκίνηση μέσω RESET σε λειτουργία προγραμματισμού
λειτουργία εκκίνησης:(1,7) - επανεκκίνηση σε λειτουργία προγραμματισμού - η οποία δεν είναι απολύτως σωστή.

Για το firmware θα χρησιμοποιήσω το πρόγραμμα ΠΡΟΓΡΑΜΜΑΤΙΣΤΗΣ ΥΛΙΚΙΣΜΙΚΟΥ NODEMCU
(Στο θέμα θα επισυναφθεί αρχείο με το πρόγραμμα)
Αποσυσκευάστε το αρχείο και εκτελέστε στην περίπτωσή μου την έκδοση 32-bit του προγράμματος\Win32\Release\ESP8266Flasher.exe
Το ρυθμίζουμε για το module, στην περίπτωσή μου είναι 1 Megabyte μνήμης flash ή 8 Megabit.




Το πρώτο βήμα είναι να διαγράψετε τη μνήμη με ένα άδειο αρχείο 1 MB.
Αυτό είναι ένα προαιρετικό στοιχείο. Μπορείτε να παραλείψετε τη διαγραφή και να μεταβείτε στο υλικολογισμικό.
Όσοι έχουν περισσότερη ή λιγότερη μνήμη χρειάζονται ένα κενό αρχείο του κατάλληλου μεγέθους.
Στη συνέχεια, καθορίζουμε ποιο υλικολογισμικό χρειάζεται!
Μπορεί να χρησιμοποιηθεί ως έτοιμο firmwareστο NODEMCU και από τον σχεδιαστή για τη συναρμολόγηση με τις μονάδες που χρειάζεστε.
Για παράδειγμα, ένα από τα παλιά αποδεδειγμένα NODEMCU

Κατασκευαστής wifi-iot.com/
Κατασκευαστής nodemcu-build.com/
ή κατεβάστε το πιο πρόσφατο

Προβλήματα με το υλικολογισμικό
ΑνΗ μονάδα esp8266 δεν αναβοσβήνει, ελέγξτε τα pull-up και τη σωστή σύνδεση στο GND GPIO0. Και επίσης εάν το RX TX είναι μπερδεμένο.
Στο τερματικό μπορείτε να ελέγξετε ότι εμφανίζεται η λειτουργία εκκίνησης:(1,6) ή η λειτουργία εκκίνησης:(1,7).

Ανμετά ανεπιτυχές υλικολογισμικόη μονάδα δεν λειτουργεί, δοκιμάστε να διαγράψετε τη μνήμη με ένα κενό αρχείο φόρμας στο μέγεθος της μνήμης σας.

ΑνΗ μονάδα δεν λειτουργεί μετά από επιτυχημένο υλικολογισμικό και στέλνει ατελείωτα σκουπίδια στη θύρα (η λυχνία LED μετάδοσης δεδομένων μπορεί να αναβοσβήνει). τσιπ μνήμης.
Οι πληροφορίες σχετικά με τη μνήμη ελήφθησαν από τον ιστότοπο nodemcu.
0x7c000 για 512 kB, ενότητες όπως ESP-01,03,07
0xfc000 για 1 MB, ενότητες όπως ESP8285, PSF-A85 αλλά και ορισμένες ποικιλίες esp-01,01s
0x1fc000 για 2 MB
0x3fc000 για 4 MB, τύπος μονάδας ESP-12E, NodeMCU devkit 1.0, WeMos D1 mini κ.λπ.

Αν όλα τα άλλα αποτύχουν, γράψε...

Θα προσθέσω την επίσημη ομάδα του κατασκευαστή εξοπλισμού

Η μονάδα Wi-Fi ESP-01 είναι η πιο δημοφιλής μονάδα της σειράς ESP8266. Η επικοινωνία με υπολογιστή ή μικροελεγκτή πραγματοποιείται μέσω UART χρησιμοποιώντας ένα σύνολο εντολών AT. Επιπλέον, η μονάδα μπορεί να χρησιμοποιηθεί ως ανεξάρτητη συσκευή· για να γίνει αυτό, πρέπει να φορτώσετε το δικό σας υλικολογισμικό σε αυτήν. Μπορείτε να προγραμματίσετε και να κάνετε λήψη υλικολογισμικού μέσω της έκδοσης Arduino IDE πάνω από την 1.6.5. Για να αναβοσβήσετε το υλικολογισμικό της μονάδας θα χρειαστείτε έναν προσαρμογέα UART-USB. Η μονάδα ESP-01 μπορεί να χρησιμοποιηθεί ευρέως σε συσκευές IoT (Internet of Things).

Προδιαγραφέςμονάδα μέτρησης

  • Wi-Fi 802.11 b/g/n
  • Λειτουργίες WiFi: πελάτης, σημείο πρόσβασης
  • ισχύς εξόδου- 19,5 dB
  • Τάση τροφοδοσίας - 1,8 -3,6 V
  • Κατανάλωση ρεύματος - 220 mA
  • Θύρες GPIO: 4
  • Συχνότητα ρολογιούεπεξεργαστής - 80 MHz
  • Χωρητικότητα μνήμης κωδικών
  • ΕΜΒΟΛΟ- 96 KB
  • Διαστάσεις - 13×21 mm

Σύνδεση

Ας εξετάσουμε τη λειτουργία εντολής AT. Για να το κάνετε αυτό, συνδέστε τη μονάδα στον υπολογιστή μέσω προσαρμογέα USB-UART. Σκοπός των ακίδων της μονάδας (βλ. Εικόνα 1):
  • VCC - +3,3 V
  • GND - γείωση
  • Καρφίτσες RX, TX - UART
  • Έξοδος CH_PD - Ενεργοποίηση τσιπ
  • GPIO0, GPIO2 - ψηφιακές επαφές
Η ενότητα απαιτεί εξωτερικό τροφοδοτικό 3,3 V.

Εικόνα 1. Εκχωρήσεις ακίδων μονάδας ESP-01

Διάγραμμα σύνδεσης για επικοινωνία με τη μονάδα σε λειτουργία εντολών AT (Εικόνα 2):

Εικόνα 2. Διάγραμμα σύνδεσης της μονάδας ESP-01 σε υπολογιστή μέσω σειριακής θύρας

Εικόνα 3. Κύκλωμα συναρμολόγησης

Για να στείλετε εντολές AT σε Mac OS X, μπορείτε να χρησιμοποιήσετε το πρόγραμμα CoolTerm, στο λειτουργικό σύστημα Πρόγραμμα WindowsΤερμίτης. Μπορείτε να μάθετε την ταχύτητα της θύρας COM για σύνδεση στη μονάδα μόνο πειραματικά· μπορεί να είναι διαφορετική για διαφορετικό υλικολογισμικό. Για τη μονάδα μου η ταχύτητα αποδείχθηκε ότι ήταν 9600 baud. Επιπλέον, ήταν δυνατή η πραγματοποίηση ανταλλαγής μόνο μετά την αποσύνδεση και επανασύνδεση του ακροδέκτη CH_PD στο τροφοδοτικό. Μετά τη σύνδεση, πληκτρολογήστε AT στο τερματικό και θα λάβετε μια απάντηση ΟΚ από τη μονάδα. Η εντολή AT+GMR δίνει τον αριθμό έκδοσης υλικολογισμικού της μονάδας, η εντολή AT+RST επανεκκινεί τη μονάδα (βλ. Εικ. 4). Μια λίστα βασικών εντολών AT μπορεί να βρεθεί σε αυτό το έγγραφο (ESP8266ATCommandsSet.pdf).

Εικόνα 4. Αποστολή εντολών AT στη μονάδα από το Termite

Εάν η λειτουργία εντολών AT δεν είναι βολική για εσάς, η πλακέτα μπορεί να διαμορφωθεί χρησιμοποιώντας το πρόγραμμα AppStack ESP8266 Config, το οποίο μπορείτε να λάβετε από τη σύνδεση http://esp8266.ru/download/esp8266-utils/ESP8266_Config.zip. ΕμφάνισηΤο πρόγραμμα παρουσιάζεται στην Εικόνα 5. Η μονάδα έχει ρυθμιστεί χρησιμοποιώντας GUI, ενώ η εκτέλεση των εντολών φαίνεται στην οθόνη του προγράμματος (βλ. Εικ. 6). Η οθόνη μπορεί επίσης να στείλει εντολές AT από τη γραμμή εντολών.

Εικόνα 5. Πρόγραμμα διαμόρφωσης AppStack ESP8266

Εικόνα 6. Σειριακή οθόνη του προγράμματος AppStack ESP8266 Config

Υπάρχουν δύο επιλογές για τη χρήση αυτής της ενότητας:

  • σε συνδυασμό με έναν μικροελεγκτή (για παράδειγμα Arduino), ο οποίος θα ελέγχει τη μονάδα μέσω UART.
  • γράφοντας το δικό σας υλικολογισμικό για να χρησιμοποιήσετε το ESP8266 ως αυτόνομη συσκευή.

Παράδειγμα χρήσης

Ας δούμε ένα παράδειγμα σύνδεσης ενός αισθητήρα υγρασίας και θερμοκρασίας DHT11 στη μονάδα ESP-01 και αποστολή δεδομένων σε υπηρεσία cloud ThingSpeak (https://thingspeak.com/). Θα χρειαστούμε τα ακόλουθα μέρη:
  • μονάδα ESP-01
  • σανίδα ψωμιού
  • αισθητήρας υγρασίας και θερμοκρασίας DHT11
  • αντίσταση 10 kOhm
  • καλώδια σύνδεσης
  • τροφοδοτικό 3 - 3,6V
Αρχικά, ας συνδέσουμε τον αισθητήρα DS18B20 στη μονάδα ESP-01. Το DS18B20 είναι ένας ψηφιακός αισθητήρας θερμοκρασίας που λειτουργεί μέσω μιας διασύνδεσης 1-Wire μονού καλωδίου. Το διάγραμμα σύνδεσης του αισθητήρα DS18B20 στη μονάδα φαίνεται στην Εικ. 7.

Εικόνα 7. Διάγραμμα σύνδεσης του αισθητήρα DHT11 στη μονάδα ESP-01.

Στη συνέχεια, πρέπει να δημιουργήσετε ένα προφίλ στην υπηρεσία ThingSpeak. Η υπηρεσία έχει οδηγίες για την αποστολή δεδομένων στην υπηρεσία και τη λήψη δεδομένων από την υπηρεσία.

Εικόνα 8. Πλήρες κύκλωμα.

Θα γράψουμε το πρόγραμμα Περιβάλλον Arduino IDE για ESP8266. Θα χρησιμοποιήσουμε τις βιβλιοθήκες ESP8266WiFi.h (ενσωματωμένη) και OneWire.h. Ας ανεβάσουμε το σκίτσο από τη Λίστα 1 στην πλακέτα Arduino - λήψη δεδομένων από τον αισθητήρα θερμοκρασίας και αποστολή των δεδομένων στην υπηρεσία ThingSpeak. Πρέπει να εισαγάγετε τα δεδομένα σας για το σημείο πρόσβασης WiFi για τη μονάδα ESP-01:

  • const char *ssid;
  • const char *password;
καθώς και την παράμετρο privateKey για την εφαρμογή σας στην υπηρεσία ThingSpeak. Καταχώριση 1 // ιστότοπος // Συμπεριλάβετε τη βιβλιοθήκη για εργασία με το esp8266 #include // Συμπεριλάβετε τη βιβλιοθήκη DHT για εργασία με το DHT11 #include // Καρφίτσα σύνδεσης DATA pin #define DHTPIN 4 // DHT11 sensor #define DHTTYPE DHT11 // δημιουργία παρουσίας ενός αντικειμένου DHT DHT dht(DHTPIN, DHTTYPE); //ssid Δίκτυα WiFiσυνδέσεις const char ssid = "********"; // Κωδικός πρόσβασης WiFiδίκτυα σύνδεσης const char κωδικός = "*******"; // Διακομιστής ThingSpeak const char* host = "184.106.153.149"; // ΚΛΕΙΔΙ API της εφαρμογής ThingSpeak const char* privateKey = "****************"; // μεταβλητές για την αποθήκευση θερμοκρασίας και υγρασίας. υγρασία πλωτήρα // μεταβλητή για το διάστημα μέτρησης unsigned long millis_int1=0; void setup() ( // εκκίνηση της σειριακής θύρας Serial.begin(115200); delay(10); Serial.print("Connect to WiFi"); Serial.println(ssid); // Σύνδεση μέσω WiFi WiFi.begin( ssid , κωδικός πρόσβασης); while (WiFi.status() != WL_CONNECTED) ( delay(500); ) Serial.println("WiFi συνδεδεμένο"); // start dht dht.begin(); ) void loop() ( / / περιμένετε για ένα διάστημα 10 λεπτών if(milis()-millis_int1>=10*60000) ( Serial.print("connect to ThingSpeak"); Serial.println(host); // Χρήση του προγράμματος-πελάτη WiFi WiFiClient; εάν (!client.connect (host, 80)) ( Serial.println("η σύνδεση απέτυχε"); επιστροφή; ) // λήψη δεδομένων θερμοκρασίας θερμοκρασία = get_data_temperature(); humidity = get_data_humidity(); // Δημιουργία διεύθυνσης URL με αίτημα για τον διακομιστή String url = "/ update?key="; url += privateKey; url += "&temp="; url += temp; url += "&humidity="; url += humidity; // Αποστολή αιτήματος στον διακομιστή client.print(String(" GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Σύνδεση: κλείσιμο\r\n\r \n"); καθυστέρηση(10); // Απόκριση διακομιστή ThingSpeak while(client.available())( String req = client.readStringUntil("\r"); Serial.print(req); ) ) Τώρα στην υπηρεσία ThingSpeak μπορούμε να προβάλουμε ένα γράφημα των ενδείξεων του αισθητήρα θερμοκρασίας DHT11 (Εικόνα 9).

Εικόνα 9. Γράφημα των μετρήσεων του αισθητήρα θερμοκρασίας DS18B20 στην υπηρεσία ThingSpeak.

Συχνές ερωτήσεις FAQ

1. Η μονάδα δεν ανταποκρίνεταιΕντολές AT
  • Ελέγξτε ότι η μονάδα είναι συνδεδεμένη σωστά.
  • Ελέγξτε τη σωστή σύνδεση των επαφών Rx, Tx στον προσαρμογέα UART-USB.
  • Ελέγξτε τη σύνδεση του ακροδέκτη CH_PD στα 3,3 V.
  • Επιλέξτε πειραματικά την ταχύτητα επικοινωνίας στη σειριακή θύρα.
2. Η μονάδα ESP-01 δεν λαμβάνει δεδομένα θερμοκρασίας από τον αισθητήραDHT11
  • Ελέγξτε ότι ο αισθητήρας DHT11 είναι σωστά συνδεδεμένος στη μονάδα.
3. Τα δεδομένα δεν μεταφέρονται στην υπηρεσία ThingSpeak
  • Ελέγξτε τη σύνδεση της μονάδας με το σημείο πρόσβασης WiFi.
  • Ελέγξτε τη σύνδεση του σημείου πρόσβασης WiFi στο Διαδίκτυο.
  • Ελέγξτε ότι το αίτημα προς την υπηρεσία ThingSpeak είναι σωστό.

... Γενικά, αυτό το υλικό δεν περιορίζεται σε ένα μόνο θέμα του Arduino.

Το θέμα του ESP8266 είναι αρκετά δύσκολο. Ωστόσο, εάν εργάζεστε με αυτές τις μονάδες Wi-Fi στο περιβάλλον ανάπτυξης Arduino IDE, το όριο εισόδου πέφτει σε ένα επίπεδο αποδεκτό για τον μέσο χρήστη του Arduino. Και όχι μόνο ο τύπος του Arduino, αλλά κάθε άτομο που έχει την επιθυμία να δημιουργήσει κάτι για το θέμα του IoT (Internet of Things) και χωρίς να ξοδέψει πολύ χρόνο διαβάζοντας την τεκμηρίωση για το τσιπ και μελετώντας το API για αυτές τις ενότητες.

Αυτό το βίντεο αντιγράφει πλήρως το υλικό που παρουσιάζεται στο παρακάτω άρθρο.

Λοιπόν, γνωρίζουμε ήδη πώς να συνδέσουμε το ESP8266 και να το θέσουμε σε λειτουργία προγραμματισμού, τώρα ας προχωρήσουμε σε κάτι πιο χρήσιμο.

Θα πω αμέσως ότι μόλις προγραμματίσουμε τη μονάδα στο περιβάλλον ανάπτυξης Arduino, καταστρέφουμε το εγγενές υλικολογισμικό και δεν θα μπορούμε πλέον να δουλεύουμε με τη μονάδα χρησιμοποιώντας εντολές AT. Προσωπικά, αυτό δεν με κάνει κρύο/ζεστό, αλλά αν κάποιος το χρειάζεται, προς το τέλος του άρθρου θα σας δείξω πώς να αναβοσβήσετε το εγγενές υλικολογισμικό ξανά στη μονάδα ή σε κάποιο είδος bootloader όπως το NodeMcu.

Αρχικά, πραγματοποιήστε λήψη από τον επίσημο ιστότοπο τελευταία έκδοση Arduino IDE, επί του παρόντος 1.6.7. Παλαιότερες εκδόσεις όπως η 1.0.5. δεν θα ταιριάζουν γιατί απλά δεν έχουν την απαραίτητη λειτουργικότητα και ο χορός με ντέφι δεν μας ενδιαφέρει, σωστά;

Εκκινούμε το περιβάλλον ανάπτυξης και πηγαίνουμε αμέσως στο Αρχείο/Ρυθμίσεις:

Http://arduino.esp8266.com/stable/package_esp8266com_index.json

Στη συνέχεια, μεταβείτε στο Εργαλεία/Πίνακας:/Διαχειριστής Πίνακα...:

Θα εμφανιστεί ένα παράθυρο διαχείρισης πίνακα μπροστά μας, μετακινηθείτε προς τα κάτω και αν όλα γίνουν σωστά θα δούμε κάτι σαν αυτό:

Κάντε κλικ στον κέρσορα στην επιγραφή " esp8266με Κοινότητα ESP8266"μετά από αυτό, έχουμε ένα κουμπί "Εγκατάσταση", επιλέξτε την έκδοση που θέλετε, παίρνω την πιο πρόσφατη, σήμερα είναι 2.1.0 και την εγκαθιστώ. Το περιβάλλον ανάπτυξης θα κατεβάσει τα αρχεία που χρειάζεται (περίπου 150 megabyte) και απέναντι από το επιγραφή " esp8266με Κοινότητα ESP8266Θα εμφανιστεί το "INSTALLED", δηλαδή εγκατεστημένο:

Κάνουμε κύλιση προς τα κάτω στη λίστα με τις πλακέτες και βλέπουμε ότι έχουμε πολλά διαφορετικά ESP στη λίστα, πάρτε το "Generic ESP8266 Module":

Μεταβείτε στα "Εργαλεία" και επιλέξτε την επιθυμητή θύρα COM (για μένα είναι ο μετατροπέας COM32) Arduino ή USB UART και, στη συνέχεια, ορίστε την Ταχύτητα Μεταφόρτωσης: "115200":

Ρυθμίσαμε την ταχύτητα στο 74880 και "NL & CR" και πάλι απενεργοποιούμε και εφαρμόζουμε τροφοδοσία και θα ανταποκριθεί με ορισμένες πληροφορίες εντοπισμού σφαλμάτων:

Σημειώστε ότι το 74880 δεν είναι η κύρια ταχύτητα του ESP8266, απλώς στέλνει πληροφορίες εντοπισμού σφαλμάτων σε αυτό. Εάν η μονάδα δεν στέλνει τίποτα στην κονσόλα, τότε κάτι μπορεί να έχει συνδεθεί εσφαλμένα.

Από προεπιλογή, η ταχύτητα πρέπει να είναι 115200, αλλά σε ορισμένες περιπτώσεις μπορεί να είναι 9600 και άλλες... Προσπάθησε λοιπόν να τη βρεις.

Αφού επιλέξουμε την απαιτούμενη ταχύτητα, στέλνουμε τη μονάδα "AT" και θα πρέπει να απαντήσει ότι όλα είναι "OK". Η εντολή "AT+GMR" εμφανίζει πληροφορίες σχετικά με το υλικολογισμικό.

Πριν ξεκινήσετε να αναβοσβήνει το ESP8266 στο Arduino IDE, σας συμβουλεύω να διαβάσετε το άρθρο μέχρι το τέλος.

Τώρα ας προσπαθήσουμε να αναβοσβήσουμε το ESP8266 μέσω του Arduino IDE. Βάζουμε τη μονάδα σε λειτουργία προγραμματισμού (έγραψα πώς να το κάνω αυτό σε προηγούμενο άρθρο).

Ας προσθέσουμε ένα τυπικό LED στο φλας:

// Από τον κ. PodelkinTs youtube.com/RazniePodelki // ειδικό στο geektimes.ru/post/271754/ #define TXD 1 // GPIO1/TXD01 void setup() ( pinMode(TXD, OUTPUT); ) void loop() ( digitalWrite (TXD, HIGH); καθυστέρηση (1000); digitalWrite (TXD, LOW); καθυστέρηση (1000); )

Αναβοσβήνει; Άρα όλα έγιναν σωστά. Από πού κατάλαβα ότι το LED είναι συνδεδεμένο στην πρώτη ακίδα; Στο προηγούμενο άρθρο υπάρχει μια εικόνα με pinouts διαφορετικών μονάδων και υπάρχει σήμανση των θυρών κατά τη χρήση του bootloader Arduino (οι ακίδες σημειώνονται με ροζ).

Το να αναβοσβήνει ένα LED είναι φυσικά καλό, αλλά πρέπει να εγκαταστήσουμε κάποιο είδος διακομιστή web ή να αρχίσουμε να ελέγχουμε το LED χρησιμοποιώντας τουλάχιστον κουμπιά στο πρόγραμμα περιήγησης, σωστά; Αλλά θα σας πω για αυτό κάποια άλλη στιγμή.

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

Θα επισυνάψω ένα αρχείο με αυτό το πρόγραμμα και το υλικολογισμικό στο άρθρο για ευκολία, αλλά μπορείτε πάντα να κάνετε λήψη νέα έκδοση NodeMCU Flasher.

Στον φάκελο "nodemcu-flasher-master" υπάρχουν 2 φάκελοι Win64 και Win32 και ανάλογα με το βάθος bit του λειτουργικού σας συστήματος επιλέξτε αυτό που χρειάζεστε. Στη συνέχεια, στο φάκελο Release, εκτελέστε το "ESP8266Flasher.exe" και δείτε τη διεπαφή του προγράμματος:

Επιλέξτε την επιθυμητή θύρα COM και μεταβείτε στην καρτέλα "Config", αφαιρέστε το σταυρό δίπλα στο "INTERNAL://NODEMCU" και βάλτε το ένα σημείο χαμηλότερα, όπως στο στιγμιότυπο οθόνης:

(Αν θέλετε να αναβοσβήσετε το πρόγραμμα εκκίνησης NodeMCU, αφαιρέστε το σταυρό από εκεί που δεν ήταν και τοποθετήστε το εκεί που ήταν, δηλαδή κοντά στο “INTERNAL://NODEMCU”).

Στη συνέχεια κάνουμε κλικ στο γρανάζι και επιλέγουμε πού βρίσκεται το υλικολογισμικό μας, το υλικολογισμικό είναι συνήθως σε μορφή *.bin (στο συνημμένο αρχείο είναι "v0.9.5.2 AT Firmware.bin" που βρίσκεται στον κύριο φάκελο) και επιλέξτε επίσης "0x00000" από και πάνω.

Επιστρέφουμε ξανά στην καρτέλα "Λειτουργία", θέτουμε τη μονάδα σε λειτουργία προγραμματισμού και κάνουμε κλικ στο "Flash":

Αυτό είναι όλο, η μονάδα έχει αρχίσει να αναβοσβήνει, αφού αναβοσβήνει, μην ξεχάσετε να επανεκκινήσετε τη μονάδα και το voila, αναβοσβήνει με το υλικολογισμικό που χρειαζόμαστε.

Ελέγχουμε με την εντολή AT "AT+GMR" εάν τα κάναμε όλα σωστά:

Όπως μπορείτε να δείτε, όλα κύλησαν ομαλά.

Πώς να χρησιμοποιήσετε τη μονάδα ESP-01 για τον έλεγχο των LED μέσω Διαδικτύου, μια μονάδα που σας επιτρέπει να ελέγχετε οποιαδήποτε ηλεκτρική συσκευή.

Σε αυτό το σεμινάριο ESP8266, χρησιμοποιούμε τη μονάδα ESP-01 για τον έλεγχο ενός LED μέσω του Διαδικτύου. Το ESP8266 είναι μια φθηνή αλλά αποτελεσματική πλατφόρμα για επικοινωνία μέσω Διαδικτύου.

Είναι επίσης εύκολο στη χρήση με το Arduino. Αφού ολοκληρώσετε αυτό το μάθημα, θα αποκτήσετε τις βασικές γνώσεις ελέγχου οποιασδήποτε ηλεκτρικής συσκευής μέσω Διαδικτύου από οπουδήποτε στον κόσμο!

Εδώ θα χρησιμοποιήσουμε έναν μετατροπέα USB-σε-TTL για να προγραμματίσουμε το ESP8266 ESP-01. Και θα χρησιμοποιήσουμε για να αναπτύξουμε έναν διακομιστή ιστού για τηλεχειριστήριο LED.

Πως δουλεύει

Το ESP8266 μπορεί να ελεγχθεί από ένα τοπικό δίκτυο Wi-Fi ή από το Διαδίκτυο (μετά την προώθηση θύρας). Η μονάδα ESP-01 διαθέτει ακίδες GPIO που μπορούν να προγραμματιστούν ώστε να ενεργοποιούν ή να απενεργοποιούν μια λυχνία LED ή ρελέ μέσω Διαδικτύου. Η μονάδα μπορεί να προγραμματιστεί χρησιμοποιώντας έναν μετατροπέα Arduino USB-to-TTL μέσω σειριακών ακίδων (RX, TX).

Σύνδεση υλικού στο ESP8266 σας

Μπορούμε να χρησιμοποιήσουμε έναν μετατροπέα USB σε TTL ή να χρησιμοποιήσουμε το Arduino για να προγραμματίσουμε το ESP8266. Ακολουθούν τρεις μέθοδοι που μπορείτε να ακολουθήσετε για να φορτώσετε τον κώδικα στο ESP8266 σας - επιλέξτε αυτή που σας ταιριάζει καλύτερα. Ανατρέξτε στα διαγράμματα για κάθε επιλογή και διαμορφώστε τον εξοπλισμό σας ανάλογα.

1. Μετατροπέας USB-σε-TTL χρησιμοποιώντας υποδοχή DTR

Εάν χρησιμοποιείτε μετατροπέα USB σε TTL με έξοδο DTR, η λήψη θα γίνει ομαλά. Λάβετε υπόψη ότι η σειριακή οθόνη δεν θα λειτουργήσει όταν το κάνετε αυτό.

USB TTL → ESP8266 ESP-01
GND → GND
TX → RX
RX → TX
RTS → RST
DTR → GPIO0

2. Μετατροπέας USB σε TTL χωρίς έξοδο DTR

Για να συνδέσουμε έναν μετατροπέα USB σε TTL χωρίς pin DTR, πρέπει να χρησιμοποιήσουμε χειροκίνητο κιβώτιο ταχυτήτων. Για αυτό χρησιμοποιούμε δύο κουμπιά - δείτε το ακόλουθο διάγραμμα:

USB TTL → ESP8266 ESP-01
GND → GND
TX → RX
RX → TX
Κουμπί επαναφοράς → RST
Κουμπί Flash → GPIO0

Κατά τη λήψη του κώδικα, κάντε κλικ στο κουμπί "Λήψεις" (Flash). Κρατήστε πατημένο το κουμπί ενώ πατάτε το κουμπί Επαναφορά μία φορά. Τώρα μπορείτε να απελευθερώσετε το κουμπί Flash. Το ESP8266 βρίσκεται τώρα σε λειτουργία όπου μπορείτε να ανεβάσετε ένα σκίτσο.

3. Χρησιμοποιώντας το Arduino Uno για τη μεταφόρτωση κώδικα στο ESP8266

Μπορείτε να χρησιμοποιήσετε το ESP8266 ESP-01 για να εκτελέσετε τον κώδικα. Κατά τη λήψη του κώδικα, ακολουθήστε την ίδια διαδικασία όπως στο δεύτερο σημείο - κρατήστε πατημένο το κουμπί "Λήψη" ενώ πατάτε το reset μία φορά και, στη συνέχεια, αφήστε το κουμπί Flash.

ARDUINO → ESP8266 ESP-01
GND → GND
TX → TX
RX → RX
Κουμπί επαναφοράς → RST
Κουμπί φλας → GPIO0

Λήψη κωδικού ESP8266

Χρησιμοποιήστε οποιαδήποτε από τις παραπάνω μεθόδους και ανοίξτε το και, στη συνέχεια, επιλέξτε την πλακέτα ESP8266 από το μενού:

Εργαλεία → Πλακέτα → Γενική μονάδα ESP8266
(Εργαλεία → Πίνακας → Μονάδα ESP8266)

Σημείωση. Εάν δεν έχετε εγκαταστήσει και διαμορφώσει την πλακέτα ESP8266 Arduino, κάντε το ακολουθώντας τα παραπάνω βήματα σε αυτό το σεμινάριο. Τότε μπορείτε να προχωρήσετε.

Τώρα αντιγράψτε τον παρακάτω κώδικα στο Arduino IDE και κάντε κλικ στο κουμπί λήψης. Αλλάξτε το SSID σε τελεία Πρόσβαση Wi-Fiκαι αλλάξτε τον κωδικό πρόσβασης στον δικό σας Κωδικός πρόσβασης Wi-Fiκαι μεταγλωττίζουν.

#περιλαμβάνω const char* ssid = "YOUR_SSID";//πληκτρολογήστε το ssid const char* password = "YOUR_PASSWORD";//πληκτρολογήστε τον κωδικό πρόσβασής σας int ledPin = 2; // GPIO2 του ESP8266 WiFiServer server(80);//Service Port void setup() ( Serial.begin(115200); delay(10); pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); // Σύνδεση σε Δίκτυο WiFi Serial.println(); Serial.println(); Serial.print("Σύνδεση με "); Serial.println(ssid); WiFi.begin(ssid, κωδικός πρόσβασης); ενώ (WiFi.status() != WL_CONNECTED ) ( delay(500); Serial.print("."); ) Serial.println(""); Serial.println("WiFi συνδεδεμένο"); // Εκκίνηση του διακομιστή server.begin(); Serial.println( "Ο διακομιστής ξεκίνησε"); // Εκτύπωση της διεύθυνσης IP Serial.print("Χρησιμοποιήστε αυτήν τη διεύθυνση URL για να συνδεθείτε: "); Serial.print("http://"); Serial.print(WiFi.localIP()); Σειριακή .println("/"); ) void loop() ( // Ελέγξτε εάν ένας πελάτης έχει συνδεθεί WiFiClient client = server.available(); if (!client) ( return; ) // Περιμένετε έως ότου ο πελάτης στείλει κάποια δεδομένα Σειριακά .println("νέος πελάτης"); while(!client.available())( delay(1); ) // Διαβάστε την πρώτη γραμμή του αιτήματος String request = client.readStringUntil("\r"); Serial.println (αίτημα); client.flush(); // Αντιστοιχίστε την τιμή int του αιτήματος = LOW; if (request.indexOf("/LED=ON") != -1) ( digitalWrite(ledPin, HIGH); value = HIGH; ) if (request.indexOf("/LED=OFF") != -1)( digitalWrite(ledPin, LOW); value = LOW; ) //Ρύθμιση ledPin σύμφωνα με το αίτημα //digitalWrite(ledPin, value); // Επιστρέψτε την απάντηση client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); // μην ξεχνάτε αυτό το one client.println(""); client.println(" "); client.print("Led pin είναι τώρα: "); if(value == HIGH) (client.print("On"); ) else (client.print("Off"); ) client.println( "

"); client.println("Κάντε κλικ εδώανάψτε το LED στον ακροδέκτη 2
"); client.println("Κάντε κλικ εδώ απενεργοποιήστε το LED στον ακροδέκτη 2
"); client.println(""); καθυστέρηση (1); Serial.println ("Ο πελάτης αποσυνδέθηκε"); Serial.println(""); )

Ανοίξτε τη σειριακή οθόνη και ανοίξτε τη διεύθυνση URL που εμφανίζεται στη σειριακή οθόνη μέσω του προγράμματος περιήγησής σας. Συνδέστε το GPIO 2 από το ESP8266 στη μακρύτερη ακίδα LED. Τώρα μπορείτε να ελέγχετε το LED σας από απόσταση μέσω Διαδικτύου!

Αφαιρέστε τυχόν καλώδια που χρειάζονταν για τη λήψη του κώδικα. Η μονάδα LM1117 χρησιμοποιείται για την παροχή ρυθμιζόμενης εξόδου 3,3 V. Αυτό θα σας επιτρέψει να κάνετε τη μονάδα ESP8266 ή ESP-01 αυτόνομη.

Σύνδεση του ESP8266 στο Internet

Προς το παρόν, η μονάδα ESP8266 είναι διαθέσιμη μόνο μέσω τοπικό δίκτυο Wi-Fi. Για να διαχειριστείτε συσκευές από το Διαδίκτυο, πρέπει να εκτελέσετε προώθηση θυρών στο δρομολογητή σας.

Για να το κάνετε αυτό, βρείτε τη διεύθυνση IP του συστήματός σας είτε χρησιμοποιώντας την εντολή "ifconfig" στο τερματικό σας είτε μεταβείτε στο whatsmyip.org. Αντιγράψτε τη διεύθυνση IP σας. Τώρα ανοίξτε τη ρύθμιση του δρομολογητή σας και μεταβείτε στις ρυθμίσεις προώθησης. Εισαγάγετε τα στοιχεία για τη «Θύρα εξυπηρέτησης» και τη «Διεύθυνση IP». Η θύρα υπηρεσίας είναι ο αριθμός θύρας από τον κωδικό Arduino (θύρα υπηρεσίας: 80):

Διακομιστής WiFiServer(80);//Θύρα υπηρεσίας

Η διεύθυνση IP είναι αυτή που καθορίσατε νωρίτερα. Αφήστε τις υπόλοιπες ρυθμίσεις ως προεπιλεγμένες. Τώρα μεταβείτε στο πρόγραμμα περιήγησής σας και πληκτρολογήστε τη διεύθυνση: xxx.xxx.xx.xx: 80. Θα πρέπει να ανοίξει μια σελίδα για να ελέγξετε το LED.