noscript
خرید-اقساطی-گوشی-و-تبلت

استفاده از وب بلوتوث برای ارتباط با دستگاه های بلوتوثی

نویسنده: ۱۴ آبان ۱۳۹۸ - ۱۰:۴۵ ق.ظ مشاهده: ۳۹ بار
استفاده از وب بلوتوث برای ارتباط با دستگاه های بلوتوثی

اضافه کردن بلوتوث به پروژه ی IoT بدین معنا خواهد بود که می خواهید از اپلیکیشن های بومی برای کنترل وسایل استفاده نمایید. اما شاید این روش دیگر قدیمی شده باشد زیرا اکنون جستجوگرها ویژگی Bluetooth API دارند که می توانید توسط آن دستگاه های بلوتوثی خود را توسط دستگاه های کم مصرف مدیریت نمایید. با اینکه هنوز استفاده ی سراسری از این فناوری به صورت رسمی آغاز نشده است می توانیم بگوییم امکان استفاده از آن توسط کروم ، Mac OS ، ویندوز لینوکس و اندروید امکان پذیر خواهد بود. در این مقاله به نحوه ی استفاده از bleno و چگونگی برقراری ارتباط کم مصرف با دستگاه های دارای سیستم عامل balena OS توسط جستجوگر خواهیم پرداخت. اما پیش از هر چیزی باید اصول آن را بیاموزید. 

 

BLE چیست؟ 

 

این عبارت مخفف Bluetooth Low Energy بوده که به عنوان بلوتوث اسمارت نیز شناخته می شود. این ویژگی می تواند بین دستگاه های بلوتوثی ارتباط کم مصرف بوجود آورد. 

 

GAP یا Generic Access Profile 

 

این ویژگی تعیین میکند که چگونه BLE با دستگاه های دارای BLE ارتباط برقرار نماید. در چارچوب BLE یک دستگاه یا دیوایس معناهای مختلف دارد : 

 

1- یک دستگاه ثانویه : این نوع دستگاه ها کم مصرف بوده و خودشان را در شبکه ی ارتباطی می گنجانند و صبر می کنند تا دستگاه مرکزی به آنها متصل شود. در این پروژه دستگاه Raspberry Pi همچین نقشی دارد. 

 

2- دستگاه مرکزی : به طور معمول دستگاه هایی قدرتمند مانند گوشی های هوشمند وجود دارند که ارتباط را با دیگر دستگاه های BLE آغاز می کنند. در دمویی که در این مقاله تعبیه شده یک لپ تاپ و مرورگر آپدیت شده ی کروم نقش دستگاه مرکزی را دارند. در اینجا وب اپلیکیشنی که در مرورگر تعبیه شده عمل ایجاد اتصال با Raspberry Pi را بر عهده خواهد داشت.     

 

یک دستگاه ثانویه در یک زمان می تواند تنها به یک دستگاه متصل شود و زمانی که عمل اتصال به پایان رسید دستگاه به صورت خودکار از لیست بلوتوث حذف خواهد شد. اما دستگاه مرکزی که اتصال را با یک دستگاه ایجاد کرده این امکان را خواهد داشت تا به دیگر دستگاه های بلوتوثی نیز متصل شود.  

 

مشخصات پروفایل عمومی یا GATT 

 

زمانی که اتصال BLE برقرار شد ، این وظیفه ی GATT است تا تعیین کند اطلاعات به چه صورت در این شبکه رد و بدل شوند. در اینجا دستگاه ها می توانند نقش های مختلفی داشته باشند : 

 

1- سرور GATT ، گاهی دستگاه های ثانویه طوری به شبکه متصل می شوند که کاربر بتواند از آنها درخواست انجام کاری را داشته باشد. 

 

2- کلاینت GATT ، این دستگاه ها که دستگاه های مشترک نیز شناخته می شوند به سرور درخواست هایی را می فرستند و می توانند دستوراتی را به سرور توسط کاربر فرستاده و یا دستوراتی که در سرور قرار داده شده را بخوانند.  

 

خدمات این نوع اتصال 

 

سرور GATT خدمات مختلفی را ارائه می کند. برخی از آنها به صورت گروهی بوده که به صورت از پیش تعیین شده برای دسته ی خاصی انجام خواهد شد. هر یک از این خدمات توسط UUID مدیریت می شوند. UUID سرویس های 16 بیتی را برای دستگاه های BLE و سرویس های 128 بیتی را برای دیگر دستگاه ها ارائه می کند. البته در صورتی که بخواهید این اعداد از پیش تعیین شده را تغییر دهید می توانید از Online UUID Generator استفاده نمایید. 

 

ویژگی ها 

 

اما سرویس هایی که ارائه می شوند هر یک مشخصات خاص خودشان را دارند و به دسته های 16 و 128 بیتی تقسیم می شوند. هر یک از مشخصات یا کاراکتریستیک ها بها خاص خودشان را داشته که شامل میزان بایت و یک سری نوصیف کننده یا دسکریپتور است. بر اساس این ویژگی ها و مشخصات تعیین شده مشترکین شبکه کارها را انجام می دهند و اگر هم این مشخصات تغییر کنند ، ابتدا آنها هستند که متوجه تغییر خواهند شد. 

 

نوع استفاده 

 

در اینجا و دمویی که داریم از اتصال شبکه ی بلوتوثی برای کنترل یک چراغ LED وصل شده به Raspberry استفاده می شود. البته روی Raspberry هم یک دکمه قرار داده شده تا بتوان توسط آن چراغ را خاموش یا روشن کرد. اتصال ایجاد شده می تواند به شما اطلاع دهد که چه زمانی دکمه فشرده می شود. 

 

سخت افزار مورد نیاز برای درست کردن شبکه : 

 

1- یک دستگاه مجهز به BalenaOS 

2- یک کارت حافظه ی SD 

3- منبع تغذیه 

4- چراغ LED 

5- مقاومت بالا 50 اهم 

6- دکمه ی الکتریکی فعال 

7- یک لپ تاپ یا گوشی هوشمند برای ایفای نقش سرور 

 

نرم افزار مورد نیاز : 

 

1- یک balenaEtcher تا بتوان توسط balenaOS توسط آن روی کارت حافظه ی SD اطلاعات را ثبت کرد

2- تهیه ی The balena-web-ble از Github 

3- نصب balena CLI روی گوشی یا کامپیوتر برای ترجمه ی دستورها 

 

راه اندازی دستگاه Balena 

 

1- به صورت کاملا رایگان در BalenaCloud ثبت نام کنید 

2- یک اپلیکیشن balenaCloud بسازید 

3- یک دستگاه را اضافه نموده و سیستم عامل balenaOS را به عنوان دیسک ایمیج دریافت نمایید. 

4- کارت حافظه ی SD خود را توسط balenaOS فلش کنید و دستگاه خود را ریستارت نمایید 

5- چند ثانیه پس از بالا آمدن دستگاه به اینترنت متصل شده و به داشبورد balenaCloud میرود  

 

وارد کردن کد 

 

1- پروژه را از  https://github.com/balena-io-playground/balena-web-ble/ دانلود کرده و فایل آن را آنزیپ کنید. 

2- در قسمت balena push <appName نام اپلیکیشنی که پیشتر ساخته اید به نمایش در خواهد آمد. 

 

راه اندازی Raspberry Pi مانند تصویر زیر LED را متصل نمایید. 

 

به صورت از پیش تعیین شده پروژه برای LED از GPIO 17 و برای دکمه از GPIO 4 استفاده می کند. اگر می خواهید این میزان ها را تغییر دهید می توانید به داشبورد رفته و میزان های LED_PIN و BTN_PIN را تغییر دهید. 

 

بارگذاری اپلیکیشن بلوتوثی 

 

می توانید این اپلیکیشن را از repo که لینک آن در پایین قرار گرفته دانلود نمایید. سپس آن را در لپ تاپ یا گوشی راه اندازی نمایید. 

 

لینک دانلود

 

بلوتوث گوشی یا لپ تاپ خود را روشن نمایید. زمانی که روی Connect بزنید اسکن دستگاه آغاز خواهد شد. پس از اتصال می توانید نام CPU را مشاهده کرده و چراغ را کنترل نمایید. 

 

البته باید اطلاعات زیر را هم به داشبورد اضافه نمایید : 

 

    نظر خودتان را ارسال کنید