ارسال AT Command به HC-05 بدون مبدل سریال

HC-05 AT Command
نوشته شده توسط

سلام به همه دوستان. این اولین نوشته من در وبلاگ مایکروالکام هست. امیدوارم که مفید باشه و تا ادامه همراه ما باشید. قبلا روی سایت مطلبی در باره ماژول HC-05 تحت عنوان شبکه کردن دو ماژول بلوتوث، قرار گرفته و توضیحاتی درباره این ماژول اونجا ذکر شده و دیگه من از تکرار مکررات جلوگیری میکنم برای صرفه جویی در وقت و مستقیم میریم سر اصل مطلب.

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

خب برای این کار از نرم افزار های سریال ترمینال میشه استفاده کرد و یک مبدل USB به سریال. خب منم رفتم که شرایط رو فراهم کنم دیدم ععییی دل غافل!! مبدل ام نیستش. خب حالا چیکار کنم و چیکار نکنم توی وسایلم نگاهم افتاد به برد آردوینوی دوست داشتنی و جذابم.

خب حالا چرا گفتم اینو؟ این ایده به ذهنم رسید که با توجه به سخت افزار این برد و دارا بودن مبدل سریال روی این برد، ازش بعنوان یک مبدل سریال استفاده کنم. و از محیط نرم افزار ARDUNI IDE به عنوان سریال ترمینال استفاده کنم و کار ام رو راه بندازم. پس اگر علاقمند هستید که بدونید چجور ممکنه، با من تا آخر این آموزش همراه باشید.

HC-05 Pinout
HC-05 Pinout

حالت های کاری ماژول:

ماژول بلوتوث ما دارای 2 حالت کاری هست.

حالت اول: که بهش مد DATA میگیم. که برای اتصال به ماژول و تبادل دیتا هستش. (بصورت پیشفرض وقتی تغذیه ماژول وصل میشه تو این حالت راه اندازی میشه)

حالت دوم: که بهش حالت AT Command میگیم. از این حالت برای تنظیمات ماژول از طریق دستورات AT استفاده میشه.

دیفالت وقتی ماژول روشن میشه، توی حالت اول راه اندازی میشه و باید طبق روشی که در ادامه خواهم گفت، ماژول رو توی حالت AT Command قرار داد و نسبت به تنظیمات ماژول یا تست ماژول از طریق دستورات AT اقدام کنیم.

از کجا بفهمیم تو کدوم حالت هست ماژول؟

خیلی ساده است! اگر پشت سر هم با فاصله تقریبا نیم ثانیه LED روی ماژول چشمک زن بود، ماژول توی حالت اول (DATA Mode) هست. در صورتی که چشمک زدن LED ماژول خیلی کند بود تقریبا 1.5 ثانیه روشن و 2 ثانیه خاموش بود چشمک زدن اش، ماژول توی حالت دوم (AT Mode) هست.

حالت اول DATA Mode

حالت دوم AT Mode

برای استفاده از ماژول در حالت AT Command از دو روش زیر میتونیم استفاده کنیم:

روش اول:

  • قبل از اتصال تغذیه به ماژل، پایه Key ماژول رو به VCC وصل میکنیم.
  • همزمان تغذیه ماژول رو هم به ماژول متصل میکنیم. (دیگه میتونید اتصال پایه Enable یا Key رو از VCC قطع کنید.)
  • ماژول توی حالت AT راه اندازی شد.

روش دوم:

  • قبل از اتصال تغذیه به ماژل، دکمه تعبیه شده روی ماژول رو نگه دارید.
  • همزمانی که دکمه رو نگه داشتید، تعذیه ماژول رو متصل کرده و دکمه را رها کنید.
  • ماژول توی حالت AT راه اندازی شد.

نکته: باودریت در این حالت 38400 می باشد.

برای خارج شدن از این حالت کافیه یکبار تغذیه ماژول رو قطع و وصل کنید. فقط یادآوری کنم که اگر از روش اول استفاده کردید، اتصال پایه Key یا Enable ماژول رو از VCC قطع کنید که دوباره وقتی تغذیه ماژول رو وصل کردید وارد حالت  AT Mode نشه.

همینطور میتونید از دستور AT+RESET نیز وقتی توی حالت AT هستید برای خارج شدن از این حالت استفاده کنید.


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

1- آردوینو

2- ماژول HC-05

3- برد بورد

4- سیم


شماتیک:

شماتیک
HC-05 to Arduino Schematic

سورس کد

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

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

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

#include <SoftwareSerial.h>

SoftwareSerial HC_05(10, 11); // RX, TX
{

    Serial.begin(9600);
    pinMode(9, OUTPUT);
    digitalWrite(9, HIGH);
    Serial.println("Enter AT commands:");
    HC_05.begin(38400);
}

void loop()

{
    if (Serial.available())
    {
        HC_05.write(Serial.read());
    }
    if (HC_05.available())
    {
        Serial.write(HC_05.read());
    }
}

برای دانلود کد های این آموزش روی این لینک کلیک کنید.

برای اینکه نتایج رو ببینیم و به ماژول AT Command ارسال کنیم، پنجره سریال مانیتور رو بعد از اینکه کد های بالا رو روی آردوینو آپلود کردیم باز میکنیم. برای اینکار میتونیم از کلید ها ترکبیی “ctrl + shif + m” استفاده کنیم.

دقت کنید که باودریت سریال مانیتور روی 9600 تنظیم بشه و روی حالت Both NL & CR قرار بگیره.

اول کار که سریال ماینتور رو باز میکنیم با محیطی شبیه تصویر زیر مواجه میشیم:

Serial Monitor
Serial Monitor

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

مثلا توی تصویر زیر خواستم از ورژن ماژول مطلع بشم و دستور ?AT+VERSION رو برای ماژول ارسال کردم. و در پاسخ VERSION:2.0-20100601+  رو دریافت کردم.

Serial Monitor AT Command
Serial Monitor AT Command

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

اگر این مطلب براتون مفید بود، اون رو حتما با دوستاتون به اشتراک بگذارید. همینطور میتونید اون رو توی اینستاگرام با هشتگ microelecom# به اشتراک بگذارید.

۴ دیدگاه برای “ارسال AT Command به HC-05 بدون مبدل سریال

  1. جناب یه سوال دارم فرق ماژول بلوتوث پایه دار با smdچیه من الان داخل پروژم گفته شده پایه ۳۴ماژولhc05رو زمین کنم ولی اصلا ماژول ۶پایه داره این پایه ۳۴کدامیک از شش پایه هستش

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

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

    1. سلام، از اینکه مطلب مفید واقع شده خوشحالیم.
      مطمئن بشید GND ها به هم متصل هستش. از ارتباط سیم های Rx و Tx بصورت صحیح اطمینان پیدا کنید. COM مورد نظر رو درست انتخاب کنید.

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

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