آموزش STM32آموزش های ARMپروژه های ARMپروژه های STM32

آموزش کامل ارتباط اندروید و STM32 با بلوتوث

سلام. آموزش کامل ارتباط اندروید و STM32 با بلوتوث را آماده کردیم.

ارسال اطلاعات از اندروید به STM32 از طریق بلوتوث

در دنیای امروز بلوتوث بسیار پرطرفدار شده است و تقریباً در هر دستگاه مانند سیستم تلفن همراه ، لپ تاپ و … از Bluetooth برای ارتباط بی سیم استفاده می شود. بلوتوث نه تنها برای انتقال داده بلکه برای کنترل سایر دستگاههای بلوتوث دیگری نیز استفاده می شود ، مانند استفاده از هدست بلوتوث می توانید آهنگ را به صورت بی سیم از تلفن همراه خود بشنوید یا می توانید از سیستم صوتی اتومبیل برای پخش آهنگ ها از تلفن همراه خود استفاده کنید. بلوتوث یک فناوری بی سیم است که با فرکانس 2.4 گیگاهرتز کار می کند. سیگنال بلوتوث معمولی در شعاع 10 متر است. بلوتوث رایج ترین فناوری بی سیم در پروژه های تعبیه شده با شرط کوچک بودن محدوده است.

فیلم زیر به شما در درک نحوه کار پروژه کمک میکند.

توضیحات ماژول بلوتوث HC-05

ماژول بلوتوث HC-05

HC05 در واقع یک ماژول بلوتوث است که از پروتکل پورت سریال (SPP) پشتیبانی می کند و در بسیاری از برنامه های بی سیم از محبوبیت بالایی برخوردار است.برد آن در فضای آزاد بین 20 تا 30 متر است. به پین VCC این ماژول باید منبع تغذیه 5 ولت متصل شود. چراغ LED کوچک در ماژول بلوتوث در ابتدا چشمک زن است و نشانه روشن بودن آن است و در این حالت ماژول HC-05 به دنبال دستگاهی دیگر برای اتصال میگردد. هنگامی که به دستگاهی متصل شود این چراغ ثابت روشن میماند. این ماژول میتواند از طریق پروتکل ارتباطی USART با میکروکنترلر ها ارتباط برقرار کند.

حالت های عملکرد ماژول HC05

دارای دو حالت فرمان AT و حالت داده است. هنگامی که بلوتوث روشن است ، به طور پیش فرض وارد حالت داده می شود. این حالت می تواند برای انتقال داده ها استفاده شود. برای ورود به حالت AT Command هنگام خاموش کردن ، باید دکمه موجود در ماژول را فشار دهیم تا تنظیمات پیش فرض ماژول مانند تنظیمات master / slave را تغییر دهیم.

پین های ماژول بلوتوث

  • EN – این پین برای تنظیم حالت داده یا AT Command Mode استفاده می شود. بصورت پیش فرض در حالت DATA MODE است. هنگام فشار دادن دکمه در هنگام خاموش شدن ، به حالت فرمان AT می رود.
  • +5V – این برای تغذیه ماژول استفاده می شود.
  • GND – این برای GND ماژول استفاده می شود.
  • TX – این پین برای اتصال به پین ​​RX میکروکنترلر است.
  • RX – این پین متصل به پین ​​TX از میکروکنترلر میشود.
  • STATE – این پین وضعیت ماژول را نشان می دهد.

نشانگر LED

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

پورت های STM32 USART

جزئیات پین های STM32

درگاه های ارتباط سریال STM32F103C8 BLUE PILL در تصویر بالا نشان داده شده است. این پین ها دارای رنگ آبی (PA9TX1 ، PA10RX1 ، PA2TX2 ، PA3RX2 ، PB10TX3 ، PB11RX3) هستند.

توضیحات مدار پروژه ارتباط اندروید و STM32

اتصالات مدار برای پروژه راه اندازی ماژول بلوتوث با STM32 در تصویر زیر مشاهده میشود.

مدار پروژه ارتباط اندروید و STM32

اتصال بین STM32F103C8 و ماژول بلوتوث (HC-05)

  • پین TX PA9 از STM32 به پین ​​RX ماژول بلوتوث وصل شده است.
  • پین RX PA10 از STM32 به پین ​​TX ماژول بلوتوث وصل شده است.
  • پین VCC +5V ماژول بلوتوث به پین ​​5 ولت STM32F103C8 وصل شده است.
  • پین GND ماژول بلوتوث به پین ​​GND STM32F103C8 وصل شده است.

پین PA0) STM32) از طریق یک مقاومت سری به پین ​​مثبت LED وصل می شود. پین دیگر LED به GND STM32 متصل است.

قطعات مورد نیاز

  1. STM32 – برد توسعه (BluePill) (STM32F103C8T6)
  2. ماژول بلوتوث HC-05
  3. ال ای دی
قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

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

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

همانطور که قبلاً گفته شد ، در این پروژه ، ماژول بلوتوث (HC-05) بلوتوث را به STM32 متصل خواهیم کرد و از یک تلفن هوشمند Android با برنامه اندروید Bluetooth Terminal برای روشن و خاموش کردن LED استفاده میکنیم.

توجه: پین RX & TX باید هنگام بارگذاری کد در STM32F103C8 متصل نباشند و حذف شوند.

برنامه نویسی برای این پروژه بسیار ساده است. میتوانید از کد های آردوینو استفاده کنید و فقط پین را باید تغییر دهید. از آنجا که ما در STM32F103C8 سه مجموعه پین ​​USART داریم بنابراین باید پین صحیحی را که برای اتصال ماژول بلوتوث استفاده کردیم مشخص کنیم.

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

ابتدا باید پین ها را با شماره پین ​​مربوطه با نوع داده int به شرح زیر ذکر کنیم

const int pinout = PA0;

در مرحله بعدی به یک متغیر برای ذخیره داده های سریال از تلفن همراه اندرویدی نیاز داریم. داده ها می توانند به صورت زیر کاراکتر یا عدد صحیح باشند

char inputdata = 0;

در مرحله بعدی (void setup) ، باید ارتباط سریال بین STM32 Blue Pill و ماژول بلوتوث را با دادن نرخ baud 9600 شروع کنیم.

Serial1.begin(9600);

ما از Serial1 در اینجا استفاده کردیم زیرا HC-05 را به TX1 و RX1 از STM32 وصل کردیم. ما همچنین می توانیم از Serial2 یا Serial3 استفاده کنیم اما پین باید بر این اساس وصل شود.

یک پیام مقدماتی به عنوان داده های سریال به serial1 ، یعنی ماژول بلوتوث HC05 ارسال می شود. این ماژول بیشتر داده ها را به برنامه ترمینال بلوتوث اندروید موبایل ارسال می کند. بنابراین ما از عبارات زیر استفاده می کنیم

Serial1.print("CIRCUIT DIGEST\n");
Serial1.print("BLUETOOTH WITH STM32\n");

در مرحله بعد باید pinmode (PA0) را به عنوان خروجی تنظیم کنیم.

pinMode(pinout, OUTPUT);

بعد در حلقه void () ، داده های زیر را برای خواندن داده های سریال اجرا می کنیم و LED را به همین ترتیب روشن یا خاموش می کنیم.

void loop()
 {
   If (Serial1.available() > 0)     
   {
      inputdata = Serial1.read();       
      if(inputdata == '1')
      {
         digitalWrite(pinout, HIGH);
         Serial1.print("LED ON\n");
      }
        
      else if(inputdata == '0') 
      {     
         digitalWrite(pinout, LOW); 
         Serial1.print("LED OFF\n");
      }
   }
}        

با استفاده از کد بالا ما تنظیم میکنیم هر بار که در تلفن عدد 1 وارد شود، ال ای دی متصل به پین PA0 روشن شود و با دریافت 0 خاموش شود. شما میتوانید به دلخواه بی نهایت حروف و اعداد و کلمات تعریف کنید و در صورت دریافت هر کدام از آن ها عملکرد های خاصی اجرا شود.

فیلم عملکرد و مراحل اتصال ماژول بلوتوث به تلفن اندروید

پس اتصال مدار و بارگذاری کد پروژه ، نوبت به آزمایش مدار میرسد. ما باز هم از برنامه ترمینال بلوتوث استفاده میکنیم. برای دانلود نرم افزار اندروید کلیک کنید !

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

برنامه Bluetooth Terminal را باز کرده و اتصال دستگاه را انتخاب کرده و مطابق شکل زیر HC-05 را انتخاب کنید.

مراحل اتصال ماژول بلوتوث به تلفن اندروید

پس از اتصال اعداد 0 یا 1 را ارسال کنید تا تغییر را مشاهده کنید.

موارد موجود در فایل : شماتیک کامل مدار ، سورس کامل

4.6 (7 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

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

6 نظر

  1. با سلام. من هر کاری کردم متصل نشد…
    این برنامه اندروید که معرفی کردید روی گوشی های جدید نصب نمیشه… برنامه جدیدتری هست که این کار رو انجام بده؟ البته من یکی دوتا برنامه دیگه رو هم تست کردم ولی جواب نگرفتم…

    1. سلام عزیز
      در پلی استور، Bluetooth terminal را سرچ کنید موارد مختلف وجود هست.

  2. سلام خسته نباشید من میخام با برنامه اندروید به چندتاماژول همزمان و یا جدا از هم وصل شم و ارسال و دریافت دیتا داشته باشم چطوری میتونم این کارو بکنم ؟ برای اتصال به یکی و ارسال و دریافت دیتا مشکلی ندارم

    1. سلام عزیز
      این محدودیت رو تلقن همراه شما داره که همزمان فقط به یک بلوتوث متصل میشه. میتونید هربار قطع کنید و به یک ماژول دیگه متصل بشید یا اینکه یک ماژول بلوتوث رو به عنوان مادر در نظر بگیرید و با دستوری که به اون میدید تعیین کنید به کدام ماژول متصل بشه

  3. سلام ما مبخایم از این طریق بلوتوث استپ موتور رو. روز گوشی حرکت بدهیم اون پست حرکت استپ موتورم با stm۳۲ دیدم یه راهنمایی کلی کنید ممنون میشم

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *