در این مطلب از بلاگ بهنام رباتیک، میخواهیم نحوه راه اندازی ماژول بلوتوث HC-05 با آردوینو را بیاموزیم؛ پس با ما همراه باشید.
لوازم مورد نیاز برای پروژه راه اندازی ماژول بلوتوث HC-05 با آردوینو
آشنایی با ماژول بلوتوث HC-05
روشهای زیادی برای برقراری ارتباط به صورت بیسیم وجود دارد که از آن جمله میتوانیم به NRF، زیگبی، وایفای و بلوتوث اشاره کنیم. در این میان، بلوتوث یکی از روشهای ارزان قیمت در میان شبکههای PAN است که حداکثر سرعت انتقال دادهها در آن میتواند به 1 مگابیت بر ثانیه برساند و قادرست در فاصله 100 متری فعالیت نماید و فرکانس معمول آن نیز 2.4 گیگاهرتز است.
حالا از میان همه قطعاتی که اتصال بلوتوث را در اختیار ما قرار میدهند، ماژول HC-05 از محبوبیت زیادی برخوردارست که از اتصال سریالی بهره میبرد که میتوان آن را در بسیاری از پروژههای الکترونیکی پیدا کرد.
آشنایی با پینهای ماژول بلوتوث HC-05
این ماژول شش پین دارد که عبارتند از:
- VIN: پین تأمین ولتاژ (3.6 تا 6 ولت)
- GND: پین اتصال به زمین
- STATE: پین وضعیت اتصال
- EN: پین فعالساز تنظیمات دستور AT
- RX: پین دریافت داده سریال
- TX: پین ارسال داده سریال
شما میتوانید پینهای این ماژول را در ادامه ببینید.
ارسال داده از بلوتوث به آردوینو در پروژه راه اندازی ماژول بلوتوث HC-05 با آردوینو
ماژول بلوتوث مورد بحث ما، یک رگولاتور داخلی 3.3 ولت دارد به همین خاطر میتوان ولتاژ 5 ولت را به آن تزریق کرد.
سیمکشی مدار راه اندازی ماژول بلوتوث HC-05 با آردوینو
شما میبایست طبق تصویر زیر، برد آردوینو Uno را به ماژول بلوتوث HC-05 متصل کنید. توجه داشته باشید که سیمها حتماً به پینهای درست وصل شده باشند.
نصب کتابخانه پروژه راه اندازی ماژول بلوتوث HC-05 با آردوینو
برای اینکه بتوانید این پروژه را بدرستی عملی کنید، باید کتابخانه زیر را دانلود نمایید و در نرمافزار Arduino IDE بگذارید.
کدنویسی پروژه راه اندازی ماژول بلوتوث HC-05 با آردوینو
کدهای زیر را در نرمافزار Arduino IDE آپلود کنید.
/*
Modified on March 09, 2021
Modified by MohammedDamirchi from https://github.com/PaulStoffregen/SoftwareSerial
Home
*/
#include
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
// set the data rate for the SoftwareSerial port
mySerial.begin(9600);
}
void loop() { // run over and over
if (mySerial.available()) {
Serial.write(mySerial.read());
}
if (Serial.available()) {
mySerial.write(Serial.read());
}
}
این چند خط کد برای آزمایش اتصال میان سریال مانیتور آردوینو و دستگاه متصل به ماژول HC-05 میباشد.
کنترل کردن LED با گوشی در پروژه راه اندازی ماژول بلوتوث HC-05 با آردوینو
سیمکشی مدار
سیمکشی این بخش از پروژهای که در حال آموزش دادن آن هستیم را مطابق تصویر زیر انجام دهید.
کدنویسی پروژه
برای اینکه اتصال ماژول HC-05 برقرار شود، شما به یک اپلیکیشن ترمینال بلوتوث نیاز دارید.
حالا برای انتقال دادهها، کدهای زیر را در آردوینو آپلود و ماژول HC-05 را با استفاده از نرمافزار دانلود شده، متصل کنید. نام اتصال HC05 و کلمه عبور 1234 یا 0000 خواهد بود و نرخ پیشفرض بادریت 9600 میباشد.
#include
SoftwareSerial MyBlue(10, 11); // RX | TX
String flag;
int LED = 8;
void setup()
{
Serial.begin(9600);
MyBlue.begin(9600);
pinMode(LED, OUTPUT);
Serial.println("Ready to connect\nDefualt password is 1234 or 000");
}
void loop()
{
if (MyBlue.available())
flag = MyBlue.read();
flag.trim();
if (flag == '1')
{
digitalWrite(LED, HIGH);
Serial.println("LED On");
}
else if (flag == '0')
{
digitalWrite(LED, HIGH);
Serial.println("LED Off");
}
}
توضیحات کد پروژه اتصال گوشی و راه اندازی ماژول بلوتوث HC-05 با آردوینو
نشاندهنده کتابخانه مورد نیاز برای اتصال سریال نرمافزار است.
#include
برای تعیین پینهای سریال نرمافزار به کار میرود.
SoftwareSerial MyBlue(10, 11);
به منظور تعیین بادریت سریال نرمافزار استفاده میشود.
MyBlue.begin(9600);
برای خواندن دادههای سریال و روشن و خاموش شدن چراغهای LED به کار میرود.
void loop()
{
if (MyBlue.available())
flag = MyBlue.read();
flag.trim();
if (flag == '1')
{
digitalWrite(LED, HIGH);
Serial.println("LED On");
}
else if (flag == '0')
{
digitalWrite(LED, HIGH);
Serial.println("LED Off");
}
}
ارسال دستورات AT به ماژول بلوتوث HC-05 و تغییر تنظیمات آن
با فشردن و نگه داشتن دکمه، ماژول وارد حالت دستور AT میشود در غیر این صورت در حالت اتصال فعالیت خواهد کرد. برخی از ماژولها پوش باتن یا دکمه فشاری دارند بنابراین نیازی نیست که چیزی به آنها اضافه شود.
به هر ترتیب، بادریت پیشفرض برای ورودی به حالت دستور AT روی 38400 تنظیم شده است. اینک شما میتوانید کدهای زیر را در برد آردوینو خود آپلود و با سریال مانیتور، دستورات را تنظیم کنید.
#include "SoftwareSerial.h"
SoftwareSerial MyBlue(10, 11); // RX | TX
void setup()
{
Serial.begin(9600);
MyBlue.begin(38400); //Baud Rate for AT-command Mode.
Serial.println("***AT commands mode***");
}
void loop()
{
//from bluetooth to Terminal.
if (MyBlue.available())
Serial.write(MyBlue.read());
//from termial to bluetooth
if (Serial.available())
MyBlue.write(Serial.read());
}
دستور |
پاسخ |
توضیح |
AT |
OK |
آزمایش کردن ماژول |
AT+RESET |
OK |
ریست کردن ماژول |
AT+VERSION? |
+VERSION: OK |
نسخه Firmware ماژول |
AT+ORGL |
OK |
بازگرداندن به تنظیمات پیشفرض |
AT+ADDR? |
+ADDR: OK |
آدرس ماژول |
AT+NAME? |
+NAME: OK |
نام ماژول |
AT+NAME=your name\r\n |
OK |
تغییر نام ماژول |
AT+RNAME?param1\r\n |
+NAME: OK |
نام بلوتوث دستگاه |
AT+ROLE? |
+ROLE: |
نقش ماژول (0 = slave و 1 = master) |
AT+ROLE=(0 as slave,1 as master)\n\r |
OK |
تغییر نقش ماژول |
AT+PSWD? |
PSWD: OK |
پسورد ماژول |
AT+PSWD=your pass\r\n |
OK |
تغییر پسورد ماژول |
AT+UART? |
P3: Parity +UART= OK |
P1: بادریت P2: توقف بیت P3: برابری |
شما میتوانید برای مشاهده دستورات بیشتر، به دیتاشیت ماژول بلوتوث HC-05 مراجعه کنید.