Zigbee ও LoRaWAN — লো-পাওয়ার WAN
এই পাঠে যা শিখবেন
- Zigbee-র মেশ টপোলজি ও LoRaWAN-এর স্টার (star) টপোলজি — এই দুই ভিন্ন নেটওয়ার্ক-আর্কিটেকচারের পার্থক্য
- রেঞ্জ, ব্যান্ডউইথ ও পাওয়ারের মধ্যে ট্রেড-অফ কেন অনিবার্য
- একই ছোট পেলোডের ট্রান্সমিশন সময় ও আনুমানিক চার্জ খরচ — Zigbee বনাম LoRaWAN-এর দুই ভিন্ন ডেটা-রেট মোডে, সত্যিকারের গণনা দিয়ে
- কোন ধরনের IoT প্রোডাক্টে কোনটি বেশি প্রাসঙ্গিক তার একটি বাস্তবসম্মত ধারণা
১ · Zigbee — মেশ নেটওয়ার্কিং
ZigbeeZigbeeIEEE 802.15.4-ভিত্তিক লো-পাওয়ার মেশ প্রোটোকল — ডিভাইসগুলো একে অপরের বার্তা রিলে করে, ফলে প্রতিটি ডিভাইসের নিজস্ব রেঞ্জ কম হলেও পুরো নেটওয়ার্ক অনেক বড় এলাকা কভার করতে পারে। হলো IEEE 802.15.4 স্ট্যান্ডার্ডের উপর তৈরি একটি লো-পাওয়ার প্রোটোকল, যার সবচেয়ে বৈশিষ্ট্যপূর্ণ দিক হলো মেশ নেটওয়ার্কিং — একটি ডিভাইস সরাসরি হাব/কো-অর্ডিনেটরের রেঞ্জের বাইরে থাকলেও, মাঝের অন্য Zigbee ডিভাইস সেই বার্তা রিলে করে দিতে পারে। ডেটা রেট তুলনামূলক বেশি (২৫০ kbps পর্যন্ত), তাই সেন্সর রিডিং বা কন্ট্রোল কমান্ডের মতো ছোট-থেকে-মাঝারি পেলোডে ভালো কাজ করে — স্মার্ট হোম ইকোসিস্টেমে (বাল্ব, সুইচ, লক) এটি খুব জনপ্রিয়।
২ · LoRaWAN — অতি-দীর্ঘ রেঞ্জ, অতি-কম ব্যান্ডউইথ
LoRaWANLoRaWANএকটি স্প্রেড-স্পেকট্রাম মড্যুলেশন-ভিত্তিক লো-পাওয়ার WAN প্রোটোকল — এক লাফেই (single-hop) কিলোমিটার-স্কেল রেঞ্জ দেয়, কিন্তু বিনিময়ে ডেটা রেট অত্যন্ত কম। সম্পূর্ণ ভিন্ন কৌশল নেয় — মেশ দিয়ে রেঞ্জ বাড়ানোর বদলে, এটি একটি বিশেষ স্প্রেড-স্পেকট্রাম মড্যুলেশন (LoRa) ব্যবহার করে যা একটি একক লাফেই (single hop) কয়েক কিলোমিটার পর্যন্ত পৌঁছাতে পারে — গ্রামীণ এলাকায় প্রায়ই ১০+ কিমি। বিনিময়ে ডেটা রেট অত্যন্ত কম (স্প্রেডিং ফ্যাক্টরের উপর নির্ভর করে সাধারণত কয়েকশ bps থেকে কয়েক kbps) — তাই এটি শুধু ছোট, কালেভদ্রে পাঠানো পেলোডের (যেমন প্রতি ঘণ্টায় একটি সয়েল-ময়েশ্চার রিডিং) জন্য উপযুক্ত, ভিডিও বা বড় ফাইলের জন্য নয়। একটি গেটওয়েই বিশাল এলাকার সব ডিভাইস কভার করতে পারে বলে অবকাঠামো খরচ তুলনামূলক কম।
৩ · একটি সত্যিকারের গণনা — ট্রান্সমিশন সময় ও চার্জ খরচ
সূত্রটি সহজ — $t = \dfrac{\text{payload bits}}{\text{data rate (bps)}}$। ধরা যাক একটি সেন্সর নোড ২০ বাইট (১৬০ বিট) একটি ছোট পেলোড পাঠাচ্ছে। Zigbee-র সাধারণ ডেটা রেট ২৫০,০০০ bps। LoRaWAN-এর ডেটা রেট স্প্রেডিং ফ্যাক্টরের (SF) উপর নির্ভর করে বদলায় — দীর্ঘতম রেঞ্জের মোডে (SF12) মাত্র ~৩০০ bps, আর সবচেয়ে দ্রুত মোডে (SF7, কম রেঞ্জ) ~৫৪৭০ bps। নিচের কোড তিনটি ক্ষেত্রেই ট্রান্সমিশন সময় গণনা করছে, এবং ট্রান্সমিট কারেন্টের সাথে গুণ করে একটি আনুমানিক "প্রতি-বার্তা চার্জ খরচ" (mA·s, একই ভোল্টেজ ধরে একটি তুলনামূলক প্রক্সি হিসেবে) বের করছে।
payload_bytes = 20
payload_bits = payload_bytes * 8
# --- ডেটা রেট (illustrative, প্রতিটি প্রোটোকলের সাধারণ মান) ---
zigbee_data_rate_bps = 250_000 # IEEE 802.15.4, সর্বোচ্চ সাধারণ রেট
lorawan_sf12_bps = 300 # LoRaWAN দীর্ঘতম রেঞ্জ মোড (SF12)
lorawan_sf7_bps = 5_470 # LoRaWAN সবচেয়ে দ্রুত মোড (SF7, কম রেঞ্জ)
# --- ট্রান্সমিট কারেন্ট (illustrative, কমনলি-সাইটেড আনুমানিক মান) ---
zigbee_tx_current_ma = 24.0
lorawan_tx_current_ma = 44.0 # লং-রেঞ্জ ট্রান্সমিট পাওয়ার সাধারণত বেশি
def tx_time_s(bits, data_rate_bps):
return bits / data_rate_bps
def charge_per_message_ma_s(tx_current_ma, tx_time_s_value):
return tx_current_ma * tx_time_s_value
rows = [
("Zigbee (250 kbps)", zigbee_data_rate_bps, zigbee_tx_current_ma),
("LoRaWAN SF12 (দীর্ঘ রেঞ্জ)", lorawan_sf12_bps, lorawan_tx_current_ma),
("LoRaWAN SF7 (কম রেঞ্জ, দ্রুত)", lorawan_sf7_bps, lorawan_tx_current_ma),
]
print(f"পেলোড: {payload_bytes} বাইট ({payload_bits} বিট)\n")
results = []
for name, rate_bps, tx_current_ma in rows:
t_s = tx_time_s(payload_bits, rate_bps)
charge = charge_per_message_ma_s(tx_current_ma, t_s)
results.append((name, t_s, charge))
print(f"{name:<28} ডেটা রেট: {rate_bps:>7} bps "
f"ট্রান্সমিশন সময়: {t_s * 1000:8.2f} ms "
f"চার্জ/বার্তা: {charge:8.4f} mA·s")
zigbee_charge = results[0][2]
lora_sf12_charge = results[1][2]
lora_sf7_charge = results[2][2]
print(f"\nLoRaWAN SF12-এ একটি বার্তায় Zigbee-র তুলনায় "
f"{lora_sf12_charge / zigbee_charge:.0f}x বেশি চার্জ লাগে।")
print(f"LoRaWAN SF7-এও Zigbee-র তুলনায় "
f"{lora_sf7_charge / zigbee_charge:.0f}x বেশি চার্জ লাগে (রেঞ্জ কম হওয়া সত্ত্বেও)।")
Zigbee রেঞ্জের সীমাবদ্ধতা মেশের মাধ্যমে কাটিয়ে ওঠে (অনেক কাছাকাছি ডিভাইস দরকার), আর LoRaWAN ব্যান্ডউইথ ত্যাগ করে সরাসরি বিশাল রেঞ্জ কেনে (স্পার্স, দূরবর্তী ডিভয়েসে ভালো কাজ করে)। কোনোটিই সব দিক থেকে "সেরা" নয় — L45-এ এই দুটোকে WiFi, BLE ও সেলুলার IoT-র সাথে একটি সম্পূর্ণ ওজন-ভিত্তিক (weighted) সিদ্ধান্ত- স্কোরিং সিস্টেমে তুলনা করা হবে।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ Zigbee মেশ ব্যবহার করে রেঞ্জ বাড়ায়, কিন্তু LoRaWAN কেন মেশের বদলে একটি সাধারণ স্টার (star) টপোলজি বেছে নেয়?
Zigbee-র প্রতিটি ডিভাইসের নিজস্ব রেঞ্জ ছোট, তাই বড় এলাকা কভার করতে আশেপাশের ডিভাইসের মাধ্যমে রিলে করা দরকার হয় — মেশ এই সমস্যার সমাধান। LoRaWAN-এর একক লাফেই এমনিতেই কিলোমিটার-স্কেল রেঞ্জ থাকে, তাই মেশের প্রয়োজনই পড়ে না — উল্টো মেশ যোগ করলে প্রতিটি ডিভাইসকে অন্যদের বার্তা রিলে করার জন্য বাড়তি রেডিও সময় ব্যয় করতে হতো, যা LoRaWAN-এর মূল লক্ষ্য (অত্যন্ত কম গড় পাওয়ার) নষ্ট করে দিত।
প্র ০২ কোড আউটপুটে দেখা গেল LoRaWAN SF12-এ প্রতি বার্তায় Zigbee-র চেয়ে হাজারগুণ বেশি চার্জ লাগে — তাহলে LoRaWAN-কে "লো-পাওয়ার" প্রোটোকল বলা কি ভুল?
না, কারণ "লো-পাওয়ার" দাবিটা প্রতি-বার্তা খরচ নয়, বরং গড় পাওয়ারের কথা বলে। LoRaWAN ডিভাইস সাধারণত খুব কম ঘন ঘন বার্তা পাঠায় (রেগুলেটরি ডিউটি-সাইকেল সীমাও এটাকে বাধ্য করে) এবং বাকি প্রায় পুরো সময় গভীর ঘুমে থাকে — তাই প্রতি-বার্তা খরচ বেশি হলেও, ২৪ ঘণ্টার গড়ে কারেন্ট খুব কম থাকে, যা L42-এ ব্যবহৃত ব্যাটারি-লাইফ ফর্মুলার মতোই একটি ওয়েটেড গড়ের হিসাব।
প্র ০৩ একটি স্মার্ট হোমে ২০-৩০টি সেন্সর/সুইচ থাকলে Zigbee ও LoRaWAN-এর মধ্যে কোনটি বেশি স্বাভাবিক পছন্দ হবে বলে মনে করেন, এবং কেন?
Zigbee — কারণ একটি ঘরের ভেতরে অনেকগুলো ডিভাইস কাছাকাছি থাকায় মেশ নেটওয়ার্কিং-এর পূর্ণ সুবিধা পাওয়া যায় (প্রতিটি নতুন ডিভাইস নেটওয়ার্ককে আরও শক্তিশালী করে), এবং ডেটা রেট বেশি হওয়ায় দ্রুত রেসপন্স (যেমন লাইট সুইচ) সম্ভব। LoRaWAN-এর অতি-কম ব্যান্ডউইথ ও দীর্ঘ রেঞ্জ একটি ছোট বাড়ির ভেতরে অপ্রয়োজনীয় এবং কম রেসপন্সিভ — এটি বরং স্পার্স, দূরবর্তী সেন্সরের জন্য বেশি মানানসই (L43-এর মূল বার্তা)।
অনুশীলন
-
পরীক্ষা করুন: উপরের কোড সেলে
payload_bytes২০ থেকে ৫০-এ বদলান — নতুন তিনটি ট্রান্সমিশন সময় (ms) কত হবে বলে আপনার ধারণা?নতুন পেলোড $= 50 \times 8 = 400$ বিট। Zigbee: $400/250000 = 1.6$ ms। LoRaWAN SF12: $400/300 \approx 1333.3$ ms (সোয়া সেকেন্ডেরও বেশি)। LoRaWAN SF7: $400/5470 \approx 73.1$ ms — সবগুলো সময়ই পেলোড আকারের সাথে সমানুপাতে বাড়ে, যা সূত্র $t = \text{bits}/\text{rate}$-এর সরাসরি ফল।
-
চিন্তা করুন:
lorawan_sf12_bps৩০০ থেকে ৯৮০ bps-এ বদলালে (একটি মাঝারি স্প্রেডিং ফ্যাক্টরের প্রতিনিধিত্ব করে) নতুন ট্রান্সমিশন সময় কত হবে?$t = 160 / 980 \approx 0.1633$ সেকেন্ড $= 163.3$ ms — এখনও Zigbee-র ০.৬৪ ms-এর চেয়ে বহু গুণ ধীর, কিন্তু SF12-এর ৫৩৩ ms-এর চেয়ে অনেক দ্রুত — এটাই দেখায় LoRaWAN-এর ভেতরেই স্প্রেডিং ফ্যাক্টর বেছে নেওয়া রেঞ্জ-বনাম-গতির একটি নিজস্ব ট্রেড-অফ।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- কোর্সের সম্পূর্ণ সিলেবাস দেখুন ৫৭টি পাঠ মাইক্রোপ্রসেসর আর্কিটেকচার, এমবেডেড C, GPIO, টাইমার/PWM/ADC, সিরিয়াল প্রোটোকল, RTOS, সেন্সর/অ্যাকচুয়েটর, IoT আর্কিটেকচার, ওয়্যারলেস প্রোটোকল, MQTT/CoAP ও IoT সিকিউরিটি — বাকি পাঠগুলো শীঘ্রই যুক্ত হবে।
- Computer Networks কোর্স সহোদর কোর্স সাধারণ নেটওয়ার্কিং টপোলজি ও রাউটিং ভিত্তি সেই কোর্সেই তৈরি হয়েছে — এই কোর্স কনস্ট্রেইন্ড লো-পাওয়ার WAN-এর বিশেষ দিকে ফোকাস করে।
- সব Courses দেখুন ABCL TECH C, C++, Python, Java, JavaScript, DSA, DBMS, Discrete Mathematics, System Design, Cybersecurity, Cloud Computing & DevOps, Computer Networks, Operating Systems, Computer Architecture, Design and Analysis of Algorithms ও আরও অনেক কোর্স — সব এক জায়গায়।