V tomto výučbe sa naučíme, ako posielať e-maily z mikrokontroléra PIC pomocou slávneho modulu WiFi ESP8266. Tento výukový program využíva na programovanie kompilátor PIC16F877A IC a MPLABX a XC8.
Na konci tohto tutoriálu budete môcť posielať e-maily z akýchkoľvek bežných e-mailových ID, ako sú Gmail, yahoo atď., Na akékoľvek iné e-mailové ID. Preto tento výukový program predpokladá, že máte základné znalosti o moduloch ESP8266-01 a mikrokontroléroch PIC. Ak nie, pomôžu vám nasledujúce návody
- Začíname s ESP8266
- Prepojenie ESP8266 s PIC
Začnime teda…
Príprava s vami E-mailová adresa:
Keď sa rozhodnete, z ktorého ID pošty chcete posielať e-maily, postupujte podľa nasledujúcich krokov
Krok 1: Navštívte stránku https://www.smtp2go.com/ a zaregistrujte sa ako nový používateľ. Zadajte svoje meno, e-mailovú adresu a heslo svojho e-mailového ID, z ktorého chcete poslať poštu.
Tento výukový program používa ID pošty: aswinthcd @ gmail.com a Heslo: circuitdigest.
Krok 2: Kliknite na registráciu a na zadaný identifikátor pošty vám bude zaslaný overovací e-mail. V tomto prípade je to aswinthcd @ gmail.com. Otvorte poštu a kliknite na „AKTIVOVAŤ ÚČET“
Krok 3: Môže sa zobraziť výzva na zadanie predchádzajúceho hesla. V tomto prípade je to „circuitdigest“. Potom budete prihlásení na webovú stránku SMPT2GO. Teraz je vaša e-mailová adresa pripravená na odosielanie e-mailov pomocou modulu ESP8266.
Krok 4: Posledným krokom je kódovanie e-mailového ID a hesla do základného formátu 64 pomocou tejto webovej stránky https://www.base64encode.org/. Toto použijeme v našom programe PIC
V takom prípade budú kódované hodnoty vyzerať tak, ako je uvedené v nasledujúcej tabuľke.
Parameter |
Normálny formát |
Zakódované v základni 64 |
ID pošty |
aswinthcd @ gmail.com |
YXN3aW50aGNkQGdtYWlsLmNvbQ == |
Heslo |
okruhdigest |
Y2lyY3VpdGRpZ2VzdA == |
Príprava hardvéru:
Kompletná schéma projektu je uvedená nižšie.
Na ladenie sa tu používa LCD displej. Pripojenie nie je povinné. Program bude fungovať dobre aj bez LCD displeja. Ak sa chcete dozvedieť viac informácií o schémach, navštívte tento návod. (Prepojenie PIC s ESP).
Tento obvod môžete jednoducho zostaviť na doske a potom pokračovať v programovaní.
Programovanie vášho PIC na odosielanie e-mailov:
Aby bolo možné poslať e-mail z ESP8266, musí sa do modulu ESP odoslať sekvencia AT príkazov. Pri odosielaní e-mailu z ESP8266 je potrebné vykonať nasledujúce kroky.
- Nastavte modul do režimu AP + STA (prístupový bod a stanica)
- Pripojením k prístupovému bodu získate pripojenie k internetu
- Povoliť viac pripojení
- Spustite server na ľubovoľnom konkrétnom porte
- Nadviažte TCP spojenie s webom SMPT2GO
- Prejdite na webovej stránke do časti Prihlásenie
- Zadajte e-mailovú adresu a heslo vo formáte base64
- Zadajte z e-mailovej adresy
- Zadajte e-mailovú adresu
- Zadajte predmet správy
- Zadajte text správy
- Uveďte koniec pošty
- Pošli mail
- Ukončite pripojenie TCP
Je to trochu zdĺhavý a zdĺhavý proces, ale nebojte sa. Zjednodušil som postup vytvorením hlavičkového súboru a môžete ho použiť priamo tak, že zavoláte niektoré funkcie (vysvetlené nižšie), čo túto úlohu veľmi uľahčuje. Celý kód spolu so súborom hlavičky si môžete stiahnuť tu.
Poznámka: Ak používate kód v novom projekte, nezabudnite si stiahnuť hlavičkový súbor a pridať ho do svojho projektu.
Nižšie som vysvetlil niektoré dôležité časti kódu, ostatné časti sú vysvetľujúce samo. Ak však máte pochybnosti, pokojne použite sekciu komentárov.
/ * Skontrolujte, či je komunikácia ESP_PIC úspešná * / do {Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP nenájdené"); } while (! esp8266_isStarted ()); // počkaj, až ESP pošle späť „OK“ Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP je pripojený"); __delay_ms (1 500); Lcd_Clear (); / * Áno komunikácia ESP úspešná -Pokračovať * /
Táto časť kódu sa používa na kontrolu, či je medzi PIC a ESP8266 nadviazaná správna komunikácia. Iba v prípade, že by obaja mohli odosielať a prijímať údaje cez USART, program prejde k ďalšiemu kroku.
esp8266_mode (3);
Táto funkcia nastaví ESP8266 na režim 3. To znamená, že modul teraz môže fungovať ako prístupový bod a tiež ako server.
esp8266_connect ("domov BPAS", "cracksun");
Táto funkcia sa používa na pripojenie modulu ESP8266 k smerovaču Wifi. V tomto prípade je „domov BPAS“ názov môjho signálu Wifi a „cracksun“ je moje heslo. Musíte použiť svoje vlastné podrobnosti signálu Wifi.
_esp8266_enale_MUX (); // Povoliť viac pripojení _esp8266_create_server (); // Vytvorte server na porte 80
Tieto dve funkcie sa používajú na povolenie viacerých pripojení a na vytvorenie servera na porte 80.
_esp8266_connect_SMPT2GO ();
Teraz pomocou tejto funkcie môžeme nadviazať TCP spojenie so SMPT2GO. Po nadviazaní spojenia sa táto funkcia presunie aj na prihlasovaciu stránku webu.
_esp8266_login_mail ("YXN3aW50aGNkQGdtYWlsLmNvbQ ==", "Y2lyY3VpdGRpZ2VzdA ==");
Táto funkcia slúži na zadanie e-mailovej adresy a hesla v základnom formáte 64. Ako vidíte, tieto kódované hodnoty sú rovnaké ako hodnoty uvedené v tabuľke vyššie. Vaše kódované hodnoty sa budú líšiť v závislosti od vášho e-mailového ID a hesla.
_esp8266_mail_sendID ("aswinthcd @ gmail.com");
Táto funkcia sa používa na definovanie názvu ID odosielateľa. V tomto návode posielam poštu pomocou svojho Gmail ID aswinthcd @ gmail.com, preto som ju odovzdal ako parameter.
_esp8266_mail_recID ("mailtoaswinth @ gmail.com");
Táto funkcia sa používa na definovanie názvu ID prijímača. Chcel by som posielať svoje e-maily na iný môj účet Gmail, a preto som parameter odovzdal ako mailtoasiwnth @ gmail.com. Môžete použiť požadované ID pošty
_esp8266_start_mail ();
Táto funkcia dá serveru SMPT2GO pokyn, aby sme vložili predmet a telo pošty, a pripraví ho na to isté.
_esp8266_mail_subject ("Pošta z ESP8266");
Túto funkciu môžete použiť na definovanie predmetu pošty. Ako príklad som použil „Mail from ESP8266“ ako predmet pošty.
_esp8266_mail_body ("Testovanie úspechu -CircuitDigest");
Po zadaní predmetu môžete pomocou tejto funkcie vstúpiť do tela pošty. Ako príklad som nastavil „Testing Success –CircuitDigest“ ako telo svojej pošty.
_esp8266_End_mail ();
Teraz, keď sme zadali predmet a telo pošty, musíme server SMPT2GO inštruovať, aby sme pridaním podrobností do pošty skončili. To je možné vykonať pomocou funkcie
_esp8266_End_mail ();
_esp8266_disconnect_SMPT2GO ();
Nakoniec po odoslaní pošty musíme ukončiť TCP spojenie so serverom SMPT2GO. To sa deje pomocou vyššie uvedenej funkcie.
Pracovné:
Keď skončíte s hardvérom a programom. Jednoducho vložte kód do svojho PIC MCU. Potom zapnite obvod. Ak všetko pôjde podľa očakávaní, na displeji LCD by sa mal zobraziť stav procesu a nakoniec by sa malo zobraziť hlásenie „Mail sent“ (odoslaná pošta), ako je to znázornené na videu nižšie. Váš hardvér môže vyzerať asi takto.
Keď sa na LCD displeji zobrazí, že e-mail je odoslaný, skontrolujte, či sa vo vašom priečinku Doručená pošta a Spam nenachádzajú odoslané správy. Mali ste dostať poštu, ako je uvedené nižšie.
To je ono, teraz môžete vytvárať svoje vlastné projekty IOT načítaním údajov zo senzorov a ich odoslaním na svoje ID pošty. Vytvorte výstražný systém zabezpečenia pre váš domov alebo automobil spustením výstrahy prostredníctvom pošty.
Ak máte pochybnosti alebo sa zaseknete v strede, prosím použite sekciu s komentármi a rád vám pomôžem.