آموزش کامل ارتباط اندروید و STM32 با بلوتوث
![](/wp-content/uploads/2020/07/آموزش-کامل-ارتباط-اندروید-و-STM32-با-بلوتوث.jpg)
محتویات
- ارسال اطلاعات از اندروید به STM32 از طریق بلوتوث
- توضیحات ماژول بلوتوث HC-05
- حالت های عملکرد ماژول HC05
- پین های ماژول بلوتوث
- نشانگر LED
- پورت های STM32 USART
- توضیحات مدار پروژه ارتباط اندروید و STM32
- اتصال بین STM32F103C8 و ماژول بلوتوث (HC-05)
- قطعات مورد نیاز
- برنامه نویسی STM32 برای ارتباط بلوتوث
- فیلم عملکرد و مراحل اتصال ماژول بلوتوث به تلفن اندروید
سلام. آموزش کامل ارتباط اندروید و STM32 با بلوتوث را آماده کردیم.
ارسال اطلاعات از اندروید به STM32 از طریق بلوتوث
در دنیای امروز بلوتوث بسیار پرطرفدار شده است و تقریباً در هر دستگاه مانند سیستم تلفن همراه ، لپ تاپ و … از Bluetooth برای ارتباط بی سیم استفاده می شود. بلوتوث نه تنها برای انتقال داده بلکه برای کنترل سایر دستگاههای بلوتوث دیگری نیز استفاده می شود ، مانند استفاده از هدست بلوتوث می توانید آهنگ را به صورت بی سیم از تلفن همراه خود بشنوید یا می توانید از سیستم صوتی اتومبیل برای پخش آهنگ ها از تلفن همراه خود استفاده کنید. بلوتوث یک فناوری بی سیم است که با فرکانس 2.4 گیگاهرتز کار می کند. سیگنال بلوتوث معمولی در شعاع 10 متر است. بلوتوث رایج ترین فناوری بی سیم در پروژه های تعبیه شده با شرط کوچک بودن محدوده است.
فیلم زیر به شما در درک نحوه کار پروژه کمک میکند.
توضیحات ماژول بلوتوث HC-05
![ماژول بلوتوث HC-05](/wp-content/uploads/2020/04/Bluetooth-Module-HC-05.jpg)
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
درگاه های ارتباط سریال STM32F103C8 BLUE PILL در تصویر بالا نشان داده شده است. این پین ها دارای رنگ آبی (PA9–TX1 ، PA10– RX1 ، PA2–TX2 ، PA3– RX2 ، PB10–TX3 ، PB11– RX3) هستند.
توضیحات مدار پروژه ارتباط اندروید و 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 متصل است.
قطعات مورد نیاز
- STM32 – برد توسعه (BluePill) (STM32F103C8T6)
- ماژول بلوتوث HC-05
- ال ای دی
برنامه نویسی 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 را ارسال کنید تا تغییر را مشاهده کنید.
موارد موجود در فایل : شماتیک کامل مدار ، سورس کامل
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود
با سلام. من هر کاری کردم متصل نشد…
این برنامه اندروید که معرفی کردید روی گوشی های جدید نصب نمیشه… برنامه جدیدتری هست که این کار رو انجام بده؟ البته من یکی دوتا برنامه دیگه رو هم تست کردم ولی جواب نگرفتم…
سلام عزیز
در پلی استور، Bluetooth terminal را سرچ کنید موارد مختلف وجود هست.
سلام خسته نباشید من میخام با برنامه اندروید به چندتاماژول همزمان و یا جدا از هم وصل شم و ارسال و دریافت دیتا داشته باشم چطوری میتونم این کارو بکنم ؟ برای اتصال به یکی و ارسال و دریافت دیتا مشکلی ندارم
سلام عزیز
این محدودیت رو تلقن همراه شما داره که همزمان فقط به یک بلوتوث متصل میشه. میتونید هربار قطع کنید و به یک ماژول دیگه متصل بشید یا اینکه یک ماژول بلوتوث رو به عنوان مادر در نظر بگیرید و با دستوری که به اون میدید تعیین کنید به کدام ماژول متصل بشه
سلام ما مبخایم از این طریق بلوتوث استپ موتور رو. روز گوشی حرکت بدهیم اون پست حرکت استپ موتورم با stm۳۲ دیدم یه راهنمایی کلی کنید ممنون میشم
سلام عزیز اگر با آردوینو برنامه نویسیش رو انجام میدید دوره آموزش STM32 با آردوینو رو مشاهده کنید.