U ovom uputstvu naučimo kako slati e-poštu s PIC mikrokontrolera pomoću poznatog WiFi modula ESP8266. Ovaj vodič koristi PIC16F877A IC i MPLABX i XC8 kompajler za programiranje.
Na kraju ovog vodiča moći ćete slati e-poštu s bilo kojeg uobičajenog ID-a e-pošte, kao što je Gmail, yahoo itd., Na bilo koji drugi ID e-pošte. Stoga ovaj vodič pretpostavlja da imate neko osnovno znanje o modulima ESP8266-01 i PIC mikrokontrolerima. Ako ne, sljedeći vodiči će vam pomoći
- Početak rada s ESP8266
- Povezivanje ESP8266 s PIC-om
Pa krenimo…
Priprema s vama ID e-pošte:
Nakon što odlučite s kojeg ID-a pošte želite poslati e-poštu, slijedite korake u nastavku
1. korak: Posjetite https://www.smtp2go.com/ i prijavite se kao novi korisnik. Unesite svoje ime, e-mail adresu i lozinku svog e-mail ID-a s kojeg želite poslati poštu.

Ovaj vodič koristi ID pošte: aswinthcd @ gmail.com i Password: circuitdigest.
Korak 2: Kliknite na prijavu i poslat će vam se potvrdni mail na vaš uneseni ID pošte. U ovom slučaju to je aswinthcd @ gmail.com. Otvorite poštu i kliknite na „AKTIVIRAJ RAČUN“

Korak 3: Možda će ponovno zatražiti lozinku, ako se zatraži unesite prethodnu lozinku. U ovom je slučaju to "sklopno-digest". Tada ćete biti prijavljeni na web mjesto SMPT2GO. To je to. Sada je vaša adresa e-pošte spremna za slanje pošte putem modula ESP8266.
Korak 4: Posljednji korak je kodiranje ID-a i lozinke e-pošte u osnovni 64 format pomoću ove web stranice https://www.base64encode.org/. Koristit ćemo ovo u našem programu PIC

U tom će slučaju kodirane vrijednosti izgledati kao što je prikazano u donjoj tablici.
| Parametar | Uobičajeni format | Kodirano u bazi 64 | 
| ID pošte | aswinthcd @ gmail.com | YXN3aW50aGNkQGdtYWlsLmNvbQ == | 
| Lozinka | sklopdigest | Y2lyY3VpdGRpZ2VzdA == | 
Priprema hardvera:
Kompletna shema projekta prikazana je u nastavku.

LCD zaslon ovdje se koristi u svrhu uklanjanja pogrešaka. Nije obavezno da ovo povežete. Program će raditi dobro i bez LCD zaslona. Ako želite znati više o shemama, posjetite ovaj vodič. (Povezivanje PIC-a s ESP-om).
Možete jednostavno sastaviti ovaj krug na ploči i zatim nastaviti s programiranjem.
Programiranje vašeg PIC-a za slanje e-pošte:
Da bi se e-pošta poslala s ESP8266, na ESP modul mora se poslati niz AT naredbi. Za slanje e-pošte s ESP8266 potrebno je slijediti sljedeće korake.
- Postavite modul u način rada AP + STA (pristupna točka i stanica)
- Povežite se s pristupnom točkom da biste dobili internetsku vezu
- Omogućite višestruke veze
- Pokrenite poslužitelj na bilo kojem određenom portu
- Uspostavite TCP vezu s SMPT2GO web mjestom
- Idite na odjeljak za prijavu na web mjestu
- Unesite ID e-pošte i lozinku u base64 formatu
- Unesite s ID-a pošte
- Unesite na ID pošte
- Unesite Predmet pošte
- Unesite tijelo pošte
- Označite kraj pošte
- Pošaljite mail
- Zatvorite TCP vezu
To je pomalo dugotrajan i naporan postupak, ali ne brinite. Pojednostavio sam postupak izradom datoteke zaglavlja i možete ga koristiti izravno pozivanjem nekih funkcija (objašnjeno u nastavku) što ovaj zadatak čini vrlo jednostavnim. Kompletni kod zajedno sa zaglavnom datotekom možete preuzeti ovdje.
Napomena: Ako kôd koristite u novom projektu, preuzmite datoteku zaglavlja i dodajte ga u svoj projekt.
Objasnio sam neke važne dijelove koda u nastavku, ostali dijelovi su samoobjašnjivi. Ali ako sumnjate, slobodno upotrijebite odjeljak za komentare.
/ * Provjerite je li komunikacija ESP_PIC uspješna * / do {Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP nije pronađen"); } dok (! esp8266_isStarted ()); // pričekajte da ESP pošalje natrag "OK" Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP je povezan"); __zakašnjenje_ms (1500); Lcd_Clear (); / * Da ESP komunikacija uspješna -Nastaviti * /
Ovaj dio koda koristi se za provjeru postoji li uspostavljena odgovarajuća komunikacija između PIC-a i ESP8266. Samo ako bi obojica mogli slati i primati podatke putem USART-a, program će prijeći na sljedeći korak.
esp8266_mode (3);
Ova će funkcija postaviti ESP8266 u način rada 3. Što znači da modul sada može djelovati kao pristupna točka, a također i kao poslužitelj.
esp8266_connect ("BPAS dom", "cracksun");
Ova se funkcija koristi za povezivanje vašeg modula ESP8266 s Wifi usmjerivačem. U ovom slučaju "BPAS dom" je naziv mog Wifi signala, a "cracksun" je moja lozinka. Morate koristiti vlastite pojedinosti Wifi signala.
_esp8266_enale_MUX (); // Omogućivanje višestrukih veza _esp8266_create_server (); // Stvaranje poslužitelja na portu 80
Te dvije funkcije koriste se za omogućavanje višestrukih veza i stvaranje poslužitelja na portu 80.
_esp8266_connect_SMPT2GO ();
Sada, pomoću ove funkcije možemo uspostaviti TCP vezu sa SMPT2GO. Nakon uspostavljanja veze, ova se funkcija također premješta na stranicu za prijavu web mjesta.
_esp8266_login_mail ("YXN3aW50aGNkQGdtYWlsLmNvbQ ==", "Y2lyY3VpdGRpZ2VzdA ==");
Pomoću ove funkcije unesite svoj ID e-pošte i lozinku u osnovnom 64 formatu. Kao što vidite, ove kodirane vrijednosti iste su kao i one prikazane u gornjoj tablici. Kodirane vrijednosti ovisit će o vašem ID-u e-pošte i lozinci.
_esp8266_mail_sendID ("aswinthcd @ gmail.com");
Ova se funkcija koristi za definiranje imena ID-a pošiljatelja. U ovom uputstvu šaljem poštu koristeći svoj Gmail ID kao aswinthcd @ gmail.com, stoga sam je poslao kao parametar.
_esp8266_mail_recID ("mailtoaswinth @ gmail.com");
Ova se funkcija koristi za definiranje imena ID-a prijamnika. Želio bih poslati svoju e-poštu na drugi svoj Gmail račun, stoga sam parametar proslijedio kao mailtoasiwnth @ gmail.com. Možete koristiti željeni ID pošte
_esp8266_start_mail ();
Ova funkcija upućuje SMPT2GO poslužitelj da ćemo unositi predmet i tijelo pošte i priprema ga za isto.
_esp8266_mail_subject ("Pošta s ESP8266");
Ovu funkciju možete koristiti za definiranje predmeta pošte. Kao primjer upotrijebio sam "Mail from ESP8266" kao temu pošte.
_esp8266_mail_body ("Testiranje uspjeha -CircuitDigest");
Nakon unosa predmeta pomoću ove funkcije možete unijeti tijelo pošte. Kao primjer postavio sam "Testiranje uspjeha - CircuitDigest" kao tijelo svoje pošte.
_esp8266_Završi_poštu ();
Sad kad smo unijeli predmet i tijelo pošte, SMPT2GO poslužitelju moramo naložiti da smo gotovi s dodavanjem detalja u poštu. To se može učiniti pomoću funkcije
_esp8266_Završi_poštu ();
_esp8266_disconnect_SMPT2GO ();
Napokon, nakon slanja pošte, moramo prekinuti TCP vezu sa SMPT2GO poslužiteljem. To se postiže korištenjem gornje funkcije.
Radno:
Nakon što završite sa hardverom i programom. Jednostavno izbacite kod u svoj PIC MCU. Zatim uključite krug. Ako sve bude išlo prema očekivanjima, vaš LCD trebao bi prikazati status postupka i na kraju izgovoriti "Mail sent" kao što je prikazano u videu ispod. Vaš hardver može izgledati otprilike ovako.
Jednom kada se na LCD-u prikaže da je pošta poslana, provjerite je li u mapi Ulazna pošta i Neželjena pošta poslana pošta. Trebali ste dobiti poštu kao što je prikazano dolje..

To je to. Sada možete sami izrađivati IOT projekte čitanjem podataka senzora i slanjem na svoj ID pošte. Stvorite sigurnosni sustav upozorenja za svoj dom ili automobil pokretanjem upozorenja putem pošte.
Ako sumnjate ili zapete u sredini, poslužite se odjeljkom za komentare i rado ću vam pomoći.

