I denne opplæringen, la oss lære hvordan du sender e-post fra PIC Microcontroller ved hjelp av den berømte WiFi-modulen ESP8266. Denne opplæringen bruker PIC16F877A IC og MPLABX og XC8 kompilator for programmering.
På slutten av denne opplæringen vil du kunne sende e-post fra hvilken som helst vanlig e-post-ID som Gmail, yahoo osv. Til en hvilken som helst annen e-post-ID. Derfor antar denne veiledningen at du har grunnleggende kunnskap om ESP8266-01-moduler og PIC-mikrokontrollere. Hvis ikke, vil følgende veiledninger hjelpe deg
- Komme i gang med ESP8266
- Grensesnitt ESP8266 med PIC
Så la oss komme i gang…
Gjør deg klar med deg E-post-ID:
Når du har bestemt deg for hvilken e-post-ID du vil sende e-postene, følger du trinnene nedenfor
Trinn 1: Gå til https://www.smtp2go.com/ og registrer deg som en ny bruker. Skriv inn navnet ditt, e-postadressen og passordet til e-post-ID-en din som du vil sende e-post fra.
Denne opplæringen bruker Mail ID: aswinthcd @ gmail.com og Password: circuitdigest.
Trinn 2: Klikk på påmelding, og du vil få tilsendt en bekreftelsesmail til den oppgitte e-post-ID-en. I dette tilfellet er det aswinthcd @ gmail.com. Åpne posten og klikk på “AKTIVER KONTO”
Trinn 3: Det kan be om et passord igjen, hvis du blir bedt om det, skriv inn det forrige passordet. I dette tilfellet er det 'circuitdigest'. Deretter blir du logget på SMPT2GO-nettstedet. Det er nå e-postadressen din er klar til å sende e-post ved hjelp av ESP8266-modulen.
Trinn 4: Det siste trinnet er å kode e-post-ID og passord til base 64-format ved å bruke dette nettstedet https://www.base64encode.org/. Vi skal bruke dette i vårt PIC-program
I dette tilfellet vil de kodede verdiene se ut som vist i tabellen nedenfor.
Parameter |
Normalt format |
Kodet i base 64 |
E-post-ID |
aswinthcd @ gmail.com |
YXN3aW50aGNkQGdtYWlsLmNvbQ == |
Passord |
circuitdigest |
Y2lyY3VpdGRpZ2VzdA == |
Gjør din maskinvare klar:
Det fullstendige skjemaet for prosjektet er vist nedenfor.
LCD-skjermen brukes her til feilsøking. Det er ikke obligatorisk for deg å koble til dette. Programmet fungerer fint selv uten LCD-skjermen. Hvis du vil vite mer om skjemaene, kan du gå til denne veiledningen. (Grensesnitt PIC med ESP).
Du kan ganske enkelt sette sammen denne kretsen på et brødbord og deretter fortsette med programmeringen.
Programmering av PIC til å sende e-post:
For å sende en e-post fra ESP8266, må en sekvens med AT-kommandoer sendes til ESP-modulen. Følgende trinn må følges for å sende en e-post fra ESP8266.
- Sett modulen i AP + STA (tilgangspunkt og stasjon) -modus
- Koble til et tilgangspunkt for å få internettforbindelse
- Aktiver flere tilkoblinger
- Start en server på en hvilken som helst spesifikk port
- Opprett en TCP-forbindelse med SMPT2GO-nettstedet
- Naviger til påloggingsdelen på nettstedet
- Skriv inn e-post-ID og passord i base64-format
- Angi fra e-post-ID
- Skriv inn til e-post-ID
- Skriv inn emnet for posten
- Skriv inn brødteksten
- Angi slutten på e-post
- Send e-posten
- Avslutt TCP-tilkoblingen
Det er litt langvarig og kjedelig, men ikke bekymre deg. Jeg har forenklet prosessen ved å lage en header-fil, og du kan bruke den direkte ved å bare ringe til noen funksjoner (forklart nedenfor), noe som gjør denne oppgaven veldig enkel. Den komplette koden sammen med toppfilen kan lastes ned herfra.
Merk: Hvis du bruker koden i et nytt prosjekt, må du laste ned toppteksten og legge den til i prosjektet.
Jeg har forklart noen viktige deler av koden nedenfor, de andre delene er selvforklarende. Men hvis du er i tvil, bruk gjerne kommentarseksjonen.
/ * Sjekk om ESP_PIC-kommunikasjonen er vellykket * / gjør {Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP ikke funnet"); } mens (! esp8266_isStarted ()); // vent til ESP sender tilbake "OK" Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP er tilkoblet"); __forsink_ms (1500); Lcd_Clear (); / * Ja ESP-kommunikasjon vellykket -Fortsett * /
Denne delen av koden brukes til å kontrollere om det er riktig kommunikasjon mellom PIC og ESP8266. Bare hvis begge kan sende og motta data via USART, fortsetter programmet til neste trinn.
esp8266_mode (3);
Denne funksjonen vil sette ESP8266 i modus 3. Det betyr at modulen nå kan fungere som et tilgangspunkt og også som en server.
esp8266_connect ("BPAS home", "cracksun");
Denne funksjonen brukes til å koble ESP8266-modulen til Wifi-ruteren. I dette tilfellet er “BPAS home” navnet på Wifi-signalet mitt og “cracksun” er passordet mitt. Du må bruke dine egne Wifi-signaldetaljer.
_esp8266_enale_MUX (); // Aktiver flere tilkoblinger _esp8266_create_server (); // Opprett en server på port 80
Disse to funksjonene brukes til å aktivere flere tilkoblinger og opprette en server på port 80.
_esp8266_connect_SMPT2GO ();
Nå, ved å bruke denne funksjonen, kan vi opprette en TCP-forbindelse med SMPT2GO. Når forbindelsen er opprettet, flyttes denne funksjonen også til innloggingssiden på nettstedet.
_esp8266_login_mail ("YXN3aW50aGNkQGdtYWlsLmNvbQ ==", "Y2lyY3VpdGRpZ2VzdA ==");
Bruk denne funksjonen til å angi e-post-ID og passord i grunnformat 64. Som du kan se er disse kodede verdiene de samme som vist i tabellen ovenfor. De kodede verdiene vil variere avhengig av e-post-ID og passord.
_esp8266_mail_sendID ("aswinthcd @ gmail.com");
Denne funksjonen brukes til å definere navnet på avsender-ID. I denne opplæringen sender jeg e-posten ved hjelp av Gmail-IDen min aswinthcd @ gmail.com, derfor har jeg sendt den som parameter.
_esp8266_mail_recID ("mailtoaswinth @ gmail.com");
Denne funksjonen brukes til å definere navnet på mottaker-ID-en. Jeg vil sende postene mine til en annen Gmail-konto for meg, og derfor har jeg passert parameteren som mailtoasiwnth @ gmail.com. Du kan bruke ønsket e-post-ID
_esp8266_start_mail ();
Denne funksjonen instruerer SMPT2GO-serveren om at vi skal mate inn emnet og brødteksten til e-posten og gjør den forberedt på det samme.
_esp8266_mail_subject ("Mail fra ESP8266");
Du kan bruke denne funksjonen til å definere emnet på e-posten. Som et eksempel har jeg brukt “Mail fra ESP8266” som emne for posten.
_esp8266_mail_body ("Testing Success -CircuitDigest");
Etter at du har skrevet inn emnet, kan du skrive inn brødteksten ved hjelp av denne funksjonen. Som et eksempel har jeg satt "Testing Success –CircuitDigest" som brødtekst i posten min.
_esp8266_End_mail ();
Nå som vi har skrevet inn emnet og brødteksten til e-posten, må vi instruere SMPT2GO-serveren om at vi er ferdige med å legge til detaljer i e-posten. Dette kan gjøres ved å bruke funksjonen
_esp8266_End_mail ();
_esp8266_disconnect_SMPT2GO ();
Til slutt etter at vi har sendt e-posten, må vi avslutte TCP-forbindelsen med SMPT2GO-serveren. Dette gjøres ved å bruke funksjonen ovenfor.
Jobber:
Når du er ferdig med maskinvaren og programmet. Bare dump koden i PIC MCU. Slå deretter på kretsen. Hvis alt går som forventet, bør LCD-skjermen vise status for prosessen og til slutt ende opp med å si "Mail sendt" som vist i videoen nedenfor. Maskinvaren din kan se ut som dette.
Når LCD-skjermen viser at e-posten er sendt, må du sjekke innboksen og søppelpostmappen for sendt e-post. Du burde ha mottatt e-posten som vist nedenfor..
Det er nå du kan lage dine egne IOT-prosjekter ved å lese sensordata og sende dem til e-post-ID-en din. Lag et sikkerhetsvarslingssystem for ditt hjem eller biler ved å utløse et varsel via e-post.
Hvis du er i tvil eller sitter fast i midten, vennligst bruk kommentarseksjonen, så hjelper jeg deg gjerne.