การพัฒนาโปรแกรมบน ESP8266 พร้อมกัน 2 ตัว อย่างมีประสิทธิภาพ และไม่งง ด้วย PlatformIO
สำหรับเนื้อเรื่องวันนี้… แค่ตั้งหัวข้อก็ยากแล้วครับ… อารมณ์มันประมาณ The fastest way to do something simultaneously. แหม่ดูอลังจริงๆ… เนอะ
งั้นเรามาเริ่มกันด้วยปัญหา และคำถามกันก่อนนะครับ.. มีใครเคยพัฒนาโปรแกรมบน ESP8266 สองตัวพร้อมกันไหมครับ?
- ต้องถอดเสียบไป เสียบมาใช่มั๊ย?
- เสียบ usb หลายพอร์ตก็ต้องเลือก port ใน arduino IDE ใช่มั๊ย?
- เสียบไปเสียบมา งงใช่มั๊ย?
- จำชื่อ port ไม่ได้ใช่มั๊ย?
โอ๊ย สารพัดปัญหา … อย่างเคสผมคือใช้ esp-now นั่นเองครับ แล้วทีนี้มันจำเป็นต้องเขียน (1) controller และ (2) slave ไปพร้อมๆกัน แต่ปัญหาก็คือ มันต้องเลือกพอร์ต (กรณีเสียบ USB Serial 2 อัน) หรือถ้าเสียบสองอันก็ต้องๆ เสียบๆ ตัวบอร์ดอยู่ดี ปวดหัวสุดๆ…
แล้วทำไงดีกระบวนการพัฒนาเป็นไปได้อย่างรวดเร็วที่สุด?
นี่คือภาพเจ้าปัญหา.. Serial port 2 อันนน
Arduino IDE เลือกได้ที่ละ port ใช่มั๊ยยยล่ะ!
กรณีนี้เป็นโปรเจ็คเดียวกัน (มี controller/slave) เคล็ดคือให้ Initial project เป็น 2 โปรเจ็คเลยครับ ด้วยโครงสร้างแบบด้านซ้าย…. และเลือกใช้ ESPresso Lite 2.0 ในการพัฒนาครับ
ESP8266 – ESP-Now Structure
.
├── espnow-controller
│ ├── espnow-controller
│ │ └── espnow-controller.ino
│ ├── lib
│ └── platformio.ini
└── espnow-slave
├── espnow-slave
│ └── espnow-slave.ino
├── lib
└── platformio.ini
จะเห็นว่ามีโครงสร้างที่เป็น platformIO โปรเจ็ค 2 อันครับ… (สังเกตที่ platformio.ini)
เทคนิคคือ ทำแค่ระบุ upload_port เข้าไปในแต่ละโปรเจ็คตาม config แบบนี้ครับ… แค่เนี๊ยะจบ!

Config ของตัว Controller

Config ของตัว Slave
ตอนพัฒนาโปรแกรมก็ให้เปิด 2 ไฟล์ครับ แก้ไฟล์ไหน ก็กดอัพโหลดไฟล์นั้น.. เดี๋ยวมันเข้าไปเอง!
ส่วน serial monitor ก็เปิด 2 หน้าต่างกันเลยครับ.. แบบนี้… สบายสุดๆ
หวังว่าน่าจะมีประโยชน์กับทุกๆท่านครับ 🙂
repository ตัวอย่าง: https://github.com/cmmakerclub/esp-now-all-to-master