วันพุธที่ 22 กุมภาพันธ์ พ.ศ. 2560

NRF24L01 Module โมดูลสื่อสารไร้สาย NRF24L01 ความถี่ 2.4G ร่วมกับ Arduino

 NRF24L01 Module โมดูลสื่อสารไร้สาย NRF24L01 ความถี่ 2.4G  ร่วมกับ Arduino

 

 วิธี ใช้งาน NRF24L01 Module โมดูลสื่อสารไร้สาย NRF24L01 ความถี่ 2.4G  ร่วมกับ Arduino

โมดูล NRF24L01 เป็นโมดูลนสือสารไร้สาย ที่สามารถเขียนโปรแกรมให้เป็นได้ ทั้งตัวรับและตัวส่ง สามารถใช้กับ Arduino ได้หลาย ๆ ตัวพร้อมกัน มีความเร็ว 2.4G จึงสื่อสารได้รวดเร็วและไม่ต้องการเสาอากาศที่ยาว มีขนาดเล็กสะดวกในการต่อใช้งาน สามารถประยุกต์ใช้งานได้หลายอย่างเช่น ใช้เป็นอุปกรณ์ส่งข้อมูลของเซนเซอร์อัตโนมัติสำหรับควบคุม อุณหภูมิ ความชื้น การแจ้งเตือนต่าง ๆ ควบคุมและติดตามหุ่นยนต์ Robot Control and Monitoring ได้ในระยะ 15-500 เมตร โมดูลนี้ใช้ชิฟ  nRF24L01+ m ทำงานด้วยความเร็วสูง High-speed SPI interface ใช้พลังงานต่ำ รองรับการทำงานร่วมกับ Arduino และมีเสาอากาศมาให้ในตัว ในราคาแค่ไม่กี่บาท ดูราคาอุปกรณ์ คลิกที่นี่




โมดูล NRF24L01 ใช้งานง่าย แต่หลายคนไม่รู้จะเริ่มต้นใช้งานที่ตรงไหนอย่างไร ดูโคดจากหลาย ๆ ตัวอย่างแล้วก็ซับซ้อน ArduinoAll จึงเอาตัวอย่าง วิธีใช้งาน NRF24L01 มาแนะนำ ให้สามารถใช้งานได้ทันที ง่ายเหมือนต้มมาม่า

ข้อมูลอุปกรณ์ NRF24L01 ที่น่าจะรู้ แต่ถ้าไม่รู้เรื่องก็เป็นไร เราไม่ได้ใช้ทั้งหมด

ข้อควรระวัง โมดูล NRF24L01 นี้ใช้ไฟเลี้ยง 3.3V ดังนั้นห้ามต่อกับไฟ 5V เด็ดขาด  !!!

ตัวอย่างการใช้งาน  NRF24L01 Module โมดูลสื่อสารไร้สาย NRF24L01 ความถี่ 2.4G ร่วมกับ Arduino
ดาวน์โหลดไลบารีโมดูล NRF24L01  ดาวน์โหลดตัวอย่าง NRF24L01
หลังจากดาวน์โหลดและติดตั้งโมดูล NRF24L01 เรียบร้อยแล้ว ก็มาถึงตัวอย่างโคดและการต่อใช้งาน
ต่อขาโมดูล nRF24L01 กับ Arduino uno ดังนี้
  • Vcc-3.3V
  • Gnd - Gnd
  • CSN - 7
  • CE - 8
  • MOSI - 11
  • SCK - 13
  • MISO - 12
 
สำหรับการต่อขาโมดูล nRF24L01 กับ Arduino Mega ดังนี้
  • Vcc-3.3V
  • Gnd - Gnd
  • CSN - 7
  • CE - 8
  • MOSI - 51
  • SCK - 52
  • MISO - 50

ตัวอย่างนี้จะส่งข้อความคำว่า "Welcome ArduinoAll" ไปยังส่วนของตัวรับ
การทำงานจะมี 2 ส่วนคือ ภาคส่ง กับภาครับ

โคด NRF24L01 ส่วนของการทำงานภาคส่ง
#include <SPI.h>
#include <nRF24L01p.h>

nRF24L01p transmitter(7,8);//CSN,CE

void setup(){
delay(150);
Serial.begin(115200);
SPI.begin();
SPI.setBitOrder(MSBFIRST);
transmitter.channel(90); // ตั้งช่องความถี่ให้ตรงกัน
transmitter.TXaddress("ALL"); // ตั้งชื่อตำแหน่งให้ตรงกัน ชื่อตั้งได้สูงสุด 5 ตัวอักษร
transmitter.init();
}

String message;

void loop(){
 transmitter.txPL("Welcome ArduinoAll"); // ค่าที่ต้องการส่ง
transmitter.send(FAST); // สั่งให้ส่งออกไป
delay(1000);
}








โคด NRF24L01 ส่วนของการทำงานภาครับ
#include <SPI.h>
#include <nRF24L01p.h>

nRF24L01p receiver(7,8);//CSN,CE

void setup(){
delay(150);
Serial.begin(115200);
SPI.begin();
SPI.setBitOrder(MSBFIRST);
receiver.channel(90);  // ตั้งช่องความถี่ให้ตรงกัน
receiver.RXaddress("ALL");  // ตั้งชื่อตำแห่นงให้ตรงกัน ชื่อตั้งได้สูงสุด 5 ตัวอักษร
receiver.init();
}

String message;

void loop(){
if(receiver.available()){
 receiver.read(); // สั่งให้เริ่มอ่าน
receiver.rxPL(message); // สั่งใหอ่านเก็บไว้ที่ตัวแปร
Serial.println(message);
message="";
}
}

โคดคำสั่งรับ/ส่ง ไม่ยากเลย นอกจากนี้ในไลบารียังมีตัวอย่างการใช้งานอีกหลายแบบให้ได้ลองเล่นกัน
สำหรับกรณีที่ต้องการต้นทุนต่ำ สามารถใช้เพียงแค่ atmega8 + nRF24L01+ ถ่านกระดุม ก็สามารถใช้งานเป็นตัวรับส่งสัญญาณ RF ความถี่ 2.4 GHz ได้แล้ว
 
ผลทดสอบระยะการทำงานของ NRF24L01 ด้วย Arduino

ไม่มีความคิดเห็น:

แสดงความคิดเห็น