เวลาทำโปรเจกต์ IoT หรือ Embedded ที่ต้องส่งข้อมูลระหว่างอุปกรณ์แบบไร้สาย คำถามแรกที่เจอเสมอคือ "ใช้ Wireless ตัวไหนดี?" บทความนี้จะเปรียบเทียบ 3 ตัวเลือกยอดนิยม ที่ใช้บ่อยในโปรเจกต์ระดับนักศึกษาและ maker
ทั้ง 3 ตัวนี้ผมเคยใช้งานจริงในโปรเจกต์ต่าง ๆ โดยเฉพาะ NRF24 ที่ใช้ในโปรเจกต์ Smart Pot Monitor เพราะต้องการส่งข้อมูลเซ็นเซอร์แบบ point-to-point ระหว่าง Arduino สองตัว บทความนี้จะสรุปสิ่งที่เรียนรู้มาให้ตัดสินใจง่ายขึ้น
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 (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