فهرست مطالب:

WiFi ساده به BLE (بلوتوث کم مصرف) پل: 9 مرحله (همراه با تصاویر)
WiFi ساده به BLE (بلوتوث کم مصرف) پل: 9 مرحله (همراه با تصاویر)

تصویری: WiFi ساده به BLE (بلوتوث کم مصرف) پل: 9 مرحله (همراه با تصاویر)

تصویری: WiFi ساده به BLE (بلوتوث کم مصرف) پل: 9 مرحله (همراه با تصاویر)
تصویری: اینترنت خودتان را سرعت کنید با تنظیمات جهانی دی تا موبایل تان ده برابر اینترنت شما از قبل کده سرعتر 2024, ممکن است
Anonim
وای فای ساده به پل BLE (بلوتوث کم مصرف)
وای فای ساده به پل BLE (بلوتوث کم مصرف)
وای فای ساده به پل BLE (بلوتوث کم مصرف)
وای فای ساده به پل BLE (بلوتوث کم مصرف)
وای فای ساده به پل BLE (بلوتوث کم مصرف)
وای فای ساده به پل BLE (بلوتوث کم مصرف)

به روز رسانی 4 دسامبر 2017 - طرح ها و نکات اشکال زدایی Feather nRF52 اصلاح شده. تصاویر پل نصب شده در جعبه اضافه شد

این پروژه ساده دسترسی WiFi را به هر ماژول Bluetooth Low Energy (BLE) که UART Nordic را با TX Notify پیاده سازی می کند ، فراهم می کند. پل Wifi2BLE کاملاً شفاف است. فقط داده های WiFi را به دستگاه BLE منتقل می کند و داده های دستگاه BLE را دوباره به اتصال WiFi منتقل می کند.

pfodDesignerV3 رایگان برای پیاده سازی یک سرویس UART نوردیک در بسیاری از ماژول های BLE از جمله Adafruit Bluefruit Feather nRF52 ، Arduino/Genuino 101 ، RedBearLab BLE Nano V2 و V1-V1.5 ، RedBearLab BLE Shield ، Adafruit Bluefruit LE UART Friend و Adafruit Bluefruit LE UART دوست و کد ایجاد می کند ، Adafruit Bluefruit LE SPI (یعنی Bluefruit LE Shield ، Bluefruit LE Micro ، Feather 32u4 Bluefruit LE ، Feather M0 Bluefruit LE یا Bluefruit LE SPI Friend) و هر تخته دیگری که به شما امکان می دهد خدمات خود را برنامه ریزی کنید.

این پل Wifi2BLE برای سازندگان بی تجربه که می توانند لحیم کاری کنند مناسب است. فقط از دو تخته ، یک کابل روبان و دو مقاومت استفاده می کند

علاوه بر آزمایش دقیق برای هر برد ، این دستورالعمل شامل یک راهنما است - این کار نمی کند و راهنمایی های بیشتری برای عیب یابی پیدا می کند.

این دستورالعمل ها به صورت آنلاین نیز موجود است

چرا این پروژه؟

این پروژه تعدادی از مشکلات BLE (بلوتوث کم مصرف) را حل می کند.

  • فقط موبایل ها و رایانه های اخیر از BLE پشتیبانی می کنند. پل Wifi2BLE به هر تلفن همراه یا رایانه ای با اتصال WiFi امکان اتصال و کنترل دستگاه BLE را می دهد.
  • BLE محدوده محدودی دارد. پل Wifi2BLE به شما امکان می دهد از هر نقطه در خانه (جایی که اتصال WiFi وجود دارد) و از خارج از طریق اینترنت به دستگاه BLE دسترسی پیدا کنید.
  • ایجاد برنامه های BLE نیاز به یادگیری Android یا iOS دارد. پل Wifi2BLE از طریق هر برنامه ترمینال یک اتصال تلفن سراسری را فراهم می کند. بعلاوه ، می توانید به راحتی یک صفحه وب را به ماژول WiFi اضافه کنید تا رابط سفارشی خود را ایجاد کنید.
  • BLE V5 وعده می دهد که شبکه ای مشبک برای اتصال همه دستگاه های BLE خانگی شما ، هنگامی که نرم افزار با آخرین مشخصات بلوتوث مطابقت دارد. پل Wifi2BLE از دستگاه BLE V5 استفاده می کند و بنابراین هنگام ورود به اینترنت به این شبکه خانگی دسترسی اینترنت را فراهم می کند.

استفاده فوری من برای این پروژه این است که کنترل نور اتاق BLE اتاق نشیمن را به شبکه WiFi اضافه کنم تا بتوان آن را از هر نقطه در خانه کنترل کرد. اگرچه در این آموزش از pfodApp به عنوان مثال کنترل بردهای BLE از طریق WiFi استفاده می شود ، اما برای تکمیل این پروژه نیازی به خرید pfodApp ندارید.

مرحله 1: لیست قطعات

هزینه: 60 دلار آمریکا در 30 نوامبر 2017 ، بدون احتساب حمل و نقل + یک محفظه کوچک پلاستیکی

Adafruit Feather nRF52 Bluefruit LE - nRF52832 - 25 دلار آمریکا

Breakout Adafruit HUZZAH ESP8266 - 10 دلار آمریکا

کابل روبان با انتهای زن جداگانه-کابل دزدان دریایی اتوبوس ~ 5 دلار آمریکا https://www.sparkfun.com/products/9556 OR 10-pin IDC Socket Rainbow Breakout Cable ~ 4 دلار آمریکا https://www.sparkfun.com/products/ 9556 یا مشابه

سرفصل های مرد فرار کنید - زاویه راست - ~ 2 دلار آمریکا

کابل سریال USB به TTL 3V3 - 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 اهم 100 - - 1 دلار آمریکا

منبع تغذیه USB (500mA یا بیشتر) - ~ 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 است.

توجه: علامت گذاری برد FeR nRF52 برای پایه های TX و RX درست نیست. پین TX در واقع پین کنار پین DFU و پین RX پین کنار پین MISO است

مطمئن شوید که خطوط TX/RX را مطابق شکل بالا متصل می کنید. خوشبختانه مقاومت های محافظ کار خود را انجام دادند و تخته ها صدمه ای ندیدند در حالی که من علت چسبیدن تخته ها به یکدیگر را تشخیص نمی دادم.

مرحله 3: ساخت Wifi2BLE

ساخت و ساز Wifi2BLE
ساخت و ساز Wifi2BLE
ساخت و ساز Wifi2BLE
ساخت و ساز Wifi2BLE
ساخت و ساز Wifi2BLE
ساخت و ساز Wifi2BLE

پین های هدر زاویه دار بر روی HUZZAH ESP8266 لحیم شده اند تا بتوانند برای برنامه نویسی از برق جدا شوند. برای اتصال دو تخته از چهار سیم کابل روبان استفاده می شود. اتصالات پین زن را نگه دارید و سر دیگر کابل روبان را قطع کنید. کابل روبان من همان رنگ کابل برنامه نویسی Sparkfun USB to TTL را داشت ، بنابراین سیم را متناسب با آن انتخاب کردم. مشکی برای GND ، قرمز برای 5V+، نارنجی برای TX (متصل به ESP8266 RX) و قهوه ای برای RX (متصل به ESP8266 TX)

من مقاومت های محافظ را در پشت برد FeR nRF52 سیم کشی کردم. (سازندگان محترم که کدهای مقاومت خود را می دانند ، می بینند که من از دو مقاومت 68 اهمی استفاده کرده ام به جای مقاومت 100 اهمی) و سپس آنها را با مقداری جمع کننده عایق بندی کرده ام.

کابل قرمز به پین USB Feather nRF52 لحیم می شود تا USB 5V را تغذیه کند تا ماژول HUZZAH ESP8266 را تغذیه کند و کابل مشکی به پین NRF52 GND Feather لحیم می شود.

تنها چیزی که بجز برنامه ریزی ماژول ها وجود دارد ، همانطور که در زیر توضیح داده شده است ، قرار دادن آن در یک جعبه پلاستیکی و اتصال منبع تغذیه USB به Feather nRF52.

مرحله 4: برنامه نویسی Wifi2BLE

برنامه نویسی Wifi2BLE
برنامه نویسی Wifi2BLE
برنامه نویسی Wifi2BLE
برنامه نویسی Wifi2BLE
برنامه نویسی Wifi2BLE
برنامه نویسی Wifi2BLE

برنامه نویسی HUZZAH ESP8266

برای برنامه ریزی سپر ، دستورالعمل های داده شده در https://github.com/esp8266/Arduino را در قسمت Installing With Boards Manager دنبال کنید. هنگام باز کردن مدیران از منوی Tools → Board و نوع مشارکت را انتخاب کرده و پلت فرم esp8266 را نصب کنید. این پروژه با استفاده از ESP8266 نسخه 2.3.0 گردآوری شده است. نسخه های دیگر دارای اشکالات خاص خود هستند و ممکن است با این کد کار نکنند.

توجه: از نصب Adafruit Board استفاده نکنید زیرا طرح مورد استفاده در اینجا تحت آن کد کامپایل نمی شود.

Arduino IDE را ببندید و دوباره باز کنید و اکنون می توانید "Adafruit HUZZAH ESP8266" را از منوی Tools → Board انتخاب کنید.

همچنین باید آخرین نسخه کتابخانه pfodESP8266WiFiBufferedClient را نصب کنید. این کتابخانه با افزونه ESP8266.com IDE V2.3 کار می کند. (اگر قبلاً کتابخانه pfodESP2866WiFi را نصب کرده اید ، آن فهرست کتابخانه را به طور کامل حذف کنید.)

  • الف) این فایل pfodESP8266WiFiBufferedClient.zip را به رایانه خود بارگیری کنید ، آن را به دسکتاپ یا پوشه دیگری منتقل کنید که به راحتی می توانید پیدا کنید
  • ب) سپس از گزینه منوی Arduino 1.8.5 IDE Sketch → Import Library → Add Library برای نصب استفاده کنید. (اگر آردوینو به شما اجازه نصب آن را نداد زیرا کتابخانه از قبل موجود است ، پوشه قدیمی pfodESP8266BufferedClient را پیدا کرده و حذف کنید و سپس این پوشه را وارد کنید)
  • ج) Arduino IDE را متوقف کرده و راه اندازی مجدد کنید و در قسمت File-> Examples اکنون باید pfodESP8266BufferedClient را مشاهده کنید.

تنظیم ssid و رمز عبور شبکه و IP و پورت

پس از نصب کتابخانه pfodESP8266BufferedClient ، Arduino IDE را باز کرده و این طرح Wifi_Bridge.ino را در IDE کپی کنید. قبل از برنامه ریزی ماژول ، باید ssid و گذرواژه شبکه خود را تنظیم کرده و IP استفاده نشده را انتخاب کنید.

این سه خط را در نزدیکی بالای Wifi_Bridge.ino ویرایش کنید

char ssid = "**** ***"؛ رمز عبور = "**** *****"؛ char staticIP = "10.1.1.180"؛

من از برنامه Fing (Android یا iOS) برای اسکن شبکه محلی خود و شناسایی IP قبلاً استفاده شده استفاده می کنم. معمولاً انتخاب IP استفاده نشده در محدوده.180 تا.254 ایمن است

برای شروع می توانید portNo را 23 بگذارید ، پورت استاندارد اتصال telnet.

پس از اعمال این تغییرات می توانید ESP8266 را برنامه ریزی کنید.

برنامه نویسی HUZZAH ESP8266

برای برنامه ریزی HUZZAH ESP8266 ، USB را به کابل سریال وصل کنید ، همانطور که در عکس نشان داده شده است. عکس و سیم کشی خود را بررسی کنید. همچنین نکات برنامه نویسی ESP8266 را ببینید (espcomm ناموفق بود)

من از کابل سریال Sparkfun USB to TTL 3V3 Serial Cable استفاده می کنم زیرا دارای کابل های TX و RX مشخص شده است. اطمینان حاصل کنید که سیم TX به پین RX وصل شده است و سیم RX به پین TX وصل شده است. اگر از کابل Adafruit استفاده می کنید ، پایانه ها علامت گذاری نشده اند اما رنگ بندی شده است ، قرمز قدرت است ، رنگ مشکی ، سبز رنگ TX و سفید RX است.

کابل USB به سریال را به رایانه خود وصل کرده و در منوی Tools → Port آن را درگاه COM انتخاب کنید. فرکانس پردازنده ، اندازه فلش و سرعت بارگذاری را در تنظیمات پیش فرض خود بگذارید.

سپس ماژول Adafruit HUZZAH ESP2866 را با نگه داشتن دکمه GPIO0 و کلیک روی دکمه Reset و فشار دادن دکمه GPIO0 در حالت برنامه نویسی قرار دهید. چراغ GPIO0 باید کم نور بماند. سپس File → Upload را انتخاب کنید یا از دکمه پیکان راست برای کامپایل و بارگذاری برنامه استفاده کنید. در صورت دریافت پیغام خطا هنگام بارگذاری ، اتصالات کابل خود را به پین های صحیح وصل کرده و دوباره امتحان کنید.

پس از اتمام برنامه نویسی ، قرمز قرمز روی ماژول باید روشن شود. این نشان می دهد که با موفقیت به شبکه محلی شما متصل شده است و سرور را برای پذیرش اتصال شروع کرده است.

آزمایش HUZZAH ESP2866

برای آزمایش HUZZAH ESP2866 ، کابل برنامه نویسی را وصل کرده و Arduino IDE Tools → Serial Monitor را باز کرده و 9600 baud (گوشه پایین سمت راست) را تنظیم کنید. سپس یک برنامه ترمینال روی رایانه خود باز کنید ، من از TeraTerm برای Windows و CoolTerm برای Mac استفاده می کنم و به IP و پورت متصل می شوم در طرح Wifi_Bridge.ino تنظیم نمی کنید.

وقتی Red Led را وصل می کنید ، ماژول باید چشمک بزند ، که نشان می دهد اتصال وجود دارد. اکنون باید بتوانید در پنجره پایانه رایانه خود تایپ کنید و کاراکترها باید در پنجره مانیتور Arduino IDE ظاهر شوند و برعکس.

وقفه اتصال Wifi

کد Wifi_Bridge.ino زمان اتصال دارد.

uint32_t connectionTimeout = 60000؛ // مدت زمان اتصال 60 ثانیه

اگر هیچ ماژول HUZZAH ESP8266 به مدت 60 ثانیه دریافت نشده باشد ، ماژول ها اتصال را بسته و منتظر اتصال جدید می شوند. این باعث می شود که ماژول از اتصالات "نیمه بسته" که رخ می دهد به دلیل اتصال نادرست WiFi ، قطع برق در روتر یا خاموش شدن اجباری سرویس گیرنده ، ناپدید می شود. برای جزئیات بیشتر ، تشخیص اتصالات نیمه باز (قطره شده) TCP/IP را ببینید.

این مدت زمان اتصال 60 ثانیه تنظیم شده است. اما می تواند در صورت نیاز کاهش یا افزایش یابد. تنظیم آن بر روی 0 به این معنی است که هرگز زمان را خارج نکنید که توصیه نمی شود.

برنامه نویسی Feather nRF52

برای برنامه ریزی Feather nRF52 ، دستورالعمل های بارگیری و نصب پشتیبانی Arduino Board برای Feather nRF52 را دنبال کنید. بررسی کنید که می توانید از طریق کابل USB به آن متصل شوید و آن را برنامه ریزی کنید.

توجه: قبل از برنامه ریزی Feather ماژول HUZZAH ESP8266 را از Feather nRF52 جدا کنید

اتصال Feather nRF52 به دستگاه BLE شامل دو مرحله است. ابتدا آدرس MAC (و نوع) دستگاه را بررسی کرده و بررسی کنید از سرویس UART شمالی با TX Notify پشتیبانی می کند و سپس آن آدرس و نوع را به طرح پل منتقل کنید.

مرحله 5: اتصال به دستگاه BLE

اتصال به دستگاه BLE
اتصال به دستگاه BLE
اتصال به دستگاه BLE
اتصال به دستگاه BLE
اتصال به دستگاه BLE
اتصال به دستگاه BLE

پس از برنامه ریزی HUZZAH ESP8266 ، باید آدرس BLE و نوع دستگاهی که می خواهید به آن متصل شوید را در طرح Feather nRF52 کدگذاری کنید. این یک فرایند دو مرحله ای است. I) برنامه اسکن را برای یافتن دستگاههای BLE مجاور که سرویس UART شمالی (TX Notify) را پیاده می کنند اجرا کنید و سپس خروجی آن اسکنر را در طرح Feather Bridge کپی کنید تا به آن دستگاه متصل شود.

اسکن لوازم جانبی BLE

برای شناسایی لوازم جانبی BLE سازگار ، برنامه central_bleuart_scanner.ino را در feather nRF52 خود بارگذاری کنید. این برنامه به طور مداوم دستگاه های جدید را اسکن می کند و سپس بررسی می کند که آیا آنها از سرویس UART شمالی با TX Notify پشتیبانی می کنند.

سرویس UART نوردیک

سرویس UART نوردیک از سه بخش Service UUID و ویژگی های RX و TX تشکیل شده است. در اینجا چند کد نمونه ایجاد شده توسط pfodDesignerV3 برای RedBear NanoV2 ارائه شده است

BLEService uartService = BLEService ("6E400001B5A3F393E0A9E50E24DCCA9E") ؛

BLECharacteristic rxCharacteristic = BLECharacteristic ("6E400002B5A3F393E0A9E50E24DCCA9E" ، BLEWrite ، BLE_MAX_LENGTH) ؛ BLECharacteristic txCharacteristic = BLECharacteristic ("6E400003B5A3F393E0A9E50E24DCCA9E" ، BLENotify ، BLE_MAX_LENGTH) ؛

pfodDesignerV3 می تواند کد نمونه را برای تعدادی از ماژول های BLE تولید کند. با این حال ، زیرا هیچ ویژگی BLE برای اتصال استاندارد UART وجود ندارد ، همه ماژول ها از سرویس UART شمالی استفاده نمی کنند. به عنوان مثال ماژول های HM-10 (Itead BLE shield) ، RFduno و Romeo BLE از خدمات uart منحصر به فرد خود استفاده می کنند و بنابراین به پر 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 برای ایجاد کد سرویس NARTIC 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 است که یک سرویس UART نوردیک را پیاده سازی می کند. بنابراین اجازه دهید آن را اسکن کنیم.

اما این فقط یک مثال است و برای تکمیل این پروژه نیازی به خرید pfodApp ندارید. بخش مهم این است که برنامه رایگان pfodDesignerV3 دارای کد برای Arduino/Genuino 101 است که یک سرویس UART نوردیک را پیاده سازی می کند. بنابراین اجازه دهید آن را اسکن کنیم.

در حال اسکن خدمات UART شمالی

با قطع ماژول HUZZAH ESP8266 از Feather nRF52 ، Feather nRF52 را با central_bleuart_scanner.ino برنامه ریزی کرده و سپس Arduino IDE Tools → Serial Monitor را باز کرده و نرخ باود را روی 9600 تنظیم کنید. اولین صفحه نمایش بالا

همانطور که می بینید اسکنر دو دستگاه BLE پیدا کرد ، یک Arduino/Genuino 101 با یک سرویس UART شمالی روی آن ، اما ویژگی TX از Notify پشتیبانی نمی کند. اسکنر همچنین یک ماژول RFduino BLE پیدا کرد اما RFduino از سرویس UART شمالی استفاده نمی کند بلکه در عوض از یک سرویس مخصوص خود استفاده می کند. کمیته بلوتوث این امر را به دلیل عدم مشخص کردن سرویس استاندارد UART مقصر می داند ، در عوض هر تولیدکننده ای را مجبور به ساخت سرویس خود می کند.

همانطور که در بالا توضیح داده شد ، کد 101 توسط pfodDesignerV3 در درجه اول برای استفاده با pfodApp تولید شده است. pfodApp به اندازه کد uart FeR nRF52 در مورد TX Notify انتخاب نمی کند. pfodApp با برنامه 101 کار می کند اما Feather nRF52 بر TX Notify اصرار می کند بنابراین برای جلب رضایت پر نیاز به تغییر کوچکی در کد است.

Arduino101_led_control.ino را در Arduino IDE باز کنید و نزدیک بالای آن این دو خط را خواهید یافت. خط دوم فقط توصیف ویژگی است و بر عملکرد تأثیر نمی گذارد.

BLECharacteristic txCharacteristic = BLECharacteristic ("6E400003-B5A3-F393-E0A9-E50E24DCCA9E" ، BLEIndicate، BLE_MAX_LENGTH) ؛ BLEDescriptor txNameDescriptor = BLEDescriptor (") ،" ") ،" ") ،" ") ،" ") ،" () 29) "" ،

آنها را به

BLECharacteristic txCharacteristic = BLECharacteristic ("6E400003-B5A3-F393-E0A9-E50E24DCCA9E" ، BLENotify ، BLE_MAX_LENGTH) ؛ BLEDescriptor txNameDescriptor = BLEDescriptor ("2901" ، "TX - (اطلاع)") ؛

سپس 101 را با این نسخه ویرایش شده ، Arduino101_Notify_led_control.ino دوباره برنامه ریزی کنید. سپس هنگامی که اسکنر Feather nRF52 (central_bleuart_scanner.ino) را دوباره اجرا می کنید ، Serial Monitor دومین صفحه نمایش بالا را نشان می دهد.

در حال حاضر هیچ خطایی برای Genuino 101 وجود ندارد و اسکنر کد مورد نیاز برای طرح Feather nRF52 Bridge را چاپ می کند تا به 101 متصل شود. اسکنر هر دستگاهی را که در محدوده پیدا می کند بررسی می کند. چراغ قرمز یکبار برای هر دستگاهی که با سرویس NARTIC UART (TX Notify) یافت می شود چشمک می زند.

مرحله 6: اتصال به یک دستگاه جانبی BLE

علائم LED

Feather nRF52 دارای دو عدد LED آبی و قرمز می باشد. هنگامی که برد به یک دستگاه BLE متصل است ، Blue Led ثابت است ، در غیر این صورت چشمک می زند. اسکنر به دستگاه متصل نمی ماند بنابراین چراغ آبی آن معمولاً چشمک می زند. چراغ قرمز یکبار برای هر دستگاه Nordic UART Service (TX Notify) چشمک می زند. هنگام کار به عنوان اسکنر ، Red Led تعداد دستگاه های Nordic UART Service (TX Notify) را پیدا می کند. هنگامی که به عنوان پل اجرا می شود ، Red Led یکبار هنگام اتصال به آدرس کد BLE چشمک می زند.

اتصال به یک دستگاه جانبی BLE

اکنون که طرح اسکنر جزئیات دستگاه BLE را که می خواهید به آن متصل شوید ارائه کرده است ، می توانید خروجی را در طرح central_bleuart_bridge.ino کپی کنید. در نزدیکی آن طرح ، کد زیر را پیدا خواهید کرد.

// این سه خط بعدی کد از خروجی central_bleuart_scanner.ino آمده است

const char *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 را با طرح اصلی central_bleuart_bridge.ino ویرایش کنید.

آزمایش طرح اصلی_Bleuart_bridge

قبل از اتصال HUZZAH ESP8266 به Feather nRF52 ، اتصال به دستگاه BLE خود را آزمایش کنید. پس از اتصال NRF52 به شما Arduino IDE ، ابزار Tools → Serial Monitor را در 9600 baud باز کرده و سپس بررسی کنید که دستگاه BLE موردنظر شما روشن شده است.

هنگامی که اتصال به دستگاه BLE شما انجام می شود ، همانطور که در بالا توضیح داده شد ، LED آبی دائماً روشن می شود و LED قرمز هر 10 ثانیه یا یک بار چشمک می زند.این به شما امکان می دهد ارتباط برقرار نشده و حفظ نشود.

سپس در Serial Monitor می توانید دستوراتی را که انتظار دارید به دستگاه BLE خود ارسال کنید وارد کرده و عملکرد آن را مشاهده کرده و هر پاسخی را که پس می فرستد را زیر نظر داشته باشید. اگر همه چیز خوب بود می توانید ماژول HUZZAH ESP8266 را خاموش کرده و افزونه کنید.

مرحله 7: اتصال به دستگاه BLE از طریق WiFi - همه را کنار هم قرار دهید

هنگامی که ماژول HUZZAH ESP8266 را با کد پل (Wifi_Bridge.ino) پیکربندی شده برای ssid و رمز شبکه و IP خود برنامه ریزی و آزمایش کردید و تست کردید و پر nRF52 را با کد پل (central_bleuart_bridge.ino) پیکربندی شده با آدرس دستگاه BLE برنامه ریزی و آزمایش کردید. و تایپ کنید ، سپس می توانید آنها را به هم وصل کرده و منبع USB را به ماژول Feather وصل کنید تا هر دو آنها را روشن کنید.

ماژول HUZZAH Red led هنگام اتصال به روتر شبکه محلی شما باید کاملاً روشن شود و LED آبی Feather هنگام اتصال به دستگاه BLE شما باید به طور کامل روشن شود و LED قرمز پر باید هر 10 ثانیه یکبار چشمک بزند تا فقط روشن شود دستگاه BLE متصل است.

برنامه Telnet خود را باز کرده و به IP و پورت HUZZAH متصل شوید. چراغ قرمز HUZZAH باید به آرامی چشمک بزند تا نشان دهد برنامه شما متصل شده است و باید از طریق WiFi دستورات را به دستگاه BLE خود ارسال کرده و عملکرد دستگاه BLE را مشاهده کرده و هرگونه پاسخی را در پنجره تلفن خود مشاهده کنید. به یاد داشته باشید اگر دستگاه BLE شما هیچ داده ای را برای 60 ثانیه به عقب ارسال نکند ، کد HUZZAH اتصال را قطع کرده و قطع می شود و چراغ قرمز HUZZAH دوباره محکم می شود.

مرحله 8: راهنما - کار نمی کند

ابتدا مراحل آزمایشی را که در بالا توضیح داده شد انجام دهید ، آزمایش HUZZAH ESP2866 و آزمایش طرح مرکزی_bleuart_bridge.

مشکلات اسکن

اگر اسکنر نمی تواند دستگاه BLE شما را پیدا کند یا خیلی دور است یا تبلیغاتی ندارد یا قبلاً به چیزی متصل شده است. سعی کنید اسکنر را نزدیک کنید و دستگاه را دوچرخه سواری کنید و سایر دستگاههای تلفن همراه نزدیک را که ممکن است به دستگاه BLE ارتباط داشته باشند خاموش کنید.

اگر خروجی اسکنر مانند این را دارید.

متصل به 98: 4F: EE: 0C: FC: 8F در حال جستجو برای سرویس UART شمالی … هیچ کدام یافت نشد یا قابل کشف نیست !!!!! نتوانست خدمات UART شمالی را شناسایی کند !!!!!!!! اگر انتظار خدمات UART شمالی را داشتید ، اسکنر را به دستگاه BLE نزدیک کنید !!!!

ممکن است شما به اندازه کافی به دستگاه BLE نزدیک باشید تا آن را تشخیص دهید ، اما آنقدر نزدیک نباشید که بتوانید با موفقیت یک کشف سرویس برای پیدا کردن سرویس UART شمالی انجام دهید. سعی کنید به دستگاه BLE نزدیک شوید.

به عنوان آخرین راه حل می توانید از برنامه رایگان Nordic nRF Connect برای Android یا iOS استفاده کنید. آن برنامه محدوده و حساسیت بهتری دارد. به شما می گوید که دستگاه BLE دارای سرویس UART شمالی است. با این حال ، قبل از تلاش برای استفاده از پل Wifi2BLE به دلیل استفاده از کد مشابه اسکنر ، باید اسکنر را مجبور به اجرا و اتصال و شناسایی Nordic UART Serivice کنید.

اگر می خواهید عمق بیشتری داشته باشید می توانید از ماژول Adafruit Bluefruit LE Sniffer برای دیدن آنچه در هوا است استفاده کنید.

مشکلات اتصال BLE

اگر موفق به اسکن دستگاه BLE شدید ، به احتمال زیاد دلایل مشکلات اتصال من) دستگاه 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 به اینترنت با pfodApp مراجعه کنید.
  • می توانید از کد Cheap/Simple Wifi Shield برای اجازه تنظیم پارامترهای شبکه WiFi برای HUZZAH از طریق یک صفحه وب ، بدون برنامه ریزی مجدد استفاده کنید. شما باید یک دکمه پیکربندی را به مدار اضافه کنید.
  • شما می توانید یک دکمه پیکربندی (با استفاده از همان دکمه بالا) اضافه کنید که باعث می شود FeR nRF52 دستگاه های BLE را با یک UART نوردیک (TX Notify) اسکن کند و سپس جزئیات اتصال را برای یکی با قوی ترین سیگنال ذخیره کنید. برای ذخیره نتیجه ، باید از کتابخانه nffs همراه با نصب برد Adafruit nRF52 استفاده کنید.
  • می توانید یک صفحه وب به کد HUZZAH ESP8266 اضافه کنید تا رابط سفارشی برای دستگاه BLE شما ارائه شود. همچنین می توانید از pfodDesignerV3 و pfodApp یک رابط کاربری سفارشی بدون هیچ گونه تغییری در این پروژه اضافه کنید.

نتیجه

این پروژه ساده دسترسی WiFi را به هر ماژول Bluetooth Low Energy (BLE) که UART Nordic را با TX Notify پیاده سازی می کند ، ارائه می دهد. پل Wifi2BLE کاملاً شفاف است. فقط داده های WiFi را به دستگاه BLE منتقل می کند و داده های دستگاه BLE را دوباره به اتصال WiFi منتقل می کند.

ساختار ساده و دستورالعمل های آزمایش دقیق ، این پروژه را برای مبتدیانی که مایل به دسترسی به دستگاه BLE خود از رایانه یا خارج از محدوده نرمال BLE هستند ، مناسب می سازد.

این پروژه زمانی اهمیت بیشتری پیدا می کند که نرم افزار دستگاه BLE با مشخصات جدید بلوتوث V5 Mesh مطابقت داشته باشد. سپس Wifi2BLE دسترسی به اینترنت را برای اتوماسیون کل خانه شما فراهم می کند.

توصیه شده: