Šioje pamokoje sužinokime, kaip siųsti el. Laiškus iš PIC mikrovaldiklio naudojant garsųjį „WiFi“ modulį ESP8266. Šioje pamokoje programavimui naudojamas PIC16F877A IC ir MPLABX bei XC8 kompiliatorius.
Šios pamokos pabaigoje galėsite siųsti el. Laiškus iš bet kurio įprasto el. Pašto ID, pvz., „Gmail“, „yahoo“ ir pan., Į bet kurį kitą el. Pašto ID. Taigi šioje pamokoje daroma prielaida, kad turite keletą pagrindinių žinių apie ESP8266-01 modulius ir PIC mikrovaldiklius. Jei ne, jums padės šios pamokos
- Darbo su ESP8266 pradžia
- ESP8266 sąsaja su PIC
Taigi pradėkime…
Pasiruošimas el. Pašto ID:
Kai nuspręsite, iš kurio pašto ID norite siųsti el. Laiškus, atlikite toliau nurodytus veiksmus
1 veiksmas: apsilankykite https://www.smtp2go.com/ ir prisiregistruokite kaip naujas vartotojas. Įveskite savo vardą, el. Pašto adresą ir el. Pašto ID, iš kurio norite siųsti laišką, slaptažodį.
Šioje pamokoje naudojami pašto ID: aswinthcd @ gmail.com ir Slaptažodis: circuitdigest.
2 žingsnis: Spustelėkite prisiregistruoti ir jums bus išsiųstas patvirtinimo laiškas į jūsų įvestą pašto ID. Šiuo atveju tai aswinthcd @ gmail.com. Atidarykite paštą ir spustelėkite „AKTYVINTI SĄSKAITĄ“
3 žingsnis: Jis gali dar kartą paprašyti slaptažodžio, jei paprašys įvesti ankstesnį slaptažodį. Šiuo atveju tai yra „circuitdigest“. Tada būsite prisijungę prie SMPT2GO svetainės. Štai dabar jūsų el. Pašto adresas yra paruoštas siųsti laiškus naudojant ESP8266 modulį.
4 žingsnis: Paskutinis žingsnis yra koduoti el. Pašto ID ir slaptažodį į pagrindinį 64 formatą, naudojant šią svetainę https://www.base64encode.org/. Mes tai naudosime savo PIC programoje
Tokiu atveju užkoduotos vertės atrodys taip, kaip parodyta toliau pateiktoje lentelėje.
Parametras |
Normalus formatas |
Užkoduota 64 bazėje |
Pašto ID |
aswinthcd @ gmail.com |
YXN3aW50aGNkQGdtYWlsLmNvbQ == |
Slaptažodis |
grandinės virškinimas |
Y2lyY3VpdGRpZ2VzdA == |
Paruošimas aparatinei įrangai:
Visa projekto schema parodyta žemiau.
Skystųjų kristalų ekranas čia naudojamas derinimo tikslams. Tai nėra privaloma jums prijungti. Programa puikiai veiks net ir be LCD ekrano. Jei norite sužinoti daugiau apie schemas, apsilankykite šioje pamokoje. (PIC sąsaja su ESP).
Galite paprasčiausiai surinkti šią grandinę ant duonos lentos ir tada tęsti programavimą.
PIC programavimas siųsti el. Laišką:
Norint išsiųsti el. Laišką iš ESP8266, į ESP modulį reikia nusiųsti AT komandų seką. Norint išsiųsti el. Laišką iš ESP8266, reikia atlikti šiuos veiksmus.
- Nustatykite modulį AP + STA (prieigos taško ir stoties) režimu
- Prisijunkite prie prieigos taško, kad gautumėte interneto ryšį
- Įgalinti kelis ryšius
- Paleiskite serverį bet kuriame konkrečiame prievade
- Užmegzkite TCP ryšį su SMPT2GO svetaine
- Eikite į svetainės skyrių Prisijungimas
- Įveskite el. Pašto ID ir slaptažodį „base64“ formatu
- Įveskite Iš pašto ID
- Įveskite į pašto ID
- Įveskite laiško temą
- Įveskite laiško turinį
- Nurodykite pašto pabaigą
- Atsiųskite laišką
- Išeikite iš TCP ryšio
Tai šiek tiek ilgas ir varginantis procesas, bet nesijaudinkite. Supaprastinau procesą sukurdamas antraštės failą, kurį galite naudoti tiesiogiai, tiesiog iškviesdami kai kurias funkcijas (paaiškinta toliau), todėl šią užduotį labai lengva padaryti. Išsamų kodą ir antraštės failą galite atsisiųsti iš čia.
Pastaba: jei kodą naudojate naujame projekte, būtinai atsisiųskite antraštės failą ir įtraukite jį į savo projektą.
Toliau paaiškinau kai kurias svarbias kodo dalis, kitos dalys savaime suprantamos. Bet jei turite kokių nors abejonių, drąsiai naudokitės komentarų skiltimi.
/ * Patikrinkite, ar ESP_PIC ryšys sėkmingas * / do {Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP nerastas"); } while (! esp8266_isStarted ()); // palauk, kol ESP atsiųs „OK“ Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP prijungtas"); __delay_ms (1500); Lcd_Clear (); / * Taip ESP ryšys sėkmingas - tęsti * /
Ši kodo dalis naudojama norint patikrinti, ar tarp PIC ir ESP8266 užmegztas tinkamas ryšys. Tik jei abu jie galėtų siųsti ir gauti duomenis per „USART“, programa pereis prie kito žingsnio.
esp8266_mode (3);
Ši funkcija nustatys ESP8266 3 režimu. Tai reiškia, kad modulis dabar gali veikti kaip prieigos taškas ir kaip serveris.
esp8266_connect („BPAS home“, „crackacksun“);
Ši funkcija naudojama norint prijungti ESP8266 modulį prie „Wifi Router“. Šiuo atveju „BPAS home“ yra mano „Wifi“ signalo pavadinimas, o „crackacksun“ - mano slaptažodis. Turite naudoti savo „Wifi“ signalo informaciją.
_esp8266_enale_MUX (); // Įjungti kelis ryšius _esp8266_create_server (); // Sukurkite serverį 80 prievade
Šios dvi funkcijos naudojamos įjungti kelis ryšius ir sukurti serverį 80 prievade.
_esp8266_connect_SMPT2GO ();
Dabar naudodamiesi šia funkcija galime užmegzti TCP ryšį su SMPT2GO. Užmezgus ryšį, ši funkcija taip pat perkeliama į svetainės Prisijungimo puslapį.
_esp8266_login_mail ("YXN3aW50aGNkQGdtYWlsLmNvbQ ==", "Y2lyY3VpdGRpZ2VzdA ==");
Naudokite šią funkciją, norėdami įvesti el. Pašto ID ir slaptažodį pagrindiniu 64 formatu. Kaip matote, šios užkoduotos vertės yra tokios pačios, kaip parodyta aukščiau esančioje lentelėje. Užkoduotos vertės skirsis priklausomai nuo jūsų el. Pašto ID ir slaptažodžio.
_esp8266_mail_sendID ("aswinthcd @ gmail.com");
Ši funkcija naudojama siuntėjo ID pavadinimui apibrėžti. Šioje pamokoje aš siunčiu laišką naudodamas savo „Gmail“ ID aswinthcd @ gmail.com, todėl jį persiunčiau kaip parametrą.
_esp8266_mail_recID ("mailtoaswinth @ gmail.com");
Ši funkcija naudojama imtuvo ID pavadinimui apibrėžti. Norėčiau išsiųsti savo laiškus į kitą mano „Gmail“ paskyrą, todėl šį parametrą perdaviau kaip mailtoasiwnth @ gmail.com. Galite naudoti norimą pašto ID
_esp8266_start_mail ();
Ši funkcija nurodo SMPT2GO serveriui, kad mes ketiname tiekti laiško temą ir turinį, ir paruošia jį tam pačiam.
_esp8266_mail_subject ("Laiškas iš ESP8266");
Šią funkciją galite naudoti laiško temai apibrėžti. Kaip pavyzdį aš naudojau „Paštas iš ESP8266“ kaip pašto tema.
_esp8266_mail_body ("Sėkmės testavimas - CircuitDigest");
Įvedę temą, naudodamiesi šia funkcija, galite įvesti laiško turinį. Kaip pavyzdį savo laiško turinį nustatiau „Testing Success –CircuitDigest“.
_esp8266_End_mail ();
Dabar, kai įvedėme laiško temą ir turinį, turime nurodyti SMPT2GO serveriui, kad tai padarėme pridėdami prie pašto išsamią informaciją. Tai galima padaryti naudojant funkciją
_esp8266_End_mail ();
_esp8266_disconnect_SMPT2GO ();
Galiausiai, išsiuntę laišką, turime nutraukti TCP ryšį su SMPT2GO serveriu. Tai daroma naudojant aukščiau nurodytą funkciją.
Darbas:
Kai baigsite savo aparatinę įrangą ir programą. Tiesiog iškelkite kodą į savo PIC MCU. Tada įjunkite savo grandinę. Jei viskas vyks taip, kaip tikėtasi, jūsų skystųjų kristalų ekranas turėtų rodyti proceso būseną ir galiausiai pasakyti „Laiškas išsiųstas“, kaip parodyta toliau pateiktame vaizdo įraše. Jūsų aparatūra gali atrodyti maždaug taip.
Kai skystųjų kristalų ekranas rodo, kad laiškas išsiųstas, patikrinkite, ar išsiųstame laiške nėra aplanko Gautieji ir Šlamštas. Paštą turėjote gauti taip, kaip parodyta žemiau.
Štai dabar jūs galite kurti savo IOT projektus, skaitydami jutiklio duomenis ir nusiųsdami juos į savo pašto ID. Sukurkite savo namų ar automobilių saugos įspėjimo sistemą suaktyvindami įspėjimą paštu.
Jei turite kokių nors abejonių ar užstrigote viduryje, naudokitės komentarų skiltimi ir mielai jums padėsiu.