Tässä opetusohjelmassa opitaan, kuinka lähetetään sähköposteja PIC-mikrokontrollerista käyttämällä tunnettua WiFi-moduulia ESP8266. Tämä opetusohjelma käyttää PIC16F877A IC- ja MPLABX- sekä XC8-kääntäjiä ohjelmoinnissa.
Tämän opetusohjelman lopussa voit lähettää sähköpostia mistä tahansa normaalista sähköpostitunnuksesta, kuten Gmail, yahoo jne., Mihin tahansa muuhun sähköpostitunnukseen. Siksi tässä opetusohjelmassa oletetaan, että sinulla on perustietoja ESP8266-01-moduuleista ja PIC-mikrokontrollereista. Jos ei, seuraavat oppaat auttavat sinua
- ESP8266: n käytön aloittaminen
- ESP8266: n ja PIC: n liitäntä
Joten aloitetaan…
Valmistautuminen kanssasi Sähköpostitunnus:
Kun olet päättänyt, mistä postitunnuksesta haluat lähettää sähköpostit, noudata alla olevia ohjeita
Vaihe 1: Käy osoitteessa https://www.smtp2go.com/ ja rekisteröidy uudeksi käyttäjäksi. Kirjoita nimesi, sähköpostiosoitteesi ja sähköpostiosoitteesi salasana, josta haluat lähettää sähköpostin.
Tämä opetusohjelma käyttää Mail ID: aswinthcd @ gmail.com ja Password: circuitdigest.
Vaihe 2: Napsauta rekisteröitymistä ja sinulle lähetetään vahvistusviesti antamaasi postitunnukseen. Tässä tapauksessa se on aswinthcd @ gmail.com. Avaa sähköposti ja napsauta "AKTIVOI TILI"
Vaihe 3: Se saattaa pyytää salasanaa uudelleen, jos pyydetään, anna edellinen salasana. Tässä tapauksessa se on 'piirin digest'. Sitten sinut kirjataan sisään SMPT2GO-verkkosivustolle. Se on nyt, että sähköpostiosoitteesi on valmis lähettämään sähköpostia ESP8266-moduulin avulla.
Vaihe 4: Viimeinen vaihe on koodata sähköpostitunnus ja salasana perusasetuksiin 64 käyttämällä tätä verkkosivustoa https://www.base64encode.org/. Aiomme käyttää tätä PIC-ohjelmassa
Tässä tapauksessa koodatut arvot näyttävät alla olevan taulukon mukaisesti.
Parametri |
Normaali muoto |
Koodattu tukiasemaan 64 |
Mail ID |
aswinthcd @ gmail.com |
YXN3aW50aGNkQGdtYWlsLmNvbQ == |
Salasana |
virtapiiri |
Y2lyY3VpdGRpZ2VzdA == |
Laitteiston valmistelu:
Projektin täydellinen kaavio on esitetty alla.
LCD-näyttöä käytetään tässä virheenkorjaukseen. Sinun ei ole pakko liittää tätä. Ohjelma toimii hyvin myös ilman LCD-näyttöä. Jos haluat tietää lisää kaavioista, käy tässä opetusohjelmassa. (PIC: n liittäminen ESP: hen).
Voit yksinkertaisesti koota tämän piirin leipälaudalle ja jatkaa sitten ohjelmointia.
PIC: n ohjelmointi lähettämään sähköpostia:
Jotta lähettää sähköpostin päässä ESP8266 sekvenssi AT-komentojen on lähetettävä ESP moduuli. Seuraavia vaiheita on noudatettava, jotta voit lähettää sähköpostia osoitteesta ESP8266.
- Aseta moduuli AP + STA (tukiasema ja asema) -tilaan
- Muodosta yhteys tukiasemaan saadaksesi Internet-yhteyden
- Ota käyttöön useita yhteyksiä
- Käynnistä palvelin mistä tahansa tietystä portista
- Muodosta TCP-yhteys SMPT2GO-verkkosivustoon
- Siirry verkkosivuston Kirjaudu-osioon
- Syötä sähköpostitunnus ja salasana base64-muodossa
- Kirjoita Lähettäjä ID: stä
- Kirjoita Vastaanottajan tunnus
- Kirjoita postin aihe
- Kirjoita postin teksti
- Ilmoita postin loppu
- Lähetä viesti
- Lopeta TCP-yhteys
Se on vähän pitkä ja tylsä prosessi, mutta älä huoli. Olen yksinkertaistanut prosessia luomalla otsikkotiedoston ja voit käyttää sitä suoraan kutsumalla joitain toimintoja (selitetty alla), mikä tekee tämän tehtävän erittäin helpoksi. Koko koodi ja otsikkotiedosto voidaan ladata täältä.
Huomaa: Jos käytät koodia uudessa projektissa, varmista, että lataat otsikkotiedoston ja lisäät sen projektiisi.
Olen selittänyt joitain tärkeitä koodin osia alla, muut osat ovat itsestään selviä. Mutta jos sinulla on epäilyksiä, voit käyttää kommenttiosaa.
/ * Tarkista, onko ESP_PIC-tiedonsiirto onnistunut * / tee {Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP: tä ei löydy"); } while (! esp8266_isStarted ()); // odota, kunnes ESP lähettää takaisin "OK" Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP on kytketty"); _ viive_ms (1500); Lcd_Clear (); / * Kyllä ESP-tiedonsiirto onnistunut - jatka * /
Tätä koodin osaa käytetään tarkistamaan, onko PIC: n ja ESP8266: n välillä luotu tiedonsiirto. Vain jos molemmat pystyivät lähettämään ja vastaanottamaan tietoja USART: n kautta, ohjelma siirtyy seuraavaan vaiheeseen.
esp8266_mode (3);
Tämä toiminto asettaa ESP8266: n tilaan 3. Tämä tarkoittaa, että moduuli voi nyt toimia tukiasemana ja myös palvelimena.
esp8266_connect ("BPAS home", "crackacks");
Tätä toimintoa käytetään yhdistämään ESP8266-moduuli Wifi-reitittimeen. Tässä tapauksessa "BPAS home" on Wifi-signaalini nimi ja "crackacks" on salasanani. Sinun on käytettävä omia Wifi-signaalin tietoja.
_esp8266_enale_MUX (); // Ota käyttöön useita yhteyksiä _esp8266_create_server (); // Luo palvelin porttiin 80
Näitä kahta toimintoa käytetään useiden yhteyksien mahdollistamiseen ja palvelimen luomiseen porttiin 80.
_esp8266_connect_SMPT2GO ();
Tämän toiminnon avulla voimme nyt muodostaa TCP-yhteyden SMPT2GO: n kanssa. Kun yhteys on muodostettu, tämä toiminto siirtyy myös verkkosivuston kirjautumissivulle.
_esp8266_login_mail ("YXN3aW50aGNkQGdtYWlsLmNvbQ ==", "Y2lyY3VpdGRpZ2VzdA ==");
Käytä tätä toimintoa syöttääksesi sähköpostitunnuksesi ja salasanasi perus 64 -muodossa. Kuten näette, nämä koodatut arvot ovat samat kuin yllä olevassa taulukossa. Koodatut arvosi vaihtelevat sähköpostiosoitteesi ja salasanasi mukaan.
_esp8266_mail_sendID ("aswinthcd @ gmail.com");
Tätä toimintoa käytetään määrittämään lähettäjän tunnuksen nimi. Tässä opetusohjelmassa lähetän sähköpostia Gmail-tunnuksellani aswinthcd @ gmail.com, joten olen välittänyt sen parametrina.
_esp8266_mail_recID ("mailtoaswinth @ gmail.com");
Tätä toimintoa käytetään määrittämään vastaanottimen tunnuksen nimi. Haluaisin lähettää sähköpostini toiselle Gmail-tililleni, joten olen välittänyt parametrin mailtoasiwnth @ gmail.com. Voit käyttää haluamaasi postitunnusta
_esp8266_start_mail ();
Tämä toiminto kehottaa SMPT2GO-palvelinta syöttämään postin aiheen ja rungon ja valmistaa sen siihen.
_esp8266_mail_subject ("Posti ESP8266: sta");
Tämän toiminnon avulla voit määrittää postin aiheen. Esimerkkinä olen käyttänyt postin aiheena ”Mail from ESP8266”.
_esp8266_mail_body ("Menestyksen testaus - CircuitDigest");
Kun olet kirjoittanut aiheen, voit kirjoittaa sähköpostin rungon tällä toiminnolla. Esimerkkinä olen asettanut "Testing Success –CircuitDigest" sähköpostini rungoksi.
_esp8266_End_mail ();
Nyt kun olemme kirjoittaneet postin aiheen ja rungon, meidän on annettava SMPT2GO-palvelimelle ohjeet siitä, että olemme lisänneet yksityiskohdat postiin. Tämä voidaan tehdä käyttämällä toimintoa
_esp8266_End_mail ();
_esp8266_disconnect_SMPT2GO ();
Lopuksi postin lähettämisen jälkeen meidän on lopetettava TCP-yhteys SMPT2GO-palvelimeen. Tämä tehdään käyttämällä yllä olevaa toimintoa.
Työskentely:
Kun olet valmis laitteistosi ja ohjelmasi kanssa. Yksinkertaisesti kaataa koodi PIC MCU: han. Kytke sitten virta virtapiiriin. Jos kaikki menee odotetulla tavalla, nestekidenäytössäsi pitäisi näkyä prosessin tila ja lopulta sanoa "Mail lähetetty", kuten alla olevassa videossa näkyy. Laitteesi saattaa näyttää tältä.
Kun nestekidenäytössä näkyy, että posti on lähetetty, tarkista Saapuneet-kansio ja Roskaposti-kansio lähetettyjen postien varalta. Sinun olisi pitänyt saada posti alla olevan kuvan mukaisesti.
Se on nyt, että voit tehdä omia IOT-projektejasi lukemalla anturitiedot ja lähettämällä ne sähköpostiosoitteeseesi. Luo koti- tai autoturvavaroitusjärjestelmä käynnistämällä hälytys postitse.
Jos sinulla on epäilyksiä tai juutut keskelle, käytä ystävällisesti kommenttiosaa ja autan sinua mielelläni.