اینترنت اشیا IOT ترفند تکنولوژی

فعالسازی قابلیت آیبیکن iBeacon روی ماژول HM-10

iBeacon-HM-10-Bluetooth-Module-Arduino--Digispark
نوشته شده توسط آرش کدخدایی

ماژول بلوتوث HM-10 نسخه ۴ بلوتوث و از نوع کم مصرف است. با استفاده از این ماژول می‌توان علاوه بر اندروید با IOS هم ارتباط برقرار کرد. بلوتوث BLE کم مصرف، دارای سرعت بالاتری است. در مورد خصوصیات این ماژول بلوتوث در پست قبلی معرفی و آموزش کار با ماژول بلوتوث HM-10 Bluetooth ورژن ۴ BLE مفصل بررسی کردیم. در این پست میخواهیم قابلیت iBeacon را با این ماژول فعال سازی کنیم. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی دیجی اسپارک همراه باشید.

 

 

تکنولوژی iBeacon

تکنولوژی آیبیکن در سال ۲۰۱۳ توسط شرکت اپل معرفی شد. این تکنولوژی با استفاده از بلوتوث هوشمند (BLE)، پیام هایی را بر اساس موقعیت مکانی افراد، به گوشی های هوشمند ارسال می کند. بگذارید اینطور بگوییم که این فناوری مانند یک فانوس دریایی عمل میکند و میتواند اطلاعات را به مخاطب برساند. تکنولوژی آیبیکن از زیر مجموعه های اینترنت اشیا است. اولویت استفاده از این فناوری در تبلیغات میباشد و پیش بینی می شود تا سال ۲۰۱۸ بیش از ۵۰ درصد برند های دنیا بر روی این تکنولوژی نوآورانه سرمایه گذاری خواهند کرد. این فناوری میتواند دنیای بازاریابی را متحول کند.

 

iBeacon چطور کار میکند؟

آیبیکن در یک فاصله زمانی یکسری اطلاعات را پخش میکند که حدودا تا شعاع ۱۰۰ متری در فضای باز و شعاع ۳۰ متری در فضای بسته را پوشش میدهد.

اطلاعات ارسالی شامل موارد زیر هستند:

UUID: این مشخصه برای مثلا محصولات یک شرکت مورد استفاده قرار میگیرد. (عدد هگزادسیمال شامل ۳۲ رقم در ۵ گروه)

Major: این مشخصه برای مثلا یک فروشگاه خاص مورد استفاده قرار میگیرد. (عددی بین ۰ تا ۶۵۵۳۵ در واحد هگزادسیمال چهار رقمی)

Minor: این مشخصه برای مثلا محصولی خاص در یک فروشگاه مورد استفاده قرار میگیرد. (عددی بین ۰ تا ۶۵۵۳۵ در واحد هگزادسیمال چهار رقمی)

Tx Power: این مشخصه برای یافتن میزان نزدیکی به آیبیکن مورد استفاده قرار میگیرد؛ خود این عدد از پیش تعیین شده و عدد آن نشانگر میزان توان سیگنال رادیویی در فاصله یک متری میباشد. (در واحد دسیبل . میلی‌وات)

حال با داشتن این اطلاعات که از طریق آیبیکن به گوشی هوشمند ارسال میشوند میتوانید دقیقا موقعیت مکانی شخص را یافته و پیامی را برای شخص ارسال کنید که مثلا “سلام آقای ایکس به فروشگاه ما سر بزنید، امروز تخفیف ویژه برای شما در نظر گرفته‌ایم” یا … (البته برای اینکار به یک نرم افزار برای تحلیل اطلاعات نیازمند خواهید بود).

  

راه اندازی iBeacon با ماژول HM-10

ابتدا باید فریمور HM-10 را به آخرین ورژن بروزرسانی کنیم، آخرین ورژن ارائه شده از طریق سایت سازنده ورژن ۶۰۳ میباشد. لینک دانلود: http://jnhuamao.cn/rom/HMSoft-10-2541-V603.zip دقت کنید اگر فایل اشتباه را دانلود کنید ممکن است باعث آسیب رساند به ماژول شوید. حال با استفاده از تبدیل USB به TTL ماژول خود را به اینصورت به کامپیوتر متصل کنید که پین های TX,RX,VCC,GND ماژول HM-10 به ترتیب به پین های RX,TX,VCC,GND ماژول تبدیل متصل باشند. دقت کنید اگر نمیخواهید فریمور را آپگرید کنید دستور زیر را ارسال نکنید چون این کار غیر قابل برگشت میباشد. حال ابتدا سریال مانیتور آردوینو (یا هر نرم افزار دیگری) را برای پورت ماژول تبدیل باز میکنیم و baud rate را روی ۹۶۰۰ تنظیم میکنیم و سپس دستور AT+SBLUP را ارسال میکنیم. اینکار باعث میشود فریمور قبلی پاک شود و ماژول به حالت ستاپ بروند.

حال از فایلی که دانلود کردیم HMSoft.exe را اجرا میکنیم و شماره پورت ماژول تبدیل را مینویسم و در کادر کناری فایل HMSoft.bin را که در فایل دانلودی موجود میباشد را انتخاب کرده و Load Image را انتخاب میکنید. حال منتظر میمانیم تا فریمور بصورت کامل بارگذاری شود و پیغام Download completed successfully نمایش داده شود.

 

آپلود فایل راه اندازی ibeacon با بلوتوث HM10

 

اکنون دوباره به سریال مانیتور برمیگردیم و کد های زیر را به ترتیب اجرا میکنیم.

  1. AT+RENEW برای بازگردانی تنظیمات کارخانه
  2. AT+RESET برای ریست کردن ماژول
  3. AT برای تست ماژول (باید OK نمایش داده شود)
  4. AT+MARJ0x1234 برای تنظیم مقدار Major آیبیکن در سیستم عددی هگزادسیمال (در این مثال ما ۱۲۳۴ (در دستگاه دسیمال ۴۶۶۰) را انتخاب کرده ایم)
  5. AT+MINO0xFA01 برای تنظیم مقدار Minor آیبیکن در سیستم عددی هگزادسیمال (در این مثال ما FA01 (در دستگاه دسیمال ۶۴۰۰۱) را انتخاب کرده ایم)
  6. AT+ADVI5 تنظیم مدت زمان انتشار اطلاعات در واحد حدودی ۱۰۰ میلی ثانیه (هر چه بیشتر باشد انرژی بیشتری مصرف میشود)
  7. AT+NAMEdigispark انتخاب یک نام برای ماژول
  8. AT+ADTY3 غیر فعال سازی قابلیت کانکت شدن برای مصرف انرژی کمتر
  9. AT+IBEA1 فعالسازی قابلیت آیبیکن
  10. AT+DELO2 آیبیکن در حالت فقط انتشار برای مصرف انرژی کمتر
  11. AT+PWRM0 بردن ماژول به حالت اسلیپ که باعث میشود مقدار مصرف انرژی به شدت کاهش یابد و البته پس از ریبوت دستگاه دیگر قادر به پاسخ گویی به دستورات سریال نمیباشد
  12. AT+RESET ریبوت ماژول

 

اکنون ماژول ما آماده است و میتوانید آن را به یک باتری متصل کرده و از آن استفاده کنید. نرم افزار های زیادی برای یافتن مشخصات آیبیکن موجود هستند؛ ما از نرم افزار Beacon Scanner برای سیستم عامل اندروید استفاده کردیم؛ برای سیستم عامل ios نرم افزار Locate Beacon موجود میباشد که از طریق آن قادر خواهید بود مشخصات آیبیکن همچنین فاصله حدودی ماژول به گوشی هوشمند را ببینید. ولی برای اینکه مثلا تبلیغی برای شخص در نزدیکی آیبیکن ارسال کنید باید نرم افزاری مخصوص طراحی شود که با پردازش اطلاعات دریافتی از طریق بلوتوث و دریافت اطلاعات از اینترنت اینکار را انجام دهد.

 

اپلیکیشن بلوتوث HM10 برای راه اندازی Ibeacon - دیجی اسپارک

 

نکته: جهت استفاده مجدد از AT کامند ها بعد از بردن آن در حالت خواب باید در هنگام اتصال ماژول به پورت سریال فورا ۸۰ کاراکتر رندوم را از طریق سریال به آن ارسال کرد تا ماژول به اصطلاح ویکآپ شود و برای اینکه بعد از ریبوت دوباره به حالت خواب نرود دستور AT+PWRM1 را به ماژول ارسال کنید.

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

درباره نویسنده

آرش کدخدایی

یک تازه کار علاقه مند به تکنولوژی :)

تبادل نظر و رفع عیب با ثبت دیدگاه

۲ دیدگاه

  • سلام
    ممنون از انتشار این مطلب مفید.

    یه سوال داشتم اونم اینکه من وقتی از این ماژول در حالت Peripheral استفاده میکنم، بعد از اینکه یک دستگاه (اندروید یا iOS و یا حتی ویندوز) به ماژول متصل بشه، دیگه سایر دستگاه ها با نمیتونند ماژول را پیدا کنند و قابل سرچ نیست.

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