در این آموزش ابتدا به معرفی کامل تکنولوژی بلوتوث کلاسیک خواهیم پرداخت سپس نحوه راه اندازی بلوتوث کلاسیک در ماژول ESP32 بصورت مرحله به مرحله همراه با دستور های مورد نیاز را به شما آموزش خواهیم داد، همراه ما باشید و در پایان نظرات و دانش خود را با ما به اشتراک بگذارید.
معرفی تکنولوژی بلوتوث کلاسیک
بلوتوث یک تکنولوژی بی سیم استاندارد برای تبادل اطلاعات در فاصله ی کم است. امروزه ارتباط از طریق بلوتوث، یکی از متدوال ترین و پرکاربردترین روش های تبادل اطلاعات بین دستگاه ها می باشد. دستگاه های زیادی مانند گوشی های موبایل، ساعت ها و گجت های هوشمند، هدفون های بی سیم، ماوس، کیبوردهای بی سیم و … برای ارتباط با یکدیگر و تبادل اطلاعات از بلوتوث استفاده می کنند.
از مزایای بلوتوث مصرف توان و هزینه ی کم است. ارتباط بلوتوث را می توان به دو دسته ی کلاسیک (نوع متداول آن) و کم مصرف (BLE) تقسیم کرد.
راه اندازی بلوتوث کلاسیک در ESP32
تراشه های ESP32 علاوه بر وای فای، دارای ارتباط بلوتوث نیز هستند و امکان ارتباط با دستگاه های دیگر با این تکنولوژی را فراهم می کنند. ESP32، هردو نوع ارتباط بلوتوث کلاسیک و کم مصرف را پشتیبانی می کند.
راه اندازی بلوتوث کلاسیک ماژول ESP32 بسیار ساده تر از نوع کم مصرف آن است. در این مقاله راه اندازی بلوتوث کلاسیک در ماژول ESP32 را از دو طریق مورد بررسی و آزمایش قرار خواهیم داد.
- راه اندازی بلوتوث کلاسیک در نقش سرور و اتصال گوشی هوشمند به آن
- راه اندازی ارتباط بین دو ماژول ESP32 درنقش کلاینت و سرور توسط بلوتوث کلاسیک
1- راه اندازی بلوتوث کلاسیک ماژول ESP32 در نقش سرور و اتصال گوشی هوشمند به آن
جهت انجام این پروژه به یک ماژول ESP32، یک کابل USB سریال جهت آپلود کد بر روی ماژول، نرم افزار Arduino IDE و اپلیکیشن Serial Bluetooth Terminal نیاز داریم و همچنین کتابخانه مورد نیاز جهت اجرای این پروژه “BluetoothSerial.h” می باشد.
کد راه اندازی بلوتوث کلاسیک جهت اتصال گوشی هوشمند به آن به صورت زیر است:
#include "BluetoothSerial.h" #if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED) #error Bluetooth is not enabled! Please run `make menuconfig` to and enable it #endif BluetoothSerial SerialBT; void setup() { Serial.begin(115200); SerialBT.begin("ESP32test"); //Bluetooth device name Serial.println("The device started, now you can pair it with bluetooth!"); } void loop() { if (Serial.available()) { SerialBT.write(Serial.read()); } if (SerialBT.available()) { Serial.write(SerialBT.read()); } delay(20); }
پس از آپلود کد عبارت “!The device started, now you can pair it with bluetooth” را در سریال مانیتور مشاهده می کنید، به این معنی که می توان دستگاه ها را از طریق بلوتوث با ماژول جفت کرد.

بعد از این مرحله ابتدا بلوتوث گوشی هوشمند خود را فعال کنید. سپس به اپلیکیشن Serial Bluetooth Terminal مراجعه کنید. در قسمت دیوایس و بلوتوث کلاسیک باید نام دستگاه های بلوتوث فعال را مشاهده کنید. سپس، با ESP32test جفت شوید و به ترمینال بلوتوث سریال برگردید. شما باید یک پیام “connected” دریافت کنید.
بعد از این مرحله همانطور که در عکس ها مشاهده می کنید، می توان هر متنی را در قسمت تایپ اپلیکیشن نوشت و ارسال کرد و آن را در سریال مانیتور Arduino IDE مشاهده کرد و یا متنی را در قسمت تایپ Arduino IDE نوشت و آن را در ترمینال اپلیکیشن مشاهده کرد.

2-راه اندازی ارتباط بین دو ESP32 درنقش کلاینت و سرور توسط بلوتوث کلاسیک
در این حالت یک ماژول در نقش سرور ظاهر می شود و ماژول دیگر در نقش کلاینت و تبادل داده ها از این طریق صورت می گیرد. کد راه اندازی بلوتوث کلاسیک در نقش سرور به صورت زیر می باشد:
#include "BluetoothSerial.h" BluetoothSerial SerialBT; String name = "ESP32test";//device to connect with bool connected; void setup() { Serial.begin(115200); pinMode(16, OUTPUT); pinMode(17, OUTPUT); SerialBT.begin("ESP32test_Master", true); //true starts as master Serial.println("The device started in master mode, make sure remote BT device is on!"); connected = SerialBT.connect(name);//connect to "ESP32test" delay(5000);//time to connect if (connected) { Serial.println("Connected Succesfully!"); } } void loop() { if (SerialBT.connected()) { digitalWrite(17, LOW);//turn on digitalWrite(16, HIGH);//turn off } else { digitalWrite(17, HIGH);//turn off digitalWrite(16, LOW); //turn on } if (Serial.available()) { SerialBT.write(Serial.read()); } if (SerialBT.available()) { Serial.write(SerialBT.read()); } delay(20); }
کد راه اندازی بلوتوث کلاسیک در نقش کلاینت:
#include "BluetoothSerial.h" #if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED) #error Bluetooth is not enabled! Please run `make menuconfig` to and enable it #endif BluetoothSerial SerialBT; void setup() { Serial.begin(115200); pinMode(16, OUTPUT); pinMode(17, OUTPUT); SerialBT.begin("ESP32test"); //Bluetooth device name Serial.println("The device started, now you can pair/connect it with phone!"); } void loop() { if (Serial.available()) { SerialBT.write(Serial.read()); } if (SerialBT.available()) { Serial.write(SerialBT.read()); //SerialBT.write(SerialBT.read());//echo back } delay(20); if (SerialBT.connected()) { digitalWrite(17, LOW);//turn on digitalWrite(16, HIGH);//turn off } else { digitalWrite(17, HIGH);//turn off digitalWrite(16, LOW); //turn on } }
خروجی کد ها در مد سرور و کلاینت به صورت زیر است که پس از اتصال موفق می توان در قسمت تایپ سریال مانیتور هر متنی را تایپ کرد و برای ماژول دیگر فرستاد.
3 دیدگاه