- Τι είναι το ESP8266;
- Βασικά στοιχεία της θεωρίας WiFi:
- Τύποι προγραμματισμού με ESP8266:
- Υλικό για προγραμματισμό της ενότητας ESP8266:
- Απαιτούμενα υλικά:
- Επεξήγηση κυκλώματος:
- Δημιουργία συμβουλίου για το πρόγραμμα ESP8266
Το Διαδίκτυο των πραγμάτων και ο οικιακός αυτοματισμός υπήρξε πραγματικά ένα υποθετικό θέμα τις τελευταίες ημέρες. Χτίζοντας κάτι από μόνοι μας που μπορεί να επικοινωνήσει στον Παγκόσμιο Ιστό και να έχει πρόσβαση από οπουδήποτε στον κόσμο, πραγματικά ακούγεται δροσερό, έτσι δεν είναι;
Αλλά περίμενε!!! Ακούγεται επίσης περίπλοκο ???….
Το έκανα και για μένα, νόμιζα ότι θα χρειαζόταν τεράστιος χρόνος και δεξιότητα για την κατασκευή πραγμάτων που μπορούν να αλληλεπιδράσουν με το Διαδίκτυο. ΟΧΙ, έκανα εντελώς λάθος, χάρη σε αυτήν την φανταστική ενότητα που ονομάζεται ESP8266 από την Espressif Systems. Τώρα, μπορείτε εύκολα να ανοίξετε τις πόρτες σας για έργα IoT με τη βοήθεια αυτής της ενότητας. Αυτή η μονάδα χαμηλού κόστους και μικρού μεγέθους μπορεί να κάνει θαύματα και είναι πραγματικά απλή και εύκολη στη χρήση, με την προϋπόθεση ότι ακολουθούμε τα σωστά βήματα.
Αυτό το σεμινάριο στοχεύει να σας παρουσιάσει σε αυτήν την ενότητα ESP8266-01 και να σας βοηθήσει να ξεκινήσετε με αυτό. Ίσως, έχετε ήδη φέρει τη μονάδα σας και έχετε κολλήσει ενώ προσπαθείτε να τη χρησιμοποιήσετε. Τότε, δεν είστε μόνοι, μην ανησυχείτε, πολλοί άνθρωποι δυσκολεύονται να ξεκινήσουν με την ενότητα, επειδή δεν υπάρχει κατάλληλη καθοδήγηση ή τεκμηρίωση για αυτήν την ενότητα. Αυτός είναι ο λόγος για την πραγματοποίηση αυτού του σεμιναρίου. Ακολουθήστε τις οδηγίες εδώ και θα πρέπει να μπορείτε να θέσετε σε λειτουργία τη μονάδα ESP8266-01 σε χρόνο μηδέν, εδώ θα χρησιμοποιήσουμε το FTDI USB to TTL Serial Adapter Module για τον προγραμματισμό του ESP8266. Ελέγξτε το λεπτομερές βίντεο στο τέλος του Οδηγού.
Πριν μπείτε στο θέμα ας καλύψουμε ορισμένα βασικά στοιχεία σχετικά με την ενότητα ESP8266-01.
Τι είναι το ESP8266;
Οι περισσότεροι άνθρωποι καλούν το ESP8266 ως λειτουργική μονάδα WIFI, αλλά στην πραγματικότητα είναι μικροελεγκτής. Το ESP8266 είναι το όνομα του μικροελεγκτή που αναπτύχθηκε από την Espressif Systems και είναι μια εταιρεία με έδρα τη Σαγκάη. Αυτός ο μικροελεγκτής έχει τη δυνατότητα να εκτελεί δραστηριότητες που σχετίζονται με το WIFI και ως εκ τούτου χρησιμοποιείται ευρέως ως λειτουργική μονάδα WIFI.
Υπάρχουν πολλοί τύποι λειτουργικών μονάδων ESP8266 που κυμαίνονται από ESP8266-01 έως ESP8266-12. Αυτό που χρησιμοποιούμε στο σεμινάριο είναι το ESP8266-01 επειδή είναι το φθηνότερο και εύκολα διαθέσιμο. Ωστόσο, όλες οι μονάδες ESP έχουν μόνο έναν τύπο επεξεργαστή ESP, αυτό που διαφέρει είναι μόνο ο τύπος του breakout bard που χρησιμοποιείται. Ο πίνακας ξεμπλοκαρίσματος του ESP8266-01 θα έχει μόνο 2 καρφίτσες GPIO ενώ σε άλλους πίνακες θα είναι υψηλότερος.
Η πλήρης προδιαγραφή της ενότητας δίνεται στον παρακάτω πίνακα
Τάση |
3.3V |
Τωρινή κατανάλωση |
10uA-170mA |
Μέγιστη κατανάλωση ρεύματος κατά τη διάρκεια της αναλαμπής |
800mA |
Μνήμη Flash |
16MB (512K κανονικό) |
Επεξεργαστής |
Tensilica L106 32 bit |
Ταχύτητα επεξεργαστή |
80-160MHz |
ΕΜΒΟΛΟ |
32Κ + 80Κ |
GPIO |
17 (αλλά τα περισσότερα είναι πολυπλέγματα) |
Αναλογικός σε ψηφιακός μετατροπέας |
1 (10-bit) |
Μέγιστες συνδέσεις TCP |
5 |
Εντάξει, μερικά πράγματα που θα μπορούσαν να σας εκπλήξουν σχετικά με τις προδιαγραφές είναι ότι, ΝΑΙ η μονάδα ESP8266 συνοδεύεται από ADC Converter και καταναλώνει πολύ υψηλό ρεύμα 0,8Α κατά τη διάρκεια της αναβοσβήνει της συσκευής σας.
Ελέγξτε επίσης τα διάφορα ενδιαφέροντα έργα IoT με βάση το ESP8266.
Βασικά στοιχεία της θεωρίας WiFi:
Transfer Control Protocol (TCP), Internet Protocol (IP), User Datagram Protocol (UDP), Access Point (AP), Station (Sta), Service Set Identifier (SSID), Application Programming Interface (API), Webserver…..
Σας έχουν νόημα όλοι οι παραπάνω όροι;
Αν ναι. Στη συνέχεια, BINGO μπορείτε να μεταβείτε σε αυτό το μέρος και να προχωρήσετε στην επόμενη ενότητα.
Εάν όχι. Τότε πρέπει να είστε ένας από τους πολλούς μαθητές ηλεκτρικού ρεύματος που μόλις αναβοσβήνουν μέσω των περισσότερων αυτών όρων όπως έκανα όταν ήμουν για πρώτη φορά σε όλα αυτά τα πράγματα. Λοιπόν, ας τρέξουμε γρήγορα όλους αυτούς τους όρους γιατί μόνο τότε θα μπορούσαμε να κάνουμε την είσοδό μας στον κόσμο του IOT.
Πρωτόκολλο ελέγχου μεταφοράς (TCP):
Οι περισσότεροι από εμάς θα γνωρίζουν τι σημαίνει αυτό. Ναι, αυτοί είναι το σύνολο κανόνων βάσει των οποίων λειτουργεί το Διαδίκτυο. Δεδομένου ότι το ESP8266 έχει τη δυνατότητα να ρυθμίζει συνδέσεις WIFI. Σε υψηλό επίπεδο το Wi-Fi είναι η δυνατότητα συμμετοχής στις συνδέσεις TCP / IP μέσω ασύρματης σύνδεσης. Μπορείτε να κάνετε το ESP σας να λειτουργεί με το πρωτόκολλο TCP / IP ή το πρωτόκολλο UDP.
Πρωτόκολλο Datagram χρήστη (UDP):
Το UDP είναι επίσης ένας άλλος τύπος πρωτοκόλλου Διαδικτύου. Αυτός ο τύπος επικοινωνίας είναι ταχύτερος από το TCP, αλλά είναι λιγότερο ακριβής. Ο λόγος είναι ότι το TCP χρησιμοποιεί μια αναγνώριση κατά την επικοινωνία του, αλλά το UDP δεν το κάνει. Το TCP χρησιμοποιείται κυρίως σε δίκτυα όπου υπάρχει απαίτηση υψηλής αξιοπιστίας. Το UDP χρησιμοποιείται σε μέρη όπου η ταχύτητα έχει υψηλή προτεραιότητα από την αξιοπιστία. Για παράδειγμα, το UDP χρησιμοποιείται σε τηλεδιάσκεψη, γιατί ακόμη και αν δεν μεταδίδονται ορισμένα pixel, αυτό δεν θα επηρεάσει τόσο πολύ την ποιότητα του βίντεο, αλλά η ταχύτητα είναι πολύ σημαντική.
Τα περισσότερα έργα και κωδικοί ESP8266 λειτουργούν γύρω από το TCP / IP, το UDP θα ενοχληθεί λιγότερο.
Σημείο πρόσβασης (AP) και σταθμός (STA):
Μόλις αρχίσετε να εργάζεστε με την ενότητα ESP, θα συναντούσατε συχνά αυτούς τους δύο όρους. Ας πούμε ότι εσείς και ο φίλος σας θα θέλατε να σερφάρετε στο Διαδίκτυο στα έξυπνα τηλέφωνά σας, αλλά επειδή δεν διαθέτει ενεργή σύνδεση στο Διαδίκτυο, αποφασίζετε να ενεργοποιήσετε το hotspot και ο φίλος σας συνδέεται με αυτό. Εδώ το τηλέφωνό σας που προμηθεύεται τη σύνδεση στο Διαδίκτυο είναι το Σημείο Πρόσβασης (AP) και το τηλέφωνο του φίλου σας που χρησιμοποιεί το Διαδίκτυο ονομάζεται Σταθμός (STA).
Η μονάδα ESP8266 μπορεί να χρησιμοποιηθεί σε τρεις λειτουργίες, λειτουργία AP, λειτουργία STA ή και στη λειτουργία STA και AP (συνδυασμένη).
Αναγνωριστικό συνόλου υπηρεσιών (SSID):
Αυτός είναι αρκετά απλός όρος. Σχεδόν όλοι μας έχουμε χρησιμοποιήσει WIFI. Το όνομα του δικτύου Wi-Fi ονομάζεται SSID του. Όταν έχουμε πολλά σημεία πρόσβασης για να συνδεθεί ένας σταθμός, ο σταθμός πρέπει να γνωρίζει σε ποιο σημείο πρόσβασης θα πρέπει να συνδεθεί, επομένως σε κάθε σημείο πρόσβασης (AP) έχει μια ταυτότητα που ονομάζεται SSID.
Διεπαφή προγραμματισμού εφαρμογών (API):
Για να το θέσουμε απλό, ένα API είναι ένας αγγελιοφόρος που λαμβάνει τα αιτήματά σας, το επεξεργάζεται και επιστρέφει στο σύστημά σας το επιθυμητό αποτέλεσμα. Οι περισσότερες από τις δραστηριότητες που κάνουμε στο Διαδίκτυο χρησιμοποιούν API, όπως όταν κάνετε κράτηση πτήσης, πραγματοποιείτε διαδικτυακή αγορά κ.λπ. Κάθε ιστότοπος σας συνδέει με ένα API όπου μέρος της εργασίας, όπως εγγραφή, πληρωμή κ.λπ. γίνεται για εσάς εκεί.
Το ESP8266 χρησιμοποιεί API για να μιλήσει στον κόσμο του Διαδικτύου. Για παράδειγμα, εάν θέλει να γνωρίζει την ώρα, το κλίμα ή οτιδήποτε άλλο θα πρέπει να ζητήσει με τη μορφή API στον αντίστοιχο ιστότοπο. Αυτός ο ιστότοπος θα λάβει το αίτημα και θα δώσει το επιθυμητό αποτέλεσμα στην ενότητα ESP.
Διακομιστής Ιστού:
Ο Διακομιστής Ιστού είναι κάτι που είναι υπεύθυνο για την εμφάνιση των περιεχομένων μιας ιστοσελίδας. Όλα τα περιεχόμενα του συγκεκριμένου ιστότοπου θα φορτωθούν στον διακομιστή ιστού του. Υπάρχουν ειδικοί υπολογιστές των οποίων η δουλειά είναι να λειτουργεί μόνο ως διακομιστής Ιστού. Μπορούμε επίσης να προγραμματίσουμε το ESP8266 για να λειτουργεί ως διακομιστής ιστού και να συνδεόμαστε σε αυτό από οπουδήποτε στον κόσμο.
Εντάξει, αυτό είναι αρκετό για να ξεκινήσουμε. Τώρα, ας πάρουμε τα χέρια μας στο υλικό.
Τύποι προγραμματισμού με ESP8266:
Υπάρχουν δύο τρόποι εργασίας με τη μονάδα ESP8266. Αυτό το σεμινάριο θα σας βοηθήσει να ξεκινήσετε και με τα δύο. Ένας τρόπος είναι με τη χρήση των εντολών AT. Ο άλλος τρόπος είναι χρησιμοποιώντας το Arduino IDE. Ας καταλάβουμε τι σημαίνει.
Όλες οι μονάδες ESP8266 που αποστέλλονται από το εργοστάσιο θα έχουν φορτωμένο ένα προεπιλεγμένο υλικολογισμικό (SDK + API). Αυτό το υλικολογισμικό θα σας βοηθήσει να προγραμματίσετε τη μονάδα ESP8266 μέσω εντολών AT.
Ο άλλος τρόπος είναι να προγραμματίσετε άμεσα την ενότητα ESP8266 χρησιμοποιώντας το Arduino IDE (δεν απαιτείται πίνακας) και τις βιβλιοθήκες του. Όλα τα έργα μπορούν να γίνουν και στις δύο μεθόδους. Ωστόσο, εάν αρχίσετε να χρησιμοποιείτε το Arduino IDE για τον προγραμματισμό του ESP8266, ενδέχεται να μην μπορείτε να χρησιμοποιήσετε εντολές AT επειδή το προεπιλεγμένο SDK ενδέχεται να έχει καταστραφεί. Σε αυτήν την περίπτωση πρέπει να αναβοσβήσετε το ESP σας με τις προεπιλεγμένες ρυθμίσεις. Θα το καλύψουμε σε ένα άλλο σεμινάριο.
Υλικό για προγραμματισμό της ενότητας ESP8266:
Το ESP8266 είναι μια μονάδα τερματικού 8. Ο ακροδέκτης από το ίδιο φαίνεται παρακάτω.
Δυστυχώς, αυτή η ενότητα δεν είναι φιλική προς το breadboard και ως εκ τούτου δεν μπορούμε να την τοποθετήσουμε απευθείας στο breadboard μας. Επίσης, σε αντίθεση με το Arduino, δεν διαθέτει ενσωματωμένο πρόγραμμα οδήγησης USB σε Serial. Ως εκ τούτου, πρέπει να χρησιμοποιήσουμε το "FTDI USB to TTL Serial Adapter Module" για να επικοινωνήσουμε μαζί του. Βεβαιωθείτε ότι η πλακέτα FTDI μπορεί να λειτουργεί και σε 3.3V. αυτό που χρησιμοποιούμε σε αυτό το σεμινάριο φαίνεται παρακάτω.
Τώρα, όπως γνωρίζουμε, πρέπει να ενεργοποιήσουμε το ESP8266 με 3.3V. Ωστόσο, η τρέχουσα κατανάλωση είναι 0,8A, οπότε ενδέχεται να μην λειτουργεί όπως αναμένεται εάν τροφοδοτείται από τον πίνακα ξεμπλοκαρίσματος FTDI. Ως εκ τούτου, πρέπει να χτίσουμε το δικό μας κύκλωμα τροφοδοσίας. Εδώ χρησιμοποιήσαμε το LM317 για το σκοπό τροφοδοσίας. οι λεπτομέρειες για την κατασκευή του πλήρους υλικού δίνονται σε επόμενες ενότητες.
Απαιτούμενα υλικά:
- Πίνακας Perf
- ESP8266-01
- Πίνακας ξεμπλοκαρίσματος FTDI
- LM317
- Πυκνωτής 0.1uf
- Πυκνωτής 10uf
- Βαρέλι Τζακ
- Bergstik Άνδρας και γυναίκα
- Πλήκτρο
- Σύνδεση καλωδίων
- Προσαρμογέας 12V για τροφοδοσία της πλακέτας.
Επεξήγηση κυκλώματος:
Τα Σχηματικά Σχέδια παρουσιάζονται παρακάτω
Κάποιοι μπορεί να έχουν προσπαθήσει να τροφοδοτήσουν το ESP απευθείας από το FTDI και να το λειτουργήσουν, αλλά οι παρακάτω είναι οι λόγοι για να φτιάξετε το δικό σας πίνακα με λίγα επιπλέον στοιχεία:
- Μόνο λίγες πλακέτες FTDI μπορούν να παρέχουν αρκετό ρεύμα για τη μονάδα ESP. Λίγες μονάδες ESP ενδέχεται να καταναλώνουν υψηλό ρεύμα από τις άλλες κατά τη διάρκεια της αναλαμπής. Ως εκ τούτου, είναι πάντα ασφαλές να έχετε τη δική σας πηγή τροφοδοσίας και θα είναι ευκολότερο να ενσωματώσετε το κύκλωμα τροφοδοσίας στο Dot Board αντί για το breadboard.
- Πρέπει πάντα να επαναφέρουμε τη μονάδα ESP πριν ανεβάσετε τον κωδικό, η κατασκευή του δικού μας πίνακα θα μας βοηθήσει να επαναφέρουμε εύκολα τη μονάδα. Χρησιμοποιήσαμε το κουμπί Πιέστε για επαναφορά του ESP8266.
- Ο ακροδέκτης GPIO0 πρέπει να γειωθεί κατά τον προγραμματισμό χρησιμοποιώντας το Arduino και πρέπει να αφεθεί ελεύθερος κατά τη χρήση εντολών AT, αυτό μπορεί εύκολα να αλλάξει εάν κατασκευάσουμε τη δική μας πλακέτα. Έχουμε χρησιμοποιήσει ένα Jumper για εναλλαγή μεταξύ της λειτουργίας εντολών AT και της λειτουργίας προγραμματισμού Arduino IDE.
- Όλος ο προγραμματισμός γίνεται με σειριακή επικοινωνία , εάν χρησιμοποιείτε ένα breadboard κάποια χαλαρά τερματικά ενδέχεται να προκαλέσουν σφάλμα στη μέση και να μας αναγκάσουν να αναβοσβήσουμε τη μονάδα για να δουλέψουμε ξανά.
Τούτου λεχθέντος, μπορείτε να επιλέξετε μεταξύ της χρήσης ενός breadboard και της δημιουργίας του δικού σας πίνακα για τον προγραμματισμό της μονάδας. Εάν εξακολουθείτε να θέλετε να χρησιμοποιήσετε το breadboard, το ίδιο κύκλωμα που φαίνεται παραπάνω μπορεί να δημιουργηθεί χρησιμοποιώντας το breadboard σας. Μόνο η εμφάνιση θα είναι διαφορετική, όλες οι άλλες οδηγίες σε αυτό το σεμινάριο θα ισχύουν το ίδιο.
Δημιουργία συμβουλίου για το πρόγραμμα ESP8266
Εδώ λοιπόν χτίζουμε την πλακέτα για να προγραμματίσουμε τη μονάδα ESP8266 που έχει το δικό της κύκλωμα τροφοδοσίας για να τροφοδοτήσει το ESP8266.
Όπως είπαμε, η ενότητα μας θα απαιτεί περίπου 800mA κατά τον προγραμματισμό της. Ως εκ τούτου, έχουμε κατασκευάσει τη δική μας μονάδα ισχύος χρησιμοποιώντας έναν ρυθμιστή μεταβλητής τάσης LM317, καθώς το ρεύμα πηγής του LM317 είναι σχεδόν 1,2A. Η τάση εισόδου του LM317 θα είναι 12V η οποία θα δοθεί χρησιμοποιώντας έναν προσαρμογέα στήριξης τοίχου 12V 2A. Η έξοδος του LM317 θα ρυθμίζεται συνεχώς στα 3.3V χρησιμοποιώντας τις αντιστάσεις 220ohm και 360ohm. Ελέγξτε επίσης το κύκλωμα φορτιστή μπαταρίας χρησιμοποιώντας το LM317 για να μάθετε περισσότερα σχετικά με το LM317.
Οι τύποι για τον υπολογισμό της τάσης εξόδου του LM317 δίνονται παρακάτω:
Vout = 1,25 * (1+ (R2 / R1))
Όπου, το R1 είναι 220ohm και το R2 είναι 360ohm.
Η μονάδα ESP8266 συνδέεται σύμφωνα με τις καρφίτσες που εμφανίζονται στον παρακάτω πίνακα.
Pin No. |
Όνομα pin ESP |
Συνδεδεμένος με |
1 |
Εδαφος |
Γείωση της μονάδας FTDI |
2 |
GPIO2 |
Αριστερά ελεύθερα ή συνδεδεμένα στο Berg stick για μελλοντική χρήση |
3 |
GPIO0 |
Εναλλαγή σε εναλλαγή μεταξύ των λειτουργιών προγραμματισμού |
4 |
Rx |
Tx της ενότητας FTDI |
5 |
Τχ |
Rx της ενότητας FTDI |
6 |
CH_PH |
3.3V από LM317 |
7 |
Επαναφορά |
Πλήκτρο για επαναφορά της μονάδας |
8 |
Vcc |
3.3V από LM317 |
Για εύκολη εναλλαγή μεταξύ της λειτουργίας εντολών AT και της λειτουργίας προγραμματισμού Arduino έχω τοποθετήσει έναν διακόπτη (jumper) που θα τραβήξει το GPIO 0 στη γείωση όταν χρησιμοποιώ το Arduino IDE και θα το αφήσω να αιωρείται όταν χρησιμοποιώ τις εντολές AT.
Υπάρχει ένα κουμπί που, όταν πατηθεί, θα επαναφέρει τη μονάδα ESP. Αυτό γίνεται απλά συνδέοντας τον πείρο RST της μονάδας ESP με τη ράγα γείωσης μέσω του κουμπιού. Κάθε φορά πριν προγραμματίσουμε τη μονάδα ESP πρέπει να την επαναφέρουμε.
Μόλις συναρμολογήσετε το κύκλωμα, θα πρέπει να φαίνεται κάπως έτσι παρακάτω.
Έχω χρησιμοποιήσει έναν πίνακα Perf, αλλά μπορείτε επίσης να χρησιμοποιήσετε ένα breadboard αν σας ενδιαφέρει (όπως συζητήθηκε παραπάνω). Η πλήρης κατασκευή και εξήγηση φαίνεται στο παρακάτω βίντεο.
Μόλις γίνει με τις συνδέσεις. Ενεργοποιήστε την πλακέτα χωρίς τις πλακέτες ESP & FTDI και ελέγξτε αν έχουμε 3.3V σωστά στους ακροδέκτες Vcc και Ground της θέσης των μονάδων ESP. Τώρα βεβαιωθείτε ότι η πλακέτα FTDI βρίσκεται σε λειτουργία 3.3V και συνδέστε τις μονάδες FTDI και ESP στην πλακέτα σας.
Ενεργοποιήστε τον προσαρμογέα σας και συνδέστε τον στην πλακέτα σας, η μονάδα ESP θα ανάψει με κόκκινο χρώμα.
Στη συνέχεια, συνδέστε την πλακέτα FTDI στον υπολογιστή σας χρησιμοποιώντας ένα καλώδιο mini-USB σε USB και μεταβείτε στη Διαχείριση συσκευών στον υπολογιστή σας και θα πρέπει να βρείτε την πλακέτα FTDI συνδεδεμένη στη θύρα COM, όπως φαίνεται παρακάτω:
Τώρα ήρθε η ώρα να προγραμματίσουμε το ESP8266 module μας. Μπορείτε να ξεκινήσετε χρησιμοποιώντας τις εντολές AT και μετά να μεταβείτε στη χρήση του Arduino IDE. Μην ξεχάσετε να δείτε τα άλλα Έργα με βάση το ESP8266.