จุดประสงค์
เพื่อให้บอร์ดLotus Devkit สามารถสื่อสารดันได้ผ่านสัญญาณWifi โดยใช้ESP-NOW
เนื้อหา
ESP-NOW เป็นโปรโตคอลที่พัฒนาโดย Esprssif เพื่อใช้ในการติดต่อสื่อสารโดยอาศัยตัวกลาง เช่น Router หรือ Access Pointเป็นต้น ตัวบอร์ดESP32 สามารถสื่อสารกันได้โดยตรง โดยการส่งข้อมูลขนาดเล็กแบบประหยัดพลังงานในคลื่นความถี่ 2.4 GHz
คุณสมบัติของ ESP-Now
ใช้คลื่นความถี่ 2.4G แบบประหยัดพลังงาน
ส่งข้อมูลสูงสุดครั้งละ 250 ไบต์
เชื่อมต่อได้สูงสุด 20 อุปกรณ์
ระยะส่ง ESP32/ESP8266 ประมาณ 100-200 เมตร ขึ้นกับอุปกรณ์และสภาพแวดล้อม
สร้างเครือข่ายการรับส่งสัญญาณแบบไร้สาย
เชื่อมต่ออัตโนมัติ ไม่ต้องตั้งค่าใหม่
เข้า/ถอดรหัสข้อมูล สื่อสารระหว่างบอร์ด
มีฟังก์ชั่นตรวจสอบสถานะการรับและส่งข้อมูล
คำสั่งการใช้งานESP-NOW
แต่ละบอร์ดจะมี mac address สำหรับอ้างอิง รับและส่งข้อมูล
esp_now_init() ; สั่งเริ่มต้นให้ ESP-NOW ทำงาน
esp_now_add_peer(); เชื่อมต่ออุปกรณ์ที่ต้องการสื่อสาร ด้วยเลข mac address
esp_now_send(); ส่งข้อมูลให้กับบอร์ดที่เชื่อมต่อด้วย mac address
esp_now_register_send_cb(); เมื่อส่งสำเร็จ ให้ทำคำสั่งในฟังก์ชั่นนี้
esp_now_register_rec_cb(); เมื่อรับข้อมูลสำเร็จ ให้ทำคำสั่งในฟังก์ชั่นนี้
อ้างอิงและขอบคุณความรู้จาก : https://www.allnewstep.com/article/426/สอนวิธีใช้งาาน-esp-now-สำหรับ-esp8266-esp32-การสื่อสารโดยตรงบอร์ดต่อบอร์ด
วัสดุอุปกรณ์
บอร์ด LotusDevkit จำนวน 2 บอร์ด
พอร์ต Micro USB จำนวน 2 เส้น
ตอนที่ 1 การส่งสัญญาณแบบทางเดียว (One-way Communication)
นำบอร์ดLotusDevkitตัวที่ 1 ตัวส่งสัญญาณ มาโหลดข้อมูลตามโค้ดข้างล่าง (สำหรับความหมายและรายละเอียดการเขียนโค้ด จะอยู่ที่คอมเม้นต์ของโค้ด) เมื่อโหลดเสร็จก็จะบอร์ดก็จะทำการส่งข้อมูลผ่านESP-NOW ระหว่างบอร์ดด้วยคลื่นความถี่ 2.4 GHz ค่าตัวอักษร,ค่าสุ่มrandom จำนวนเต็ม,ค่าทศนิยม,ค่าค่าบูลีน ออกไปที่จอOLED
โค้ดตัวรับค่า สำหรับบอร์ดตัวที่1
2. นำบอร์ดLotusDevkitตัวที่ 2 ตัวรับสัญญาณ มาโหลดข้อมูลตามโค้ดข้างล่าง (สำหรับความหมายและรายละเอียดการเขียนโค้ด จะอยู่ที่คอมเม้นต์ของโค้ด) เมื่อโหลดเสร็จก็จะบอร์ดก็จะทำการรับข้อมูลผ่านESP-NOW ระหว่างบอร์ดด้วยคลื่นความถี่ 2.4 GHz ค่าตัวอักษร,ค่าสุ่มrandom จำนวนเต็ม,ค่าทศนิยม,ค่าค่าบูลีน ออกไปที่จอOLED
โค้ดตัวรับค่า สำหรับบอร์ดตัวที่2
วีดีโอการใช้งาน