วิธีใช้โมดูลไร้สาย NRF24L01 กับ Arduino

How to Use the NRF24L01 Wireless Module with Arduino

การสื่อสารไร้สายเป็นรากฐานที่สำคัญของอุปกรณ์อิเล็กทรอนิกส์ที่ทันสมัยทำให้อุปกรณ์สามารถสื่อสารได้โดยไม่ต้องมีข้อ จำกัด ของสายไฟ หนึ่งโมดูลยอดนิยมสำหรับการบรรลุเป้าหมายนี้ด้วย Arduino คือ NRF24L01 โมดูลตัวรับส่งสัญญาณไร้สายขนาด 2.4GHz ที่มีราคาต่ำนี้เหมาะสำหรับโครงการที่ต้องการการส่งข้อมูลที่เชื่อถือได้ในระยะทางสั้น ๆ ในคู่มือนี้เราจะแนะนำคุณผ่านขั้นตอนในการตั้งค่าและใช้ NRF24L01 กับ Arduino ของคุณ

ส่วนประกอบที่คุณต้องการ

  • 2X Arduino Board (เช่น Arduino Uno)
  • 2x nrf24l01 โมดูล
  • สายจัมเปอร์
  • กระดานข่าว (ไม่บังคับ)
  • ตัวเก็บประจุ 10µF (แนะนำ)

สายไฟ NRF24L01 ไปยัง Arduino

การเชื่อมต่อ NRF24L01 กับ Arduino ของคุณต้องใส่ใจในรายละเอียด นี่คือแผนภาพการเดินสายง่าย ๆ :

NRF24L01 ไดอะแกรมการเดินสาย

หากคุณไม่มีแผนภาพการเดินสายให้ติดตามการเชื่อมต่อเหล่านี้:

  • NRF24L01 VCC ถึง Arduino 3.3V
  • nrf24l01 gnd ถึง Arduino Gnd
  • nrf24l01 CE ถึง Arduino Pin 9
  • nrf24l01 CSN ถึง Arduino Pin 10
  • Nrf24l01 SCK ถึง Arduino Pin 13
  • nrf24l01 mosi ถึง Arduino Pin 11
  • nrf24l01 มิโซะ ถึง Arduino Pin 12

บันทึก: ขอแนะนำให้เพิ่มตัวเก็บประจุ 10µF ระหว่าง VCC และ GND ของ NRF24L01 เพื่อรักษาเสถียรภาพของแหล่งจ่ายไฟ

การติดตั้งไลบรารีที่ต้องการ

เพื่อลดความซับซ้อนของการสื่อสารกับ NRF24L01 เราจะใช้ RF24 ห้องสมุด. ทำตามขั้นตอนเหล่านี้เพื่อติดตั้ง:

  1. เปิด Arduino IDE
  2. นำทางไปยัง ร่าง> รวมไลบรารี> จัดการไลบรารี ...
  3. ค้นหา RF24 โดย TMRH20
  4. คลิก ติดตั้ง.

การเขียนรหัส Arduino

เราจะสร้างสองร่าง: หนึ่งสำหรับไฟล์ เครื่องส่งสัญญาณ และหนึ่งสำหรับ เครื่องรับสัญญาณ.

รหัสส่งสัญญาณ


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

// CE and CSN pins
RF24 radio(9, 10);

// Address for communication
const byte address[6] = "00001";

void setup() {
    Serial.begin(9600);
    radio.begin();
    radio.openWritingPipe(address);
    radio.setPALevel(RF24_PA_MIN);
}

void loop() {
    const char text[] = "Hello World";
    bool report = radio.write(&text, sizeof(text));
    if (report) {
        Serial.println("Data sent successfully");
    } else {
        Serial.println("Transmission failed");
    }
    delay(1000);
}
        

รหัสรับ


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

// CE and CSN pins
RF24 radio(9, 10);

// Address for communication
const byte address[6] = "00001";

void setup() {
    Serial.begin(9600);
    radio.begin();
    radio.openReadingPipe(0, address);
    radio.setPALevel(RF24_PA_MIN);
    radio.startListening();
}

void loop() {
    if (radio.available()) {
        char text[32] = "";
        radio.read(&text, sizeof(text));
        Serial.println(text);
    }
}
        

การอัปโหลดรหัส

อัปโหลดไฟล์ เครื่องส่งสัญญาณ รหัสไปยัง Arduino แรกและ เครื่องรับสัญญาณ รหัสไปยัง Arduino ที่สอง เมื่อทั้งสองกำลังทำงานให้เปิดมอนิเตอร์อนุกรมสำหรับเครื่องรับ Arduino ที่อัตรา 9600 Baud คุณควรเห็นข้อความ "Hello World" ได้รับทุกวินาที

เคล็ดลับการแก้ไขปัญหา

  • ปัญหาพลังงาน: ตรวจสอบให้แน่ใจว่าโมดูล NRF24L01 ทั้งสองได้รับการจัดหา 3.3V ที่เสถียร การใช้ตัวเก็บประจุสามารถช่วยป้องกันความผันผวนของพลังงาน
  • ความแม่นยำในการเดินสาย: ตรวจสอบการเชื่อมต่อทั้งหมดเพื่อหลีกเลี่ยงการใช้งานที่ผิดพลาดซึ่งสามารถป้องกันการสื่อสาร
  • ความเข้ากันได้ของห้องสมุด: ตรวจสอบให้แน่ใจว่า RF24 ห้องสมุดได้รับการติดตั้งและอัปเดตอย่างถูกต้อง
  • การจับคู่ที่อยู่: ตรวจสอบให้แน่ใจว่าทั้งตัวส่งและตัวรับสัญญาณใช้ที่อยู่การสื่อสารเดียวกัน

บทสรุป

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

 


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

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.