บทที่ 22: การเขียนโปรแกรมติดต่อ ESP8266 mini WeMos

UTEN BOONLIAM Avatar
บทที่ 22 / 26

บทที่ 22: การเขียนโปรแกรมติดต่อ ESP8266 mini WeMos

ESP8266 คือโมดูล WiFi ซึ่งถูกพัฒนาขึ้นมาก่อนหน้าที่จะมี ESP32 โดยตัว ESP8266 มีคุณสมบัติคือเป็นไมโครคอนโทรลเลอร์ที่มี WiFi อยู่ในตัว สามารถเขียนโค้ดด้วย Arduino IDE และโปรแกรมลงบนตัวมันเองได้ โดยมี Flash Program Memory ถึง 4Mbyte ซึ่งคุณสมบัติโดยรวมดังนี้

Microcontroller Chip ESP-8266EX
Operating Voltage 3.3V
Digital I/O Pins 11
Analog Input Pins 1(Max input: 3.2V)
Clock Speed 80MHz/160MHz
Flash 4M bytes
Length 34.2mm
Width 25.6mm
Weight 10g

ตารางที่ 22. 1 คุณสมบัติของ ESP8266 mini WeMos

  1. การติดตั้ง ESP8266 คอมไพเลอร์ให้กับ Arduino IDE

โปรแกรม Arduino IDE โดยพื้นฐานแล้ว ยังไม่ได้มีคอมไพเลอร์ของตัว ESP8266 ดังนั้นเราจำเป็นที่จะต้องทำการติดตั้งโปรแกรมเพิ่มเติมโดยมีรายละเอียดและขั้นตอนดังนี้

  1. เปิดโปรแกรม Arduino IDE ขึ้นมา คลิกที่ File -> Preferences

  1. หน้าต่าง Preference จะปรากฏขึ้นมา ที่ช่อง Additional Boards Manager URLs: ให้ใส่ลิงค์

จากนั้นกดปุ่ม OK

  1. คลิกที่ Tools -> Boards: -> Boards Manager…

  1. ดาวน์โหลดคอมไพเลอร์ ESP8266 คลิกที่ Tools -> Board: -> Board Manager.. ดังตัวอย่างรูปด้านล่าง ทำการติดตั้งให้เรียบร้อย ซึ่งขั้นตอนนี้จะใช้เวลาพอสมควร ขึ้นอยู่กับความแรงของอินเตอร์เน็ต ณ สถานที่นั้น ๆ

  1. เมื่อทำการติดตั้งเสร็จเรียบร้อยแล้ว ทดลองเลือกบอร์ด ESP8266 mini WeMos โดยไปที่

Tools -> Board: -> LILIN(WeMos) D1 R1&mini ตามรูปด้านล่าง

  1. จากนั้นทดลองคอมไพล์โค้ดด้วย ESP8266 คอมไพเลอร์ดู โดยเปิดโปรแกรมตัวอย่าง ไปที่

File -> Example -> ESP8266 -> Blink

  1. กดปุ่มคอมไพล์ตามรูปด้านล่าง ถ้าผ่านแถบด้านล่างจะขึ้นข้อความว่า “Done compiling”

  1. การทดลองเขียนโปรแกรมให้กับ ESP8266 mini WeMos บนบอร์ด Arduino Learning Kit

บนบอร์ด Arduino Learning Kit จะมีช่องสำหรับเสียบโมดูล ESP8266 รุ่น mini WeMos ไว้อยู่ ซึ่งขา serial port ของ ESP8266 จะถูกเชื่อมต่อกับ Arduino Uno และ Nano ในลักษณะไขว้ขาระหว่าง Tx <-> Rx และ Rx <-> Tx ซึ่งมีวัตถุประสงค์เพื่อในกรณีที่เราต้องการใช้ Arduino เป็นตัวประมวลผลหลัก แต่จำเป็นที่ต้องการติดต่อกับโลกอินเตอร์เน็ต เราจำเป็นที่จะต้อง ESP8266 มาช่วยเป็นตัวกลางในการติดต่อสื่อสาร

ESP8266 (TX : 15) ESP8266 (RX : 13)
Arduino Uno 3 2
Arduino Nano 7 8
ESP32(ESP-WROM-32) 17 16

ตารางที่ 22. 2 ขาที่ต่อใช้งาน

ในการทดลองนี้ เราจะให้ตัว ESP8266 เป็นตัวสั่งการให้ Arduino Uno ทำการเปิด-ปิด รีเลย์โมดูลสั่งสองตัว โดยให้ทำตามขั้นตอนดังนี้

  1. ทำการเขียนโปรแกรมให้กับ ESP8266 mini WeMos ตามตัวอย่างโปรแกรมด้านล่าง

  1. ทำการอัปโหลดโปรแกรมไปยัง ESP8266 mini WeMos

  2. ทำการเขียนโปรแกรมให้กับ Arduino Uno ตามตัวอย่างโปรแกรมด้านล่าง

  1. ทำการอัปโหลดโปรแกรมไปยัง Arduino Uno

  2. ทำการเลื่อน DIP Switch ให้กับโมดูลรีเลย์ เพื่อทำการเชื่อมต่อไปยัง Arduino Uno

  3. ดูลักษณะการเปิด-ปิดของรีเลย์โมดูล

อธิบายการทำงานของโค้ด

  • โปรแกรมแรกที่เขียนให้กับ ESP8266 mini WeMos จะเป็นการส่งค่าตัวอักษร ‘0’ , ‘1’ , ‘2’ , ‘3’ ไปยัง Arduino Uno โดยส่งผ่านพอร์ต Serial ที่สร้างขึ้นภายในโปรแกรม ซึ่งก็คือ TX1 = 15 และ RX1 = 13 โดยการส่งค่าตัวอักษรแต่ละครั้ง จะห่างกัน 1 วินาที

  • โปรแกรมที่สองที่เขียนให้กับ Arduino Uno จะทำการรอรับค่าจากพอร์ต Serial ที่สร้างขึ้นภายในโปรแกรมคือ TX1 = 3 และ RX1 = 2 เมื่อรับค่ามาได้แล้ว จะนำมาตรวจสอบว่าค่าที่ได้เป็นค่าอะไร โดย

    • ถ้าตัวอักษรที่รับมา มีค่าเป็น ‘0’ => จะทำการ OFF รีเลย์ทั้งสองตัว

    • ถ้าตัวอักษรที่รับมา มีค่าเป็น ‘1’ => Relay1 = ON, Relay2 = OFF

    • ถ้าตัวอักษรที่รับมา มีค่าเป็น ‘2’ => Relay1 = OFF, Relay2 = ON

    • ถ้าตัวอักษรที่รับมา มีค่าเป็น ‘3’ => Relay1 = ON, Relay2 = ON

แบบฝึกหัดสำหรับทบทวนความเข้าใจและประยุกต์ใช้งานจริง

  1. ให้แก้ไขโปรแกรมตัวอย่างข้างบนของ Arduino Uno โดย

    • ถ้าตัวอักษรที่รับมา มีค่าเป็น ‘0’ => ให้ LED RGB ดับทั้งหมด

    • ถ้าตัวอักษรที่รับมา มีค่าเป็น ‘1’ => ให้ LED RGB สีแดงติดสว่าง สีอื่นดับ

    • ถ้าตัวอักษรที่รับมา มีค่าเป็น ‘2’ => ให้ LED RGB สีเขียวติดสว่าง สีอื่นดับ

    • ถ้าตัวอักษรที่รับมา มีค่าเป็น ‘3’ => ให้ LED RGB สีน้ำเงินติดสว่าง สีอื่นดับ

 

Leave a Reply

Your email address will not be published. Required fields are marked *