Ebben az oktatóanyagban megtanulhatjuk, hogyan küldhetünk e-maileket a PIC mikrokontrollerről az ESP8266 híres WiFi modul használatával. Ez az oktatóprogram a PIC16F877A IC, MPLABX és XC8 fordítót használja.
A bemutató végén e-mailt küldhet bármilyen normál e-mail azonosítóból, például a Gmailből, a yahoo-ból stb., Bármely más e-mail azonosítóba. Ezért ez az oktatóanyag feltételezi, hogy van néhány alapvető ismerete az ESP8266-01 modulokról és a PIC mikrokontrollerekről. Ha nem, akkor a következő oktatóanyagok segítenek
- Az ESP8266 használatának megkezdése
- Az ESP8266 és a PIC összekapcsolása
Tehát kezdjük el…
Készülődés veled E-mail azonosító:
Miután eldöntötte, melyik e-mail azonosítóból kívánja elküldeni az e-maileket, kövesse az alábbi lépéseket
1. lépés: Látogasson el a https://www.smtp2go.com/ oldalra, és regisztráljon új felhasználóként. Írja be a nevét, az e-mail címét és az e-mail azonosítójának jelszavát, ahonnan el szeretné küldeni az e-mailt.
Ez az oktatóprogram a Mail ID-t használja: aswinthcd @ gmail.com és Password: circuitdigest.
2. lépés: Kattintson a regisztrációra, és ellenőrző levelet küldünk Önnek a megadott e-mail azonosítóra. Ebben az esetben ez az aswinthcd @ gmail.com. Nyissa meg az e-mailt, és kattintson az „AKTIVÁLJ Fiók”
3. lépés: Lehet, hogy újból jelszót kér, ha megkérik, írja be az előző jelszót. Ebben az esetben ez a 'circuitdigest'. Ezután bejelentkezik az SMPT2GO webhelyére. Ez az, amikor az e-mail címe készen áll az e-mailek küldésére az ESP8266 modul használatával.
4. lépés: Az utolsó lépés az e-mail azonosító és a jelszó 64-es formátumba történő kódolása a https://www.base64encode.org/ webhely használatával. Ezt a PIC programunkban fogjuk használni
Ebben az esetben a kódolt értékek az alábbi táblázat szerint fognak kinézni.
Paraméter |
Normál formátum |
A 64-es bázisban kódolva |
Levélazonosító |
aswinthcd @ gmail.com |
YXN3aW50aGNkQGdtYWlsLmNvbQ == |
Jelszó |
áramkörök |
Y2lyY3VpdGRpZ2VzdA == |
A hardver előkészítése:
A projekt teljes vázlata az alábbiakban látható.
Az LCD kijelzőt itt lehet hibakeresési célokra használni. Önnek nem kötelező ezt csatlakoztatnia. A program LCD kijelző nélkül is jól fog működni. Ha többet szeretne megtudni a sémákról, látogassa meg ezt az oktatóanyagot. (PIC összekapcsolása az ESP-vel).
Egyszerűen összeállíthatja ezt az áramkört egy táblára, majd folytathatja a programozást.
A PIC programozása e-mail küldésére:
Annak érdekében, hogy küldjön egy e-mailt a ESP8266 sorozata AT parancsokat kell küldeni, hogy az ESP modul. A következő lépéseket kell követnie az e-mail küldéséhez az ESP8266-ból.
- Állítsa a modult AP + STA (hozzáférési pont és állomás) módba
- Csatlakozzon egy hozzáférési ponthoz az internetkapcsolat megszerzéséhez
- Több kapcsolat engedélyezése
- Indítson el egy szervert bármely adott porton
- Hozzon létre TCP kapcsolatot az SMPT2GO webhelyével
- Navigáljon a webhely Bejelentkezés részéhez
- Írja be az e-mail azonosítót és a jelszót base64 formátumban
- Írja be a Feladó azonosítóját
- Enter To mail ID
- Írja be a levél tárgyát
- Írja be a levél törzsét
- Jelezze a levél végét
- Küldje el az e-mailt
- Zárja be a TCP kapcsolatot
Kicsit hosszadalmas és unalmas folyamat, de ne aggódjon. Egyszerűsítettem a folyamatot egy fejlécfájl létrehozásával, és közvetlenül felhasználhatja néhány függvény meghívásával (az alábbiakban kifejtve), ami nagyon megkönnyíti ezt a feladatot. A teljes kód és a fejlécfájl innen letölthető.
Megjegyzés: Ha egy új projektben használja a kódot, feltétlenül töltse le a fejlécfájlt, és adja hozzá a projektjéhez.
Az alábbiakban a kód néhány fontos részét elmagyaráztam, a többi rész magától értetődő. De ha kétségei vannak, nyugodtan használja a megjegyzés részt.
/ * Ellenőrizze, hogy az ESP_PIC kommunikáció sikeres-e * / do {Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP nem található"); } while (! esp8266_isStarted ()); // várjon, amíg az ESP visszaküldi az "OK" Lcd_Set_Cursor (1,1); Lcd_Print_String ("Az ESP csatlakoztatva van"); __késleltetési_ms (1500); Lcd_Clear (); / * Igen az ESP kommunikáció sikeres -Folytatás * /
A kód ezen részével ellenőrizhető, hogy a PIC és az ESP8266 között létrejött-e a megfelelő kommunikáció. Csak akkor folytatja a következő lépést, ha mindketten tudnak adatokat küldeni és fogadni a USART-on keresztül.
esp8266_mode (3);
Ez a funkció az ESP8266-ot 3 üzemmódba kapcsolja. Ez azt jelenti, hogy a modul mostantól hozzáférési pontként és egyben szerverként is működhet.
esp8266_connect ("BPAS home", "crackunsun");
Ezzel a funkcióval csatlakoztathatja az ESP8266 modult a Wifi routerhez. Ebben az esetben a „BPAS home” a Wifi jelem neve, a „crackunsun” a jelszavam. Saját Wifi jel részleteit kell használnia.
_esp8266_enale_MUX (); // Több kapcsolat engedélyezése _esp8266_create_server (); // Hozzon létre egy szervert a 80-as porton
Ez a két funkció több kapcsolat engedélyezésére és egy szerver létrehozására szolgál a 80-as porton.
_esp8266_connect_SMPT2GO ();
Ezzel a funkcióval TCP kapcsolatot létesíthetünk az SMPT2GO-val. A kapcsolat létrejötte után ez a funkció a weboldal Bejelentkezés oldalára is átkerül.
_esp8266_login_mail ("YXN3aW50aGNkQGdtYWlsLmNvbQ ==", "Y2lyY3VpdGRpZ2VzdA ==");
Ezzel a funkcióval megadhatja e-mail azonosítóját és jelszavát alap 64 formátumban. Mint látható, ezek a kódolt értékek megegyeznek a fenti táblázatban megadottakkal. A kódolt értékek az Ön e-mail azonosítójától és jelszavától függően változnak.
_esp8266_mail_sendID ("aswinthcd @ gmail.com");
Ez a függvény a feladóazonosító nevének meghatározására szolgál. Ebben az oktatóanyagban az aswinthcd @ gmail.com Gmail azonosítóm segítségével küldöm az e-mailt, ezért paraméterként továbbítottam.
_esp8266_mail_recID ("mailtoaswinth @ gmail.com");
Ez a funkció a vevő azonosítójának meghatározására szolgál. Szeretném elküldeni a leveleimet egy másik Gmail-fiókomra, ezért a paramétert mailtoasiwnth @ gmail.com néven adtam meg. Használhatja a kívánt e-mail azonosítót
_esp8266_start_mail ();
Ez a funkció utasítja az SMPT2GO kiszolgálót, hogy mi fogjuk betáplálni a levél tárgyát és törzsét, és felkészíti erre.
_esp8266_mail_subject ("Levél az ESP8266-ból");
Ezzel a funkcióval meghatározhatja a levél tárgyát. Példaként a „Mail from ESP8266” -t használtam a levél tárgyaként.
_esp8266_mail_body ("A siker tesztelése - CircuitDigest");
A téma megadása után ezzel a funkcióval megadhatja a levél törzsét. Példaként a „Testing Success –CircuitDigest” -t állítottam levelem törzseként.
_esp8266_End_mail ();
Miután megadtuk a levél tárgyát és törzsét, utasítanunk kell az SMPT2GO szervert, hogy készen állunk a részletek hozzáadásával a levélre. Ez a funkció használatával végezhető el
_esp8266_End_mail ();
_esp8266_disconnect_SMPT2GO ();
Végül a levél elküldése után meg kell szakítanunk a TCP kapcsolatot az SMPT2GO szerverrel. Ez a fenti függvény használatával történik.
Dolgozó:
Miután végzett a hardverrel és a programmal. Egyszerűen dobja be a kódot a PIC MCU-ba. Ezután kapcsolja be az áramkört. Ha minden a vártnak megfelelően sikerül, akkor az LCD-nek meg kell jelenítenie a folyamat állapotát, és végül azt kell mondania, hogy „Mail sent”, ahogy az alábbi videó mutatja. A hardvered valami ilyennek tűnhet.
Miután az LCD-n látható, hogy az e-mailt elküldték, ellenőrizze, hogy a Beérkezett üzenetek és a Spam mappában található-e elküldött levél. Az alábbiak szerint kellett volna kapnia a levelet.
Ez az, hogy most elkészítheti saját IOT-projektjeit, ha elolvassa az érzékelő adatait és elküldi azokat az e-mail azonosítójára. Hozzon létre biztonsági riasztási rendszert otthona vagy autója számára úgy, hogy riasztást indít levélben.
Ha bármilyen kétsége van vagy elakad a közepén, kérjük, használja a megjegyzés részt, és szívesen segítek.