- كيف يختلف Bluetooth Low Energy (BLE)؟
- قدرة BLE لوحدة NRF24L01
- المكونات مطلوبة
- بدءًا من الوحدة النمطية nRF24L01
- اردوينو
- التواصل مع nRF24L01 مع Arduino لاتصالات BLE
Bluetooth Low Energy (BLE) هو إصدار من Bluetooth وهو موجود كإصدار أصغر ومحسن للغاية من تقنية Bluetooth الكلاسيكية. يُعرف أيضًا باسم Smart Bluetooth. تم تصميم BLE مع الأخذ في الاعتبار أقل استهلاك ممكن للطاقة على وجه التحديد للتكلفة المنخفضة وعرض النطاق الترددي المنخفض والطاقة المنخفضة والتعقيد المنخفض. يحتوي ESP32 على إمكانيات BLE مضمنة ولكن بالنسبة للميكروكونترولر الأخرى مثل Arduino ، يمكن استخدام nRF24L01. يمكن أيضًا استخدام وحدة RF هذه كوحدة BLE لإرسال البيانات إلى جهاز Bluetooth آخر مثل الهواتف الذكية والكمبيوتر وما إلى ذلك.
سنشرح هنا في هذا البرنامج التعليمي كيفية إرسال أي بيانات عبر BLE باستخدام nRF24L01. ونحن سوف ترسل قراءات درجة الحرارة من DHT11 إلى الهاتف الذكي باستخدام اردوينو وجبهة الخلاص الوطني وحدة على بليه.
كيف يختلف Bluetooth Low Energy (BLE)؟
تم اعتماد BLE نظرًا لميزات استهلاك الطاقة الخاصة به حيث كان قادرًا على العمل لفترة طويلة من الوقت باستخدام خلية عملة فقط. مقارنةً بالمعايير اللاسلكية الأخرى ، فقد ذهب النمو السريع لـ BLE بشكل أسرع بسبب تطبيقاته الهائلة في الهواتف الذكية والأجهزة اللوحية والحوسبة المحمولة.
قدرة BLE لوحدة NRF24L01
يستخدم BLE نفس نطاق ISM 2.4 جيجا هرتز بمعدل باود من 250 كيلو بت في الثانية إلى 2 ميجا بت في الثانية وهو مسموح به في العديد من البلدان ويمكن تطبيقه على التطبيقات الصناعية والطبية يبدأ النطاق من 2400 ميجا هرتز إلى 2483.5 ميجا هرتز وهو مقسم إلى 40 قناة. تُعرف ثلاث من هذه القنوات باسم "الإعلان" وتستخدمها الأجهزة لإرسال حزم إعلانية تحتوي على معلومات عنها حتى تتمكن أجهزة BLE الأخرى من الاتصال. تم اختيار هذه القنوات مبدئيًا في الجزء العلوي السفلي من النطاق ووسط النطاق لتجنب التداخل الذي يمكن أن يتداخل مع عدد من القنوات. لمعرفة المزيد حول BLE ، اتبع هذا البرنامج التعليمي.
سيشرح هذا البرنامج التعليمي كيفية استخدام الوحدة النمطية NRF24L01 كجهاز إرسال واستقبال BLE. تم شرح البرنامج التعليمي على NRF24L01 كوحدة RF بالفعل في ربط nRF24L01 ببرنامج تعليمي Arduino. سيتم اليوم شرح وظيفة BLE لهذه الوحدة عن طريق إرسال بيانات المستشعر إلى هاتف ذكي. هنا سيتم ربط هذه الوحدة النمطية nRF24L01 مع Arduino Microcontroller وسيتم إرسال بيانات درجة حرارة مستشعر DHT11 إلى تطبيق أندرويد Nordic BLE الرسمي.
المكونات مطلوبة
المعدات:
- اردوينو UNO
- وحدة nRF24L01 بليه
- جهاز استشعار درجة الحرارة والرطوبة DHT11
- صداري
البرمجيات:
- اردوينو IDE
- تطبيق Nordic BLE Android (nRF Temp 2.0 لـ BLE أو nRF Connect للجوال)
بدءًا من الوحدة النمطية nRF24L01
الوحدات النمطية nRF24L01 هي وحدات جهاز إرسال واستقبال ، مما يعني أن كل وحدة يمكنها إرسال واستقبال البيانات على حد سواء ، ولكن نظرًا لأنها ثنائية الإرسال ، فيمكنها إما إرسال البيانات أو استقبالها في وقت واحد. تحتوي الوحدة على nRF24L01 IC العام من أشباه الموصلات الاسكندنافية المسؤولة عن إرسال واستقبال البيانات. يتصل IC باستخدام بروتوكول SPI وبالتالي يمكن توصيله بسهولة بأي متحكمات دقيقة. يصبح الأمر أسهل مع Arduino نظرًا لأن المكتبات متاحة بسهولة. لقد استخدمنا بالفعل وحدة nRF24L01 مع Arduino لإنشاء غرفة دردشة والتحكم في محركات المؤازرة لاسلكيًا.
يتم عرض pinouts للوحدة القياسية nRF24L01 أدناه:
تحتوي الوحدة على جهد تشغيل من 1.9 فولت إلى 3.6 فولت (عادةً 3.3 فولت) وتستهلك تيارًا أقل بكثير من 12 مللي أمبير فقط أثناء التشغيل العادي مما يجعلها فعالة في البطارية ، وبالتالي يمكن تشغيلها على خلايا العملة. على الرغم من أن جهد التشغيل يبلغ 3.3 فولت ، فإن معظم المسامير تتحمل 5 فولت ، وبالتالي يمكن توصيلها مباشرة بوحدات تحكم دقيقة 5 فولت مثل Arduino. ميزة أخرى لاستخدام هذه الوحدات هي أن كل وحدة بها 6 خطوط أنابيب. بمعنى ، يمكن لكل وحدة التواصل مع 6 وحدات أخرى لنقل البيانات أو استقبالها. هذا يجعل الوحدة مناسبة لإنشاء شبكات نجمية أو متداخلة في تطبيقات إنترنت الأشياء. كما أن لديهم نطاقًا واسعًا من العناوين يبلغ 125 معرّفًا فريدًا ، وبالتالي في منطقة مغلقة يمكننا استخدام 125 من هذه الوحدات دون التدخل مع بعضها البعض.
اردوينو
التواصل مع nRF24L01 مع Arduino لاتصالات BLE
يعمل nRF24L01 على SPI ، لذا فإن الواجهة ستستخدم بروتوكول SPI. و رمز كاملة والفيديو وسوف تعلق في نهاية هذا البرنامج التعليمي. تم شرح دليل تطبيقات Android في الفيديو أيضًا. هنا يتم استخدام الوحدة النمطية nRF24L01 للتواصل مع تطبيق Smartphone of Nordic.قم أولاً بتضمين المكتبات المطلوبة. تتضمن المكتبة RF24 للوصول إلى أوامر nRF24L01 ومكتبة DHT11 للوصول إلى أوامر DHT11 ومكتبة BTLE لاستخدام وظائف BLE.
#تضمن
تحديد وتهيئة المسامير والوظائف لوحدة DHT11 و BLE. تمت تهيئة نوع DHT كـ DHT11 نظرًا لأننا نستخدم DHT11. يتم توصيل DHT بـ GPIO Pin 4 ووحدة nRF يتم توصيل دبابيس CE و CSN الخاصة بـ Pin 9 و 10 على التوالي.
#define DHTPIN #define DHTTYPE DHT11 DHT22 DHT dht (DHTPIN، DHTTYPE) ؛ راديو RF24 (9 ، 10) ؛ BTLE btle (وراديو) ؛
ابدأ المنفذ التسلسلي على 9600 ، يمكنك اختيار أي منفذ. ثم ابدأ مستشعر DHT وابدأ أيضًا BTLE بالاسم المحلي للبلوتوث بحد أقصى 8 أحرف.
Serial.begin (9600) ؛ dht.begin () ، btle.begin ("CD Temp") ؛
اقرأ درجة الحرارة على الحلقة واحفظها في درجة حرارة متغيرة تعويم. أضف سطر تصحيح لإظهار رسالة خطأ إذا فقد DHT قوته أو حدث أي شيء غير متوقع.
تعويم temp = dht.readTemperature () ، // قراءة بيانات درجة الحرارة إذا (isnan (h) - isnan (t)) { Serial.println (F ("Failed to read from DHT sensor!"))؛ إرجاع؛ }
احفظ القيمة في المخزن المؤقت وقم بتحليلها إلى وحدة BLE النمطية. أرسل أيضًا قيمة درجة الحرارة إلى وحدة BLE. ستعلن وحدة BLE عن بيانات درجة الحرارة. يمكن لتطبيق android البحث في وحدة BLE واستقبال بيانات المستشعر.
nrf_service_data buf ؛ buf.service_uuid = NRF_TEMPERATURE_SERVICE_UUID ، buf.value = BTLE:: to_nRF_Float (درجة الحرارة) ، إذا (! btle.advertise (0x16، & buf، sizeof (buf))) { Serial.println ("BTLE فشل..!")؛ }
عند الانتهاء ، قفز فقط إلى القناة التالية.
btle.hopChannel () ،
نظرًا لأن وثائق مستشعر DHT توصي بالحفاظ على تأخير لمدة ثانيتين على الأقل بعد قراءة واحدة ، لذا أضف تأخيرًا لمدة ثانيتين.
تأخير (2000) ؛
بعد تحميل الهاتف الذكي وإقرانه بوحدة nRF ، ستبدأ في الحصول على القيم على nRF Temp 2.0 لتطبيق BLE android كما هو موضح أدناه. تم شرح الإجراء الكامل للإقران والحصول على البيانات على تطبيق android أيضًا في الفيديو:
يؤدي هذا إلى إنهاء البرنامج التعليمي الكامل حول الإعلان عن بيانات المستشعر في تطبيق Nordic Android باستخدام BLE nRF24L01. إذا وجدت أي صعوبة ، فقم بالتعليق أدناه أو اكتب إلى منتدانا. لاستكشاف المزيد حول nRF24L02 ، يمكنك أيضًا محاولة إنشاء غرفة دردشة خاصة باستخدام Arduino و nRF24L01 والمعالجة.