Sa tutorial na ito ipaalam sa amin malaman kung paano magpadala ng mga E-mail mula sa PIC Microcontroller gamit ang sikat na module ng WiFi na ESP8266. Ang tutorial na ito ay gumagamit ng PIC16F877A IC at MPLABX at XC8 compiler para sa programa.
Sa pagtatapos ng tutorial na ito magagawa mong magpadala ng E-mail mula sa anumang normal na E-mail ID tulad ng Gmail, yahoo atbp sa anumang iba pang E-mail ID. Samakatuwid ipinapalagay ng tutorial na ito na mayroon kang ilang pangunahing kaalaman sa mga module ng ESP8266-01 at mga PIC Microcontroller. Kung hindi, makakatulong sa iyo ang mga sumusunod na tutorial
- Pagsisimula sa ESP8266
- Ang interfacing ng ESP8266 sa PIC
Kaya't magsimula tayo…
Paghahanda sa iyo ng E-mail ID:
Kapag napagpasyahan mo na mula sa kung aling mail ID ang nais mong ipadala ang mga email, sundin ang mga hakbang sa ibaba
Hakbang 1: Bisitahin ang https://www.smtp2go.com/ at Mag-sign up bilang isang bagong gumagamit. Ipasok ang iyong pangalan, E-mail address at password ng iyong E-mail ID kung saan mo nais ipadala ang mail.
Ang tutorial na ito ay gumagamit ng Mail ID: aswinthcd @ gmail.com at Password: circuitdigest.
Hakbang 2: Mag-click sa pag-sign up at padadalhan ka ng isang verification mail sa iyong ipinasok na mail ID. Sa kasong ito ito ay aswinthcd @ gmail.com. Buksan ang mail at mag-click sa "AKTIBAHIN ANG ACCOUNT"
Hakbang 3: Maaari itong hilingin muli para sa isang password, kung hiningi ipasok ang nakaraang password. Sa kasong ito ito ay 'circuitdigest'. Pagkatapos ay mai-log in ka sa website ng SMPT2GO. Iyon lang ngayon ang iyong E-mail address ay handa na upang magpadala ng mga mail gamit ang ESP8266 Module.
Hakbang 4: Ang huling hakbang ay upang ma-encode ang E-mail ID at password sa format na base 64 sa pamamagitan ng paggamit ng website na ito https://www.base64encode.org/. Gagamitin namin ito sa aming PIC program
Sa kasong ito ang mga naka-encode na halaga ay makikita tulad ng ipinakita sa talahanayan sa ibaba.
Parameter |
Karaniwang format |
Naka-encode sa base 64 |
Mail ID |
aswinthcd @ gmail.com |
YXN3aW50aGNkQGdtYWlsLmNvbQ == |
Password |
circuitdigest |
Y2lyY3VpdGRpZ2VzdA == |
Paghahanda ng iyong Hardware:
Ang kumpletong iskema ng proyekto ay ipinapakita sa ibaba.
Ginagamit ang LCD display dito para sa layunin ng pag-debug. Hindi sapilitan para sa iyo na ikonekta ito. Ang programa ay gagana nang maayos kahit na walang pagpapakita ng LCD. Kung nais mong malaman ang tungkol sa mga iskema na binisita mo ang tutorial na ito. (Interfacing PIC sa ESP).
Maaari mo lamang tipunin ang circuit na ito sa isang breadboard at pagkatapos ay magpatuloy sa programa.
Programming ang iyong PIC upang magpadala ng E-mail:
Upang maipadala ang isang E-mail mula sa ESP8266 ang isang pagkakasunud-sunod ng mga utos na AT ay kailangang maipadala sa module ng ESP. Ang mga sumusunod na hakbang ay kailangang sundin upang magpadala ng isang E-mail mula sa ESP8266.
- Itakda ang module sa mode na AP + STA (Access Point at istasyon)
- Kumonekta sa isang Access point upang makakuha ng koneksyon sa internet
- Paganahin ang maramihang mga koneksyon
- Magsimula ng isang server sa anumang tukoy na port
- Itaguyod ang isang koneksyon sa TCP sa website ng SMPT2GO
- Mag-navigate sa seksyong Pag-login ng website
- Ipasok ang E-mail ID at Password sa format na base64
- Ipasok Mula sa mail ID
- Ipasok Sa mail ID
- Ipasok ang Paksa ng mail
- Ipasok ang katawan ng mail
- Ipahiwatig ang pagtatapos ng mail
- Ipadala ang mail
- Itigil ang koneksyon sa TCP
Medyo napakahaba at nakakapagod na proseso ngunit huwag mag-alala. Pinasimple ko ang proseso sa pamamagitan ng paglikha ng isang header file at maaari mo itong magamit nang direkta sa pamamagitan lamang ng pagtawag sa ilang mga pagpapaandar (ipinaliwanag sa ibaba) na ginagawang napakadali ng gawaing ito. Ang kumpletong code kasama ang file ng header ay maaaring ma-download mula dito.
Tandaan: Kung gumagamit ka ng code sa isang bagong proyekto tiyaking nai-download mo ang file ng header at idagdag ito sa iyong proyekto.
Ipinaliwanag ko ang ilang mahahalagang bahagi ng code sa ibaba, ang iba pang mga bahagi ay nagpapaliwanag sa sarili. Ngunit kung mayroon kang anumang mga pagdududa huwag mag-atubiling gamitin ang seksyon ng komento.
/ * Suriin kung matagumpay ang komunikasyon ng ESP_PIC * / gawin ang {Lcd_Set_Cursor (1,1); Lcd_Print_String ("hindi nahanap ang ESP"); } habang (! esp8266_isStarted ()); // maghintay hanggang maibalik ng ESP ang "OK" Lcd_Set_Cursor (1,1); Lcd_Print_String ("Nakakonekta ang ESP"); __delay_ms (1500); Lcd_Clear (); / * Oo matagumpay ang komunikasyon ng ESP -Pagpatuloy * /
Ang bahaging ito ng code ay ginagamit upang suriin kung mayroong wastong komunikasyon na itinatag sa pagitan ng PIC at ESP8266. Kung lamang, kapwa sila maaaring magpadala at makatanggap ng data sa pamamagitan ng USART ang programa ay magpapatuloy sa susunod na hakbang.
esp8266_mode (3);
Itatakda ng pagpapaandar na ito ang ESP8266 sa mode 3. Ibig sabihin ang module ay maaari na ngayong kumilos bilang isang Access point at bilang isang server din.
esp8266_connect ("BPAS home", "cracksun");
Ginagamit ang pagpapaandar na ito upang ikonekta ang iyong module na ESP8266 sa iyong Wifi Router. Sa kasong ito ang "BPAS home" ay ang pangalan ng aking Wifi signal at "cracksun" ang aking password. Kailangan mong gumamit ng iyong sariling mga detalye sa signal ng Wifi.
_esp8266_enale_MUX (); // Paganahin ang maramihang mga koneksyon _esp8266_create_server (); // Lumikha ng isang server sa port 80
Ginagamit ang dalawang pagpapaandar na ito upang paganahin ang maraming koneksyon at lumikha ng isang server sa port 80.
_esp8266_connect_SMPT2GO ();
Ngayon, gamit ang pagpapaandar na ito maaari naming maitaguyod ang isang koneksyon sa TCP sa SMPT2GO. Sa sandaling maitaguyod ang koneksyon ang function na ito ay lilipat din sa pahina ng Pag-login ng website.
_esp8266_login_mail ("YXN3aW50aGNkQGdtYWlsLmNvbQ ==", "Y2lyY3VpdGRpZ2VzdA ==");
Gamitin ang pagpapaandar na ito upang ipasok ang iyong Email ID at password sa base 64 format. Tulad ng nakikita mo ang mga naka-encode na halaga na ito ay kapareho ng ipinakita sa talahanayan sa itaas. Ang iyong mga naka-encode na halaga ay mag-iiba batay sa iyong E-mail ID at password.
_esp8266_mail_sendID ("aswinthcd @ gmail.com");
Ginagamit ang pagpapaandar na ito upang tukuyin ang pangalan ng nagpadala ID. Sa tutorial na ito nagpapadala ako ng mail gamit ang aking Gmail ID aswinthcd @ gmail.com samakatuwid naipasa ko ito bilang isang parameter.
_esp8266_mail_recID ("mailtoaswinth @ gmail.com");
Ang pagpapaandar na ito ay ginagamit upang tukuyin ang pangalan ng tatanggap na ID. Nais kong ipadala ang aking mga mail sa isa pang aking Gmail account, kaya't naipasa ko ang parameter bilang mailtoasiwnth @ gmail.com. Maaari mong gamitin ang iyong ninanais na mail ID
_esp8266_start_mail ();
Inuutusan ng pagpapaandar na ito ang server ng SMPT2GO na magpapakain kami sa paksa at katawan ng mail at hinahanda ito para sa pareho.
_esp8266_mail_subject ("Mail mula sa ESP8266");
Maaari mong gamitin ang pagpapaandar na ito upang tukuyin ang paksa ng mail. Bilang isang halimbawa ginamit ko ang "Mail mula sa ESP8266" bilang paksa ng mail.
_esp8266_mail_body ("Tagumpay sa Pagsubok -CircuitDigest");
Matapos ipasok ang paksa maaari mong ipasok ang katawan ng mail gamit ang pagpapaandar na ito. Bilang isang halimbawa ay itinakda ko ang "Tagumpay sa Pagsubok –CircuitDigest" bilang katawan ng aking mail.
_esp8266_End_mail ();
Ngayon na nakapasok kami sa paksa at katawan ng mail kailangan naming turuan ang SMPT2GO server na tapos na kami sa pagdaragdag ng mga detalye sa mail. Maaari itong magawa sa pamamagitan ng paggamit ng pagpapaandar
_esp8266_End_mail ();
_esp8266_disconnect_SMPT2GO ();
Sa wakas pagkatapos maipadala ang mail, kailangan naming wakasan ang koneksyon sa TCP sa SMPT2GO server. Ginagawa ito sa pamamagitan ng paggamit ng pag-andar sa itaas.
Nagtatrabaho:
Kapag tapos ka na sa iyong hardware at programa. Itapon lamang ang code sa iyong PIC MCU. Pagkatapos ay i-ON ang iyong circuit. Kung ang lahat ay napupunta sa inaasahan, dapat ipakita ng iyong LCD ang katayuan ng proseso at sa wakas ay sasabihin na "Ipinadala ang mail" tulad ng ipinakita sa video sa ibaba. Maaaring magmukhang ganito ang iyong hardware.
Kapag ipinakita ng LCD na ipinadala ang mail, suriin ang iyong Inbox at Spam folder para sa naipadala na mail. Dapat na natanggap mo ang mail tulad ng ipinakita sa ibaba..
Iyon lang ito ngayon ay makakagawa ka ng iyong sariling mga proyekto ng IOT sa pamamagitan ng pagbabasa ng isang data ng sensor at pagpapadala sa kanila sa iyong mail ID. Lumikha ng isang sistema ng alerto sa seguridad para sa iyong tahanan o mga sasakyan sa pamamagitan ng pag-trigger ng isang alerto sa pamamagitan ng koreo.
Kung mayroon kang anumang pag-aalinlangan o natigil sa gitna mabait na gamitin ang seksyon ng komento at nalulugod akong tulungan ka.