← กลับหน้า Portfolio

Wireless Comparison

เปรียบเทียบ NRF24 vs ESP-NOW vs Bluetooth: เลือก Wireless ตัวไหนดี?

สรุปข้อดี-ข้อเสียของ 3 เทคโนโลยีไร้สายยอดนิยมสำหรับโปรเจกต์ IoT / Embedded พร้อมตารางเปรียบเทียบ ตัวอย่างการใช้งาน และคำแนะนำว่าควรเลือกตัวไหนตามสถานการณ์

เวลาทำโปรเจกต์ IoT หรือ Embedded ที่ต้องส่งข้อมูลระหว่างอุปกรณ์แบบไร้สาย คำถามแรกที่เจอเสมอคือ "ใช้ Wireless ตัวไหนดี?" บทความนี้จะเปรียบเทียบ 3 ตัวเลือกยอดนิยม ที่ใช้บ่อยในโปรเจกต์ระดับนักศึกษาและ maker

ทั้ง 3 ตัวนี้ผมเคยใช้งานจริงในโปรเจกต์ต่าง ๆ โดยเฉพาะ NRF24 ที่ใช้ในโปรเจกต์ Smart Pot Monitor เพราะต้องการส่งข้อมูลเซ็นเซอร์แบบ point-to-point ระหว่าง Arduino สองตัว บทความนี้จะสรุปสิ่งที่เรียนรู้มาให้ตัดสินใจง่ายขึ้น

NRF24L01+ 2.4 GHz · SPI
ESP-NOW 2.4 GHz · WiFi chip
Bluetooth BLE 2.4 GHz · BLE 4.0+

1. NRF24L01+ — ถูก เร็ว แต่ต้องต่อสายเอง

NRF24L01+ เป็นโมดูลรับ-ส่งข้อมูลไร้สายที่ความถี่ 2.4GHz ผ่าน SPI ราคาถูกมาก (ตัวละ 25–40 บาท) ใช้ได้กับ Arduino ทุกรุ่น จุดเด่นคือส่งข้อมูลเร็ว latency ต่ำ เหมาะกับการส่ง sensor data แบบ real-time

ข้อดี

ราคาถูกมาก — ตัวละ 25–40 บาท ซื้อคู่ก็ไม่ถึงร้อย

ใช้กับ Arduino ได้ทุกรุ่น — ต่อ SPI แล้วใช้ library RF24 ที่เสถียรมาก

กินไฟต่ำ — ทำงานที่ 1.9–3.6V กินกระแสต่ำกว่า WiFi มาก

รองรับหลาย pipe — ส่งข้อมูลแบบ multicast ได้สูงสุด 6 ช่อง

ข้อเสีย

ต้องต่อสาย SPI — ใช้สาย 7 เส้น ค่อนข้างเยอะบน breadboard

ระยะจำกัด — รุ่นธรรมดาส่งได้ ~100m (กลางแจ้ง) แต่ในอาคารอาจเหลือ 20–30m

ไม่มี Internet — ส่งข้อมูลแบบ peer-to-peer เท่านั้น ไม่ขึ้น cloud ได้ตรง ๆ

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

RF24 radio(9, 10);             // CE, CSN
const byte addr[6] = "00001";

void setup() {
  radio.begin();
  radio.openWritingPipe(addr);
  radio.setPALevel(RF24_PA_MIN);
  radio.stopListening();
}

void loop() {
  const char text[] = "Hello";
  radio.write(&text, sizeof(text));
  delay(1000);
}

2. ESP-NOW — ส่งเร็ว ไม่ต้องต่อ WiFi

ESP-NOW เป็นโปรโตคอลที่ Espressif สร้างขึ้นสำหรับ ESP32 / ESP8266 ใช้ช่อง WiFi 2.4GHz ส่งข้อมูลแบบ peer-to-peer โดยไม่ต้องเชื่อมต่อ WiFi router จุดเด่นคือ setup ง่าย ไม่ต้องซื้อโมดูลเพิ่ม เพราะชิปมี WiFi ในตัวอยู่แล้ว

ข้อดี

ไม่ต้องซื้อโมดูลเพิ่ม — ESP32 มี WiFi ในตัว ใช้ ESP-NOW ได้เลย

Latency ต่ำมาก — ส่งข้อมูลได้ภายใน 1–3ms

รองรับ broadcast — ส่งข้อมูลไปหลายตัวพร้อมกันได้

ใช้คู่กับ WiFi ได้ — ส่งข้อมูลผ่าน ESP-NOW พร้อมขึ้น cloud ผ่าน WiFi

ข้อเสีย

ใช้ได้เฉพาะ ESP — Arduino Uno/Nano ใช้ไม่ได้ ต้องเป็น ESP32 หรือ ESP8266

ข้อมูลต่อ packet จำกัด — ส่งได้สูงสุด 250 bytes ต่อ packet

กินไฟมากกว่า NRF24 — เพราะชิป WiFi ทำงานตลอด

#include <esp_now.h>
#include <WiFi.h>

uint8_t peerAddr[] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};

typedef struct {
  float temperature;
  float humidity;
} SensorData;

SensorData data;

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  esp_now_init();
  // ... register peer ...
}

void loop() {
  data.temperature = 28.5;
  data.humidity = 65.0;
  esp_now_send(peerAddr, (uint8_t*)&data, sizeof(data));
  delay(2000);
}

3. Bluetooth (BLE) — เชื่อมกับมือถือได้ง่าย

Bluetooth Low Energy (BLE 4.0+) เป็นเทคโนโลยีที่เหมาะสำหรับการเชื่อมต่ออุปกรณ์กับ มือถือ / แท็บเล็ต โดยเฉพาะ เพราะ iOS / Android รองรับ BLE อยู่แล้ว ถ้าโปรเจกต์ต้องมีแอปควบคุม BLE เป็นตัวเลือกที่ดีที่สุด

ข้อดี

เชื่อมมือถือได้โดยตรง — ไม่ต้องมี gateway หรือ server กลาง

กินไฟต่ำ — BLE ออกแบบมาเพื่อ low power โดยเฉพาะ

มาตรฐานสากล — ใช้ได้กับอุปกรณ์ทุกยี่ห้อที่รองรับ BLE

ESP32 มี BLE ในตัว — ไม่ต้องซื้อโมดูลเพิ่ม

ข้อเสีย

ส่งข้อมูลช้ากว่า — BLE เน้นประหยัดไฟ bandwidth ต่ำกว่า ESP-NOW / NRF24

ระยะทางสั้น — ปกติ 10–30m ในอาคาร

ต้องพัฒนาแอป — ถ้าอยากควบคุมจากมือถือ ต้องทำแอป (Flutter / React Native) เพิ่ม

BLE vs Bluetooth Classic

BLE (Bluetooth Low Energy) กับ Bluetooth Classic เป็นคนละตัว! BLE เน้นกินไฟต่ำ ส่งข้อมูลชิ้นเล็ก ๆ เหมาะกับเซ็นเซอร์ ส่วน Bluetooth Classic (SPP) เน้นส่งข้อมูลต่อเนื่อง เช่น เสียง, ไฟล์ ESP32 รองรับทั้ง 2 แบบ แต่ Arduino Nano ต้องใช้โมดูล HC-05/HC-06 (Classic เท่านั้น)

4. ตารางเปรียบเทียบ

คุณสมบัติ NRF24L01+ ESP-NOW BLE 4.0+
ความถี่ 2.4 GHz 2.4 GHz 2.4 GHz
บอร์ดที่ใช้ได้ Arduino ทุกรุ่น ESP32 / ESP8266 ESP32 / Arduino + โมดูล
ราคาโมดูล 25–40฿ ฟรี (ในตัวชิป) ฟรี (ESP32) / 60–120฿ (HM-10)
ระยะ (indoor) 20–30m 30–50m 10–30m
ระยะ (outdoor) ~100m ~200m ~50m
ขนาด packet สูงสุด 32 bytes 250 bytes ~512 bytes (MTU)
Latency ~1ms ~1–3ms ~7.5ms+
เชื่อมมือถือ
ความยากในการใช้ ปานกลาง ง่าย ปานกลาง–ยาก
กินไฟ (active) ~12mA ~120mA ~15mA (BLE)

5. สรุป: เลือกตัวไหนดี?

ไม่มีตัวไหน "ดีที่สุด" ในทุกกรณี — ขึ้นอยู่กับโจทย์ของโปรเจกต์ ลองดูตามสถานการณ์

🌱

ใช้ Arduino Uno/Nano + ส่ง sensor data → เลือก NRF24L01+ ถูก เร็ว เสถียร (ผมใช้ในโปรเจกต์ Smart Pot Monitor)

ใช้ ESP32 + ส่งข้อมูลระหว่างบอร์ด → เลือก ESP-NOW ไม่ต้องซื้อโมดูลเพิ่ม setup ง่ายที่สุด

📱

ต้องเชื่อมกับมือถือ / ทำแอปควบคุม → เลือก BLE เป็นทางเลือกเดียวที่เชื่อมมือถือโดยตรง

🌐

ต้องส่งขึ้น Internet / Cloud → ใช้ WiFi (MQTT) แทน หรือใช้ ESP-NOW + WiFi คู่กัน (ESP32 ทำได้ทั้ง 2 อย่างพร้อมกัน)

ประสบการณ์จากโปรเจกต์จริง

ในโปรเจกต์ Smart Pot Monitor ผมเลือก NRF24 เพราะใช้ Arduino Nano ซึ่งไม่มี WiFi ในตัว แต่ถ้าเริ่มโปรเจกต์ใหม่ที่ใช้ ESP32 อยู่แล้ว ผมจะเลือก ESP-NOW ก่อนเสมอ เพราะ setup ง่ายกว่า ไม่ต้องต่อสาย SPI 7 เส้น และส่ง packet ได้ใหญ่กว่า

แหล่งอ้างอิงหลัก

บทความนี้อิงจาก datasheet ของ Nordic Semiconductor (NRF24L01+), เอกสารทางการของ Espressif (ESP-NOW), และ Bluetooth SIG specification รวมถึงประสบการณ์จากโปรเจกต์ Smart Pot Monitor