บทที่ 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
-
การติดตั้ง ESP8266 คอมไพเลอร์ให้กับ Arduino IDE
โปรแกรม Arduino IDE โดยพื้นฐานแล้ว ยังไม่ได้มีคอมไพเลอร์ของตัว ESP8266 ดังนั้นเราจำเป็นที่จะต้องทำการติดตั้งโปรแกรมเพิ่มเติมโดยมีรายละเอียดและขั้นตอนดังนี้
-
เปิดโปรแกรม Arduino IDE ขึ้นมา คลิกที่ File -> Preferences

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

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

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

-
เมื่อทำการติดตั้งเสร็จเรียบร้อยแล้ว ทดลองเลือกบอร์ด ESP8266 mini WeMos โดยไปที่
Tools -> Board: -> LILIN(WeMos) D1 R1&mini ตามรูปด้านล่าง
-
จากนั้นทดลองคอมไพล์โค้ดด้วย ESP8266 คอมไพเลอร์ดู โดยเปิดโปรแกรมตัวอย่าง ไปที่
File -> Example -> ESP8266 -> Blink

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

-
การทดลองเขียนโปรแกรมให้กับ 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 ทำการเปิด-ปิด รีเลย์โมดูลสั่งสองตัว โดยให้ทำตามขั้นตอนดังนี้
-
ทำการเขียนโปรแกรมให้กับ ESP8266 mini WeMos ตามตัวอย่างโปรแกรมด้านล่าง

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


-
ทำการอัปโหลดโปรแกรมไปยัง Arduino Uno
-
ทำการเลื่อน DIP Switch ให้กับโมดูลรีเลย์ เพื่อทำการเชื่อมต่อไปยัง Arduino Uno
-
ดูลักษณะการเปิด-ปิดของรีเลย์โมดูล
อธิบายการทำงานของโค้ด
-
โปรแกรมแรกที่เขียนให้กับ 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
-
แบบฝึกหัดสำหรับทบทวนความเข้าใจและประยุกต์ใช้งานจริง
-
ให้แก้ไขโปรแกรมตัวอย่างข้างบนของ Arduino Uno โดย
-
ถ้าตัวอักษรที่รับมา มีค่าเป็น ‘0’ => ให้ LED RGB ดับทั้งหมด
-
ถ้าตัวอักษรที่รับมา มีค่าเป็น ‘1’ => ให้ LED RGB สีแดงติดสว่าง สีอื่นดับ
-
ถ้าตัวอักษรที่รับมา มีค่าเป็น ‘2’ => ให้ LED RGB สีเขียวติดสว่าง สีอื่นดับ
-
ถ้าตัวอักษรที่รับมา มีค่าเป็น ‘3’ => ให้ LED RGB สีน้ำเงินติดสว่าง สีอื่นดับ
-





Leave a Reply