Σε αυτό το σεμινάριο ας μάθουμε πώς να στέλνουμε μηνύματα ηλεκτρονικού ταχυδρομείου από τον μικροελεγκτή PIC χρησιμοποιώντας τη διάσημη μονάδα WiFi το ESP8266. Αυτό το σεμινάριο χρησιμοποιεί μεταγλωττιστή PIC16F877A IC και MPLABX και XC8 για προγραμματισμό.
Στο τέλος αυτού του σεμιναρίου θα μπορείτε να στείλετε e-mail από οποιοδήποτε κανονικό αναγνωριστικό e-mail όπως το Gmail, το yahoo κ.λπ. σε οποιοδήποτε άλλο αναγνωριστικό e-mail. Ως εκ τούτου, αυτό το σεμινάριο προϋποθέτει ότι έχετε κάποιες βασικές γνώσεις σχετικά με τις μονάδες ESP8266-01 και τους μικροελεγκτές PIC. Εάν όχι, τα ακόλουθα σεμινάρια θα σας βοηθήσουν
- Ξεκινώντας με ESP8266
- Διασύνδεση ESP8266 με PIC
Ας ξεκινήσουμε λοιπόν…
Προετοιμασία μαζί σας Αναγνωριστικό e-mail:
Μόλις αποφασίσετε από ποιο αναγνωριστικό αλληλογραφίας θέλετε να στείλετε τα μηνύματα ηλεκτρονικού ταχυδρομείου, ακολουθήστε τα παρακάτω βήματα
Βήμα 1: Επισκεφθείτε τη διεύθυνση https://www.smtp2go.com/ και εγγραφείτε ως νέος χρήστης. Εισαγάγετε το όνομά σας, τη διεύθυνση ηλεκτρονικού ταχυδρομείου και τον κωδικό πρόσβασης του αναγνωριστικού ηλεκτρονικού ταχυδρομείου από το οποίο θέλετε να στείλετε το μήνυμα.
Αυτό το σεμινάριο χρησιμοποιεί το αναγνωριστικό αλληλογραφίας: aswinthcd @ gmail.com και τον κωδικό πρόσβασης: circuitdigest.
Βήμα 2: Κάντε κλικ στην εγγραφή και θα σας αποσταλεί ένα μήνυμα επαλήθευσης στο αναγνωριστικό αλληλογραφίας που έχετε εισάγει. Σε αυτήν την περίπτωση είναι aswinthcd @ gmail.com. Ανοίξτε την αλληλογραφία και κάντε κλικ στο "ΕΝΕΡΓΟΠΟΙΗΣΗ ΛΟΓΑΡΙΑΣΜΟΥ"
Βήμα 3: Μπορεί να ζητήσει ξανά έναν κωδικό πρόσβασης, εάν σας ζητηθεί εισαγάγετε τον προηγούμενο κωδικό πρόσβασης. Σε αυτήν την περίπτωση είναι «κυκλικό κύκλωμα». Στη συνέχεια, θα συνδεθείτε στον ιστότοπο SMPT2GO. Αυτό είναι τώρα η διεύθυνση E-mail σας είναι έτοιμη να στείλει μηνύματα χρησιμοποιώντας το ESP8266 Module.
Βήμα 4: Το τελευταίο βήμα είναι να κωδικοποιήσετε το αναγνωριστικό ηλεκτρονικού ταχυδρομείου και τον κωδικό πρόσβασης σε μορφή βάσης 64 χρησιμοποιώντας αυτόν τον ιστότοπο https://www.base64encode.org/. Θα το χρησιμοποιήσουμε στο πρόγραμμα PIC
Σε αυτήν την περίπτωση οι κωδικοποιημένες τιμές θα φαίνονται όπως φαίνεται στον παρακάτω πίνακα.
Παράμετρος |
Κανονική μορφή |
Κωδικοποιείται στη βάση 64 |
Αναγνωριστικό αλληλογραφίας |
aswinthcd @ gmail.com |
YXN3aW50aGNkQGdtYWlsLmNvbQ == |
Κωδικός πρόσβασης |
κύκλωμα |
Y2lyY3VpdGRpZ2VzdA == |
Προετοιμασία του υλικού σας:
Το πλήρες σχήμα του έργου φαίνεται παρακάτω.
Η οθόνη LCD χρησιμοποιείται εδώ για σκοπούς εντοπισμού σφαλμάτων. Δεν είναι υποχρεωτικό να το συνδέσετε. Το πρόγραμμα θα λειτουργήσει καλά ακόμα και χωρίς την οθόνη LCD. Αν θέλετε να μάθετε περισσότερα σχετικά με τα σχήματα, επισκεφθείτε αυτό το σεμινάριο. (Διασύνδεση PIC με ESP).
Μπορείτε απλά να συναρμολογήσετε αυτό το κύκλωμα σε ένα breadboard και μετά να προχωρήσετε στον προγραμματισμό.
Προγραμματισμός του PIC σας για αποστολή E-mail:
Για να στείλετε ένα E-mail από το ESP8266 πρέπει να σταλεί μια ακολουθία εντολών AT στη μονάδα ESP. Για να στείλετε ένα E-mail από το ESP8266 πρέπει να ακολουθήσετε τα ακόλουθα βήματα.
- Ρυθμίστε τη μονάδα σε λειτουργία AP + STA (Σημείο πρόσβασης και σταθμός)
- Συνδεθείτε σε ένα σημείο πρόσβασης για να αποκτήσετε σύνδεση στο Διαδίκτυο
- Ενεργοποίηση πολλαπλών συνδέσεων
- Ξεκινήστε έναν διακομιστή σε οποιαδήποτε συγκεκριμένη θύρα
- Δημιουργήστε μια σύνδεση TCP με τον ιστότοπο SMPT2GO
- Μεταβείτε στην ενότητα Σύνδεση του ιστότοπου
- Εισαγάγετε το αναγνωριστικό e-mail και τον κωδικό πρόσβασης σε μορφή base64
- Εισαγάγετε από το αναγνωριστικό αλληλογραφίας
- Εισαγάγετε το αναγνωριστικό αλληλογραφίας
- Εισαγάγετε το Θέμα της αλληλογραφίας
- Εισαγάγετε το σώμα του ταχυδρομείου
- Αναφέρετε το τέλος της αλληλογραφίας
- Στείλτε το e-mail
- Κλείστε τη σύνδεση TCP
Είναι λίγο χρονοβόρα και κουραστική διαδικασία, αλλά μην ανησυχείτε. Έχω απλοποιήσει τη διαδικασία δημιουργώντας ένα αρχείο κεφαλίδας και μπορείτε να το χρησιμοποιήσετε απευθείας καλώντας κάποιες λειτουργίες (εξηγούνται παρακάτω) που καθιστούν αυτή την εργασία πολύ εύκολη. Μπορείτε να κατεβάσετε τον πλήρη κώδικα μαζί με το αρχείο κεφαλίδας από εδώ.
Σημείωση: Εάν χρησιμοποιείτε τον κωδικό σε ένα νέο έργο, βεβαιωθείτε ότι έχετε κατεβάσει το αρχείο κεφαλίδας και το προσθέσετε στο έργο σας.
Έχω εξηγήσει μερικά σημαντικά μέρη του κώδικα παρακάτω, τα άλλα μέρη είναι αυτονόητα. Αλλά αν έχετε αμφιβολίες, μπορείτε να χρησιμοποιήσετε την ενότητα σχολίων.
/ * Ελέγξτε εάν η επικοινωνία ESP_PIC είναι επιτυχής * / κάντε το {Lcd_Set_Cursor (1,1). Lcd_Print_String ("Το ESP δεν βρέθηκε"); } ενώ (! esp8266_isStarted ()); // περιμένετε μέχρι να στείλετε ξανά το ESP "OK" Lcd_Set_Cursor (1,1); Lcd_Print_String ("Το ESP είναι συνδεδεμένο"); __delay_ms (1500); Lcd_Clear (); / * Ναι, η επικοινωνία ESP είναι επιτυχής
Αυτό το μέρος του κώδικα χρησιμοποιείται για να ελέγξει εάν υπάρχει σωστή επικοινωνία μεταξύ του PIC και του ESP8266. Μόνο εάν και οι δύο μπορούσαν να στείλουν και να λάβουν δεδομένα μέσω του USART, το πρόγραμμα θα προχωρήσει στο επόμενο βήμα.
esp8266_mode (3);
Αυτή η λειτουργία θα ρυθμίσει το ESP8266 στη λειτουργία 3. Αυτό σημαίνει ότι η μονάδα μπορεί τώρα να λειτουργεί ως σημείο πρόσβασης και επίσης ως διακομιστής.
esp8266_connect ("σπίτι BPAS", "cracksun");
Αυτή η λειτουργία χρησιμοποιείται για τη σύνδεση της μονάδας ESP8266 με το Wifi Router. Σε αυτήν την περίπτωση, το "BPAS home" είναι το όνομα του σήματος Wifi και το "cracksun" είναι ο κωδικός μου. Πρέπει να χρησιμοποιήσετε τις δικές σας λεπτομέρειες σήματος Wifi.
_esp8266_enale_MUX (); // Ενεργοποίηση πολλαπλών συνδέσεων _esp8266_create_server (); // Δημιουργήστε έναν διακομιστή στη θύρα 80
Αυτές οι δύο λειτουργίες χρησιμοποιούνται για την ενεργοποίηση πολλαπλών συνδέσεων και τη δημιουργία διακομιστή στη θύρα 80.
_esp8266_connect_SMPT2GO ();
Τώρα, χρησιμοποιώντας αυτήν τη λειτουργία μπορούμε να δημιουργήσουμε μια σύνδεση TCP με SMPT2GO. Μόλις δημιουργηθεί η σύνδεση, αυτή η λειτουργία μετακινείται επίσης στη σελίδα σύνδεσης του ιστότοπου.
_esp8266_login_mail ("YXN3aW50aGNkQGdtYWlsLmNvbQ ==", "Y2lyY3VpdGRpZ2VzdA ==");
Χρησιμοποιήστε αυτήν τη λειτουργία για να εισαγάγετε το αναγνωριστικό email και τον κωδικό πρόσβασής σας σε μορφή βάσης 64. Όπως μπορείτε να δείτε, αυτές οι κωδικοποιημένες τιμές είναι ίδιες με αυτές που εμφανίζονται στον παραπάνω πίνακα. Οι κωδικοποιημένες τιμές σας θα ποικίλλουν ανάλογα με το αναγνωριστικό και τον κωδικό πρόσβασής σας.
_esp8266_mail_sendID ("aswinthcd @ gmail.com");
Αυτή η συνάρτηση χρησιμοποιείται για τον καθορισμό του ονόματος του αναγνωριστικού αποστολέα. Σε αυτό το σεμινάριο στέλνω την αλληλογραφία χρησιμοποιώντας το αναγνωριστικό Gmail aswinthcd @ gmail.com και ως εκ τούτου το έχω περάσει ως παράμετρος.
_esp8266_mail_recID ("mailtoaswinth @ gmail.com");
Αυτή η λειτουργία χρησιμοποιείται για τον καθορισμό του ονόματος του αναγνωριστικού δέκτη. Θα ήθελα να στείλω τα μηνύματά μου σε έναν άλλο λογαριασμό μου στο Gmail, επομένως έχω περάσει την παράμετρο ως mailtoasiwnth @ gmail.com. Μπορείτε να χρησιμοποιήσετε το αναγνωριστικό αλληλογραφίας που θέλετε
_esp8266_start_mail ();
Αυτή η συνάρτηση δίνει εντολή στον διακομιστή SMPT2GO ότι πρόκειται να τροφοδοτήσουμε το θέμα και το σώμα του ταχυδρομείου και τον προετοιμάζουμε για το ίδιο.
_esp8266_mail_subject ("Αλληλογραφία από ESP8266");
Μπορείτε να χρησιμοποιήσετε αυτήν τη λειτουργία για να ορίσετε το θέμα του ταχυδρομείου. Ως παράδειγμα, έχω χρησιμοποιήσει το "Mail from ESP8266" ως αντικείμενο της αλληλογραφίας.
_esp8266_mail_body ("Δοκιμή επιτυχίας -CircuitDigest");
Αφού εισαγάγετε το θέμα, μπορείτε να εισαγάγετε το σώμα του ταχυδρομείου χρησιμοποιώντας αυτήν τη λειτουργία. Ως παράδειγμα έχω ορίσει το "Testing Success –CircuitDigest" ως το σώμα του ταχυδρομείου μου.
_esp8266_End_mail ();
Τώρα που έχουμε εισαγάγει το θέμα και το σώμα της αλληλογραφίας, πρέπει να δώσουμε εντολή στον διακομιστή SMPT2GO ότι έχουμε τελειώσει με την προσθήκη λεπτομερειών στο μήνυμα. Αυτό μπορεί να γίνει χρησιμοποιώντας τη λειτουργία
_esp8266_End_mail ();
_esp8266_disconnect_SMPT2GO ();
Τέλος, μετά την αποστολή του μηνύματος, πρέπει να τερματίσουμε τη σύνδεση TCP με τον διακομιστή SMPT2GO. Αυτό γίνεται χρησιμοποιώντας την παραπάνω συνάρτηση.
Εργαζόμενος:
Μόλις τελειώσετε με το υλικό και το πρόγραμμά σας. Απλώς ρίξτε τον κωδικό σε εσάς PIC MCU. Τότε ενεργοποιήστε το κύκλωμα σας. Εάν όλα πάνε όπως αναμενόταν, η οθόνη LCD σας θα πρέπει να εμφανίζει την κατάσταση της διαδικασίας και τελικά να καταλήξει να λέει "Αποστολή αλληλογραφίας" όπως φαίνεται στο παρακάτω βίντεο. Το υλικό σας μπορεί να μοιάζει με αυτό.
Μόλις το LCD δείξει ότι έχει σταλεί η αλληλογραφία, ελέγξτε το φάκελο Εισερχόμενα και Ανεπιθύμητα για το απεσταλμένο μήνυμα. Θα έπρεπε να έχετε λάβει το μήνυμα όπως φαίνεται παρακάτω..
Αυτό είναι τώρα που μπορείτε να δημιουργήσετε τα δικά σας έργα IOT διαβάζοντας δεδομένα αισθητήρα και στέλνοντάς τα στο αναγνωριστικό αλληλογραφίας σας. Δημιουργήστε ένα σύστημα ειδοποίησης ασφαλείας για το σπίτι ή τα αυτοκίνητά σας ενεργοποιώντας μια ειδοποίηση μέσω ταχυδρομείου.
Εάν έχετε οποιαδήποτε αμφιβολία ή κολλήσετε στη μέση, παρακαλούμε χρησιμοποιήστε την ενότητα σχολίων και θα χαρώ να σας βοηθήσω.