পাঠ ৫৪ · ৫৭-এর মধ্যে · মডিউল ১২
Home / Courses / Microprocessors, Embedded Systems & IoT / কেস স্টাডি

IoT কেস স্টাডি — স্মার্ট হোম, ইন্ডাস্ট্রিয়াল IoT ও ওয়্যারেবল

IoT case studies — smart home, industrial IoT, and wearables
১০ মিনিট পড়া মধ্যম · Intermediate Python সিমুলেশনসহ সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • তিনটি ভিন্ন ধরনের বাস্তব IoT ডিভাইসের আর্কিটেকচার স্কেচ — কোন কম্পোনেন্ট কেন বেছে নেওয়া হয়
  • এই কোর্সের বিভিন্ন মডিউলের ধারণা একটি বাস্তব প্রোডাক্টে কীভাবে একসাথে কাজ করে তার একটি ঝলক
  • স্মার্ট হোম, ইন্ডাস্ট্রিয়াল ও ওয়্যারেবল IoT-এর মধ্যে ডিজাইন-সিদ্ধান্তের পার্থক্য (পাওয়ার, রেঞ্জ, লেটেন্সি অগ্রাধিকার)
  • একটি ফিটনেস ওয়্যারেবলের multi-mode ডিউটি সাইকেল থেকে জেনুইনভাবে ব্যাটারি লাইফ গণনা করা

১ · কেস স্টাডি ১ — স্মার্ট থার্মোস্ট্যাট (স্মার্ট হোম)

একটি স্মার্ট থার্মোস্ট্যাট ঘরের তাপমাত্রা/আর্দ্রতা মাপে, HVAC সিস্টেমকে চালু/বন্ধ করে, এবং একটি মোবাইল অ্যাপ থেকে দূর থেকে সিডিউল সেট করার সুযোগ দেয়। এর আর্কিটেকচার সাধারণত:

  • সেন্সর: একটি তাপমাত্রা/আর্দ্রতা সেন্সর, সাধারণত I2C-এর মতো একটি সিরিয়াল বাসে সংযুক্ত (M6/L24) — সিগন্যাল কন্ডিশনিং ও ক্যালিব্রেশনের মূলনীতি M9/L37-এ আলোচিত।
  • অ্যাকচুয়েটর: HVAC রিলে/সুইচ চালানোর জন্য একটি ডিজিটাল আউটপুট পিন, প্রায়ই একটি রিলে ড্রাইভার সার্কিটের মাধ্যমে (M4/L16-এ আলোচিত কারেন্ট/ভোল্টেজ সীমাবদ্ধতার কারণে)।
  • কানেক্টিভিটি: সাধারণত WiFi (M10/L42) — কারণ ঘরের ভেতরে সাধারণত ভালো WiFi কভারেজ থাকে, আর ব্যাটারির চেয়ে সাধারণত ওয়াল-পাওয়ারের উপর নির্ভরশীল, তাই WiFi-এর তুলনামূলক বেশি পাওয়ার খরচ বড় সমস্যা নয়।
  • ক্লাউড: সিডিউল/অটোমেশন লজিক ও দূর থেকে কন্ট্রোলের জন্য একটি IoT ক্লাউড প্ল্যাটফর্ম (M11/L50-এ আলোচিত device shadow/state-reconciliation প্যাটার্ন সরাসরি প্রযোজ্য)।

২ · কেস স্টাডি ২ — ইন্ডাস্ট্রিয়াল ভাইব্রেশন মনিটর (ইন্ডাস্ট্রিয়াল IoT)

একটি ইন্ডাস্ট্রিয়াল যন্ত্রে (যেমন একটি মোটর বা পাম্প) বসানো একটি ভাইব্রেশন মনিটর প্রেডিক্টিভ মেইনটেন্যান্সের জন্য ব্যবহৃত হয় — অস্বাভাবিক কম্পন প্যাটার্ন যন্ত্র বিকল হওয়ার আগে সতর্কতা দিতে পারে। এর আর্কিটেকচার স্মার্ট থার্মোস্ট্যাটের চেয়ে বেশ ভিন্ন:

  • সেন্সর: একটি উচ্চ-স্যাম্পলিং-রেট অ্যাক্সিলেরোমিটার (M9/L36-এ আলোচিত সেন্সর ইন্টারফেসিং)।
  • এজ প্রসেসিং: র‌ও ভাইব্রেশন ডেটা ডিভাইসেই প্রসেস করে একটি সংক্ষিপ্ত ফিচার (যেমন RMS ম্যাগনিচিউড + anomaly flag)-এ রূপান্তর করা হয় — L53-এ আলোচিত ব্যান্ডউইথ-সাশ্রয় গণনার ঠিক এই দৃশ্যকল্পটিই ব্যবহার করা হয়েছিল।
  • কানেক্টিভিটি: LoRaWAN (M10/L43) — কারণ শিল্প কারখানার একটি দূরবর্তী/বিস্তৃত এলাকায় বহু সেন্সর নোড থাকতে পারে, যেখানে WiFi কভারেজ ব্যবহারিক নয়, আর এই ডিভাইসগুলো প্রায়ই ব্যাটারি-চালিত হয়ে মাসের-পর-মাস চলতে হয় — LoRaWAN-এর কম ডেটা রেট এখানে সমস্যা নয়, কারণ এজ প্রসেসিং ইতিমধ্যে ডেটা রেট অনেক কমিয়ে দিয়েছে।
  • রিলায়েবিলিটি: একটি মিসড রিডিং উৎপাদন বন্ধ করে দিতে পারে এমন একটি সিদ্ধান্তে প্রভাব ফেলতে পারে, তাই M8/L35-এ আলোচিত চেকসাম/রিডানডেন্সি ধারণাগুলো এখানে প্রাসঙ্গিক।

৩ · কেস স্টাডি ৩ — ফিটনেস ওয়্যারেবল (ওয়্যারেবল)

একটি ফিটনেস ব্যান্ড হার্ট রেট/স্টেপ কাউন্ট ট্র্যাক করে এবং একটি ফোন অ্যাপে ডেটা সিঙ্ক করে। এর ডিজাইন সম্পূর্ণভাবে পাওয়ার ও সাইজ দ্বারা নিয়ন্ত্রিত:

  • সেন্সর: একটি লো-পাওয়ার অ্যাক্সিলেরোমিটার/হার্ট-রেট সেন্সর, প্রায় সবসময় চালু কিন্তু খুবই কম কারেন্ট ড্র-এ (M8/L32-এ আলোচিত লো-পাওয়ার মোডের ধারণা)।
  • কানেক্টিভিটি: BLE (M10/L42) — কারণ ওয়্যারেবলের ব্যাটারি খুবই ছোট, আর BLE বিশেষভাবে এই ধরনের কম-ডেটা, কম-শক্তির সংযোগের জন্য ডিজাইন করা; সরাসরি ইন্টারনেট অ্যাক্সেস নেই — একটি ফোন "গেটওয়ে" হিসেবে কাজ করে ইন্টারনেটে ডেটা রিলে করে।
  • ব্যাটারি সীমাবদ্ধতা: M8/L34-এ আলোচিত multi-mode ব্যাটারি-বাজেটিং গণনা এখানে সরাসরি প্রযোজ্য — নিচের কোড সেলে এই কেস স্টাডির জন্য এই একই প্যাটার্ন পুনরায় ব্যবহার করে একটি জেনুইন ব্যাটারি লাইফ এস্টিমেট করা হয়েছে।

নিচের কোড সেলে ফিটনেস ওয়্যারেবলের তিনটি অপারেটিং মোড (accelerometer sampling, BLE advertise/connect burst, deep sleep) একটি চক্রে ধরে, M8/L34-এর ব্যাটারি-বাজেটিং সূত্র — $\text{battery life} = \text{capacity}_{mAh} / \text{average current}_{mA}$ — ব্যবহার করে একটি জেনুইন ব্যাটারি লাইফ এস্টিমেট গণনা করা হয়েছে।

Python
# --- ফিটনেস ওয়্যারেবল ব্যাটারি লাইফ এস্টিমেট (M8/L34-এর multi-mode ব্যাটারি-বাজেটিং প্যাটার্ন পুনরায় ব্যবহার করে) ---
# উল্লেখিত কারেন্ট-ড্র মানগুলো সাধারণভাবে উল্লেখিত (commonly cited) উদাহরণমূলক সংখ্যা, নির্দিষ্ট চিপের ডেটাশিট নয়।

battery_capacity_mAh = 150  # একটি ছোট ওয়্যারেবল কয়েন/পলিমার সেলের জন্য সাধারণভাবে উল্লেখিত ধারণক্ষমতা

modes = {
    "accelerometer_sampling": {"current_mA": 0.15, "duration_s": 59.0},  # প্রায় সবসময় চালু, লো-পাওয়ার মোশন সেন্সিং
    "ble_advertise_connect":  {"current_mA": 8.00, "duration_s": 0.8},   # প্রতি চক্রে একটি সংক্ষিপ্ত BLE বার্স্ট
    "deep_sleep":             {"current_mA": 0.01, "duration_s": 0.2},
}

cycle_s = sum(m["duration_s"] for m in modes.values())
weighted_current_mA = sum(m["current_mA"] * m["duration_s"] for m in modes.values()) / cycle_s

battery_life_hours = battery_capacity_mAh / weighted_current_mA
battery_life_days = battery_life_hours / 24

print("ফিটনেস ওয়্যারেবল -- একটি অপারেটিং চক্রের মোড ব্রেকডাউন:")
for name, m in modes.items():
    print(f"  {name:26s} {m['current_mA']:>6.2f} mA  x  {m['duration_s']:>5.1f} s")

print(f"\nএক চক্রের দৈর্ঘ্য: {cycle_s:.2f} সেকেন্ড")
print(f"ওয়েটেড গড় কারেন্ট ড্র: {weighted_current_mA:.4f} mA")
print(f"ব্যাটারি ধারণক্ষমতা: {battery_capacity_mAh} mAh")
print(f"আনুমানিক ব্যাটারি লাইফ: {battery_life_hours:.1f} ঘণ্টা ~= {battery_life_days:.1f} দিন")

    
লক্ষ্য করুন — যদিও BLE বার্স্টের কারেন্ট ড্র (৮ mA) accelerometer sampling-এর (০.১৫ mA) চেয়ে প্রায় ৫৩ গুণ বেশি, তবু ওয়েটেড গড়ে এর প্রভাব সীমিত থাকে কারণ এটি একটি ৬০-সেকেন্ড চক্রে মাত্র ০.৮ সেকেন্ড স্থায়ী হয় — এটাই duty-cycling-এর মূল শক্তি (M8/L32-এ বিস্তারিত)। যদি ডিভাইসটি সবসময় BLE কানেকশন সক্রিয় রাখত (কখনো sleep না করত), ব্যাটারি লাইফ নাটকীয়ভাবে কমে যেত।
মূল কথা · Key takeaway

তিনটি কেস স্টাডিই একই কোর্সের ধারণা ব্যবহার করে (সেন্সর ইন্টারফেসিং, কানেক্টিভিটি, পাওয়ার বাজেটিং), কিন্তু প্রতিটির অগ্রাধিকার ভিন্ন — স্মার্ট থার্মোস্ট্যাট পাওয়ারের চেয়ে সুবিধা/কভারেজ অগ্রাধিকার দেয়, ইন্ডাস্ট্রিয়াল মনিটর রেঞ্জ ও এজ প্রসেসিং অগ্রাধিকার দেয়, আর ওয়্যারেবল ব্যাটারি লাইফ অগ্রাধিকার দেয়। L55-এর কেস স্টাডিতে একটি সম্পূর্ণ ডিজাইন প্রক্রিয়া আরও বিস্তারিতভাবে হাঁটা হবে।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ স্মার্ট থার্মোস্ট্যাট WiFi ব্যবহার করে, কিন্তু ইন্ডাস্ট্রিয়াল ভাইব্রেশন মনিটর LoRaWAN ব্যবহার করে — এই পছন্দের পার্থক্যের মূল কারণ কী?

থার্মোস্ট্যাট সাধারণত ওয়াল-পাওয়ারড এবং ঘরের ভেতরে ভালো WiFi কভারেজে বসানো, তাই WiFi-এর বেশি পাওয়ার খরচ ও উচ্চ ব্যান্ডউইথ কোনো সমস্যা নয়। ইন্ডাস্ট্রিয়াল সেন্সর নোড প্রায়ই ব্যাটারি-চালিত, বিস্তৃত/দূরবর্তী এলাকায় বসানো যেখানে WiFi কভারেজ নেই — LoRaWAN-এর দীর্ঘ রেঞ্জ ও অতি-কম পাওয়ার খরচ (কম ডেটা রেটের বিনিময়ে) এখানে বেশি উপযুক্ত।

প্র ০২ ফিটনেস ওয়্যারেবলে সরাসরি WiFi ব্যবহার না করে BLE + ফোন গেটওয়ে ব্যবহার করা হয় কেন?

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

প্র ০৩ উপরের ব্যাটারি লাইফ কোড সেলে BLE বার্স্টের ডিউরেশন যদি ০.৮ সেকেন্ড থেকে বাড়িয়ে ৫ সেকেন্ড করা হয় (উদাহরণ: বড় ডেটা সিঙ্ক), ব্যাটারি লাইফের উপর কী প্রভাব পড়বে বলে আপনার ধারণা?

চক্রের মোট দৈর্ঘ্য বাড়বে (৬০ থেকে ৬৪.২ সেকেন্ড), এবং যেহেতু BLE-এর কারেন্ট ড্র (৮ mA) অন্য মোডগুলোর চেয়ে অনেক বেশি, ওয়েটেড গড় কারেন্ট ড্র উল্লেখযোগ্যভাবে বেড়ে যাবে — ফলে battery_life_hours কমে যাবে। এটি দেখায় কেন ঘন ঘন বড় BLE ডেটা সিঙ্ক ওয়্যারেবলের ব্যাটারি লাইফের উপর একটি বাস্তব, পরিমাপযোগ্য প্রভাব ফেলে।

অনুশীলন

  1. চিন্তা করুন: উপরের কোড সেলে battery_capacity_mAh যদি ১৫০ থেকে ৩০০ mAh (দ্বিগুণ) করা হয়, battery_life_hours-এর উপর কী প্রভাব পড়বে?

    যেহেতু battery_life_hours = battery_capacity_mAh / weighted_current_mA, আর weighted_current_mA এই পরিবর্তনে অপরিবর্তিত থাকে, তাই ধারণক্ষমতা দ্বিগুণ করলে ব্যাটারি লাইফও সরাসরি দ্বিগুণ হয়ে যাবে — একটি সরল সমানুপাতিক সম্পর্ক।

  2. পরীক্ষা করুন: উপরের কোড সেলে modes ডিকশনারিতে একটি নতুন মোড যোগ করুন — "gps_burst": {"current_mA": 20.0, "duration_s": 1.0} (উদাহরণ: প্রতি চক্রে একবার GPS লোকেশন নেওয়া) — এবং Run চেপে দেখুন weighted_current_mA ও ব্যাটারি লাইফ কীভাবে বদলায়।

    চক্রের দৈর্ঘ্য ৬০ থেকে বেড়ে ৬১ সেকেন্ড হবে, আর ওয়েটেড গড় কারেন্ট ড্র উল্লেখযোগ্যভাবে বাড়বে (কারণ GPS-এর ২০ mA অন্য যেকোনো মোডের চেয়ে অনেক বেশি), ফলে গণনাকৃত ব্যাটারি লাইফ (ঘণ্টা ও দিন উভয়েই) কমে যাবে — বাস্তবেও GPS একটি ওয়্যারেবলের সবচেয়ে বেশি পাওয়ার-হাংরি ফিচারগুলোর একটি বলে সাধারণভাবে পরিচিত।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

  • কোর্সের সম্পূর্ণ সিলেবাস দেখুন ৫৭টি পাঠ মাইক্রোপ্রসেসর আর্কিটেকচার, এমবেডেড C, GPIO, টাইমার/PWM/ADC, সিরিয়াল প্রোটোকল, RTOS, সেন্সর/অ্যাকচুয়েটর, IoT আর্কিটেকচার, ওয়্যারলেস প্রোটোকল, MQTT/CoAP ও IoT সিকিউরিটি — বাকি পাঠগুলো শীঘ্রই যুক্ত হবে।
  • Computer Networks কোর্স সহোদর কোর্স সাধারণ নেটওয়ার্কিং স্তর/প্রোটোকলের ভিত্তি সেই কোর্সেই তৈরি হয়েছে — এই কোর্স IoT-স্পেসিফিক ওয়্যারলেস/অ্যাপ্লিকেশন প্রোটোকলে ফোকাস করে।
  • সব 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 ও আরও অনেক কোর্স — সব এক জায়গায়।
আগের পাঠ
এজ কম্পিউটিং ও এজ AI