اینترنت اشیا 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 و یا حتی ویندوز) به ماژول متصل بشه، دیگه سایر دستگاه ها با نمیتونند ماژول را پیدا کنند و قابل سرچ نیست.

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

  • سلام ممنون بابت اموزش خوبتان چندین سوال دارم در مورد این ماژول
    ۱-برای بردن ماژول به مد at command فقط نمی شود آن را با arduino مانند hc05 به at command برد و اینکه روی hc05 یه دکمه داشت که قبل روشن کردن برد باید ان را می زدیم تا بعد روی مد at command قرار گیرد روی این ماژول به چه گونه وارد این مد می شود
    ۲-دستور تعویض رمز جفت سازی روی این ماژول ایا مانند همان hc05 است و می شود تغییرش داد
    ۳-امن تر از این ماژول ایا ارایه شده است و قابل تهیه می باشد

    • سلام
      هرگونه ارتباطی که بتونید با سریال ماژول برقرار کنید کافیه و میتونید برد را همونطور که توی مطلب توضیح داده شده پروگرم کنید
      با at+pin میتونید پسورد ماژول را تغییر بدید
      و امن تر منظورتون چی هست؟
      بورد nrf52832 قابلیت های بهتری نسبت به این ماژول ارائه میدهد ولی کار با آن پیچیدگی های خودش را دارد

    • سلام
      بله همون آی بیکن هستنش
      با استفاده از آی بیکن میتونین فاصله تقریبی را محاسبه کنید و برای موقعیت یابی داخلی باید از چندین آی بیکن در فواصل مشخص استفاده کنید و سپس با استفاده از محاسبات موقعیت تقریبی را پیدا کنید

  • سلام این ماژول رو چطور میتونیم در یک سامانه موقعیت یاب استفاده کنیم فرض کنیم مثل gps از ۳ سنسور استفاده کنیم و موقعیت رو به روش سه گوشه سازی تخمین بزنیم

      • سلام مهندس لینک که ارسال کردید مطالعه کردم. میتونید بیشتر توضیح بدید که چطور میتونیم راه اندازیش کنیم؟
        و اینکه این ماژول نیاز موقعیت یابی رو برطرف میکنه؟
        ماژولی بهتر از این هم میشه استفاده کرد؟
        در آخر دیدم که مثل اینکه یک برنامه اندروید در sdk برای این منظور طراحی شده در صورت امکان توضیح بدید که چگونه قابلیت پیاده سازی داره ؟
        با تشکر

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

  • سلام
    میخواستم بدونم با ی ماژول آی بیکن میشه هم به گوشی های اندرویدی و ایفون ها سیگنال فرستاد؟
    اگه میشه آیا سیگنالی که دریافت میکنند تفاوت شاخصی دارند یا رنجشون مشابه هستش؟

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

  • سلام و ممنون بابت مطلب فوق العاده ای که منتشر کردید
    دو تا سوال داشتم :
    ۱-با ارسال اون ۱۲ دستوری که در بالا قرار دادید آیا با قطع شدن پاور ماژول این دستورها پاک میشند و بعد از هر بار اتصال به پاور نیاز به ارسال دستورات هست یا در حافظه میکرو داخلی ماژول ذخیره میشند؟؟؟
    ۲-ایا HM10 ضریب اطمینان خوبی داره مثلا برای تشخیص فاصله؟ یا اینکه در مورد nrf52832 گفتید که قابلیت های بیشتری داره ،nrf52832 بهتره و ارزش درگیر شدن باهاش رو داره؟؟؟؟

    • سلام و سپاس
      ۱- خیر این دستورات باقی میمونند و نیازی به وارد کردن مجدد نیست
      ۲- بنده با nrf52 کار نکردم ولی hm10 دقت معمولی دارد و آنقدر دقیق نیست