ব্লুটুথের মাধ্যমে একটি অ্যান্ড্রয়েড স্মার্টফোনের সাথে যোগাযোগ করতে ESP32 কীভাবে সেট আপ এবং প্রোগ্রাম করবেন

Blututhera Madhyame Ekati A Yandrayeda Smartaphonera Sathe Yogayoga Karate Esp32 Kibhabe Seta Apa Ebam Programa Karabena



ESP32 হল একটি মাইক্রোকন্ট্রোলার বোর্ড যার ক্ষমতার বিশাল পরিসর রয়েছে। এতে বিল্ট-ইন ওয়াই-ফাই এবং ব্লুটুথ মডিউল রয়েছে। এই উভয় মডিউল ব্যবহার করে, আপনি ওয়্যারলেসভাবে ESP32 প্রোগ্রাম করতে পারেন। এটির সাথে, আপনাকে ESP32 পেরিফেরালগুলি নিয়ন্ত্রণ করার জন্য দীর্ঘ-তারের সংযোগ সম্পর্কে চিন্তা করতে হবে না।

এই নিবন্ধে, আমরা একটি Android ফোনের সাথে একটি ESP32 বোর্ড সংযুক্ত করব এবং ব্লুটুথের মাধ্যমে ডেটা যোগাযোগ করব। আরও, আমরা সরাসরি Android স্মার্টফোনের মাধ্যমে ESP32 এর GPIO পিনের সাথে সংযুক্ত একটি LED নিয়ন্ত্রণ করব।

বিষয়বস্তু:







ESP32 ব্লুটুথ LE কি

ESP32 হল একটি মাইক্রোকন্ট্রোলার বোর্ড যা ব্লুটুথ ক্লাসিক এবং ব্লুটুথ লো এনার্জি উভয়কেই সমর্থন করে যা স্মার্ট ব্লুটুথ নামেও পরিচিত। BLE বা স্মার্ট ব্লুটুথ শক্তি-দক্ষ যোগাযোগের জন্য নির্দিষ্ট বা স্বল্প-পরিসরের যোগাযোগ বা ছোট ডেটা স্থানান্তরের জন্য ডিজাইন করা হয়েছে।



ESP32 এর BLE কার্যকারিতা এটিকে ব্লুটুথ যোগাযোগে সার্ভার বা ক্লায়েন্ট হিসাবে কাজ করতে সক্ষম করে। এটি পড়া এবং লেখার পরিষেবাগুলির মতো কাজগুলি পরিচালনা করতে পারে। এটি সংযোগগুলিকে এনক্রিপ্ট করতে পারে এবং UART-BLE পাস-থ্রু মোডে ডেটা ট্রান্সমিশনের জন্য সিরিয়াল পোর্ট প্রোফাইল (SPP) সংযোগ স্থাপন করতে পারে। ESP32 ব্লুটুথ 4.2 প্রোটোকল সমর্থন করে, যার মানে এটি শারীরিক স্তর (PHY) এবং লিঙ্ক লেয়ার (LL) এর মতো বিভিন্ন স্তরের সাথে সামঞ্জস্যপূর্ণ। এটি অন্যান্যদের মধ্যে হোস্ট কন্ট্রোলার ইন্টারফেস (HCI) এর জন্য সমর্থনও রয়েছে।



ESP32 ক্লাসিক এবং BLE ব্লুটুথের জন্য পার্থক্য টেবিল পরীক্ষা করুন।





বৈশিষ্ট্য ক্লাসিক ব্লুটুথ নিম্ন শক্তি ব্লুটুথ (BLE)
যোগাযোগের ধরন টেকসই, দ্বিমুখী যোগাযোগ বিরতিহীন, প্রাথমিকভাবে একমুখী ডেটা বিস্ফোরিত হয়
অপারেশনাল রেঞ্জ 100 মিটার পর্যন্ত পৌঁছাতে পারে সাধারণত 100 মিটারের নিচে কাজ করে
ক্ষমতা ব্যবহার 1 ওয়াট পর্যন্ত খরচ করে 10 মিলিওয়াট থেকে 500 মিলিওয়াট পর্যন্ত
স্থানান্তর গতি ডেটা স্থানান্তরের হার প্রতি সেকেন্ডে 1 থেকে 3 মেগাবিট পর্যন্ত পরিবর্তিত হয় প্রতি সেকেন্ডে 125 কিলোবিট থেকে 2 মেগাবিট প্রতি সেকেন্ডে সমর্থন করে
প্রতিক্রিয়া সময় লেটেন্সি প্রায় 100 মিলিসেকেন্ড 6 মিলিসেকেন্ড লেটেন্সি সহ দ্রুত প্রতিক্রিয়া
ভয়েস সাপোর্ট ভয়েস ট্রান্সমিশন দিয়ে সজ্জিত ভয়েস ট্রান্সমিশন কার্যকারিতার অভাব

এটির আরও ভিতরে পেতে এই ESP32 ব্লুটুথ নিবন্ধগুলি দেখুন।

অ্যান্ড্রয়েড স্মার্টফোনের সাথে ব্লুটুথের মাধ্যমে যোগাযোগ করতে ESP32 কীভাবে প্রোগ্রাম করবেন

ESP32 প্রোগ্রাম করতে যাতে এটি ব্লুটুথ প্রোটোকল ব্যবহার করে একটি অ্যান্ড্রয়েড ফোনের সাথে যোগাযোগ করতে পারে, আপনাকে ESP32 ব্লুটুথ সিরিয়াল লাইব্রেরি সেট আপ করতে হবে। এর জন্য, আপনার একটি ESP32 বোর্ড ইনস্টল সহ একটি Arduino IDE সেটআপ থাকতে হবে।



ESP32 ব্লুটুথ সেট করার পরে, আপনাকে ব্লুটুথ সিরিয়াল অ্যান্ড্রয়েড অ্যাপ্লিকেশন ইনস্টল করতে হবে। এটি আপনাকে ব্লুটুথ সিরিয়াল যোগাযোগ ব্যবহার করে একটি Android ফোন থেকে ESP32-এ নির্দেশাবলী পাঠাতে দেবে।

আসুন এই পদক্ষেপগুলির প্রতিটিটি ঘনিষ্ঠভাবে দেখে নেওয়া যাক:

অ্যান্ড্রয়েড ফোনের সাথে ESP32 ব্লুটুথ কানেক্ট করার ধাপ

ব্লুটুথ যোগাযোগের জন্য ESP32 বোর্ড প্রোগ্রাম করতে, এই প্রদত্ত পদক্ষেপগুলি অনুসরণ করুন:

ধাপ 1: Arduino IDE-তে ESP32 বোর্ড ইনস্টল করা

Arduino IDE-তে ESP32 ইনস্টল করতে, এই নিবন্ধে দেওয়া নির্দেশিকা অনুসরণ করুন।

Arduino IDE-তে ESP32 বোর্ড ইনস্টল করা

ইনস্টলেশনের পরে, ESP32 বোর্ড Arduino IDE ব্যবহার করে সংযুক্ত এবং প্রোগ্রাম করা যেতে পারে।

ধাপ 2: ESP32 ব্লুটুথ কোড আপলোড করুন

ESP32 বোর্ড ইন্সটল হয়ে গেলে, আপনি Arduino IDE-তে বিভিন্ন প্রি-ইনস্টল করা লাইব্রেরি এবং তাদের উদাহরণ দেখতে পাবেন। এই সমস্ত লাইব্রেরি ESP32 বোর্ডের সাথে সম্পর্কিত। ব্লুটুথ সিরিয়াল যোগাযোগের জন্য, আমরা ESP32 ব্যবহার করতে যাচ্ছি BluetoothSerial.h লাইব্রেরি উদাহরণ কোড।

উদাহরণ কোড খুলতে, Arduino IDE খুলুন এবং এখানে যান: ফাইল > উদাহরণ > BluetoothSerial > SerialtoSerialBT

এই উদাহরণ কোড খুলতে, ESP32 বোর্ড নির্বাচন করা হয়েছে তা নিশ্চিত করুন।

উদাহরণ কোড খোলার পরে, আপনি আপনার Arduino IDE উইন্ডোতে নিম্নলিখিত কোড দেখতে পাবেন:

//লিনাক্সহিন্টে স্বাগতম

# 'BluetoothSerial.h' অন্তর্ভুক্ত করুন

//#সংজ্ঞায়িত করুন USE_PIN // পেয়ার করার সময় আপনি যদি PIN চান তবে এটিকে মুক্ত করুন
const চর * পিন = '1234' ; // একটি কাস্টম পেয়ারিং পিন সংজ্ঞায়িত করুন

স্ট্রিং ডিভাইস_নাম = 'ESP32' ;

#if !সংজ্ঞায়িত (CONFIG_BT_ENABLED) || !সংজ্ঞায়িত(CONFIG_BLUEDROID_ENABLED)
#ত্রুটি ব্লুটুথ সক্ষম নয়! এটি সক্ষম করতে 'মেন্যু কনফিগার করুন' চালান
#যদি শেষ

#যদি !সংজ্ঞায়িত (CONFIG_BT_SPP_ENABLED)
#ত্রুটি সিরিয়াল ব্লুটুথ অনুপস্থিত বা সক্ষম নয়৷ এটি শুধুমাত্র ESP32 চিপের জন্য উপলব্ধ।
#যদি শেষ

ব্লুটুথ সিরিয়াল সিরিয়ালবিটি ;

অকার্যকর সেটআপ ( ) {
সিরিয়াল। শুরু ( 115200 ) ;
সিরিয়ালবিটি। শুরু ( ডিভাইসের নাম ) ; //ব্লুটুথ ডিভাইসের নাম
সিরিয়াল। printf ( 'যন্ত্র ' % s 'শুরু হয়। \n আপনার ডিভাইস জোড়া শুরু করুন! \n ' , ডিভাইসের নাম. c_str ( ) ) ;
//Serial.printf('MAC ঠিকানা %s সহ ডিভাইস '%s' শুরু হয়েছে।\nব্লুটুথের সাথে পেয়ার করা শুরু করুন!\n', device_name.c_str(), SerialBT.getMacString());
#ifdef ব্যবহার করুন_পিন
সিরিয়ালবিটি। সেটপিন ( পিন ) ;
সিরিয়াল। println ( 'পিন ব্যবহার করে' ) ;
#যদি শেষ
}

অকার্যকর লুপ ( ) {
যদি ( সিরিয়াল। উপলব্ধ ( ) ) {
সিরিয়ালবিটি। লিখুন ( সিরিয়াল। পড়া ( ) ) ;
}
যদি ( সিরিয়ালবিটি। উপলব্ধ ( ) ) {
সিরিয়াল। লিখুন ( সিরিয়ালবিটি। পড়া ( ) ) ;
}
বিলম্ব ( বিশ ) ;
}

কোড আপলোড করার পরে, আপনি স্ক্রিনে নিম্নলিখিত বার্তাটি দেখতে পাবেন। এই বার্তাটি বর্ণনা করে যে আপনার ESP32 বোর্ড জোড়া লাগানোর জন্য প্রস্তুত।

ধাপ 3: কোড ব্যাখ্যা

কোডটি প্রয়োজনীয় লাইব্রেরিগুলি সহ এবং ব্লুটুথ উপলব্ধতা পরীক্ষা করে শুরু হয়েছিল। এটি ব্লুটুথ ডিভাইসের নাম এবং পিনের জন্য ভেরিয়েবল সেট আপ করে।

মধ্যে সেটআপ() ফাংশন, সিরিয়াল বড কমিউনিকেশন সংজ্ঞায়িত করা হয় এবং ব্লুটুথ ডিভাইসের নাম দিয়ে শুরু করা হয়। পেয়ার করার সময় প্রমাণীকরণের জন্য একটি কাস্টম পিন সেট করা যেতে পারে।

দ্য লুপ() ফাংশন ক্রমাগত সিরিয়াল এবং ব্লুটুথ সংযোগের ডেটা পরীক্ষা করে। এটি এটিকে ESP32 এবং একটি জোড়া ব্লুটুথ ডিভাইসের মধ্যে দ্বি-মুখী যোগাযোগ স্থাপন করতে দেয়।

ধাপ 4: অ্যান্ড্রয়েড অ্যাপ্লিকেশন ইনস্টল করুন

কোডটি আপলোড হয়ে গেলে, পরবর্তী ধাপ হল ব্লুটুথ সংযোগের জন্য অ্যান্ড্রয়েড অ্যাপ্লিকেশনটি ইনস্টল এবং কনফিগার করা৷

প্লে স্টোর খুলুন এবং ইনস্টল করুন সিরিয়াল ব্লুটুথ টার্মিনাল আবেদন

ইনস্টলেশনের পরে, স্মার্টফোনের ব্লুটুথ সেটিংস খুলুন এবং আপনার ফোনটি ESP32 ব্লুটুথের সাথে সংযুক্ত করুন। আপনি যদি Arduino IDE কোডে একটি PIN সংজ্ঞায়িত করে থাকেন তাহলে আপনাকে PIN লিখতে হবে অন্যথায় এটি সরাসরি সংযুক্ত হবে।

এখন সিরিয়াল ব্লুটুথ অ্যাপ্লিকেশনটি খুলুন এবং নির্বাচন করুন ডিভাইস বিকল্প

নতুন খোলা মেনু থেকে, ESP32 ডিভাইস নির্বাচন করুন। এই তালিকাটি বর্তমানে সক্রিয় সমস্ত ব্লুটুথ ডিভাইস দেখায়৷

আপনি দেখতে পাচ্ছেন, ESP32 ব্লুটুথ আপনার অ্যান্ড্রয়েড স্মার্টফোনের সাথে সংযুক্ত।

সংযোগ পরীক্ষা করতে, আমরা একটি স্ট্রিং পাঠাতে যাচ্ছি। এখানে আমি দুটি ভিন্ন স্ট্রিং পাঠিয়েছি।

আপনি লক্ষ্য করবেন একই দুটি স্ট্রিং Arduino IDE টার্মিনালে প্রদর্শিত হবে।

এখন আসুন আরও এক ধাপ এগিয়ে চলুন এবং অ্যান্ড্রয়েড স্মার্টফোনের মাধ্যমে ESP32 ব্লুটুথ ব্যবহার করে একটি LED-এর মতো একটি বাহ্যিক পেরিফেরাল নিয়ন্ত্রণ করি।

ধাপ 5: ব্লুটুথের মাধ্যমে একটি অ্যান্ড্রয়েড ফোন ব্যবহার করে একটি LED নিয়ন্ত্রণ করুন

ESP32 এবং Android Bluetooth ব্যবহার করে একটি LED নিয়ন্ত্রণ করতে, প্রথমে উপরের কোডটি পরিবর্তন করুন এবং LED-এর জন্য একটি GPIO পিন সংজ্ঞায়িত করুন। এর পরে, আপনাকে অবশ্যই LED চালু এবং বন্ধ করার জন্য মানগুলি সেট করতে হবে।

আরও এগিয়ে যেতে নীচের কোড আপলোড করুন.

#include // ব্লুটুথ সিরিয়াল যোগাযোগ লাইব্রেরি অন্তর্ভুক্ত করুন

#LED_PIN 15// LED পিন সংজ্ঞায়িত করুন

ব্লুটুথ সিরিয়াল সিরিয়ালবিটি ; // একটি ব্লুটুথ সিরিয়াল অবজেক্ট তৈরি করুন
বাইট BT_INP ; // ব্লুটুথ ইনপুট সংরক্ষণ করার জন্য পরিবর্তনশীল

// SDK কনফিগারেশনে ব্লুটুথ এবং ব্লুড্রয়েড সক্ষম কিনা তা পরীক্ষা করুন৷
#if !সংজ্ঞায়িত (CONFIG_BT_ENABLED) || !সংজ্ঞায়িত(CONFIG_BLUEDROID_ENABLED)
#ত্রুটি ব্লুটুথ সক্ষম নয়। এটি সক্ষম করতে 'মেন্যু কনফিগার করুন' চালান।
#যদি শেষ

অকার্যকর সেটআপ ( ) {
পিনমোড ( LED_PIN , আউটপুট ) ; // একটি আউটপুট হিসাবে LED পিন সেট করুন
সিরিয়াল। শুরু ( 115200 ) ;
সিরিয়ালবিটি। শুরু ( 'ESP32' ) ; // 'ESP32' নামের সাথে ব্লুটুথ শুরু করুন
সিরিয়াল। println ( 'ব্লুটুথ ডিভাইস পেয়ার করার জন্য প্রস্তুত।' ) ; // নির্দেশ করুন যে ব্লুটুথ প্রস্তুত
}

অকার্যকর লুপ ( ) {
// ব্লুটুথ থেকে পড়ার জন্য কোন ডেটা উপলব্ধ আছে কিনা তা পরীক্ষা করুন
যদি ( সিরিয়ালবিটি। উপলব্ধ ( ) ) {
BT_INP = সিরিয়ালবিটি। পড়া ( ) ; // ব্লুটুথ থেকে ইনকামিং বাইট পড়ুন
সিরিয়াল। লিখুন ( BT_INP ) ; // সিরিয়াল মনিটরে রিড বাইট ইকো করুন
}

// প্রাপ্ত ব্লুটুথ ডেটা পরীক্ষা করুন এবং LED অবস্থা সেট করুন
যদি ( BT_INP == '1' ) {
ডিজিটাল লিখুন ( LED_PIN , উচ্চ ) ; // '1' প্রাপ্ত হলে LED চালু করুন
} অন্য যদি ( BT_INP == '0' ) {
ডিজিটাল লিখুন ( LED_PIN , কম ) ; // '0' প্রাপ্ত হলে LED বন্ধ করুন
}
}

এই কোডটি ব্লুটুথ ব্যবহার করে একটি LED নিয়ন্ত্রণ করার জন্য একটি ESP32 মাইক্রোকন্ট্রোলারের জন্য। এটি ব্লুটুথ যোগাযোগের জন্য একটি লাইব্রেরি অন্তর্ভুক্ত করে। এর পরে, এটি LED পিন সংজ্ঞায়িত করে এবং ESP32 নামের একটি ডিভাইসের সাথে ব্লুটুথ সেট আপ করে। প্রধান লুপ ব্লুটুথ ডেটা পড়ে এবং প্রাপ্ত কমান্ডের উপর ভিত্তি করে LED চালু বা বন্ধ করে (চালুর জন্য 1, বন্ধের জন্য 0)।

বর্তনী চিত্র

সার্কিট ডায়াগ্রাম সহজ, পিনে সংযুক্ত একটি LED সহ D15 ESP32 এর। আপনি LED নিয়ন্ত্রণের জন্য অন্য কোনো GPIO সংজ্ঞায়িত করতে পারেন।

সম্পর্কিত: ESP32 পিনআউট রেফারেন্স - চূড়ান্ত গাইড

হার্ডওয়্যার

হার্ডওয়্যারে, আপনার একটি ব্রেডবোর্ড, একটি ESP32 বোর্ড এবং একটি LED প্রয়োজন হবে। সিস্টেমের সাথে ESP32 সংযোগ করুন এবং এতে প্রোগ্রামটি আপলোড করুন।

এখন অ্যান্ড্রয়েড ফোন ব্লুটুথ সিরিয়াল যোগাযোগ অ্যাপ্লিকেশন থেকে 1 এবং 0 পাঠান।

আপনি Android ফোন থেকে প্রাপ্ত Arduino IDE টার্মিনালে একই ইনপুট দেখতে পাবেন।

আউটপুট

একবার আপনি উচ্চ বা 1 মান পাঠালে LED চালু হবে, একইভাবে আপনি যখন নিম্ন মান পাঠাবেন LED বন্ধ হয়ে যাবে।

একটি কাস্টম বোতাম সেট করুন

আপনি সিরিয়াল ব্লুটুথ অ্যাপ্লিকেশনের ভিতরে একটি কাস্টম বোতামও সেট করতে পারেন। উদাহরণস্বরূপ, একটি উচ্চ এবং নিম্ন মান বোতাম তৈরি করা যেতে পারে। এইভাবে, আপনাকে ম্যানুয়ালি মান টাইপ করতে হবে না। পরিবর্তে, আপনাকে কেবল শর্টকাট বোতাম টিপতে হবে, এবং এটি আপনার সেট করা নির্দেশ কার্যকর করবে।

বিঃদ্রঃ: বোতাম সেটিংস খুলতে, বোতামের উপর দীর্ঘক্ষণ টিপুন।

উচ্চ বোতাম মান সেট করতে, নিম্নলিখিত সেটিংস সংজ্ঞায়িত করুন।

নিম্ন বোতাম মানের জন্য সাদৃশ্য, আপনাকে নীচের সেটিংস সংজ্ঞায়িত করতে হবে।

আমরা ব্লুটুথ ব্যবহার করে একটি অ্যান্ড্রয়েড ফোনের সাথে ESP32 বোর্ড সফলভাবে সংযুক্ত করেছি৷ এখন আপনি এটি ব্যবহার করে অনেক প্রকল্প তৈরি করতে পারেন। যেমন, আপনি একটি রিলে সার্কিটের মাধ্যমে ESP32 ব্লুটুথ ব্যবহার করে আপনার বাড়ির যন্ত্রপাতি নিয়ন্ত্রণ করতে পারেন।

সম্পর্কিত: Arduino IDE ব্যবহার করে ESP32 এর সাথে রিলে

উপসংহার

ESP32 হল Wi-Fi এবং ব্লুটুথ ক্ষমতা সহ একটি উন্নত মাইক্রোকন্ট্রোলার বোর্ড। এই উভয় অন্তর্নির্মিত মডিউল আপনাকে উন্নত প্রকল্পগুলি ডিজাইন করতে এবং পেরিফেরালগুলিকে বেতারভাবে নিয়ন্ত্রণ করতে সহায়তা করে। একইভাবে, আপনি একটি Android ফোনের সাথে ESP32 সংযোগ করতে পারেন এবং বিভিন্ন অপারেশন করতে পারেন। এর জন্য, আপনাকে ব্লুটুথ সিরিয়াল অ্যান্ড্রয়েড অ্যাপ্লিকেশনটি ইনস্টল করতে হবে। একবার ইনস্টল হয়ে গেলে, ESP32 ব্লুটুথের উদাহরণ কোডটি খুলুন এবং এটি আপনার বোর্ডে আপলোড করুন। কোডটি আপলোড হয়ে গেলে, আপনি এটিকে একটি অ্যান্ড্রয়েড ফোনের মাধ্যমে আপনার বোর্ডের সাথে যুক্ত করতে পারেন।