جدول المحتويات:

WiFi بسيط إلى جسر BLE (Bluetooth منخفض الطاقة): 9 خطوات (بالصور)
WiFi بسيط إلى جسر BLE (Bluetooth منخفض الطاقة): 9 خطوات (بالصور)

فيديو: WiFi بسيط إلى جسر BLE (Bluetooth منخفض الطاقة): 9 خطوات (بالصور)

فيديو: WiFi بسيط إلى جسر BLE (Bluetooth منخفض الطاقة): 9 خطوات (بالصور)
فيديو: شيخ يحطم طائرة حربية 2024, شهر نوفمبر
Anonim
WiFi بسيط إلى جسر BLE (Bluetooth منخفض الطاقة)
WiFi بسيط إلى جسر BLE (Bluetooth منخفض الطاقة)
WiFi بسيط إلى جسر BLE (Bluetooth منخفض الطاقة)
WiFi بسيط إلى جسر BLE (Bluetooth منخفض الطاقة)
WiFi بسيط إلى جسر BLE (Bluetooth منخفض الطاقة)
WiFi بسيط إلى جسر BLE (Bluetooth منخفض الطاقة)

التحديث الرابع من ديسمبر 2017 - الرسومات المنقحة لـ Feather nRF52 ونصائح التصحيح. الصور المضافة للجسر المُثبت في الصندوق

يوفر هذا المشروع البسيط وصول WiFi إلى أي وحدة Bluetooth منخفضة الطاقة (BLE) تنفذ Nordic's UART مع TX Notify. جسر Wifi2BLE شفاف تمامًا. إنه يمرر بيانات WiFi إلى جهاز BLE ويمرر بيانات جهاز BLE مرة أخرى إلى اتصال WiFi.

ينشئ pfodDesignerV3 المجاني رمزًا لتنفيذ خدمة Nordic UART على العديد من وحدات BLE بما في ذلك Adafruit Bluefruit Feather nRF52 و Arduino / Genuino 101 و RedBearLab BLE Nano V2 و V1-V1.5 و RedBearLab BLE Shield و Adafruit Bluefruit LE UART Friend و Flora Boards و Adafruit Bluefruit LE SPI (مثل Bluefruit LE Shield و Bluefruit LE Micro و Feather 32u4 Bluefruit LE و Feather M0 Bluefruit LE أو Bluefruit LE SPI Friend) وأي لوحات أخرى تتيح لك برمجة خدمتك الخاصة.

يعتبر جسر Wifi2BLE هذا مناسبًا للمُنشئ عديم الخبرة والذي يمكنه اللحام. إنها تستخدم لوحين فقط ، كابل شريطي واحد ومقاومين

بالإضافة إلى الاختبار التفصيلي لكل لوحة ، يتضمن هذا التوجيه خطوة تعليمات - لا تعمل مع المزيد من تلميحات اكتشاف الأخطاء.

هذه التعليمات متاحة أيضًا على الإنترنت

لماذا هذا المشروع؟

يحل هذا المشروع عددًا من المشكلات التي يعاني منها BLE (Bluetooth Low Energy).

  • فقط الهواتف المحمولة وأجهزة الكمبيوتر الحديثة تدعم BLE. يسمح جسر Wifi2BLE لأي هاتف محمول أو كمبيوتر متصل بشبكة WiFi بالاتصال بجهاز BLE والتحكم فيه.
  • نطاق BLE محدود. يسمح لك جسر Wifi2BLE بالوصول إلى جهاز BLE من أي مكان في المنزل (حيث يوجد اتصال WiFi) ومن الخارج عبر الإنترنت.
  • يتطلب إنشاء تطبيقات BLE تعلم Android أو iOS. يوفر جسر Wifi2BLE اتصال تلنت عالمي عبر أي برنامج طرفي. علاوة على ذلك ، يمكنك بسهولة إضافة صفحة ويب إلى وحدة WiFi لإنشاء واجهتك المخصصة.
  • يعد BLE V5 بشبكات شبكية لتوصيل جميع أجهزة BLE المنزلية ، بمجرد أن يلحق البرنامج بأحدث مواصفات Bluetooth. يستخدم جسر Wifi2BLE جهاز BLE V5 وبالتالي سيوفر الوصول إلى الإنترنت لهذه الشبكة المنزلية عند وصولها.

استخدامي الفوري لهذا المشروع هو إضافة التحكم في إضاءة غرفة الصالة BLE إلى شبكة WiFi للسماح بالتحكم فيها من أي مكان في المنزل. على الرغم من أن هذا البرنامج التعليمي يستخدم pfodApp كمثال للتحكم في لوحات BLE عبر WiFi ، إلا أنك لست بحاجة إلى شراء pfodApp لإكمال هذا المشروع.

الخطوة 1: قائمة الأجزاء

التكلفة حوالي 60 دولارًا أمريكيًا في 30 نوفمبر 2017 ، باستثناء الشحن + حاوية بلاستيكية صغيرة

ريشة Adafruit nRF52 Bluefruit LE - nRF52832 - ~ 25 دولارًا أمريكيًا

اندلاع Adafruit HUZZAH ESP8266 - ~ 10 دولارات أمريكية

كابل الشريط بنهايات أنثوية منفصلة - كابل Bus Pirate ~ 5 دولارات أمريكية https://www.sparkfun.com/products/9556 أو كابل اندلاع قوس قزح بمقبس IDC ذو 10 سنون ~ 4 دولارات أمريكية https://www.sparkfun.com/products/ 9556 أو ما شابه

كسر رؤوس الذكور بعيدًا - الزاوية اليمنى - ~ 2 دولار أمريكي

USB إلى TTL 3V3 Serial Cable - ~ 10 دولارات أمريكية https://www.sparkfun.com/products/12977 (مفضل لأنه يحتوي على المسامير المسمى) أو https://www.sparkfun.com/products/12977 (الدبابيس ليست كذلك المسمى)

كابل USB A إلى Micro B - حوالي 4 دولارات أمريكية https://www.sparkfun.com/products/12977 (بطول 3 أقدام) أو ~ 3 دولارات أمريكية https://www.sparkfun.com/products/12977 (بطول 6 بوصات) أو ~ 2 دولار أمريكي https://www.sparkfun.com/products/12977 (بطول 6 بوصات) أو ~ 5 دولارات أمريكية https://www.sparkfun.com/products/12977 (بطول 6 أقدام) أو ما شابه

مقاومات 2 × 100 أوم - ~ 1 دولار أمريكي

مصدر طاقة USB (500 مللي أمبير أو أكثر) - ~ 6 دولارات أمريكية https://www.sparkfun.com/products/12890 أو ~ 7 دولارات أمريكية https://www.adafruit.com/product/1994 أو ما شابه ذلك

Arduino IDE V1.8.5 وجهاز كمبيوتر لتشغيله.

بالنسبة لصندوق بلاستيكي ، استخدمت واحدة من Jaycar UB5 (أزرق) 83 مم × 54 مم × 31 مم ~ 4 دولارات أسترالية

الخطوة 2: حلبة Wifi2BLE

حلبة Wifi2BLE
حلبة Wifi2BLE

تظهر دائرة Wifi2BLE أعلاه. نسخة pdf هنا. كما ترى فإن الدائرة بسيطة للغاية. فقط 4 أسلاك واثنين من مقاومات الحماية 100 أوم. توجد مقاومات الحماية في حالة عدم توصيل خطوط TX / RX بعد برمجة HUZZAH ESP8266 أو Feather nRF52.

ملاحظة: علامة لوحة Feather nRF52 لدبابيس TX و RX غير صحيحة. دبوس TX هو في الواقع الموجود بجوار دبوس DFU ودبوس RX هو الموجود بجوار دبوس MISO

تأكد من توصيل خطوط TX / RX كما هو موضح أعلاه. لحسن الحظ ، قامت مقاومات الحماية بعملها ولم تتضرر الألواح بينما كنت أفرز سبب عدم أخذ الألواح لبعضها البعض.

الخطوة 3: إنشاء Wifi2BLE

Wifi2BLE البناء
Wifi2BLE البناء
Wifi2BLE البناء
Wifi2BLE البناء
Wifi2BLE البناء
Wifi2BLE البناء

دبابيس الرأس ذات الزاوية اليمنى حيث يتم لحامها في HUZZAH ESP8266 للسماح بفصلها من أجل البرمجة. يتم استخدام أربعة أسلاك من كابل الشريط لتوصيل اللوحين. احتفظ بموصلات الدبوس الأنثوية وقطع الطرف الآخر من كابل الشريط. كان لكابل الشريط الخاص بي نفس ألوان كابل البرمجة Sparkfun USB إلى TTL ، لذا اخترت السلك المناسب له. أسود لـ GND ، أحمر لـ 5V + ، برتقالي لـ TX (يتصل بـ ESP8266 RX) وبني لـ RX (يتصل بـ ESP8266 TX)

لقد قمت بتوصيل مقاومات الحماية على الجزء الخلفي من لوحة Feather nRF52. (سيرى المصممون الملتزمون الذين يعرفون رموز المقاوم الخاصة بهم أنني استخدمت مقاومين بقدرة 68 أوم في متناول اليد بدلاً من 100 أوم) ثم عزلهم ببعض التفاف الانكماش.

الكبل الأحمر ملحوم بمسمار Feather nRF52 USB لالتقاط USB 5V لتشغيل وحدة HUZZAH ESP8266 والكابل الأسود ملحوم بمسمار Feather nRF52 GND.

هذا كل شيء باستثناء برمجة الوحدات ، كما هو موضح أدناه ، ووضعها في صندوق بلاستيكي وتوصيل مصدر طاقة USB في Feather nRF52.

الخطوة 4: برمجة Wifi2BLE

برمجة Wifi2BLE
برمجة Wifi2BLE
برمجة Wifi2BLE
برمجة Wifi2BLE
برمجة Wifi2BLE
برمجة Wifi2BLE

برمجة HUZZAH ESP8266

لبرمجة الدرع ، اتبع التعليمات الواردة على https://github.com/esp8266/Arduino ضمن التثبيت باستخدام Boards Manager. عند فتح Boards Manager من قائمة Tools → Board وحدد Type Contributed وقم بتثبيت النظام الأساسي esp8266. تم تجميع هذا المشروع باستخدام الإصدار 2.3.0 من ESP8266. سيكون للإصدارات الأخرى مجموعة الأخطاء الخاصة بها وقد لا تعمل مع هذا الرمز.

ملاحظة: لا تستخدم تثبيت لوحة Adafruit لأن الرسم المستخدم هنا لن يتم تجميعه تحت هذا الرمز.

أغلق Arduino IDE وأعد فتحه ويمكنك الآن تحديد "Adafruit HUZZAH ESP8266" من قائمة Tools → Board.

تحتاج أيضًا إلى تثبيت أحدث إصدار من مكتبة pfodESP8266WiFiBufferedClient. تعمل هذه المكتبة مع ESP8266.com IDE plug-in V2.3. (إذا قمت مسبقًا بتثبيت مكتبة pfodESP2866WiFi ، فاحذف دليل المكتبة هذا تمامًا.)

  • أ) قم بتنزيل ملف pfodESP8266WiFiBufferedClient.zip هذا على جهاز الكمبيوتر الخاص بك ، وانقله إلى سطح المكتب أو إلى مجلد آخر يمكنك العثور عليه بسهولة
  • ب) ثم استخدم خيار قائمة Arduino 1.8.5 IDE Sketch → Import Library → Add Library لتثبيته. (إذا لم يسمح لك Arduino بتثبيته لأن المكتبة موجودة بالفعل ، فابحث عن مجلد pfodESP8266BufferedClient القديم وحذفه ثم قم باستيراد هذا المجلد)
  • ج) أوقف Arduino IDE وأعد تشغيله وتحت File-> Examples ، يجب أن ترى الآن pfodESP8266BufferedClient.

إعداد الشبكة SSID وكلمة المرور و IP والمنفذ

بعد تثبيت مكتبة pfodESP8266BufferedClient ، افتح Arduino IDE وانسخ هذا الرسم ، Wifi_Bridge.ino ، في IDE. قبل برمجة الوحدة ، تحتاج إلى ضبط SSID وكلمة المرور لشبكتك واختيار IP غير مستخدم.

قم بتحرير هذه الخطوط الثلاثة بالقرب من الجزء العلوي من Wifi_Bridge.ino

char ssid = "**** ***"؛ كلمة مرور char = "**** *****" ؛ char staticIP = "10.1.1.180" ؛

أستخدم تطبيق Fing (Android أو iOS) لفحص شبكتي المحلية وتحديد عنوان IP المستخدم بالفعل. من الآمن عادةً اختيار عنوان IP غير مستخدم في النطاق.180 إلى.254

لتبدأ ، يمكنك ترك المنفذ رقم 23 ، المنفذ القياسي لاتصال telnet.

بمجرد إجراء هذه التغييرات ، يمكنك برمجة ESP8266.

برمجة HUZZAH ESP8266

لبرمجة HUZZAH ESP8266 ، قم بتوصيل USB بالكابل التسلسلي كما هو موضح في الصورة. تحقق من الصورة والأسلاك الخاصة بك. راجع أيضًا ESP8266 Programming Tips (فشل espcomm)

أستخدم Sparkfun USB إلى TTL 3V3 Serial Cable لأنه يحتوي على علامات TX و RX. تأكد من توصيل الرصاص TX بمسمار RX وتوصيل سلك RX في طرف TX كما هو موضح أعلاه. إذا كنت تستخدم كبل Adafruit ، فلن يتم وضع علامة على المحطات الطرفية ولكن تم ترميزها بالألوان ، والأحمر هو الطاقة ، والأسود هو الأرض ، والأخضر هو TX والأبيض هو RX.

قم بتوصيل كابل USB إلى Serial بجهاز الكمبيوتر الخاص بك وحدد منفذ COM في قائمة Tools → Port. اترك تردد وحدة المعالجة المركزية وحجم الفلاش وسرعة التحميل في الإعدادات الافتراضية.

ثم ضع وحدة Adafruit HUZZAH ESP2866 في وضع البرمجة عن طريق الضغط باستمرار على زر الضغط GPIO0 والنقر فوق زر إعادة الضبط ثم تحرير زر الضغط GPIO0. يجب أن يظل مصباح GPIO0 مضاءً بشكل خافت. ثم حدد ملف → تحميل أو استخدم زر السهم الأيمن لتجميع وتحميل البرنامج. إذا تلقيت رسالة خطأ أثناء التحميل ، فتحقق من توصيل توصيلات الكبلات بالمسامير الصحيحة وحاول مرة أخرى.

بمجرد اكتمال البرمجة ، يجب أن يضيء المصباح الأحمر في الوحدة. يشير ذلك إلى أنه قد اتصل بنجاح بشبكتك المحلية وبدأ الخادم في قبول الاتصال.

اختبار HUZZAH ESP2866

لاختبار HUZZAH ESP2866 ، اترك كابل البرمجة متصلاً وافتح Arduino IDE Tools → Serial Monitor وقم بتعيين الباود 9600 (الزاوية اليمنى السفلية). ثم افتح برنامجًا طرفيًا على جهاز الكمبيوتر الخاص بك ، وأستخدم TeraTerm لنظام التشغيل Windows و CoolTerm لنظام التشغيل Mac ، وقم بالاتصال بـ IP والمنفذ الذي لم تقم بتعيينه في مخطط Wifi_Bridge.ino.

عند توصيل المصباح الأحمر الموجود على الوحدة ، يجب أن يبدأ في الوميض ، مما يشير إلى وجود اتصال. يجب أن تكون الآن قادرًا على الكتابة في النافذة الطرفية لأجهزة الكمبيوتر الخاصة بك ويجب أن تظهر الأحرف في نافذة شاشة Arduino IDE والعكس صحيح.

مهلة اتصال واي فاي

رمز Wifi_Bridge.ino له وقت اتصال.

uint32_t connectionTimeout = 60000 ؛ // 60 ثانية مهلة الاتصال

في حالة عدم تلقي بيانات WiFi بواسطة وحدة HUZZAH ESP8266 لمدة 60 ثانية ، فإن الوحدات النمطية تغلق الاتصال وتنتظر اتصالًا جديدًا. هذا يضمن استرداد الوحدة من الاتصالات `` نصف المغلقة '' التي حدثت عندما يختفي العميل بسبب اتصال WiFi السيئ أو فقدان الطاقة في جهاز التوجيه أو الإغلاق القسري للعميل. راجع الكشف عن اتصالات مقبس TCP / IP نصف مفتوحة (مسقطة) لمزيد من التفاصيل.

تم ضبط مهلة الاتصال هذه على 60 ثانية. ولكن يمكن أن تنقص أو تزيد حسب الحاجة. تعيينه على 0 يعني عدم انتهاء المهلة التي لا ينصح بها.

برمجة الريشة nRF52

لبرمجة Feather nRF52 ، اتبع الإرشادات الخاصة بتنزيل وتثبيت دعم Arduino Board لـ Feather nRF52. تحقق من أنه يمكنك الاتصال باللوحة وبرمجتها عبر كابل USB.

ملاحظة: افصل وحدة HUZZAH ESP8266 من Feather nRF52 قبل محاولة برمجة الريشة

يتكون توصيل Feather nRF52 بجهاز BLE من خطوتين. قم أولاً بتحديد عنوان MAC (والنوع) على الجهاز والتحقق من أنه يدعم خدمة Nordic UART مع TX Notify ثم نقل هذا العنوان واكتبه إلى رسم الجسر.

الخطوة 5: الاتصال بجهاز BLE

الاتصال بجهاز BLE
الاتصال بجهاز BLE
الاتصال بجهاز BLE
الاتصال بجهاز BLE
الاتصال بجهاز BLE
الاتصال بجهاز BLE

بمجرد برمجة HUZZAH ESP8266 ، ستحتاج إلى رمز عنوان BLE ونوع الجهاز الذي تريد الاتصال به في رسم Feather nRF52. هذه عملية من خطوتين. I) قم بتشغيل برنامج المسح للعثور على أجهزة BLE القريبة التي تنفذ خدمة Nordic UART Service (TX Notify) ثم انسخ إخراج الماسح الضوئي في رسم جسر Feather لجعله يتصل بهذا الجهاز.

المسح بحثًا عن الأجهزة الطرفية لـ BLE

لتحديد الأجهزة الطرفية المتوافقة مع BLE ، قم بتحميل برنامج central_bleuart_scanner.ino في Feather nRF52. يبحث هذا البرنامج باستمرار عن الأجهزة الجديدة ثم يتحقق مما إذا كانت تدعم خدمة Nordic UART مع TX Notify.

خدمة Nordic UART

تتكون خدمة Nordic UART من ثلاثة أجزاء ، UUID للخدمة وخصائص RX و TX. إليك بعض التعليمات البرمجية التي تم إنشاؤها بواسطة pfodDesignerV3 لـ RedBear NanoV2

BLEService uartService = BLEService ("6E400001B5A3F393E0A9E50E24DCCA9E") ؛

BLEC مميزة rxCharacteristic = BLEC مميزة ("6E400002B5A3F393E0A9E50E24DCCA9E" ، BLEWrite ، BLE_MAX_LENGTH) ؛ BLEC مميزة txCharacteristic = BLECharacteristic ("6E400003B5A3F393E0A9E50E24DCCA9E" ، BLENotify ، BLE_MAX_LENGTH) ؛

يمكن لـ pfodDesignerV3 إنشاء رمز عينة لعدد من وحدات BLE النمطية. ومع ذلك ، نظرًا لعدم وجود مواصفات BLE لاتصال UART "القياسي" ، لا تستخدم جميع الوحدات النمطية خدمة Nordic UART. على سبيل المثال ، تستخدم وحدات HM-10 (درع Itead BLE) و RFduno و Romeo BLE خدمات uart الفريدة الخاصة بها وبالتالي لن تتصل بـ Feather nRF52.

ستتصل اللوحات التالية: Adafruit Bluefruit Feather nRF52 و Arduino / Genuino 101 و RedBearLab BLE Nano V2 و V1-V1.5 و RedBearLab BLE Shield و Adafruit Bluefruit LE UART Friend and Flora Boards و Adafruit Bluefruit LE SPI (أي Bluefruit LE Shield أو Bluefruit LE Micro أو Feather 32u4 Bluefruit LE أو Feather M0 Bluefruit LE أو Bluefruit LE SPI Friend) بالإضافة إلى اللوحات التي يمكن ترميزها بخدمات أو لوحات مخصصة يمكنها استخدام مكتبة BLEPeripheral.

لوحة المثال المستخدمة هنا هي Arduino / Genuino 101 مع رمز تم إنشاؤه بواسطة pfodDesignerV3. يتيح لك pfodDesignerV3 المجاني إنشاء قوائم pfodApp ثم إنشاء كود Arduino الضروري لإظهار تلك القائمة الدقيقة على هاتف Android باستخدام pfodApp (المدفوع). سيتصل pfodApp أيضًا عبر Wifi ، بالإضافة إلى Bluetooth Classic و BLE و SMS ، وبالتالي يمكنه الاتصال عبر جسر Wifi2BLE هذا. ومع ذلك ، حتى إذا كنت لا ترغب في استخدام pfodApp كتطبيق تحكم ، فلا يزال بإمكانك استخدام pfodDesignerV3 لإنشاء رمز خدمة Nordic UART للوحة BLE الخاصة بك.

يصف رابط البرنامج التعليمي هذا إعداد Arduino / Genuino 101 BLE وإنشاء تحكم بسيط في تشغيل / إيقاف تشغيل LED باستخدام pfodDesignerV3. الرسم الذي تم إنتاجه بواسطة pfodDesignerV3 هو Arduino101_led_control.ino

ستتيح لك برمجة Arduino / Genuino 101 باستخدام Arduino101_led_control.ino الاتصال بـ pfodApp وعرض الشاشة التالية على هاتف Android المحمول الخاص بك.

ومع ذلك ، هذا مجرد مثال ولا تحتاج إلى شراء pfodApp لإكمال هذا المشروع. الجزء المهم هو أن تطبيق pfodDesignerV3 المجاني قد أنشأ رمزًا لـ Arduino / Genuino 101 الذي ينفذ خدمة Nordic UART. لذلك دعونا نبحث عنها.

ومع ذلك ، هذا مجرد مثال ولا تحتاج إلى شراء pfodApp لإكمال هذا المشروع. الجزء المهم هو أن تطبيق pfodDesignerV3 المجاني قد أنشأ رمزًا لـ Arduino / Genuino 101 الذي ينفذ خدمة Nordic UART. لذلك دعونا نبحث عنها.

البحث عن خدمة Nordic UART

مع فصل الوحدة النمطية HUZZAH ESP8266 عن Feather nRF52 ، قم ببرمجة Feather nRF52 باستخدام central_bleuart_scanner.ino ثم افتح Arduino IDE Tools → Serial Monitor واضبط معدل الباود على 9600. لقطة الشاشة الأولى أعلاه.

كما ترى ، عثر الماسح الضوئي على جهازي BLE ، وهما Arduino / Genuino 101 مع العثور على خدمة Nordic UART عليه ، ولكن خاصية TX لا تدعم Notify. عثر الماسح الضوئي أيضًا على وحدة RFduino BLE لكن RFduino لا تستخدم خدمة Nordic UART ولكنها تستخدم بدلاً من ذلك واحدة خاصة بها. تحمل لجنة البلوتوث اللوم على ذلك لعدم تحديد خدمة UART "قياسية" ، وبدلاً من ذلك تركت كل شركة مصنّعة لتكوين منتجها.

كما هو مذكور أعلاه ، تم إنشاء رمز 101 بواسطة pfodDesignerV3 بشكل أساسي لاستخدامه مع pfodApp. لا ينتقي pfodApp حول TX Notify مثل كود Feather nRF52 uart. يعمل pfodApp مع 101 كما هو مبرمج ولكن Feather nRF52 يصر على TX Notify لذلك هناك حاجة إلى تغيير بسيط في الكود لتلبية الريشة.

افتح Arduino101_led_control.ino في Arduino IDE وستجد هذين السطرين بالقرب من الجزء العلوي. السطر الثاني هو مجرد وصف للخاصية ولا يؤثر على العملية.

BLEC الحرف txCharacteristic = BLECharacteristic ("6E400003-B5A3-F393-E0A9-E50E24DCCA9E" ، BLEIndicate ، BLE_MAX_LENGTH) ؛ BLEDescriptor txNameDescriptor = BLEDescriptor ("2901"، ")

قم بتغييرها إلى

BLEC مميزة txCharacteristic = BLECharacteristic ("6E400003-B5A3-F393-E0A9-E50E24DCCA9E" ، BLENotify ، BLE_MAX_LENGTH) ؛ BLEDescriptor txNameDescriptor = BLEDescriptor ("2901"، "TX - (Notify)") ؛

ثم أعد برمجة 101 بهذه النسخة المعدلة ، Arduino101_Notify_led_control.ino. ثم عند إعادة تشغيل الماسح الضوئي Feather nRF52 (central_bleuart_scanner.ino) ، يعرض Serial Monitor لقطة الشاشة الثانية أعلاه.

لا توجد أخطاء في Genuino 101 الآن والماسح الضوئي يطبع الكود المطلوب لرسم جسر Feather nRF52 بحيث يتصل بـ 101. سوف يتحقق الماسح الضوئي من كل جهاز يعثر عليه في النطاق. يومض المصباح الأحمر مرة واحدة لكل جهاز موجود مع خدمة Nordic UART (TX Notify).

الخطوة 6: التوصيل بجهاز طرفي يعمل بنظام BLE

مؤشرات LED

يحتوي Feather nRF52 على مصباحين ، أزرق وأحمر. عندما تكون اللوحة متصلة بجهاز BLE ، يكون Blue Led ثابتًا ، وإلا فإنه يومض. لا يظل الماسح الضوئي متصلاً بالجهاز ، لذلك عادةً ما يومض مؤشر LED الأزرق. يومض المصباح الأحمر مرة واحدة لكل جهاز من أجهزة Nordic UART Service (TX Notify). عند التشغيل كماسح ضوئي ، يحسب Red Led عدد أجهزة Nordic UART Service (TX Notify) التي تم العثور عليها. عند التشغيل كجسر ، يومض المصباح الأحمر مرة واحدة عند الاتصال بعنوان BLE الكود.

الاتصال بجهاز طرفي BLE

الآن بعد أن قدم رسم الماسح الضوئي تفاصيل جهاز BLE الذي تريد الاتصال به ، يمكنك نسخ الإخراج في مخطط central_bleuart_bridge.ino. بالقرب من أعلى هذا الرسم ، ستجد الكود التالي.

// هذه الأسطر الثلاثة التالية من الكود تأتي من إخراج central_bleuart_scanner.ino

الحرف الثابت * BLE_NAME = "GENUINO 101-FC8F" ؛ const char * BLE_ADDRESS = "98: 4F: EE: 0C: FC: 8F" ؛ const uint8_t BLE_ADDRESS_TYPE = 0 ؛

استبدل الأسطر الثلاثة من التعليمات البرمجية بإخراج الماسح الضوئي لجهاز BLE الذي تريد التوصيل إليه. ثم قم ببرمجة Feather nRF52 مع رسم centre_bleuart_bridge.ino المحرر.

اختبار مخطط Central_bleuart_bridge

قبل توصيل HUZZAH ESP8266 مرة أخرى في Feather nRF52 ، اختبر الاتصال بجهاز BLE الخاص بك. ترك Feather nRF52 متصلاً بـ Arduino IDE ، افتح Tools → Serial Monitor على 9600 باود ثم تحقق من تشغيل جهاز BLE المستهدف.

عندما يتم الاتصال بجهاز BLE الخاص بك ، كما هو موضح أعلاه ، سيضيء المصباح الأزرق باستمرار وسيومض المصباح الأحمر مرة كل 10 ثوانٍ أو نحو ذلك.يتيح لك هذا عدم إجراء الاتصال والحفاظ عليه.

ثم في Serial Monitor ، يمكنك إدخال الأوامر التي تتوقع إرسالها إلى جهاز BLE الخاص بك ومشاهدته وهو يعمل ومراقبة أي استجابة يرسلها مرة أخرى. إذا كان كل شيء على ما يرام ، يمكنك إيقاف تشغيل وحدة HUZZAH ESP8266 وتوصيلها.

الخطوة 7: الاتصال بجهاز BLE عبر WiFi - ضع كل شيء معًا

بمجرد أن تنتهي من برمجة واختبار وحدة HUZZAH ESP8266 برمز الجسر الخاص بها (Wifi_Bridge.ino) الذي تم تكوينه لشبكتك ssid وكلمة المرور و IP AND تمت برمجة واختبار Feather nRF52 برمز الجسر الخاص به (central_bleuart_bridge.ino) تم تكوينه باستخدام عنوان جهاز BLE واكتب ، ثم يمكنك توصيلهما معًا وتوصيل مصدر USB بوحدة Feather لتشغيلهما.

يجب أن تضيء وحدة HUZZAH باللون الأحمر بشكل ثابت لأنها تتصل بجهاز توجيه الشبكة المحلي الخاص بك ويجب أن يضيء مصباح Feather Blue بشكل ثابت أثناء اتصاله بجهاز BLE الخاص بك ويجب أن يومض مصباح Feather Red مرة كل 10 ثوانٍ أو نحو ذلك للإشارة إلى التشغيل فقط تم توصيل جهاز BLE.

افتح برنامج telnet الخاص بك وقم بالاتصال بـ IP ومنفذ HUZZAH. يجب أن يومض مؤشر HUZZAH Red ببطء للإشارة إلى أن برنامجك متصل ويجب أن ترسل أوامر إلى جهاز BLE الخاص بك عبر WiFi ومشاهدة جهاز BLE يعمل ومشاهدة أي استجابة في نافذة telnet الخاصة بك. تذكر أنه إذا كان جهاز BLE الخاص بك لا يرسل أي بيانات مرة أخرى لمدة 60 ثانية ، فإن رمز HUZZAH سينتهي الاتصال ويفصل وسيصبح مصباح HUZZAH الأحمر ثابتًا مرة أخرى.

الخطوة 8: المساعدة - لا تعمل

قم أولاً بتنفيذ خطوات الاختبار الموضحة أعلاه ، واختبار HUZZAH ESP2866 واختبار رسم central_bleuart_bridge.

مشاكل المسح

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

إذا حصلت على إخراج ماسح ضوئي مثل هذا.

متصل بـ 98: 4F: EE: 0C: FC: 8F أبحث عن خدمة Nordic UART … لم يتم العثور على أي شيء أو غير قابل للاكتشاف !!!!! تعذر التعرف على خدمة Nordic UART !!!!!!!! إذا كنت تتوقع خدمة Nordic UART ، فقم بتحريك الماسح الضوئي بالقرب من جهاز BLE !!!!

قد تكون قريبًا بدرجة كافية من جهاز BLE لاكتشافه ولكن ليس قريبًا بما يكفي لإجراء اكتشاف الخدمة بنجاح للعثور على خدمة Nordic UART. حاول الاقتراب من جهاز BLE.

كحل أخير ، يمكنك استخدام تطبيق Nordic nRF Connect المجاني لنظام Android أو iOS. هذا التطبيق لديه نطاق وحساسية أفضل. سيخبرك ما إذا كان جهاز BLE به خدمة Nordic UART. ومع ذلك ، ستظل بحاجة إلى تشغيل الماسح الضوئي والاتصال وتحديد هوية Nordic UART Serivice قبل أن تحاول استخدام جسر Wifi2BLE لأنه يستخدم رمزًا مشابهًا للماسح الضوئي.

إذا كنت تريد البحث بشكل أعمق ، يمكنك استخدام وحدة Adafruit Bluefruit LE Sniffer لمعرفة ما هو موجود في الهواء.

مشاكل اتصال BLE

إذا تمكنت من مسح جهاز BLE ، فإن الأسباب الأكثر احتمالاً لمشكلات الاتصال هي I) أن جهاز BLE بعيد جدًا ، II) شيء آخر متصل بالفعل بجهاز BLE

مشاكل اتصال WiFi

إذا لم يضيء مصباح HUZZAH ESP8266 الأحمر بشكل ثابت ، فلن يكون هناك اتصال بشبكتك عبر جهاز التوجيه الخاص بك. تحقق من ssid وكلمة المرور لديك رمز في Wifi_Bridge.ino واستخدم تطبيق Fing Android أو iOS للتحقق من أن عنوان IP الذي خصصته لم يتم استخدامه بالفعل. حاول إيقاف تشغيل جميع أجهزة الكمبيوتر والأجهزة الخاصة بك ودوران جهاز التوجيه (اتركه مغلقًا لمدة 20 ثانية) ثم امسح باستخدام Fing مرة أخرى. أخيرًا إذا استمر انقطاع الاتصال ، تذكر إعداد مهلة الاتصال في رمز Wifi_Bridge.ino.

الخطوة 9: التمديدات والاستنتاج

المشروع المقدم هنا هو أبسط نسخة. هناك عدد من الامتدادات المحتملة مثل: -

  • يمكن لـ Feather nRF52 الاتصال بما يصل إلى 4 أجهزة BLE في وقت واحد حتى تتمكن من تعديل الرمز لإضافة المزيد من العناوين الصالحة والتحكم في ما يصل إلى 4 أجهزة من اتصال WiFi واحد. انظر مثال الكود الذي يأتي مع تثبيت لوحة Feather nRF52.
  • يمكنك إحداث ثقب في جهاز التوجيه الخاص بك لتوفير الوصول إلى جهاز BLE من أي مكان على الإنترنت. راجع توصيل أجهزة DIY IoT بالإنترنت باستخدام pfodApp.
  • يمكنك استخدام الكود من Cheap / Simple Wifi Shield للسماح لك بتكوين معلمات شبكة WiFi لـ HUZZAH عبر صفحة ويب ، دون إعادة البرمجة. ستحتاج إلى إضافة زر ضغط التكوين إلى الدائرة.
  • يمكنك إضافة زر ضغط التكوين (باستخدام نفس الزر على النحو الوارد أعلاه) الذي يجعل Feather nRF52 مسحًا للأجهزة BLE مع Nordic UART (TX Notify) ثم حفظ تفاصيل الاتصال للواحد الذي يحتوي على أقوى إشارة. لحفظ النتيجة ، ستحتاج إلى استخدام مكتبة nffs التي تأتي مع تثبيت لوحة Adafruit nRF52.
  • يمكنك إضافة صفحة ويب إلى كود HUZZAH ESP8266 لتوفير واجهة مخصصة لجهاز BLE الخاص بك. يمكنك أيضًا استخدام pfodDesignerV3 و pfodApp إضافة واجهة مخصصة بدون أي تغييرات على هذا المشروع على الإطلاق.

استنتاج

يوفر هذا المشروع البسيط وصول WiFi إلى أي وحدة Bluetooth منخفضة الطاقة (BLE) تنفذ Nordic's UART مع TX Notify. جسر Wifi2BLE شفاف تمامًا. إنه يمرر بيانات WiFi إلى جهاز BLE ويمرر بيانات جهاز BLE مرة أخرى إلى اتصال WiFi.

يجعل البناء البسيط وإرشادات الاختبار التفصيلية هذا مشروعًا مناسبًا للمبتدئين الذين يرغبون في الوصول إلى جهاز BLE الخاص بهم من أجهزة الكمبيوتر الخاصة بهم أو من خارج النطاق الطبيعي لـ BLE.

سيصبح هذا المشروع أكثر أهمية بمجرد أن يلحق برنامج جهاز BLE بمواصفات Bluetooth V5 Mesh الجديدة. ثم يوفر Wifi2BLE الوصول إلى الإنترنت لأتمتة منزلك بالكامل.

موصى به: