تبادل داده بین اندروید و آردوینو توسط بلوتوث

تبادل داده بین اندروید و آردوینو توسط بلوتوث

تبادل داده بین اندروید و آردوینو توسط بلوتوث
تبادل داده بین اندروید و آردوینو توسط بلوتوث

ارتباط آردوینو و بلوتوث و اندروید

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

ایده‌ی این فناوری در سال 1994 مطرح شد. در سال 1998 توسط شرکت اریکسون معرفی گشت و از سال 2000 در محصولات الکترونیکی بطور گسترده استفاده شده و همچنان در حال پیشرفت و کامل‌تر شدن است. این فناوری کمک شایانی به رشد اینترنت اشیاء کرده است.

در این مقاله سعی می‌کنیم با یک آردوینو نانو به یک ماژول بلوتوث از خانواده HC متصل شویم و در نهایت توسط آن‌ها، با یک گوشی اندرویدی ارتباط بگیریم.

ماژول بلوتوث سری HC

ماژول بلوتوث خانواده‌ی HC

از بین ماژول‌های موجود در بازار، ما از ماژول HC-06 استفاده می‌کنیم. شما می‌توانید از هرکدام از ماژول‌های این خانواده ( HC-03 , HC-04 , HC-05 ) استفاده کنید. این ماژول به لطف دوستان چشم‌بادامی قیمت مناسبی دارد (حدود 20 هزار تومان، در زمان نگارش این مطلب).

بیشتر ماژول‌ها از تراشه‌ی BC417 به همراه حافظه‌ی فلش استفاده می‌کنند و دارای مشخصه‌های زیر هستند:

CSR چیپ: بلوتوث ورژن 2

باند فرکانسی: 2.4GHz , 2.8GHz  و  باند ISM

ولتاژ کاری: 3.3 ولت (2.7V – 4.2V)

جریان مصرفی: حداکثر 35 میلی

 

می‌توانید شماتیک HC-06 را در زیر مشاهده کنید:

HC-04 HC-05 HC-06

پایه‌های HC-04 و HC-06 به ترتیب زیر:

UART_TX (pin 1), UART_RX (pin 2), UART_CTS (pin 3), UART_RTS (pin 4) – UART.
3,3V (pin 12) – Power 3.3V.
GND (pin 13) – GND.
PIO1 (pin 24) – LED working mode indicato

و پایه‌های HC-03 و HC-05 نیز به این ترتیب هستند:

UART_TX (pin 1), UART_RX (pin 2), UART_CTS (pin 3), UART_RTS (pin 4) – UART.
PIO8 (pin 31) – LED1 working mode indicator.
PIO9 (pin 32) – LED2. Before paired, it output low level. Once the pair is finished, it output high level.
PIO11 (pin 34) – KEY. Mode switch input.

درصورتی‌که کلید Mode در حالت صفر باشد، ماژول در حالت ارتباطی و اگر کلید Mode در حالت یک باشد، ماژول در حالت دستوری AT قرار می‌گیرد.

می‌توانید داکیومنت ماژول را از لینک زیر دانلود کنید:

HC-Serial-Bluetooth-Products-201104.pdf

اتصال بلوتوث به آردوینو

اتصال ماژول HC-06 به آردوینو نانو

پایه‌های آردوینو را به ترتیب زیر به ماژول بلوتوث متصل می‌کنیم:

پایه 3.3V آردوینو به پایه 12 ماژول بلوتوث

پایه زمین آردوینو به پایه 13 ماژول بلوتوث

پایه TX آردوینو به پایه 2 ماژول بلوتوث (RX)

پایه RX آردوینو به پایه 1 ماژول بلوتوث (TX)

 

بعد از اینکه ماژول را به آردوینو متصل کردیم، برای تست کارکرد صحیح برد آردوینو و ماژول، برنامه زیر را برای آردوینو استفاده می‌کنیم:

 

ماژول بلوتوث

برای صحت ارسال داده میتوانید توسط بلوتوث کامپیوتر به ماژول بلوتوث متصل به آردوینو متصل (pair) شوید. پسورد به‌صورت پیش‌فرض 1234 است.

برای مشاهده‌ی داده‌های ارسالی از نرم‌افزار Tera Term استفاده کنید. پورت مربوط به بلوتوث را انتخاب کرده و دیتاهای ارسالی را مشاهده کنید.

 

نرم افزار tera term

تا اینجا توسط آردوینو و یک ماژول بلوتوث، داده‌های خود را انتقال دادیم.

حال میخواهیم توسط یک گوشی اندرویدی، یک لامپ را خاموش و روشن کنیم. برای این منظور برنامه‌ی زیر را روی آردوینو پروگرام می‌کنیم:

 

نرم افزار اندروید کنترل اشیاء

برنامه اندرویدی برای ارتباط با بلوتوث

برای ارتباط با بلوتوث از یک برنامه‌ی جاوا استفاده می‌کنیم. برنامه را روی دستگاه اندرویدی نصب و اجرا می‌کنیم. توسط بلوتوث دستگاه به بلوتوث آردوینو متصل می‌شویم. در برنامه دو کلید با نام‌های LED ON و LED OFF وجود دارد که با فشار کلید مربوطه LED روی برد آردوینو روشن و یا خاموش می‌شود.

کد مربوط به برنامه‌ی اندروید را مشاهده می‌کنید:

 

(می‌توانید برنامه را نسبت به نیاز خود، کامل کرده و از آن استفاده کنید.)

سورس برنامه آردوینو و اندروید و فایل‌های APK را از لینک زیر دانلود کنید:

Android-Bluetooth-Arduino.zip


این ویدیو ارتباط آردوینو، بلوتوث و کامپیوتر را نشان می‌دهد:

 


این ویدیو ارتباط بین آردوینو، بلوتوث و یک تبلت اندرویدی را نشان می‌دهد:

1 نفر

پــــســنــدیـده انـد

توجه

دیدگاه ها

6 دیدگاه

  • علی
    ۴ آبان ۱۳۹۹

    سلام و خسته نباشید. سورس اندروید استودیو هست؟

    • Zeus ‌
      زئوس Zeus
      ۱۱ آبان ۱۳۹۹

      سلام سورس جاوا هست و توی اندروید استودیو هم قابل استفاده است

  • زهرا
    ۱۱ آذر ۱۳۹۸

    سلام
    ببخشید این کد الان ارسال میکنه فقط ؟ برای دریافت اطلاعات از ماژول از چه کدی باید استفاده کنیم در اندروید استودیو؟

    • Zeus ‌
      زئوس Zeus
      ۱۲ آذر ۱۳۹۸

      سلام امکان ارسال و دریافت دو طرفه وجود داره با همین ماژول
      ولی برنامه اندرویدی که نوشته شده فقط برای ارسال داده هست – اگر نه به سادگی میشه دریافت هم بهش اضافه کرد

      • امیرحسین آقاجانی
        ۲۰ اردیبهشت ۱۳۹۹

        سلام، هزینه یه برنامه خیلی ساده با 5 تا دکمه چقدره؟
        هر دکمه از یک تل چهار، عدد ارسال کنه و یه دکمه خاموش.
        با تشکر

        • Sisoog Os
          Sisoog Os
          ۲۰ اردیبهشت ۱۳۹۹

          دوست عزیز ما پروژه انجام نمیدیم
          اینجا پروژه را قرار دادیم که با تغییرات پروژه را خودتون انجام بدید

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 3 سال پیش
راه اندازی LCD گرافیکی Nokia 1661

راه اندازی LCD گرافیکی Nokia 1661

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش
ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش
همه چیز درباره ریموت کنترل‌های هاپینگ

همه چیز درباره ریموت کنترل‌های هاپینگ

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

Zeus ‌ Zeus ‌
  • 5 سال پیش
مسابقه سوم: استخراج داده از رشته ها در زبان C

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش
مسابقه ششم: بزن میکروکنترلر را بسوزون!

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 12 ماه پیش
آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش
ساخت ماینر با FPGA و ARM

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش
کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش
مسابقه چهارم: کدام حلقه سریع‌تر است؟

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 2 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک