Bluetooth এবং Bluetooth Low Energy হল স্বল্প দূরত্বে ডেটা ট্রান্সমিশনের জন্য ওয়্যারলেস কমিউনিকেশন স্ট্যান্ডার্ড। Bluetooth Classic (BR/EDR) অডিও এবং ফাইলের জন্য একটি স্থিতিশীল স্ট্রিমিং চ্যানেল সরবরাহ করে, যখন BLE সেন্সর এবং পেরিফেরালের সাথে শক্তি-সাশ্রয়ী অপারেশনের জন্য অপ্টিমাইজ করা হয়েছে। Bluetooth SIG, 2025 অনুসারে, বার্ষিক 5 বিলিয়নের বেশি BLE-সমর্থিত ডিভাইস শিপ করা হয় — স্ট্যান্ডার্ডটি IoT, পরিধানযোগ্য ইলেকট্রনিক্স এবং মোবাইল আনুষাঙ্গিকগুলির ভিত্তি হয়ে উঠেছে।
মূল বিষয়
Bluetooth হল একটি ওয়্যারলেস পার্সোনাল এরিয়া নেটওয়ার্ক (WPAN) স্ট্যান্ডার্ড যা 2.4 GHz ISM ব্যান্ডে কাজ করে, 100 মিটার পর্যন্ত দূরত্বে ডিভাইস যোগাযোগের জন্য ডিজাইন করা হয়েছে। IEEE 802.15.1 স্পেসিফিকেশন ফিজিক্যাল এবং MAC স্তর সংজ্ঞায়িত করে, যখন Bluetooth SIG স্ট্যাক নির্দিষ্ট পরিস্থিতির জন্য উচ্চ-স্তরের প্রোফাইল সংজ্ঞায়িত করে: অডিও হেডসেট (HSP), ফাইল ট্রান্সফার (OPP), কীবোর্ড ইনপুট (HID)।
স্ট্যান্ডার্ডটি সংস্করণ 4.0 (2010) থেকে দুটি শাখায় বিভক্ত হয়েছে: Bluetooth Classic (BR/EDR — Basic Rate / Enhanced Data Rate) এবং Bluetooth Low Energy (BLE, পূর্বে Bluetooth Smart)। Classic একটানা স্ট্রিম — অডিও কল, সঙ্গীত, ফাইলের জন্য ডিজাইন করা হয়েছে। BLE এমন অ্যাপ্লিকেশনের জন্য তৈরি করা হয়েছে যেখানে ডেটা দশ সেকেন্ড বা মিনিটের বিরতি সহ ছোট প্যাকেটে প্রেরণ করা হয় — হার্ট রেট মনিটর, ট্যাগ, তাপমাত্রা সেন্সর।
Bluetooth SIG (2025) অনুসারে, 99% নতুন স্মার্টফোন উভয় সংস্করণ সমর্থন করে, এবং BLE ইকোসিস্টেমে Blood Pressure থেকে Environmental Sensing পর্যন্ত 15টিরও বেশি প্রোফাইল প্রকার অন্তর্ভুক্ত রয়েছে।
Classic এবং BLE-এর মধ্যে পছন্দ পরিস্থিতির উপর নির্ভর করে: অডিও স্ট্রিমিংয়ের জন্য শুধুমাত্র Classic উপযুক্ত, ঘন্টায় একবার সেন্সর পোল করার জন্য — শুধুমাত্র BLE। BR/EDR 1 MHz ব্যবধান সহ 79টি চ্যানেল এবং অ্যাডাপটিভ ফ্রিকোয়েন্সি হপিং (AFH) ব্যবহার করে, যা Wi-Fi হস্তক্ষেপের প্রতিরোধ ক্ষমতা প্রদান করে।
| প্যারামিটার | Bluetooth Classic (BR/EDR) | Bluetooth Low Energy (BLE) |
|---|---|---|
| ডেটা রেট | 1–3 Mbit/s (EDR) | 125 kbit/s – 2 Mbit/s (LE 2M PHY) |
| পিক কারেন্ট | 10–30 mA | 5–15 mA |
| এয়ার টাইম | ~100 ms | ~3 ms |
| টোপোলজি | Piconet (1 মাস্টার, 7 পর্যন্ত স্লেভ) | Broadcaster / Observer / Peripheral / Central |
| প্রোফাইল | HFP, A2DP, HSP, SPP, OPP | GATT-ভিত্তিক (HRS, BLS, CTS, ইত্যাদি) |
| সাধারণ ডিভাইস | হেডসেট, স্পিকার, কার হ্যান্ডস-ফ্রি | ফিটনেস ট্র্যাকার, ট্যাগ, হার্ট রেট মনিটর, IoT সেন্সর |
| সামঞ্জস্যতা | ফিজিক্যাল স্তরে BLE-এর সাথে সামঞ্জস্যপূর্ণ নয় | ডুয়াল-মোড চিপ উভয় স্ট্যাক সমর্থন করে |
BLE 5.x LE Coded PHY যোগ করেছে 1 কিমি পর্যন্ত (খোলা জায়গায়) পরিসর বাড়ানোর জন্য এবং LC3 কোডেক সহ LE Audio — নতুন সংস্করণ ধীরে ধীরে অডিও পরিস্থিতির জন্য Classic এবং BLE-এর মধ্যে সীমা অস্পষ্ট করছে।
BLE স্ট্যাক তিনটি স্তরে বিভক্ত: কন্ট্রোলার (Controller) (ফিজিক্যাল এবং লিঙ্ক স্তর), হোস্ট (Host) (L2CAP, ATT, GATT, সিকিউরিটি ম্যানেজার), এবং অ্যাপ্লিকেশন (Application) (অ্যাপে প্রোফাইল বাস্তবায়ন)। এই পৃথকীকরণ চিপ প্রস্তুতকারককে ফার্মওয়্যারে কন্ট্রোলার বাস্তবায়নের অনুমতি দেয়, যখন মোবাইল অ্যাপ ডেভেলপার শুধুমাত্র GATT অ্যাবস্ট্রাকশন নিয়ে কাজ করে।
লিঙ্ক লেয়ার (LL) এয়ার টাইম পরিচালনা করে: ডিভাইসটি Standby, Advertising, Scanning, Initiating এবং Connection অবস্থার মধ্যে সুইচ করে। Connected অবস্থায়, Central এবং Peripheral একটি সংযোগ ব্যবধানে সম্মত হয় — যে ফ্রিকোয়েন্সিতে তারা ডেটা প্যাকেট বিনিময় করে। একটি সাধারণ ব্যবধান হল 7.5–1000 ms; বিনিময় যত বেশি ঘন ঘন হবে, থ্রুপুট তত বেশি এবং পাওয়ার খরচ তত বেশি।
সিকিউরিটি ম্যানেজার (SM) পেয়ারিং প্রোটোকলের মাধ্যমে কী বিনিময় সহ AES-128 এনক্রিপশন প্রয়োগ করে। তিনটি মোড রয়েছে: Just Works (PIN এন্ট্রি ছাড়া), Passkey Entry (স্ক্রিনে 6-অঙ্কের কোড), এবং OOB (NFC বা QR)। পরিধানযোগ্য ডিভাইসের জন্য, সাধারণত Just Works ব্যবহার করা হয়; চিকিৎসা ডিভাইসের জন্য, অতিরিক্ত যাচাই সহ OOB ব্যবহার করা হয়।
Bluetooth Core Specification 5.4 (2023) অনুসারে, LE Secure Connections মোডে সুরক্ষিত সংযোগ সেটআপ সময় 30 ms সংযোগ ব্যবধানে 300 ms-এর বেশি হয় না।
ATT (Attribute Protocol) হল মৌলিক ট্রান্সপোর্ট মডেল যেখানে সার্ভার (পেরিফেরাল ডিভাইস) অ্যাট্রিবিউট সংরক্ষণ করে এবং ক্লায়েন্ট (স্মার্টফোন) সেগুলি পড়ে বা লেখে। GATT (Generic Attribute Profile) ATT-এর উপরে একটি হায়ারার্কি তৈরি করে: Service → Characteristic → Descriptor।
প্রতিটি সার্ভিস হল একটি ডিভাইস ফাংশন বর্ণনাকারী ক্যারেক্টারিস্টিকের একটি লজিক্যাল গ্রুপ: Heart Rate Service (UUID 0x180D) একটি ক্লায়েন্ট ক্যারেক্টারিস্টিক কনফিগারেশন ডেস্ক্রিপ্টর (0x2902) সহ Heart Rate Measurement ক্যারেক্টারিস্টিক (UUID 0x2A37) ধারণ করে যা নোটিফিকেশন নিয়ন্ত্রণ করে। মোবাইল অ্যাপ ডেভেলপার discoverServices()-এর মাধ্যমে সার্ভিসের তালিকা পায়, তারপর UUID দ্বারা প্রয়োজনীয় ক্যারেক্টারিস্টিক খুঁজে পায় এবং নোটিফিকেশনে সাবস্ক্রাইব করে।
BLE স্ট্যান্ডার্ডাইজড Bluetooth SIG সার্ভিসের জন্য 16-বিট UUID এবং কাস্টম প্রস্তুতকারক সার্ভিসের জন্য 128-বিট UUID ব্যবহার করে। উদাহরণস্বরূপ, একটি ট্র্যাকার কেস তার ব্যাটারি চার্জ লেভেল ট্রান্সমিট করার জন্য একটি ক্যারেক্টারিস্টিক সহ A000-… সার্ভিস সংজ্ঞায়িত করতে পারে।
private val gattCallback = object BluetoothGattCallback() {
override fun onServicesDiscovered(
gatt: BluetoothGatt, status: Int
) {
val service = gatt.getService(UUID.fromString("0000180d-0000-1000-8000-00805f9b34fb"))
val char = service?.getCharacteristic(
UUID.fromString("00002a37-0000-1000-8000-00805f9b34fb")
)
gatt.setCharacteristicNotification(char, true)
}
override fun onCharacteristicChanged(
gatt: BluetoothGatt, char: BluetoothGattCharacteristic
) {
val heartRate = char.getIntValue(BluetoothGattCharacteristic.FORMAT_UINT8, 1)
updateUi("নাড়ি: $heartRate বিট/মিনিট")
}
}
উদাহরণে, অ্যাপটি স্ট্যান্ডার্ড Bluetooth SIG UUID দ্বারা Heart Rate সার্ভিস খুঁজে পায়, হার্ট রেট মেজারমেন্ট ক্যারেক্টারিস্টিক পায় এবং এর নোটিফিকেশনে সাবস্ক্রাইব করে — যখনই হার্ট রেট পরিবর্তিত হয়, পেরিফেরাল ডিভাইস Central থেকে স্পষ্ট অনুরোধ ছাড়াই ডেটা পাঠায়।
Advertising হল একটি মূল BLE প্রক্রিয়া যেখানে একটি Peripheral ডিভাইস তিনটি প্রাথমিক চ্যানেলে (37, 38, 39) পর্যায়ক্রমে সম্প্রচার প্যাকেট (advertising PDU) পাঠায়। কেন্দ্রীয় ডিভাইস এই চ্যানেলগুলি স্ক্যান করে, advertising ডেটা গ্রহণ করে এবং একটি সংযোগ শুরু করতে পারে।
একটি Advertising প্যাকেটে 31 বাইট পর্যন্ত পেলোড থাকে: ফ্ল্যাগ, TX পাওয়ার লেভেল, লোকাল নাম, সার্ভিস UUID, প্রস্তুতকারক-নির্দিষ্ট ডেটা। এটি সংযোগ স্থাপন না করেই সেন্সর রিডিং ট্রান্সমিট করার জন্য যথেষ্ট — সংযোগবিহীন মোড (Broadcaster টাইপ)। একটানা ডেটা ট্রান্সমিশনের (যেমন, প্রতি মিনিটে একবার তাপমাত্রা) জন্য, 1000 ms পর্যন্ত সংযোগ ব্যবধান সহ একটি সংযোগ ব্যবহার করা হয়।
মোবাইল প্ল্যাটফর্মে, স্ক্যানিং startScan() (Android) বা scanForPeripherals() (iOS) এর মাধ্যমে শুরু করা হয়। সার্ভিস UUID দ্বারা ফিল্টারিং সমস্ত দৃশ্যমান ডিভাইস প্রক্রিয়াকরণ না করে শক্তি সাশ্রয় করে — অ্যাপটি শুধুমাত্র প্রাসঙ্গিক ট্যাগ বা সেন্সরের জন্য কলব্যাক পায়।
import CoreBluetooth
class ScannerViewController: UIViewController {
private var centralManager: CBCentralManager!
override func viewDidLoad() {
centralManager = CBCentralManager(
delegate: self, queue: nil
)
}
func centralManagerDidUpdateState(central: CBCentralManager) {
if central.state == .poweredOn {
centralManager.scanForPeripherals(
withServices: nil, options: nil
)
}
}
func centralManager(
central: CBCentralManager,
didDiscover peripheral: CBPeripheral,
advertisementData: [String : Any],
rssi RSSI: NSNumber
) {
if let name = advertisementData[CBAdvertisementDataLocalNameKey] {
print("ডিভাইস পাওয়া গেছে: \(name)")
}
}
}
ডিভাইস আবিষ্কারের পর, Central connect() কল করে, CBPeripheral অবজেক্ট পাস করে। সংযোগ প্যারামিটার (ব্যবধান, লেটেন্সি, সুপারভিশন টাইমআউট) লিঙ্ক লেয়ার স্তরে আলোচনা করা হয় — ডেভেলপার সরাসরি সেগুলি পরিচালনা করে না, তবে Android-এ requestConnectionPriority-এর মাধ্যমে প্রভাবিত করতে পারে।
উভয় মোবাইল প্ল্যাটফর্ম BLE-এর সাথে কাজ করার জন্য নেটিভ API সরবরাহ করে। Core Bluetooth (iOS) একটি ডেলিগেট পদ্ধতি ব্যবহার করে: কেন্দ্রীয় ব্যবস্থাপক অপারেশন শুরু করে, এবং পেরিফেরাল অবজেক্ট ডেলিগেট পদ্ধতির মাধ্যমে ফলাফল রিপোর্ট করে। android.bluetooth (Android) কলব্যাক ইন্টারফেসের উপর নির্মিত এবং একাধিক ডিভাইসের সাথে সমান্তরাল GATT অপারেশন সমর্থন করে।
প্ল্যাটফর্মগুলির মধ্যে মূল পার্থক্য:
Bluetooth SIG পরীক্ষা (2024) অনুসারে, স্মার্টফোন এবং ফিটনেস ট্র্যাকারের মধ্যে BLE সংযোগের সময় Android-এ গড়ে 150–300 ms এবং iOS-এ 100–250 ms — পার্থক্যটি রেডিও ফ্রিকোয়েন্সি মডিউল পরিচালনা নীতির কারণে।
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
class BleService {
final FlutterBluePlus fbp = FlutterBluePlus();
Future<void> scanAndConnect(String deviceName) async {
await fbp.startScan(timeout: Duration(seconds: 15));
await for (final result in fbp.scanResults) {
if (result.device.advName == deviceName) {
await fbp.stopScan();
await result.device.connect();
break;
}
}
}
}
Flutter ডেভেলপার একটি ইউনিফায়ed API ইন্টারফেস পায়; হুডের নীচে, flutter_blue_plus কলগুলি নেটিভ android.bluetooth বা Core Bluetooth-এ অনুবাদ করে। এই পদ্ধতি উভয় প্ল্যাটফর্মে BLE পেরিফেরালের সাথে কাজ করার জন্য অ্যাপ ডেভেলপমেন্ট সময় কমায়।
সচরাচর জিজ্ঞাসিত প্রশ্ন
Bluetooth Classic (BR/EDR) একটানা স্ট্রিমিং — অডিও কল, সঙ্গীত, ফাইল ট্রান্সফারের জন্য ডিজাইন করা হয়েছে। BLE ন্যূনতম পাওয়ার খরচ — সেন্সর, ট্যাগ, ফিটনেস ট্র্যাকারের সাথে ছোট ডেটা প্যাকেটের জন্য অপ্টিমাইজ করা হয়েছে। Classic 10–30 mA খরচ করে, BLE — পিক এ 5–15 mA।
ফিজিক্যাল স্তরে তারা সামঞ্জস্যপূর্ণ নয় — আলাদা মড্যুলেশন এবং চ্যানেল ম্যাপ। তবে, বেশিরভাগ আধুনিক চিপ ডুয়াল-মোড এবং উভয় স্ট্যাক বাস্তবায়ন করে। ডুয়াল-মোড চিপ সহ একটি স্মার্টফোন একসাথে একটি Classic হেডসেট এবং একটি BLE ট্র্যাকারের সাথে যোগাযোগ করতে পারে।
সংযোগ ব্যবধান হল প্রতিষ্ঠিত সংযোগে দুটি ডেটা প্যাকেটের মধ্যে সময়। মান 7.5 ms থেকে 4 সেকেন্ড পর্যন্ত হয়। ব্যবধান যত ছোট হবে, থ্রুপুট তত বেশি এবং পাওয়ার খরচ তত বেশি। প্রতি মিনিটে একবার রিপোর্ট করা তাপমাত্রা সেন্সরের জন্য, 1000 ms-এর ব্যবধান ব্যবহার করা হয়।
পেয়ারিং হল Central এবং Peripheral-এর মধ্যে এনক্রিপশন কী বিনিময়ের প্রক্রিয়া। BLE তিনটি পদ্ধতি সমর্থন করে: Just Works (নিশ্চিতকরণ ছাড়া), Passkey Entry (স্ক্রিনে PIN এন্ট্রি), এবং OOB (NFC বা QR-এর মাধ্যমে বিনিময়)। পেয়ারিংয়ের পর, ডিভাইসগুলি কী সংরক্ষণ করে (বন্ডিং) এবং পরবর্তী সংযোগে পুনরায় প্রমাণীকরণের অনুরোধ করে না।
সবচেয়ে সাধারণ: Heart Rate Profile (0x180D) হার্ট রেট মনিটরের জন্য, Blood Pressure Profile (0x1810) ব্লাড প্রেসার মনিটরের জন্য, Environmental Sensing (0x181A) তাপমাত্রা এবং আর্দ্রতা সেন্সরের জন্য, Battery Service (0x180F) চার্জ লেভেলের জন্য, Device Information (0x180A) মডেল এবং সিরিয়াল নম্বরের জন্য।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন