مشروع الإرسال والاستقبال باستخدام وحدة 2.4GHz NRF24L01 والأردوينو اكتب تعليقُا

تم نشر هذا المشروع لجميع الأشخاص المهتمين في مجال تصنيع وابتكار المشاريع الإلكترونية والبرمجية، و نود التنويه أن موقع انا الكتروني يخلي مسؤوليته التامة في حال لم يعمل المشروع لدى العميل أو في حال الاستخدام الخاطئ للمكونات الإلكترونية والكهربائية التي قد تؤدي لحدوث أي مشكلة لا سمح الله.

شرح فكرة المشروع

  • وحدة nRF24L01 هي وحدة اتصال لاسلكي تتيح نقل البيانات سواء عن طريق الإرسال أو الاستقبال عبر تردد 2.4 جيجاهرتز.
  • تعتبر هذه الوحدة شائعة جدًا في مشاريع Arduino والأنظمة المدمجة الصغيرة الأخرى نظرًا لكفاءتها وسهولة استخدامها.
  • المشروع يهدف إلى إنشاء اتصال لاسلكي بين لوحتي Arduino Nano باستخدام وحدة الاتصال اللاسلكي nRF24L01.
  •  يمكن استخدام هذه الوحدة ضمن مجموعة متنوعة من التطبيقات، مثل: أنظمة التحكم عن بعد، تطبيقات الأتمتة المنزلية…
  • لكي يعمل المشروع:
  • يتم أولا تحميل كود المرسل (Transmitter) على Arduino Nano رقم 1.
  • يتم تحميل كود المستقبل (Receiver) على Arduino Nano رقم 2.
  • يتم توصيل كل Arduino Nano بوحدة nRF24L01 كما هو موضح في التوصيلات.
  • عند بدء تشغيل اللوحتين، يبدأ المرسل في إرسال بياناته عبر وحدة nRF24L01.
  • يقوم المستقبل بقراءة البيانات المرسلة من وحدة nRF24L01 التي تم توصيلها به.
  • يتم عرض البيانات المرسلة والمستقبلة على واجهة Serial Monitor على أجهزة الكمبيوتر.
  • لفتح واجهة Serial Monitor، اختر Tools ثم Serial Monitor
  • الرابط

ادوات المشروع

مخطط المشروع

  • تنويه: توجد دارتين متشابهتين، إحداهما للمرسل والأخرى للمستقبل.
  • الفرق يكمن في الكود البرمجي.

دارة المرسل:

دارة المستقبل:

الكود البرمجي

تنبيه : في حال لم تكن متأكد من قدرتك على تنفيذ خطوات المشروع يرجى استشارة شخص متخصص في هذا المجال.
  • للتعرف على تجهيز لوحة أردوينو للبرمجة قم بزيارة الرابط التالي.
  • للإطلاع على كيفية تحميل وتنصيب المكتبات قم بزيارة الرابط التالي.
  • قبل تحميل الكود البرمجي، عليك تحميل المكتبات التالية:
  • SPI.h
  • nRF24L01.h
  • RF24.h
  • في حال لم يعمل هذا الكود البرمجي، قم بتحميل ملف الكود بالضغط على زر التحميل الموجود في الأسفل.

الكود البرمجي للمرسل Transmitter:

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

RF24 radio(9, 10); // CE, CSN pins
const byte address[6] = “00001”; // Address to identify this transmitter

void setup() {
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_HIGH); // Power Amplifier level – maximum range
}

void loop() {
char dataToSend[100];
int i = 0;
while (Serial.available()) {
// get the new byte:
char inChar = (char)Serial.read();
// add it to the inputString:
dataToSend[i] = inChar;
// if the incoming character is a newline, set a flag so the main loop can do something about it:
if (inChar == ‘\n’ || i == 100) {
break;
} else {
i++;
}
}

if (i > 0)
radio.write(&dataToSend, sizeof(char) * i); // Send the data
delay(1000);
}

الكود البرمجي للمستقبل Reciever:

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

RF24 radio(9, 10); // CE, CSN pins
const byte address[6] = “00001”; // Address to identify this receiver

void setup() {
radio.begin();
radio.openReadingPipe(1, address);
radio.setPALevel(RF24_PA_HIGH); // Power Amplifier level – maximum range
radio.startListening();
}

void loop() {
if (radio.available()) {
char dataReceived[32] = “”;
radio.read(&dataReceived, sizeof(dataReceived)); // Read the data
Serial.println(“Data received: ” + String(dataReceived));
}
}

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *