آردوینو آردوینو Arduino Uno آموزش آردوینو بلوتوث Bluetooth

ارتباط دوطرفه با بلوتوث ماژول HC05 و برد آردوینو از طریق AT Command

نوشته شده توسط پریسا پوربلورچیان

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

 


فلسفه بلوتوث Bluetooth


بدون استثنا در زمان حال حاضر برای یک بار هم با موبایل‌های هوشمند کار کرده و با تکنولوژی بلوتوث Bluetooth آشنا هستید. در یک تعریف ساده ارسال دیتا در فاصله مکانی کوتاه ولی با سرعت بالا! بلوتوث‌ها در موبایل‌ها، MP3 Playerها و دیگر گجت‌های هوشمند به کار گرفته شده است و روش کار با آن ها را به خوبی می‌دانید. امروز در مبحث اینترنت اشیا برخی از ارتباطات داخل یک سناریو کاربردی بین اشیا از طریق بلوتوث Bluetoothصورت می‌گیرد. توضیحات کامل‌تر در اسپارکرینار فروردین ماه ارایه شده است. دو مدل ماژول بلوتوث Blutooth وجود دارد:

  • بلوتوث معمولی که در گجت‌های ساده مثل اسپیکرها، ماشین‌ها و یا دیگر وسایل به کار برده می‌شود.
  • BLE یا همان بلوتوث کم مصرف Blutooth Low Energy نسل جدید بلوتوث که در وسایل بخش قبلی هم اضافه شده است.

بلوتوث مدل BLE در برنامه‌های کاربردی که مصرف انرژی از اهمیت ویژه‌ای برخوردار است، استفاده می‌شود. یا در مواردی که دیتای محدودی ارسال می‌شود. مانند بسیاری از سنسورها.. اما نکته‌ی مهم این است که این دو مدل امکان برقراری ارتباط با یکدیگر را نداشته و توانایی ارسال دیتا بین آن دو وجود ندارد. در حال حاضر آخرین ورژن ماژول بلوتوث Bluetooth یعنی ورژن ۵ به بازار IOT معرفی شده است که در آموزش‌های بعدی به معرفی خواهیم پرداخت.

 


عملکرد بلوتوث Bluetooth


هدف اصلی در این آموزش معرفی دو بخش مهم در ساختار ماژول بلوتوث است. دو مود اصلی برای انتقال دیتا در بلوتوث معرفی شده است. یکی Slave و دیگری Master می‌باشد. هنگامی که ماژول بلوتوث توسط تغدیه اعمالی فعال می‌گردد، می‌تواند در دو حالت Slave و Master قرار گیرد. با کدنویسی‌هایی که برای پروژه در نظر گرفته شده است، توسط سریال مانیتور Serial Monitor مود اصلی را برای ماژول بلوتوث مشخص می‌کنیم. این ارتباط از طریق پایه‌های RX و TX میکروکنترلر، دیتاهایی دریافتی را با پروتکل سریال برای برد آردوینو ارسال می‌کند. در این حالت ماژول در مود Pairing قرار گرفته و در حالت Slave قرار می‎گیرد. سپس ماژول منتظر می‌ماند تا دستگاهی درخواست برقراری ارتباط کند. جهت ارسال دیتا به ماژول بایستی از طریق پایه RX اطلاعات را با پروتکل سریال به ماژول بدهیم تا ماژول با ارتباط بلوتوث Bluetooth دیتا را به دستگاه متصل شده ارسال کند. جهت درک بهتر روند عملکرد ماژول بلوتوث Bluetooth از دو ماژول بلوتوث یکی به عنوان Master و دیگری در نقش Slave استفاده خواهیم کرد.

دو تعریف اصلی

  • Master می‌تواند دستگاه های بلوتوث اطراف را جستجو کرده و با دستگاهی خاص ایجاد ارتباط کند.
  • Slave فقط مورد جستجو قرار گرفته و به درخواست های ارتباط پاسخ مثبت و منفی می‌دهد.

ارتباط بین دو ماژول بلوتوث HC05 توسط برد آردوینو - digispark

 


دستورات AT Command بلوتوث


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

 

 

 


حالت اول Slave بلوتوث


یکی از ماژول بلوتوث را انتخاب کرده و همانند زیر اتصالات را به برد آردوینو Arduino انجام دهید.

  • پایه VCC ماژول بلوتوث را به پایه ۵ ولت آردوینو Arduino اتصال دهید.
  • پایه GND ماژول بلوتوث را به پایه GND آردوینو Arduino اتصال دهید.
  • پایه RX ماژول بلوتوث را به پایه RX آردوینو Arduino اتصال دهید.
  • پایه TXماژول بلوتوث را به پایه TX آردوینو Arduino اتصال دهید.
  • پایه EN ماژول بلوتوث را به پایه ۵ ولت آردوینو Arduino اتصال دهید.

 

حال یک تب جدید در نرم افزار آردینو ایجاد کرده و بدون کد آپلود Upload کنید. سپس سریال مانیتور را باز کرده و به ترتیب کامندها زیر را وارد کنید. دقت کنید در هر مرحله بایستی پیغام OK برای شما در سریال مانیتور نمایش داده شود و به این معنی است که تنظیمات به درستی انجام شده است.

 

جهت دسترسی به این بخش از پروژه، اسپارکر پلاس شوید.

 


حالت دوم MASTER بلوتوث


برای حالت MASTER ماژول بلوتوث دیگری برداشته و همانند زیر اتصالات را انجام دهید:

  • پایه VCC ماژول بلوتوث را به پایه ۵ ولت آردوینو Arduino اتصال دهید.
  • پایه GND ماژول بلوتوث را به پایه GND آردوینو Arduino اتصال دهید.
  • پایه RX ماژول بلوتوث را به پایه RX آردوینو Arduino اتصال دهید.
  • پایه TXماژول بلوتوث را به پایه TX آردوینو Arduino اتصال دهید.
  • پایه EN ماژول بلوتوث را به پایه ۵ ولت آردوینو Arduino اتصال دهید.

 

حال یک تب جدید در نرم افزار آردینو ایجاد کرده و بدون کد آپلود Upload کنید. سپس سریال مانیتور را باز کرده و به ترتیب کامندها زیر را وارد کنید. دقت کنید در هر مرحله بایستی پیغام OK برای شما در سریال مانیتور نمایش داده شود و به این معنی است که تنظیمات به درستی انجام شده است.

نکته مهم: دقت کنید بایستی دو سریال مانیتور جداگانه داشته باشید. در صورت نیاز از آموزش روش ایجاد دو سریال مانتیور مجزا در نرم افزار آردوینو Arduino IDE استفاده نمایید.

 

جهت دسترسی به این بخش از پروژه، اسپارکر پلاس شوید.

 

ارسال فرمان از ماژول بلوتوث HC05 توسط برد آردوینو - digispark

 


وسایل مورد نیاز


 

اتصالات

  • هر دو کلید را به پایه های ۲ بردهای آردوینو اتصال دهید.
  • هر دو ال ای دی را به پایه های ۸ بردهای آردوینو اتصال دهید.
  • پایه RX هر دو ماژول بلوتوث را به پایه های TX بردهای آردوینو اتصال دهید.
  • پایه TX هر دو ماژول بلوتوث را به پایه های RX بردهای آردوینو اتصال دهید.
  • پایه KEY هر دو ماژول بلوتوث را از پایه های ۵ ولت بردهای آردوینو جدا کنید.

 


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


جهت برقراری ارتباط بین دو ماژول بلوتوث از دستور ifserial استفاده می‌کنیم. جهت آشنایی با این دستور و نحوه ی فراخوانی آن به آموزش ifserial مراجعه کنید. در ادامه کدهای آردوینو برای ماژول بلوتوث حالت Slave و ماژول بلوتوث حالت MASTER قرار داده شده است. کپی و به نرم افزار آردوینو ARDUINO انتقال دهید.

 

جهت دسترسی به این بخش از پروژه، اسپارکر پلاس شوید.

 

 

حال با فشردن کلید در SLAVE، ال ای دی در حالت MASTER روشن شده و برای با فشردن کلید در حالت MASTER، ال ای دی حالت SLAVE روشن می‌گردد.

ارتباط دوطرفه با ماژول بلوتوث Bluetooth و برد آردوینو - digispark

 

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

 


پروژه و دریافت بن ارسال رایگان


برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک   دانشجوکیت    digispark    daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

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

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

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

۹ دیدگاه

  • با سلام
    یه سوال داشتم….بنده یه کدی نوشتم که در اون ماژول سه تا value دریافت میکنه…مثلا اعداد ۱٫٫۲٫٫۳ که اگر یک بود led روشن شه و دو بود led خاموش بشه و اگر سه بود led یه تابع اجرا کنه که کد اون تابع :
    (for (int i=0; i0; i-1)
    (digitalWrite(led, i

    حالا می خوام دوباره value بفرستم و led خاموش کنم….دستور فرستاده میشه اما led دستور تابع اجرا میکنه و تا برد ریست نشه دستور جدیدی نمیگیره

    راه حلی برای این حالت دارید که وقتی دستور جدیدی میاد اجرای تابع هرجا که بود قطع شه؟

  • سلام
    خیلی خیلی ممنون از سایت خوبتون ، آموزش هاتون واقعا عالیه.

    من دوتا ماژول HC-05 از سایتتون خریدم و می خوام دو تا بورد یونو و مگا رو به هم وصل کنم. ولی اتفاقی که میفته اینه که من تمام دستورات AT Commands رو وارد می کنم ولی در نهایت دوتا ماژول pair نمیشن و حالت چشمک زن ال ای دی روی بورد ماژول ها همچنان مثل حالت قبله و به حالت چشمک زن سریع که به معنی حالت وصل شدن دوتا ماژوله تغییر نمی کنه. من خیلی گشتم توی اینترنت ، آموزش های زیادی رو امتحان کردم ولی بازم جواب نمیده.
    بعد یه سوال دیگه : حالت وصل کردن پین های Tx/Rx توی آموزش ها با هم فرق داره ، مثلا بعضی جاها مثل شما گفتن ولی بعضی جاها هم پین ها رو Tx به Tx و Rx به Rx وصل می کنن که من هر دو روش رو امتحان کردم ولی جواب بازم نداد.

    ممنون میشم راهنماییم کنین.

  • سلام دوست گرامی من برای انجام یک سری کار اداری نیاز دارم که ارسال و دریافت صوت را از دستگاه باسیم به بیسیم تبدیل کنم و ۵ تا ۱۰ متر بعد دوباره به باسیم تبدیل کنم و دریافتش کنم.البته نمیدونم واضح گفتم یا نه ( فرض کنید شما از طریق هدفن موبایل با یکی مکالمه می کنید حالا وسط سیم هدفن را ببرید و ۱۰ متر اون طرف تر صدا را با هدفن بگیرید ) ایا امکان استفاده از کیت بلوتوث با وای فای برای این ۱۰ متر وجود داره یا نه ؟لطفا راهنمایی کنید که چنین دستگاهی داخل بازار هست یا اینکه میشه درستش کرد؟ البته رشته من الکترونیک نیست .

    • با سلام
      در این خصوص امکان پذیر است ولی بایستی دیتاشیت ماژول های بلوتوث را بررسی و محدوده ارسال دیتا را بررسی نمایید.