در این پست از سایت اِمیک, ماژول بلوتوث HC05 را با استفاده از برد اردوینو UNO راه اندازی خواهیم کرد. با استفاده از ماژول بلوتوث HC05 می توانید اطلاعات را در فاصله ی معینی ارسال و دریافت کنید, این ماژول بسیار کاربردی می باشد و در اینده پروژه های زیادی با ان انجام خواهیم داد. از این ماژول می توانید در طراحی خانه های هوشمند، موس و کی برد بی سیم, هدست های بی سیم, رباتیک و … استفاده کنید. قبلا در پست “راه اندازی ماژول بلوتوث HC05 با میکروکنترلر AVR” این ماژول را با میکروکنترلر AVR راه اندازی کرده بودیم که در اون پست در مورد این ماژول به طور کامل توضیح داده شده که توصیه می کنم مطالعه کنید.
توجه : این ماژول را به همراه برد کمکی ان تهیه کنید تا بتوانید به راحتی و با ولتاژ 5 ولت راه اندازی کنید. در تصویر بالا این ماژول را مشاهده می کنید که پایه های ان نیز مشخص شده است.
پروژه آردوینو راه اندازی ماژول بلوتوث HC05 :
عملکرد پروژه به این صورت است که ما توسط تلفن همراه یک متن را که می تواند شامل یک یا چند کاراکتر(رشته) باشد, را به ماژول HC05 ارسال کرده و برد اردوینو اطلاعات را از ماژول دریافت کرده و روی یک LCD کاراکتری نمایش می دهد. در انتهای مطلب کلیپ عملکرد پروژه را می توانید مشاهده کنید.
برای این کار ابتدا لازم است که یک برنامه اندروید به نام Bluetooth Terminal را روی تلفن همراه خود نصب کنیم, این برنامه اندروید را می توانید از طریق لینک زیر دریافت کنید. همچنین در فایل های انتهای مطلب هم این برنامه موجود است
بعد از اینکه پروژه را بستید و روشن کردید باید وارد برنامه بالا بشید و طبق کلیپ انتهای مطلب از طریق بلوتوث با استفاده از گزینه سرچ برنامه, دنبال ماژول می گردید که برای اولین بار که می خواهید متصل بشید اسم ماژول به صورت NULL پیدا میشه و برای اتصال پسوردش ۱۲۳۴ هست که متصل می شید. برای سری های بعدی اسم بلوتوث به HC05 تغییر می کند و نیازی به پسورد هم نیست. بعد از اتصال, متن مورد نظر خودتون را می نویسید و روی SEND کلیک می کنید تا روی LCD نمایش داده بشود.
در ادامه شماتیک این پروژه را مشاهده می کنید, ما در این پروژه از برد اردوینو UNO و همچنین یک ال سی دی کاراکتری 2*16 و ماژول بلوتوث HC-05 استفاده کرده ایم
پایه های ارتباط سریال ماژول شامل TXD و RXD را به صورت بالا به برد اردوینو متصل کنید و همچنین پایه های تغذیه ماژول (VCC و GND) را هم به 5 ولت متصل کنید. بقیه پایه ها لازم نیست به جایی متصل شوند.
پتانسیومتر RV1 برای تنظیم کنتراست (درخشندگی) ال سی دی کاراکتری می باشد, در صورتی که پتانسیومتر نداشتید می تونید پین 3 ال سی دی کاراکتری را به زمین (منفی تغذیه) متصل کنید.
برای تست این پروژه در صورتی که از برد اردوینو به عنوان منبع تغذیه استفاده می کنید, حتما برد اردوینو را با استفاده از اداپتور راه اندازی کنید. برد اردوینو در حالتی که از طریق کابل USB متصل به کامپیوتر راه اندازی می شود قابلیت جریان دهی کمی دارد.
برنامه:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
//////// WWW.EMIC.IR //////// #include <LiquidCrystal.h> /* lcd معرفي کتابخانه */ /*متصل شود LCD تابع زیر مشخص می کند که کدام پین های اردوینو به */ LiquidCrystal lcd(13, 12, 11, 10, 9, 8, 7); char str; //براي ذخيره کاراکترهاي دريافتي در ان str تعريف متغير// void setup() { lcd.begin(16, 2); //(LCD بررسي اتصال) LCD پيکره بندي // Serial.begin(9600); //تعیین سرعت ارتباط سریال// lcd.clear(); //پاک کردن ال سی دی کاراکتری// lcd.setCursor(0, 0); //رفتن به سطر 0 و ستون 0 از ال سی دی کاراکتری// } void loop() { if (Serial.available()) { //بررسی برقرار بودن ارتباط سریال// str = Serial.read(); //str دريافت کاراکتر ارسالي و ذخيره ان در متغير// lcd.print(str); //نمايش کاراکتر روي ال سي دي کاراکتري// } } |
توضیحات قسمت های مهم برنامه نوشته شده, اگر سوالی داشتید می تونید در قسمت نظرات مطرح کنید.
کلیپ تست عملی پروژه :
پسورد فایل زیپ : www.emic.ir
نظر یادتون نره…
سلام
با avr انجام دادم
متن روی lcd بصورت نادرست نمایش داده می شود
سلام
اونجا ک زدیم بلوتوثو بخونه
اگر بخواهیم برنامه ای اضاف کنیم که ۱ اومد یکی از پین ها ۱ بشه
اگر ۰ اومد یک پین دیگه ۰ بشه برنامش به چه صورت میشه؟
سلام وقت بخیر من esp32 cam را خریداری کرده ام و به مبدل ft232وصل کرده ام و مبدل را هم به کامپیوتر وصل کرده ام و موقعی که میخواهم کد را روی ماژول esp32 cam آپلود کنم error های مختلفی میدهد اما بعد از اینکه error میدهد من سریال مانیتور را باز میکنم و دکمه ریست esp32 cam را فشار میدهم متن زیر را داخل سریال مانیتور میبینم rst:0x1 (POWERON_RESET),boot:0x3 (DOWNLOAD_BOOT(UARTO/UART1/SDIO_REI_REO_V2))
waiting ror downlod
ets Jun 8 2016 00:22:57 میشه راهنمایی کنید و بگید مشکل از کجاست ممنون
سلام مهندس آیا ماژول بلوتوثی ساده ای هست که فقط به منبع تغذیه وصل بشه و بتونه صوت رو انتقال بده ؟ راستش یه اسپیکر دارم که میخوام پرتابلش کنم. یجوری باشه که مثلا ورودی صوتی رو به ماژول متصل کنم و با گوشیم از طریق بلوتوث آهنگ پخش بشه آیا ماژولی هس که بدون لنگ و فنگ صدا رو انتقال بده فقط صدا . اگر بدون برنامه نویسی نبود یدونه ماژول سادشو بگین اگر حضور ذهن دارین😊
سلام, اطلاع زیادی در این زمینه ندارم, در گوگل سرچ کنید “ماژول بلوتوث صوتی” و خودتون بررسی کنید که ماژول ها به کارتون میان یا نه
سلام ببخشید من ماژول بلوتوث hc05را به کامپیوتر وصل کردم و با دستورات atکامند اسم ماژول بلوتوث را عوض کردم ولی میخواستم رمز ماژول بلوتوث را عوض کنم نمیشد و ارور میداد میشه راهنمایی کنید ممنون
سلام ببخشید پروژه کنترل 4عدد رله با پیامک و اردینو را میتوانید بگذارید
سلام, در اینده حتما
سلام ببخشید که خیلی سوال میپرسم و مزاحم اوقات شما میشوم میخواستم ببینم که آیا میشه با ماژول NRFارتباط صوتی و تصویری برقرار کرد چگونه
سلام, بله میشه ولی من تا حالا کار نکردم
و میخواستم ببینم چگونه میتوان بجای متن انگلیسی متن فارسی نوشت آیا باید کتابخانه دانلود کنم
تا حالا این کار را نکردم و اطلاعی ندارم. در اینده اگر فرصت شد حتما انجام میدم
خیلی ممنون از پاسختون
ببخشید میخواستم ببینم میشود بجای ال سی دی کارکتری از ماژول max7219استفاده کرد و متن مورد نیاز را روی ماژول نمایش داد
تا حالا با ماژول مورد شما کار نکردم و متاسفانه اطلاعی در موردش ندارم
سلام ببخشید میخواستم بدونم که آیا میشه با ماژول sim800L یک مودم همراه جیبی ساخت یا که بتوان با وصل کردن این ماژول به کامپیوتر اینترنت کامپیوتر را وصل کرد
سلام, متاسفانه تا حالا با این ماژول کار نکردم و اطلاع زیادی در موردش ندارم
سلام من برای پاک کردمکردن lcd نوشتم
If str=0
lcd.clear
بارعایت علائم و….
ولی جواب نداد باید چجور بنویسم؟؟
ممنون بابت جواب
سلام, برنامه باید به صورت زیر نوشته شود
void loop() {
if (Serial.available()) {
str = Serial.read();
if (str=='0') {
lcd.clear();
} else lcd.print(str);
}
}
اگه بخوایم بعد هر نوشته،lcd رو پاک کنیم باید چه دستوری بنویسیم
ممنون از شما هم بابت پروژه هم بابت اینکه جواب میدید
از اونجایی که کاراکترها یکی یکی ارسال میشن مثلا وقتی میفرستیم emic هر کدوم از حرف هاش را جدا میفرسته یعنی e بعد m و… این باعث میشه برای پاک کردن lcd یکم کار سخت بشه, البته راه های مختلفی هم هست مثلا تمام حروف را اول دریافت کنی بریزی داخل یه ارایه بعد نمایش بدی یا مثلا بعد هر با ارسال یه متن بعدش یه دونه کاراکتر مشخص ارسال کنی برای پاک کردن lcd و…
خیلی ممنون بابت راهنمایی تون و پاسخ تون خیلی مفید بود
به نظر من راه دوم ساده تر هست
سلام ببخشید من این مدار را درست کردم و خیلی جالب بود اما میخواستم ببینم میشه بصورت جداگانه ال ای دی یا رله را با پایه های ماژول بلوتوث بدون نیاز به اردینو روشن و خاموش کرد
سلام, خیر نمی شود