ในการนี้การสอนให้เราเรียนรู้วิธีการส่ง E-mail จาก PIC ไมโครคอนโทรลเลอร์ใช้โมดูล WiFi ที่มีชื่อเสียงESP8266บทช่วยสอนนี้ใช้คอมไพเลอร์ PIC16F877A IC และ MPLABX และ XC8 สำหรับการเขียนโปรแกรม
ในตอนท้ายของบทช่วยสอนนี้คุณจะสามารถส่งอีเมลจากรหัสอีเมลปกติเช่น Gmail, yahoo และอื่น ๆ ไปยังรหัสอีเมลอื่น ๆ ดังนั้นบทช่วยสอนนี้จึงถือว่าคุณมีความรู้พื้นฐานเกี่ยวกับโมดูล ESP8266-01 และไมโครคอนโทรลเลอร์ PIC หากไม่เป็นเช่นนั้นบทแนะนำต่อไปนี้จะช่วยคุณได้
- เริ่มต้นกับ ESP8266
- การเชื่อมต่อ ESP8266 กับ PIC
เริ่มกันเลย…
เตรียมตัวให้พร้อม E-mail ID:
เมื่อคุณตัดสินใจได้แล้วว่าต้องการส่งอีเมล ID ใดให้ทำตามขั้นตอนด้านล่าง
ขั้นตอนที่ 1: ไปที่ https://www.smtp2go.com/ และสมัครเป็นผู้ใช้ใหม่ ป้อนชื่อที่อยู่อีเมลและรหัสผ่านของ ID อีเมลที่คุณต้องการส่งอีเมล
บทช่วยสอนนี้ใช้ Mail ID: aswinthcd @ gmail.com และ Password: circuitdigest
ขั้นตอนที่ 2: คลิกที่ลงทะเบียนและคุณจะได้รับอีเมลยืนยันไปยัง ID อีเมลที่คุณป้อน ในกรณีนี้คือ aswinthcd @ gmail.com เปิดอีเมลและคลิกที่“ เปิดใช้งานบัญชี”
ขั้นตอนที่ 3: อาจขอรหัสผ่านอีกครั้งหากถูกถามให้ป้อนรหัสผ่านก่อนหน้า ในกรณีนี้คือ 'circuitdigest' จากนั้นคุณจะเข้าสู่เว็บไซต์ SMPT2GO เท่านี้ที่อยู่อีเมลของคุณก็พร้อมที่จะส่งอีเมลโดยใช้โมดูล ESP8266 แล้ว
ขั้นตอนที่ 4: ขั้นตอนสุดท้ายคือการเข้ารหัสรหัสอีเมลและรหัสผ่านในรูปแบบ 64 ฐานโดยใช้เว็บไซต์นี้ https://www.base64encode.org/ เราจะใช้สิ่งนี้ในโปรแกรม PIC ของเรา
ในกรณีนี้ค่าที่เข้ารหัสจะมีลักษณะดังแสดงในตารางด้านล่าง
พารามิเตอร์ |
รูปแบบปกติ |
เข้ารหัสในฐาน 64 |
ID เมล |
aswinthcd @ gmail.com |
YXN3aW50aGNkQGdtYWlsLmNvbQ == |
รหัสผ่าน |
วงจร |
Y2lyY3VpdGRpZ2VzdA == |
เตรียมฮาร์ดแวร์ของคุณให้พร้อม:
แผนผังที่สมบูรณ์ของโครงการแสดงไว้ด้านล่าง
หน้าจอ LCD ถูกใช้เพื่อจุดประสงค์ในการดีบัก คุณไม่จำเป็นต้องเชื่อมต่อสิ่งนี้ โปรแกรมจะทำงานได้ดีแม้ไม่มีจอ LCD หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับแผนผังให้ไปที่บทแนะนำนี้ (เชื่อมต่อ PIC กับ ESP)
คุณสามารถประกอบวงจรนี้บนเขียงหั่นขนมจากนั้นดำเนินการเขียนโปรแกรมต่อไป
การเขียนโปรแกรม PIC ของคุณเพื่อส่ง E-mail:
ในการส่งอีเมลจาก ESP8266ลำดับของคำสั่ง AT จะต้องถูกส่งไปยังโมดูล ESP ต้องปฏิบัติตามขั้นตอนต่อไปนี้เพื่อส่งอีเมลจาก ESP8266
- ตั้งค่าโมดูลในโหมด AP + STA (จุดเชื่อมต่อและสถานี)
- เชื่อมต่อกับจุดเชื่อมต่อเพื่อรับการเชื่อมต่ออินเทอร์เน็ต
- เปิดใช้งานการเชื่อมต่อหลายรายการ
- เริ่มต้นเซิร์ฟเวอร์บนพอร์ตเฉพาะใด ๆ
- สร้างการเชื่อมต่อ TCP กับเว็บไซต์ SMPT2GO
- ไปที่ส่วนการเข้าสู่ระบบของเว็บไซต์
- ป้อน ID อีเมลและรหัสผ่านในรูปแบบ base64
- ป้อนจากรหัสอีเมล
- ป้อนไปยังรหัสอีเมล
- ป้อนหัวเรื่องของอีเมล
- ป้อนเนื้อหาของอีเมล
- ระบุส่วนท้ายของเมล
- ส่งไปรษณีย์
- ออกจากการเชื่อมต่อ TCP
เป็นกระบวนการที่ค่อนข้างยาวและน่าเบื่อ แต่ไม่ต้องกังวล ฉันได้ทำให้กระบวนการง่ายขึ้นโดยการสร้างไฟล์ส่วนหัวและคุณสามารถใช้งานได้โดยตรงเพียงแค่เรียกใช้ฟังก์ชันบางอย่าง (อธิบายด้านล่าง) ซึ่งทำให้งานนี้ง่ายมาก คุณสามารถดาวน์โหลดโค้ดทั้งหมดพร้อมกับไฟล์ส่วนหัวได้จากที่นี่
หมายเหตุ: หากคุณกำลังใช้โค้ดในโปรเจ็กต์ใหม่ให้แน่ใจว่าคุณดาวน์โหลดไฟล์ส่วนหัวและเพิ่มในโปรเจ็กต์
ฉันได้อธิบายบางส่วนที่สำคัญของโค้ดด้านล่างส่วนอื่น ๆ นั้นอธิบายได้ด้วยตนเอง แต่หากคุณมีข้อสงสัยโปรดใช้ส่วนความคิดเห็น
/ * ตรวจสอบว่าการสื่อสาร ESP_PIC ประสบความสำเร็จหรือไม่ * / ทำ {Lcd_Set_Cursor (1,1); Lcd_Print_String ("ไม่พบ ESP"); } ในขณะที่ (! esp8266_isStarted ()); // รอจนกว่า ESP จะส่งกลับ "ตกลง" Lcd_Set_Cursor (1,1); Lcd_Print_String ("เชื่อมต่อ ESP แล้ว"); __delay_ms (1500); Lcd_Clear (); / * ใช่การสื่อสาร ESP สำเร็จ - ดำเนินการต่อ * /
รหัสส่วนนี้ใช้เพื่อตรวจสอบว่ามีการสื่อสารที่เหมาะสมระหว่าง PIC และ ESP8266 หรือไม่ เฉพาะในกรณีที่ทั้งคู่สามารถส่งและรับข้อมูลผ่าน USART ได้โปรแกรมจะดำเนินการในขั้นตอนต่อไป
esp8266_mode (3);
ฟังก์ชันนี้จะตั้งค่า ESP8266 ในโหมด 3 หมายความว่าตอนนี้โมดูลสามารถทำหน้าที่เป็นจุดเชื่อมต่อและเป็นเซิร์ฟเวอร์ได้ด้วย
esp8266_connect ("บ้าน BPAS", "รอยแตก");
ฟังก์ชั่นนี้ใช้เพื่อเชื่อมต่อโมดูล ESP8266 กับเราเตอร์ Wifi ในกรณีนี้ "บ้าน BPAS" คือชื่อสัญญาณ Wifi ของฉันและ "crackun" คือรหัสผ่านของฉัน คุณต้องใช้รายละเอียดสัญญาณ Wifi ของคุณเอง
_esp8266_enale_MUX (); // เปิดใช้งานการเชื่อมต่อหลายรายการ _esp8266_create_server (); // สร้างเซิร์ฟเวอร์บนพอร์ต 80
ฟังก์ชันทั้งสองนี้ใช้เพื่อเปิดใช้งานการเชื่อมต่อหลายรายการและสร้างเซิร์ฟเวอร์บนพอร์ต 80
_esp8266_connect_SMPT2GO ();
ตอนนี้การใช้ฟังก์ชันนี้เราสามารถสร้างการเชื่อมต่อ TCP กับ SMPT2GO เมื่อสร้างการเชื่อมต่อแล้วฟังก์ชันนี้จะย้ายไปที่หน้าเข้าสู่ระบบของเว็บไซต์ด้วย
_esp8266_login_mail ("YXN3aW50aGNkQGdtYWlsLmNvbQ ==", "Y2lyY3VpdGRpZ2VzdA ==");
ใช้ฟังก์ชันนี้เพื่อป้อน ID อีเมลและรหัสผ่านของคุณในรูปแบบฐาน 64 ดังที่คุณเห็นค่าที่เข้ารหัสเหล่านี้เหมือนกับที่แสดงในตารางด้านบน ค่าที่เข้ารหัสของคุณจะแตกต่างกันไปตาม ID อีเมลและรหัสผ่านของคุณ
_esp8266_mail_sendID ("aswinthcd @ gmail.com");
ฟังก์ชันนี้ใช้เพื่อกำหนดชื่อ ID ผู้ส่ง ในบทช่วยสอนนี้ฉันกำลังส่งอีเมลโดยใช้รหัส Gmail ของฉัน aswinthcd @ gmail.com ดังนั้นฉันจึงส่งต่อเป็นพารามิเตอร์
_esp8266_mail_recID ("mailtoaswinth @ gmail.com");
ฟังก์ชันนี้ใช้เพื่อกำหนดชื่อของ ID เครื่องรับ ฉันต้องการส่งอีเมลไปยังบัญชี Gmail อื่นของฉันดังนั้นฉันจึงส่งพารามิเตอร์เป็น mailtoasiwnth @ gmail.com คุณสามารถใช้ ID เมลที่คุณต้องการ
_esp8266_start_mail ();
ฟังก์ชั่นนี้สั่งเซิร์ฟเวอร์ SMPT2GO ว่าเราจะป้อนหัวเรื่องและเนื้อหาของเมลและเตรียมไว้สำหรับสิ่งเดียวกัน
_esp8266_mail_subject ("จดหมายจาก ESP8266");
คุณสามารถใช้ฟังก์ชันนี้เพื่อกำหนดหัวเรื่องของอีเมล ตัวอย่างเช่นฉันใช้“ Mail from ESP8266” เป็นหัวเรื่องของอีเมล
_esp8266_mail_body ("การทดสอบความสำเร็จ -CircuitDigest");
หลังจากป้อนหัวเรื่องแล้วคุณสามารถเข้าสู่เนื้อหาของอีเมลโดยใช้ฟังก์ชันนี้ ตัวอย่างเช่นฉันได้ตั้งค่า“ การทดสอบความสำเร็จ –CircuitDigest” เป็นเนื้อหาของอีเมลของฉัน
_esp8266_End_mail ();
ตอนนี้เราได้ป้อนหัวเรื่องและเนื้อหาของอีเมลแล้วเราต้องสั่งเซิร์ฟเวอร์ SMPT2GO ว่าเราได้เพิ่มรายละเอียดลงในอีเมลแล้ว ซึ่งสามารถทำได้โดยใช้ฟังก์ชัน
_esp8266_End_mail ();
_esp8266_disconnect_SMPT2GO ();
ในที่สุดหลังจากส่งอีเมลเราต้องยุติการเชื่อมต่อ TCP กับเซิร์ฟเวอร์ SMPT2GO ซึ่งทำได้โดยใช้ฟังก์ชันข้างต้น
การทำงาน:
เมื่อคุณทำฮาร์ดแวร์และโปรแกรมเสร็จแล้ว เพียงแค่ถ่ายโอนรหัสลงใน PIC MCU ของคุณ จากนั้นเปิดวงจรของคุณ หากทุกอย่างเป็นไปตามที่คาดไว้ LCD ของคุณควรแสดงสถานะของกระบวนการและสุดท้ายลงท้ายด้วยข้อความว่า“ ส่งจดหมายแล้ว” ดังที่แสดงในวิดีโอด้านล่าง ฮาร์ดแวร์ของคุณอาจมีลักษณะเช่นนี้
เมื่อหน้าจอ LCD แสดงว่ามีการส่งอีเมลแล้วให้ตรวจสอบโฟลเดอร์ Inbox และ Spam สำหรับอีเมลที่ส่ง คุณน่าจะได้รับเมล์ตามภาพด้านล่าง..
ตอนนี้คุณสามารถสร้างโครงการ IOT ของคุณเองได้แล้วโดยการอ่านข้อมูลเซ็นเซอร์และส่งไปยัง ID อีเมลของคุณ สร้างระบบแจ้งเตือนความปลอดภัยสำหรับบ้านหรือรถยนต์ของคุณโดยเรียกใช้การแจ้งเตือนทางจดหมาย
หากคุณมีข้อสงสัยหรือติดขัดตรงกลางโปรดใช้ส่วนความคิดเห็นเรายินดีที่จะช่วยเหลือคุณ