En aquest tutorial, aprenem a enviar correus electrònics des del microcontrolador PIC mitjançant el famós mòdul WiFi ESP8266. Aquest tutorial utilitza el compilador PIC16F877A IC i MPLABX i XC8 per a la programació.
Al final d'aquest tutorial, podreu enviar correus electrònics des de qualsevol ID de correu electrònic normal com Gmail, Yahoo, etc. a qualsevol altre ID de correu electrònic. Per tant, aquest tutorial suposa que teniu coneixements bàsics sobre mòduls ESP8266-01 i microcontroladors PIC. Si no, els següents tutorials us ajudaran
- Introducció a ESP8266
- Interfície ESP8266 amb PIC
Comencem, doncs,…
Com preparar-vos amb el vostre identificador de correu electrònic:
Un cop hàgiu decidit des de quin ID de correu voleu enviar els correus electrònics, seguiu els passos següents
Pas 1: visiteu https://www.smtp2go.com/ i registreu-vos com a usuari nou. Introduïu el vostre nom, adreça de correu electrònic i contrasenya del vostre identificador de correu electrònic des del qual voleu enviar el correu.

Aquest tutorial utilitza l'identificador de correu: aswinthcd @ gmail.com i la contrasenya: circuitdigest.
Pas 2: feu clic a Registra't i se us enviarà un correu de verificació al vostre identificador de correu electrònic introduït. En aquest cas, és aswinthcd @ gmail.com. Obriu el correu i feu clic a "ACTIVA EL COMPTE"

Pas 3: es pot demanar una contrasenya de nou, si se us demana, introduïu la contrasenya anterior. En aquest cas és "circuitdigest". A continuació, iniciarà la sessió al lloc web SMPT2GO. Ara és la vostra adreça de correu electrònic a punt per enviar correus mitjançant el mòdul ESP8266.
Pas 4: l'últim pas és codificar l'identificador de correu electrònic i la contrasenya en format base 64 mitjançant aquest lloc web https://www.base64encode.org/. Ho utilitzarem al nostre programa PIC

En aquest cas, els valors codificats es mostraran com es mostra a la taula següent.
|
Paràmetre |
Format normal |
Codificat a la base 64 |
|
Identificador de correu |
aswinthcd @ gmail.com |
YXN3aW50aGNkQGdtYWlsLmNvbQ == |
|
Contrasenya |
circuitdigest |
Y2lyY3VpdGRpZ2VzdA == |
Preparació del maquinari:
A continuació es mostra l’esquema complet del projecte.

La pantalla LCD s'utilitza aquí amb finalitats de depuració. No és obligatori connectar-ho. El programa funcionarà bé fins i tot sense la pantalla LCD. Si voleu obtenir més informació sobre els esquemes, visiteu aquest tutorial. (Interfície PIC amb ESP).
Simplement podeu muntar aquest circuit en una taula de treball i després continuar amb la programació.
Programant el vostre PIC per enviar un correu electrònic:
Per enviar un correu electrònic des de l’ESP8266 s’ha d’enviar una seqüència d’ordres AT al mòdul ESP. Cal seguir els passos següents per enviar un correu electrònic des de l’ESP8266.
- Configureu el mòdul en mode AP + STA (punt d'accés i estació)
- Connecteu-vos a un punt d'accés per obtenir connexió a Internet
- Activeu diverses connexions
- Inicieu un servidor en qualsevol port específic
- Establir una connexió TCP amb el lloc web SMPT2GO
- Aneu a la secció Inici de sessió del lloc web
- Introduïu l'identificador de correu electrònic i la contrasenya en format base64
- Introduïu l'identificador de correu electrònic
- Introduïu l'identificador de correu electrònic
- Introduïu l’assumpte del correu
- Introduïu el cos del correu
- Indiqueu el final del correu
- Envieu el correu
- Sortiu de la connexió TCP
És un procés una mica llarg i tediós, però no us preocupeu. He simplificat el procés creant un fitxer de capçalera i el podeu utilitzar directament només trucant a algunes funcions (que s'explica més avall), cosa que facilita molt aquesta tasca. El codi complet junt amb el fitxer de capçalera es pot descarregar des d’aquí.
Nota: Si utilitzeu el codi en un projecte nou, assegureu-vos de descarregar el fitxer de capçalera i afegir-lo al vostre projecte.
A continuació he explicat algunes parts importants del codi, les altres parts s’expliquen per si mateixes. Però si teniu dubtes, no dubteu a utilitzar la secció de comentaris.
/ * Comproveu si la comunicació ESP_PIC té èxit * / do {Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP no trobat"); } while (! esp8266_isStarted ()); // espereu fins que l'ESP enviï "OK" Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP està connectat"); __delay_ms (1500); Lcd_Clear (); / * Sí Comunicació ESP reeixida -Procedeix * /
Aquesta part del codi s’utilitza per comprovar si hi ha una comunicació adequada establerta entre el PIC i l’ESP8266. Només si tots dos podien enviar i rebre dades mitjançant USART, el programa passarà al següent pas.
esp8266_mode (3);
Aquesta funció configurarà l'ESP8266 al mode 3. El que significa que ara el mòdul pot actuar com a punt d'accés i també com a servidor.
esp8266_connect ("BPAS home", "cracksun");
Aquesta funció s’utilitza per connectar el mòdul ESP8266 al router Wifi. En aquest cas, "BPAS home" és el nom del meu senyal Wifi i "cracksun" és la meva contrasenya. Heu d’utilitzar els vostres detalls de senyal Wifi.
_esp8266_enale_MUX (); // Activa diverses connexions _esp8266_create_server (); // Creeu un servidor al port 80
Aquestes dues funcions s’utilitzen per habilitar diverses connexions i crear un servidor al port 80.
_esp8266_connect_SMPT2GO ();
Ara, mitjançant aquesta funció podem establir una connexió TCP amb SMPT2GO. Un cop establerta la connexió, aquesta funció també es desplaça a la pàgina d'inici de sessió del lloc web.
_esp8266_login_mail ("YXN3aW50aGNkQGdtYWlsLmNvbQ ==", "Y2lyY3VpdGRpZ2VzdA ==");
Utilitzeu aquesta funció per introduir l'identificador de correu electrònic i la contrasenya en format base 64. Com podeu veure, aquests valors codificats són els mateixos que es mostren a la taula anterior. Els valors codificats variaran en funció del vostre ID de correu electrònic i contrasenya.
_esp8266_mail_sendID ("aswinthcd @ gmail.com");
Aquesta funció s'utilitza per definir el nom de l'identificador del remitent. En aquest tutorial envio el correu mitjançant el meu identificador de Gmail aswinthcd @ gmail.com, de manera que l'he passat com a paràmetre.
_esp8266_mail_recID ("mailtoaswinth @ gmail.com");
Aquesta funció s'utilitza per definir el nom de l'identificador del receptor. M'agradaria enviar els meus correus electrònics a un altre compte meu de Gmail, de manera que he passat el paràmetre com a mailtoasiwnth @ gmail.com. Podeu utilitzar el vostre identificador de correu desitjat
_esp8266_start_mail ();
Aquesta funció indica al servidor SMPT2GO que alimentarem el tema i el cos del correu i el prepara per al mateix.
_esp8266_mail_subject ("Correu des de ESP8266");
Podeu utilitzar aquesta funció per definir l'assumpte del correu. Com a exemple he utilitzat "Mail from ESP8266" com a tema del correu.
_esp8266_mail_body ("Testing Success -CircuitDigest");
Després d’introduir l’assumpte, podeu introduir el cos del correu mitjançant aquesta funció. Com a exemple he establert "Testing Success –CircuitDigest" com a cos del meu correu electrònic.
_esp8266_End_mail ();
Ara que hem introduït l’assumpte i el cos del correu, hem d’indicar al servidor SMPT2GO que hem acabat afegint detalls al correu. Això es pot fer mitjançant la funció
_esp8266_End_mail ();
_esp8266_disconnect_SMPT2GO ();
Finalment, després d’enviar el correu, hem de finalitzar la connexió TCP amb el servidor SMPT2GO. Això es fa utilitzant la funció anterior.
Treball:
Un cop hàgiu acabat el vostre maquinari i programa. Simplement bolqueu el codi al vostre PIC MCU. A continuació, engegueu el vostre circuit. Si tot va com s'esperava, el vostre LCD hauria de mostrar l'estat del procés i, finalment, hauria de dir "Correu enviat", tal com es mostra al vídeo següent. Pot ser que el vostre maquinari tingui un aspecte semblant.
Quan la pantalla LCD mostri que s'ha enviat el correu, comproveu la carpeta Safata d'entrada i correu brossa per obtenir el correu enviat. Hauríeu d’haver rebut el correu electrònic tal com es mostra a continuació..

És a dir, ara podeu fer els vostres propis projectes IOT llegint les dades d'un sensor i enviant-les al vostre identificador de correu. Creeu un sistema d'alerta de seguretat per a la vostra llar o automòbils activant una alerta per correu electrònic.
Si teniu algun dubte o us quedeu atrapats al centre, utilitzeu la secció de comentaris i estaré encantat d’ajudar-vos.
