1 การส่งข้อมูลพื้นฐานทางเดียว (Basic Sender)
ในการใช้งาน ESP-NOW เราต้องตั้งค่า WiFi ให้อยู่ในโหมด Station (WIFI_STA) จากนั้นทำการเพิ่ม Peer (อุปกรณ์ปลายทาง) ด้วย MAC Address
โค้ดสำหรับผู้ส่ง (Sender)
#include <esp_now.h>
#include <WiFi.h>
// กำหนด MAC Address ของตัวรับ (เปลี่ยนให้ตรงกับบอร์ดรับของคุณ)
uint8_t receiverAddress[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
// ฟังก์ชัน Callback เมื่อส่งข้อมูลเสร็จ
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {
Serial.print("Send Status: ");
Serial.println(status == ESP_NOW_SEND_SUCCESS ? "Success" : "Fail");
}
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA); // ตั้งเป็นโหมด Station
// เริ่มต้น ESP-NOW
if (esp_now_init() != ESP_OK) {
Serial.println("Error initializing ESP-NOW");
return;
}
// ลงทะเบียนฟังก์ชัน Callback
esp_now_register_send_cb(OnDataSent);
// ลงทะเบียน Peer
esp_now_peer_info_t peerInfo = {};
memcpy(peerInfo.peer_addr, receiverAddress, 6);
peerInfo.channel = 0;
peerInfo.encrypt = false;
if (esp_now_add_peer(&peerInfo) != ESP_OK){
Serial.println("Failed to add peer");
return;
}
}
void loop() {
String message = "Hello ESP-NOW!";
// ส่งข้อมูล
esp_now_send(receiverAddress, (uint8_t *)message.c_str(), message.length());
delay(2000);
}