Šajā apmācībā ļaujiet mums uzzināt, kā nosūtīt e-pastus no PIC mikrokontrollera, izmantojot slaveno WiFi moduli ESP8266. Šajā apmācībā programmēšanai tiek izmantoti PIC16F877A IC un MPLABX un XC8 kompilatori.
Šīs apmācības beigās jūs varēsiet nosūtīt e-pastu no jebkura parastā e-pasta ID, piemēram, Gmail, yahoo utt., Uz jebkuru citu e-pasta ID. Tāpēc šajā apmācībā tiek pieņemts, ka jums ir dažas pamatzināšanas par ESP8266-01 moduļiem un PIC mikrokontrolleriem. Ja nē, jums palīdzēs šādas apmācības
- Darba sākšana ar ESP8266
- ESP8266 mijiedarbība ar PIC
Tāpēc sāksim…
Gatavošanās ar jums E-pasta ID:
Kad esat izlēmis, no kura pasta ID vēlaties sūtīt e-pastus, veiciet tālāk norādītās darbības
1. darbība: apmeklējiet vietni https://www.smtp2go.com/ un reģistrējieties kā jauns lietotājs. Ievadiet savu vārdu, e-pasta adresi un sava e-pasta ID paroli, no kura vēlaties nosūtīt pastu.
Šajā apmācībā tiek izmantoti pasta ID: aswinthcd @ gmail.com un Password: circuitdigest.
2. solis: Noklikšķiniet uz pierakstīšanās, un uz jūsu ievadīto pasta ID jums tiks nosūtīta verifikācijas vēstule. Šajā gadījumā tas ir aswinthcd @ gmail.com. Atveriet pastu un noklikšķiniet uz “AKTIVĒT KONTU”
3. solis: tā var vēlreiz pieprasīt paroli, ja tiek lūgts ievadīt iepriekšējo paroli. Šajā gadījumā tas ir “circuitdigest”. Tad jūs tiksiet pieteicies SMPT2GO vietnē. Tagad jūsu e-pasta adrese ir gatava sūtīt vēstules, izmantojot moduli ESP8266.
4. solis: pēdējais solis ir e-pasta ID un paroles kodēšana 64 bāzes formātā, izmantojot šo vietni https://www.base64encode.org/. Mēs to izmantosim mūsu PIC programmā
Šajā gadījumā kodētās vērtības izskatīsies, kā parādīts zemāk esošajā tabulā.
Parametrs |
Normāls formāts |
Kodēts 64. bāzē |
Pasta ID |
aswinthcd @ gmail.com |
YXN3aW50aGNkQGdtYWlsLmNvbQ == |
Parole |
circuitdigest |
Y2lyY3VpdGRpZ2VzdA == |
Aparatūras sagatavošana:
Pilna projekta shēma ir parādīta zemāk.
Atkļūdošanas nolūkos šeit tiek izmantots LCD displejs. Jums nav obligāti to savienot. Programma darbosies labi pat bez LCD displeja. Ja vēlaties uzzināt vairāk par shēmām, apmeklējiet šo apmācību. (PIC saskarne ar ESP).
Jūs varat vienkārši samontēt šo shēmu uz paneļa un pēc tam turpināt programmēšanu.
PIC ieprogrammēšana, lai nosūtītu e-pastu:
Lai nosūtītu e-pastu no ESP8266, uz ESP moduli jānosūta AT komandu secība. Lai nosūtītu e-pastu no ESP8266, ir jāveic šādas darbības.
- Iestatiet moduli režīmā AP + STA (Piekļuves punkts un stacija)
- Lai iegūtu interneta savienojumu, izveidojiet savienojumu ar piekļuves punktu
- Iespējot vairākus savienojumus
- Sāciet serveri jebkurā konkrētā ostā
- Izveidojiet TCP savienojumu ar vietni SMPT2GO
- Pārejiet uz vietnes Login sadaļu
- Ievadiet e-pasta ID un paroli base64 formātā
- Ievadiet No pasta ID
- Ievadiet Pasta ID
- Ievadiet pasta tēmu
- Ievadiet pasta pamattekstu
- Norādiet pasta beigas
- Nosūtiet pastu
- Aizveriet TCP savienojumu
Tas ir mazliet ilgs un garlaicīgs process, bet neuztraucieties. Esmu vienkāršojis procesu, izveidojot galvenes failu, un jūs to varat izmantot tieši, vienkārši izsaucot dažas funkcijas (paskaidrotas tālāk), kas padara šo uzdevumu ļoti vienkāršu. Pilnu kodu kopā ar galvenes failu var lejupielādēt šeit.
Piezīme. Ja kodu izmantojat jaunā projektā, noteikti lejupielādējiet galvenes failu un pievienojiet to savam projektam.
Tālāk esmu paskaidrojis dažas svarīgas koda daļas, pārējās daļas ir pašsaprotamas. Bet, ja jums ir kādas šaubas, izmantojiet komentāru sadaļu.
/ * Pārbaudiet, vai ESP_PIC komunikācija ir veiksmīga * / do {Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP nav atrasts"); } while (! esp8266_isStarted ()); // pagaidiet, kamēr ESP nosūtīs atpakaļ "OK" Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP ir savienots"); __kavēšanās_ms (1500); Lcd_Clear (); / * Jā, ESP komunikācija ir veiksmīga - turpiniet * /
Šo koda daļu izmanto, lai pārbaudītu, vai starp PIC un ESP8266 ir izveidota pareiza saziņa. Tikai tad, ja abi no viņiem varētu nosūtīt un saņemt datus, izmantojot USART, programma pāriet uz nākamo soli.
esp8266_mode (3);
Šī funkcija iestatīs ESP8266 režīmā 3. Tas nozīmē, ka modulis tagad var darboties gan kā piekļuves punkts, gan arī kā serveris.
esp8266_connect ("BPAS home", "crackacksun");
Šo funkciju izmanto, lai savienotu ESP8266 moduli ar Wifi maršrutētāju. Šajā gadījumā “BPAS home” ir mana Wifi signāla nosaukums un “crackacksun” ir mana parole. Jums jāizmanto sava Wifi signāla informācija.
_esp8266_enale_MUX (); // Iespējot vairākus savienojumus _esp8266_create_server (); // Izveidojiet serveri 80. portā
Šīs divas funkcijas tiek izmantotas, lai iespējotu vairākus savienojumus un izveidotu serveri 80. portā.
_esp8266_connect_SMPT2GO ();
Tagad, izmantojot šo funkciju, mēs varam izveidot TCP savienojumu ar SMPT2GO. Kad savienojums ir izveidots, šī funkcija pārvietojas arī uz vietnes Pieteikšanās lapu.
_esp8266_login_mail ("YXN3aW50aGNkQGdtYWlsLmNvbQ ==", "Y2lyY3VpdGRpZ2VzdA ==");
Izmantojiet šo funkciju, lai ievadītu savu e-pasta ID un paroli 64 formātā. Kā redzat, šīs kodētās vērtības ir tādas pašas kā iepriekš redzamajā tabulā. Jūsu kodētās vērtības mainīsies atkarībā no jūsu e-pasta ID un paroles.
_esp8266_mail_sendID ("aswinthcd @ gmail.com");
Šo funkciju izmanto, lai definētu sūtītāja ID nosaukumu. Šajā apmācībā es sūtu pastu, izmantojot savu Gmail ID aswinthcd @ gmail.com, tāpēc esmu to nodevis kā parametru.
_esp8266_mail_recID ("mailtoaswinth @ gmail.com");
Šo funkciju izmanto, lai definētu uztvērēja ID nosaukumu. Es gribētu nosūtīt savus e-pastus uz citu manu Gmail kontu, tāpēc parametrs ir nokārtots kā mailtoasiwnth @ gmail.com. Varat izmantot vēlamo pasta ID
_esp8266_start_mail ();
Šī funkcija uzdod SMPT2GO serverim ievadīt pasta tēmu un pamattekstu un padara to sagatavotu tam pašam.
_esp8266_mail_subject ("Pasts no ESP8266");
Šo funkciju var izmantot, lai definētu pasta tēmu. Kā piemēru esmu izmantojis “Mail from ESP8266” kā pasta tēmu.
_esp8266_mail_body ("Veiksmes pārbaude-CircuitDigest");
Pēc tēmas ievadīšanas, izmantojot šo funkciju, varat ievadīt pasta tekstu. Kā piemēru esmu iestatījis “Testing Success –CircuitDigest” kā sava pasta pamattekstu.
_esp8266_End_mail ();
Tagad, kad esam ievadījuši pasta tēmu un pamattekstu, mums ir jānorāda SMPT2GO serverim, ka mēs esam paveikuši, pievienojot detalizētu informāciju pastam. To var izdarīt, izmantojot funkciju
_esp8266_End_mail ();
_esp8266_disconnect_SMPT2GO ();
Visbeidzot pēc pasta nosūtīšanas mums ir jāpārtrauc TCP savienojums ar SMPT2GO serveri. Tas tiek darīts, izmantojot iepriekš minēto funkciju.
Darbs:
Kad esat pabeidzis aparatūru un programmu. Vienkārši nometiet kodu savā PIC MCU. Pēc tam ieslēdziet ķēdi. Ja viss notiek, kā paredzēts, LCD displejā jāparāda procesa statuss un visbeidzot jāsaka “Pasts nosūtīts”, kā parādīts zemāk esošajā video. Jūsu aparatūra varētu izskatīties apmēram tā.
Kad LCD displejā redzams, ka pasts ir nosūtīts, pārbaudiet, vai nosūtītās ziņas nav mapē Iesūtne un Mēstules. Jums vajadzēja saņemt pastu, kā parādīts zemāk.
Tas ir tas, ka tagad jūs varat izveidot savus IOT projektus, nolasot sensora datus un nosūtot tos uz savu pasta ID. Izveidojiet drošības trauksmes sistēmu savām mājām vai automašīnām, aktivizējot trauksmi pa pastu.
Ja jums ir kādas šaubas vai iestrēgstat vidū, lūdzu, izmantojiet komentāru sadaļu, un es ar prieku jums palīdzēsim.