V tomto tutoriálu se naučíme, jak odesílat e-maily z mikrokontroléru PIC pomocí slavného modulu WiFi ESP8266. Tento kurz používá k programování kompilátor PIC16F877A IC a MPLABX a XC8.
Na konci tohoto tutoriálu budete moci posílat e-maily z jakéhokoli běžného e-mailového ID, jako je Gmail, yahoo atd., Na jakékoli jiné e-mailové ID. Proto tento výukový program předpokládá, že máte základní znalosti o modulech ESP8266-01 a mikrokontrolérech PIC. Pokud ne, pomohou vám následující výukové programy
- Začínáme s ESP8266
- Propojení ESP8266 s PIC
Pojďme tedy začít…
Připravujeme se s vámi E-mail ID:
Jakmile se rozhodnete, ze kterého ID e-mailu chcete posílat e-maily, postupujte podle následujících kroků
Krok 1: Navštivte https://www.smtp2go.com/ a zaregistrujte se jako nový uživatel. Zadejte své jméno, e-mailovou adresu a heslo svého e-mailového ID, ze kterého chcete odeslat e-mail.
Tento výukový program používá ID pošty: aswinthcd @ gmail.com a Heslo: circuitdigest.
Krok 2: Klikněte na registraci a na zadané ID vaší pošty vám bude zaslán ověřovací e-mail. V tomto případě je to aswinthcd @ gmail.com. Otevřete e-mail a klikněte na „AKTIVOVAT ÚČET“
Krok 3: Může vás požádat o heslo znovu, pokud budete požádáni, zadejte předchozí heslo. V tomto případě je to „circuitdigest“. Poté budete přihlášeni na web SMPT2GO. Právě teď je vaše e-mailová adresa připravena k odesílání e-mailů pomocí modulu ESP8266.
Krok 4: Posledním krokem je kódování e-mailového ID a hesla do základního formátu 64 pomocí tohoto webu https://www.base64encode.org/. Použijeme to v našem programu PIC
V tomto případě budou kódované hodnoty vypadat tak, jak je uvedeno v tabulce níže.
Parametr |
Normální formát |
Zakódováno v základně 64 |
ID e-mailu |
aswinthcd @ gmail.com |
YXN3aW50aGNkQGdtYWlsLmNvbQ == |
Heslo |
obvod |
Y2lyY3VpdGRpZ2VzdA == |
Příprava hardwaru:
Kompletní schéma projektu je uvedeno níže.
Zde se LCD displej používá pro účely ladění. Propojení není povinné. Program bude fungovat dobře i bez LCD displeje. Pokud se chcete o schématech dozvědět více, navštivte tento výukový program. (Propojení PIC s ESP).
Tento obvod můžete jednoduše sestavit na prkénku a poté pokračovat v programování.
Programování vašeho PIC pro odesílání e-mailů:
Aby bylo možné odeslat e-mail z ESP8266, je třeba poslat posloupnost AT příkazů do modulu ESP. Při odesílání e-mailu z ESP8266 je třeba dodržovat následující kroky.
- Nastavte modul do režimu AP + STA (přístupový bod a stanice)
- Připojte se k přístupovému bodu a získejte připojení k internetu
- Povolit více připojení
- Spusťte server na libovolném konkrétním portu
- Navažte připojení TCP s webem SMPT2GO
- Přejděte do části Přihlášení na webu
- Zadejte ID e-mailu a heslo ve formátu base64
- Zadejte z ID e-mailu
- Zadejte ID e-mailu
- Zadejte předmět e-mailu
- Zadejte tělo zprávy
- Uveďte konec pošty
- Odeslat poštu
- Ukončete připojení TCP
Je to trochu zdlouhavý a zdlouhavý proces, ale nebojte se. Zjednodušil jsem proces vytvořením souboru záhlaví a můžete jej použít přímo pouhým voláním některých funkcí (vysvětleno níže), což tento úkol velmi usnadňuje. Celý kód spolu se souborem záhlaví lze stáhnout zde.
Poznámka: Pokud používáte kód v novém projektu, nezapomeňte si stáhnout soubor záhlaví a přidat jej do projektu.
Níže jsem vysvětlil některé důležité části kódu, ostatní části jsou vysvětlující. Pokud ale máte nějaké pochybnosti, neváhejte použít sekci komentářů.
/ * Zkontrolujte, zda je komunikace ESP_PIC úspěšná * / do {Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP nebyl nalezen"); } while (! esp8266_isStarted ()); // počkat, až ESP pošle zpět „OK“ Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP je připojen"); __delay_ms (1500); Lcd_Clear (); / * Ano ESP komunikace úspěšná - Pokračovat * /
Tato část kódu se používá ke kontrole, zda je mezi PIC a ESP8266 navázána správná komunikace. Pouze v případě, že by oba mohli odesílat a přijímat data prostřednictvím USART, program přejde k dalšímu kroku.
esp8266_mode (3);
Tato funkce nastaví ESP8266 do režimu 3. To znamená, že modul nyní může fungovat jako přístupový bod a také jako server.
esp8266_connect ("BPAS home", "cracksun");
Tato funkce se používá k připojení modulu ESP8266 k routeru Wifi. V tomto případě je „domov BPAS“ název mého signálu Wifi a „cracksun“ je moje heslo. Musíte použít vlastní podrobnosti signálu Wifi.
_esp8266_enale_MUX (); // Povolit více připojení _esp8266_create_server (); // Vytvořte server na portu 80
Tyto dvě funkce se používají k povolení více připojení a vytvoření serveru na portu 80.
_esp8266_connect_SMPT2GO ();
Nyní pomocí této funkce můžeme navázat TCP spojení s SMPT2GO. Po navázání připojení se tato funkce přesune také na přihlašovací stránku webu.
_esp8266_login_mail ("YXN3aW50aGNkQGdtYWlsLmNvbQ ==", "Y2lyY3VpdGRpZ2VzdA ==");
Pomocí této funkce můžete zadat své e-mailové ID a heslo ve formátu základny 64. Jak vidíte, tyto kódované hodnoty jsou stejné jako hodnoty uvedené v tabulce výše. Vaše kódované hodnoty se budou lišit podle vašeho e-mailového ID a hesla.
_esp8266_mail_sendID ("aswinthcd @ gmail.com");
Tato funkce se používá k definování jména ID odesílatele. V tomto tutoriálu posílám poštu pomocí svého Gmail ID aswinthcd @ gmail.com, proto jsem ji předal jako parametr.
_esp8266_mail_recID ("mailtoaswinth @ gmail.com");
Tato funkce se používá k definování názvu ID přijímače. Chtěl bych posílat své e-maily na jiný můj účet Gmail, proto jsem předal parametr jako mailtoasiwnth @ gmail.com. Můžete použít požadované ID pošty
_esp8266_start_mail ();
Tato funkce instruuje server SMPT2GO, že budeme vkládat do předmětu a těla pošty, a připraví jej na to samé.
_esp8266_mail_subject ("Mail from ESP8266");
Tuto funkci můžete použít k definování předmětu pošty. Jako příklad jsem použil jako předmět „Mail from ESP8266“.
_esp8266_mail_body ("Testování úspěchu -CircuitDigest");
Po zadání předmětu můžete pomocí této funkce zadat tělo e-mailu. Jako příklad jsem jako text své pošty nastavil „Testing Success –CircuitDigest“.
_esp8266_End_mail ();
Nyní, když jsme zadali předmět a tělo e-mailu, musíme dát serveru SMPT2GO pokyn, abychom udělali přidání podrobností k e-mailu. Toho lze dosáhnout pomocí funkce
_esp8266_End_mail ();
_esp8266_disconnect_SMPT2GO ();
Nakonec po odeslání e-mailu musíme ukončit TCP spojení se serverem SMPT2GO. To se provádí pomocí výše uvedené funkce.
Pracovní:
Až budete hotovi s hardwarem a programem. Jednoduše vložte kód do svého PIC MCU. Poté zapněte obvod. Pokud vše půjde podle očekávání, měl by váš LCD zobrazit stav procesu a nakonec skončit slovy „Mail sent“, jak je znázorněno na videu níže. Váš hardware může vypadat nějak takto.
Jakmile se na displeji LCD zobrazí, že je e-mail odeslán, zkontrolujte odeslanou poštu ve složce Doručená pošta a Spam. Měli jste obdržet e-mail, jak je uvedeno níže.
To je vše, nyní můžete vytvářet své vlastní projekty IOT čtením dat ze senzorů a jejich odesláním na své ID pošty. Vytvořte výstražný systém zabezpečení pro váš domov nebo automobil spuštěním výstrahy prostřednictvím pošty.
Pokud máte nějaké pochybnosti nebo se zaseknete uprostřed, laskavě použijte sekci komentářů a já vám rád pomůžu.