[BASIC] 013 ESP NOW (ส่งข้อมูลระหว่างบอร์ด)
สวัสดีครับ สำหรับหัวข้อบทเรียนพื้นฐานบนบอร์ด HONEYLemon ที่ใช้งานผ่าน arduino library โดยเป็นการใช้งานเกี่ยวกับการสื่อสารไร้สายผ่าน ESP NOW
สำหรับ ESP-NOW นั้นเป็นโพรโตคอลที่พัฒนาโดย Espressif System เพื่อใช้ในการติดต่อสื่อสารโดยไม่จำเป็นต้องมีตัวกลาง ยกตัวอย่างเช่น Access Point หรือ Router เลย โดยสามารถเชื่อมต่อกันตรงๆ และใช้งานได้ทั้งส่งไปยังปลายทางที่กำหนด หรือใช้การ Broadcast ก็ได้เช่นกัน เหมาะสำหรับการนำมาทำงานร่วมกันเป็นกลุ่มของการสื่อสารโดยใช้ความถี่ 2.4GHz
ส่งข้อมูลได้ครั้งละ 250 byte ต่อครั้ง (payload)
ใช้งานพร้อมกันได้สูงสุด 20 ตัว
สำหรับการใช้งานนั้นทางผู้พัฒนาบอร์ด HONEYLemon ได้มีการสร้างฟังก์ชั่นให้สามารถใช้งานสำหรับการสื่อสารได้ง่ายขึ้น โดยมีคำสั่งเบื้องต้นดังนี้
lemon.setupESPNOW(); // สำหรับ setup ให้สามารถใช้งาน esp-now ได้
lemon.espnow_send(); // สำหรับการส่งไปหาอุปกรณ์ปลายทาง
lemon.espnow_broadcast(); // สำหรับการส่งไปหาอุปกรณ์ปลายทางแบบ broadcast(ส่งทุกตัว)วิธีการใช้งาน
1.สร้างฟังก์ชั่นสำหรับรับข้อมูลก่อน
void espnowRecv(const uint8_t *mac_addr, const uint8_t *data, int data_len) {
char macStr[22];
snprintf(macStr, sizeof(macStr), "[%02X:%02X:%02X:%02X:%02X:%02X]: ", mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]);
Serial.print(macStr);
Serial.write(data, data_len);
Serial.println();
}2.ทำการ setup เพื่อใช้งาน ESP NOW
3.ทำการส่งข้อมูลแบบ broadcast ไปหาอุปกรณ์ทุกตัว
หรือหากต้องการส่งไปหาตัวใดตัวหนึ่งในระบบก็สามารถทำได้แต่ต้องทราบ Mac Address ของอุปกรณ์ปลายทางที่ต้องการส่งก่อน โดยบอร์ด HONEYLemon สามารถพิมพ์คำสั่งได้เลย
แนะนำว่าควรนำไปไว้ใน void setup() เพื่อใช้ในการดูว่า Mac Address ของบอร์ดนั้นๆ
และสำหรับการส่งไปหาอุปกรณ์ปลายทางเฉพาะบอร์ดสามารถใช้คำสั่งได้ดังนี้
ตัวอย่าง source code
Last updated
Was this helpful?