Update README.bn.md

pull/242/head
Diganta Majumder 4 years ago committed by GitHub
parent 45dc779ecd
commit a68bbdd927
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,6 +1,6 @@
# আইওটি ডিভাইসটিকে ইন্টারনেটে সংযুক্তিকরণ # আইওটি ডিভাইসটিকে ইন্টারনেটে সংযুক্তিকরণ
![A sketchnote overview of this lesson](../../../sketchnotes/lesson-4.jpg) ![A sketchnote overview of this lesson](../../../../sketchnotes/lesson-4.jpg)
> [Nitya Narasimhan](https://github.com/nitya) তৈরী করছেন এই স্কেচনোটটি। এটির বড় সংস্করণ দেখতে চাইলে ছবিটির উপর ক্লিক করুন। > [Nitya Narasimhan](https://github.com/nitya) তৈরী করছেন এই স্কেচনোটটি। এটির বড় সংস্করণ দেখতে চাইলে ছবিটির উপর ক্লিক করুন।
@ -29,7 +29,7 @@ IoT শব্দে **I** হলো Internet - আইওটিতে "ইন্
আইওটি যন্ত্রসমূহ কয়েকটি জনপ্রিয় কমিউনিকেশন প্রটোকল ব্যবহার করে ইন্টারনেটের সাথে সংযুক্ত হয়। সবচেয়ে জনপ্রিয় হচ্ছে কোন ধরনের সার্ভার বা Broker এর মাধ্যমে বার্তা প্রচার/সাবস্ক্রাইব করা। আইওটি যন্ত্রসমূহ এই ব্রোকারের সাথে সংযুক্ত হয়ে টেলেমেট্রি প্রচার করে এবং কমান্ডগুলোতে সাবস্ক্রাইব করে। ক্লাউড সেবাগুলোও এই ব্রোকারের সাথে সংযুক্ত হয়ে সকল টেলেমেট্রি বার্তাগুলোতে সাবস্ক্রাইব করে এবং কমান্ডগুলোকে হয় একটি নির্দিষ্ট ডিভাইসে না হয় অনেকগুলো ডিভাইসের একটি গ্রুপে প্রেরণ করে। আইওটি যন্ত্রসমূহ কয়েকটি জনপ্রিয় কমিউনিকেশন প্রটোকল ব্যবহার করে ইন্টারনেটের সাথে সংযুক্ত হয়। সবচেয়ে জনপ্রিয় হচ্ছে কোন ধরনের সার্ভার বা Broker এর মাধ্যমে বার্তা প্রচার/সাবস্ক্রাইব করা। আইওটি যন্ত্রসমূহ এই ব্রোকারের সাথে সংযুক্ত হয়ে টেলেমেট্রি প্রচার করে এবং কমান্ডগুলোতে সাবস্ক্রাইব করে। ক্লাউড সেবাগুলোও এই ব্রোকারের সাথে সংযুক্ত হয়ে সকল টেলেমেট্রি বার্তাগুলোতে সাবস্ক্রাইব করে এবং কমান্ডগুলোকে হয় একটি নির্দিষ্ট ডিভাইসে না হয় অনেকগুলো ডিভাইসের একটি গ্রুপে প্রেরণ করে।
![আইওটি যন্ত্রসমূহ এই মধ্যস্থতাকারীর (Broker) সাথে সংযুক্ত হয়ে টেলেমেট্রি প্রচার করে এবং আদেশগুলোতে সাবস্ক্রাইব করে। ক্লাউড সেবাগুলোও এই মধ্যস্থতাকারীর সাথে সংযুক্ত হয়ে সকল টেলেমেট্রি বার্তাগুলোতে সাবস্ক্রাইব করে এবং কমান্ডগুলোকে একটি নির্দিষ্ট ডিভাইসে প্রচার করে।](../../../images/pub-sub.png) ![আইওটি যন্ত্রসমূহ এই মধ্যস্থতাকারীর (Broker) সাথে সংযুক্ত হয়ে টেলেমেট্রি প্রচার করে এবং আদেশগুলোতে সাবস্ক্রাইব করে। ক্লাউড সেবাগুলোও এই মধ্যস্থতাকারীর সাথে সংযুক্ত হয়ে সকল টেলেমেট্রি বার্তাগুলোতে সাবস্ক্রাইব করে এবং কমান্ডগুলোকে একটি নির্দিষ্ট ডিভাইসে প্রচার করে।](../../../../images/pub-sub.png)
আইওটি ডিভাইসগুলোর জন্য MQTT হলো সবচেয়ে জনপ্রিয় কমিউনিকেশন প্রটোকল যা এই পাঠে অন্তর্ভুক্ত করা হয়েছে। অন্যান্য প্রটোকলের মধ্যে AMQP এবং HTTP/HTTPS অন্তর্ভুক্ত আছে। আইওটি ডিভাইসগুলোর জন্য MQTT হলো সবচেয়ে জনপ্রিয় কমিউনিকেশন প্রটোকল যা এই পাঠে অন্তর্ভুক্ত করা হয়েছে। অন্যান্য প্রটোকলের মধ্যে AMQP এবং HTTP/HTTPS অন্তর্ভুক্ত আছে।
@ -39,7 +39,7 @@ IoT শব্দে **I** হলো Internet - আইওটিতে "ইন্
MQTT-র একটি ব্রোকার এবং একাধিক ক্লায়েন্ট রয়েছে। সমস্ত ক্লায়েন্ট ব্রোকারের সাথে সংযুক্ত হয় এবং ব্রোকার সংশ্লিষ্ট ক্লায়েন্টদের বার্তা প্রেরণ করে। বার্তাগুলো কোনো বিশেষ গ্রাহককে সরাসরি প্রেরণ না করে বরং নামকরণ করা টপিকগুলি ব্যবহার করে একটি নির্দিষ্ট পথে পাঠানো হয়। একটি ক্লায়েন্ট একটি টপিক প্রচার করতে পারে এবং যেকোনো ক্লায়েন্ট যে ওই টপিকে সাবস্ক্রাইব করে তা সেই টপিক সম্প্রর্কিত বার্তা গ্রহণ করে। MQTT-র একটি ব্রোকার এবং একাধিক ক্লায়েন্ট রয়েছে। সমস্ত ক্লায়েন্ট ব্রোকারের সাথে সংযুক্ত হয় এবং ব্রোকার সংশ্লিষ্ট ক্লায়েন্টদের বার্তা প্রেরণ করে। বার্তাগুলো কোনো বিশেষ গ্রাহককে সরাসরি প্রেরণ না করে বরং নামকরণ করা টপিকগুলি ব্যবহার করে একটি নির্দিষ্ট পথে পাঠানো হয়। একটি ক্লায়েন্ট একটি টপিক প্রচার করতে পারে এবং যেকোনো ক্লায়েন্ট যে ওই টপিকে সাবস্ক্রাইব করে তা সেই টপিক সম্প্রর্কিত বার্তা গ্রহণ করে।
![IoT device publishing telemetry on the /telemetry topic, and the cloud service subscribing to that topic](../../../images/mqtt.png) ![IoT device publishing telemetry on the /telemetry topic, and the cloud service subscribing to that topic](../../../../images/mqtt.png)
✅ চলুন কিছু গবেষণা করি। যদি অনেকগুলো আইওটি ডিভাইস থাকে তাহলে কিভাবে নিশ্চিত হবো যে MQTT- ব্রোকার সবগুলো বার্তা নিয়ন্ত্রন করতে পারবে কিনা? ✅ চলুন কিছু গবেষণা করি। যদি অনেকগুলো আইওটি ডিভাইস থাকে তাহলে কিভাবে নিশ্চিত হবো যে MQTT- ব্রোকার সবগুলো বার্তা নিয়ন্ত্রন করতে পারবে কিনা?
@ -61,7 +61,7 @@ MQTT-র একটি ব্রোকার এবং একাধিক ক্
> 💁 এই টেস্ট ব্রোকারটি উন্মুক্ত যা মোটেই সুরক্ষিত নয়। যে কেউ বুঝতে পারবে এতে কি পাবলিশ করা হয়েছে, তাই যে তথ্যগুলোতে গোপনীয় রাখা জরুরি সেগুলো এতে ব্যবহার না করার পরামর্শ রইল। > 💁 এই টেস্ট ব্রোকারটি উন্মুক্ত যা মোটেই সুরক্ষিত নয়। যে কেউ বুঝতে পারবে এতে কি পাবলিশ করা হয়েছে, তাই যে তথ্যগুলোতে গোপনীয় রাখা জরুরি সেগুলো এতে ব্যবহার না করার পরামর্শ রইল।
![A flow chart of the assignment showing light levels being read and checked, and the LED begin controlled](../../../images/assignment-1-internet-flow.png) ![A flow chart of the assignment showing light levels being read and checked, and the LED begin controlled](../../../../images/assignment-1-internet-flow.png)
ডিভাইসটি MQTT ব্রোকারে সংযুক্ত করতে সংশ্লিষ্ট ধাপগুলো অনুসরণ করিঃ ডিভাইসটি MQTT ব্রোকারে সংযুক্ত করতে সংশ্লিষ্ট ধাপগুলো অনুসরণ করিঃ
@ -98,7 +98,7 @@ MQTT- সংযোগসমূহ পাবলিক ও উন্মুক্
চলুন পাঠ 1 থেকে স্মার্ট থার্মোস্টেটের উদাহরণটি দেখি। চলুন পাঠ 1 থেকে স্মার্ট থার্মোস্টেটের উদাহরণটি দেখি।
![একাধিক রুম সেন্সর ব্যবহার করে ইন্টারনেটে সংযুক্ত একটি থার্মোস্ট্যাট](../../../images/telemetry.png) ![একাধিক রুম সেন্সর ব্যবহার করে ইন্টারনেটে সংযুক্ত একটি থার্মোস্ট্যাট](../../../../images/telemetry.png)
টেলিমেট্রি সংগ্রহের জন্য থার্মোস্ট্যাট এর তাপমাত্রাভিত্তিক সেন্সর রয়েছে। এটিতে একটি তাপমাত্রাভিত্তিক সেন্সর বিল্টইন থাকে এবং ওয়ারলেস প্রোটোকল যেমন [ব্লুটুথ লো এনার্জি](https://wikipedia.org/wiki/Bluetooth_Low_Energy) (BLE) এর মাধ্যমে একাধিক তাপমাত্রাভিত্তিক সেন্সর এর সাথে সংযুক্ত হতে পারে। টেলিমেট্রি সংগ্রহের জন্য থার্মোস্ট্যাট এর তাপমাত্রাভিত্তিক সেন্সর রয়েছে। এটিতে একটি তাপমাত্রাভিত্তিক সেন্সর বিল্টইন থাকে এবং ওয়ারলেস প্রোটোকল যেমন [ব্লুটুথ লো এনার্জি](https://wikipedia.org/wiki/Bluetooth_Low_Energy) (BLE) এর মাধ্যমে একাধিক তাপমাত্রাভিত্তিক সেন্সর এর সাথে সংযুক্ত হতে পারে।
@ -243,11 +243,11 @@ Python এবং VS Code ইন্সটল করি।
1. যখন VS Code-টি ওপেন হবে তখন তা পাইথনের ভার্চুয়াল এনভায়রনমেন্টটিকে চালু করবে। এটি উপরে স্ট্যাটাস বারে দেখা যাবেঃ 1. যখন VS Code-টি ওপেন হবে তখন তা পাইথনের ভার্চুয়াল এনভায়রনমেন্টটিকে চালু করবে। এটি উপরে স্ট্যাটাস বারে দেখা যাবেঃ
![VS Code showing the selected virtual environment](../../../images/vscode-virtual-env.png) ![VS Code showing the selected virtual environment](../../../../images/vscode-virtual-env.png)
1. যদি VS Code স্টার্ট হওয়ার সময় VS Code টার্মিনালটি চালুরত অবস্থায় থাকে তবে ভার্চুয়াল এনভায়রনমেন্ট VS Code-এ একটিভেট হবে না। এর থেকে উত্তরণের সহজ উপায় হচ্ছে **Kill the active terminal instance** বাটনটিতে ক্লিক করে টার্মিনালটিকে বন্ধ করে দিবো। 1. যদি VS Code স্টার্ট হওয়ার সময় VS Code টার্মিনালটি চালুরত অবস্থায় থাকে তবে ভার্চুয়াল এনভায়রনমেন্ট VS Code-এ একটিভেট হবে না। এর থেকে উত্তরণের সহজ উপায় হচ্ছে **Kill the active terminal instance** বাটনটিতে ক্লিক করে টার্মিনালটিকে বন্ধ করে দিবো।
![VS Code Kill the active terminal instance button](../../../images/vscode-kill-terminal.png) ![VS Code Kill the active terminal instance button](../../../../images/vscode-kill-terminal.png)
1. নতুন VS Code টার্মিনাল চালু করতে *Terminal -> New Terminal এ সিলেক্ট করবো বা `` CTRL+` `` প্রেস করবো। এই নতুন টার্মিনালটি একটি কল করে ভার্চুয়াল এনভায়রনমেন্টটি এক্টিভেট করবে যার ফলে এটি টার্মিনালে লোড হয়ে আসবে। ভার্চুয়াল এনভায়রনমেন্টের নামটি (`.venv`) প্রম্পটে দেখা যাবেঃ 1. নতুন VS Code টার্মিনাল চালু করতে *Terminal -> New Terminal এ সিলেক্ট করবো বা `` CTRL+` `` প্রেস করবো। এই নতুন টার্মিনালটি একটি কল করে ভার্চুয়াল এনভায়রনমেন্টটি এক্টিভেট করবে যার ফলে এটি টার্মিনালে লোড হয়ে আসবে। ভার্চুয়াল এনভায়রনমেন্টের নামটি (`.venv`) প্রম্পটে দেখা যাবেঃ
@ -335,7 +335,7 @@ Python এবং VS Code ইন্সটল করি।
আইওটি ডিভাইস ডিজাইনারদের বিবেচনা করা উচিত যাতে ইন্টারনেট আউটেজের সময় বা অবস্থানজনিত কারণে সিগন্যাল লসের সময় আইওটি ডিভাইস ব্যবহার করা যাবে কিনা। একটি স্মার্ট থার্মোস্ট্যাট যদি আউটেজের কারনে ক্লাউডে টেলেমেট্রি প্রেরণ করতে না পারে তবে হিটিং সিস্টেমকে কন্ট্রোল করতে তাতে অবশ্যই সীমিত সংখ্যক সিদ্ধান্ত নেওয়ার সক্ষমতা থাকতে হবে। আইওটি ডিভাইস ডিজাইনারদের বিবেচনা করা উচিত যাতে ইন্টারনেট আউটেজের সময় বা অবস্থানজনিত কারণে সিগন্যাল লসের সময় আইওটি ডিভাইস ব্যবহার করা যাবে কিনা। একটি স্মার্ট থার্মোস্ট্যাট যদি আউটেজের কারনে ক্লাউডে টেলেমেট্রি প্রেরণ করতে না পারে তবে হিটিং সিস্টেমকে কন্ট্রোল করতে তাতে অবশ্যই সীমিত সংখ্যক সিদ্ধান্ত নেওয়ার সক্ষমতা থাকতে হবে।
[![এই ফেরারীটি আচ্ছাদিত হয়ে আছে কারণ কেউ একজন আন্ডারগ্রাউন্ডে এটিকে আপগ্রেড করতে চেয়েছিল যেখানে কোনো সেল অপারেশন নেই ](../../../images/bricked-car.png)](https://twitter.com/internetofshit/status/1315736960082808832) [![এই ফেরারীটি আচ্ছাদিত হয়ে আছে কারণ কেউ একজন আন্ডারগ্রাউন্ডে এটিকে আপগ্রেড করতে চেয়েছিল যেখানে কোনো সেল অপারেশন নেই ](../../../../images/bricked-car.png)](https://twitter.com/internetofshit/status/1315736960082808832)
লস অফ কানেক্টিভিটি MQTT-কতৃক সামালানোর জন্য প্রয়োজনে ডিভাইস এবং সার্ভার কোডকে মেসেজ ডেলিভারি নিশ্চিত করার দায়ভার গ্রহণ করতে হবে। উদারণস্বরূপ, একটি রিপ্লাই টপিকে অতিরিক্ত মেসেজসমূহের মাধ্যমে প্রেরিত সমস্ত মেসেজসমূহ প্রয়োজনে চাওয়া এবং তা যদি না হয় তবে সেগুলো ম্যানুয়ালি একটি সারিতে থাকবে যাতে পরবর্তী রিপ্লেতে দিবে। লস অফ কানেক্টিভিটি MQTT-কতৃক সামালানোর জন্য প্রয়োজনে ডিভাইস এবং সার্ভার কোডকে মেসেজ ডেলিভারি নিশ্চিত করার দায়ভার গ্রহণ করতে হবে। উদারণস্বরূপ, একটি রিপ্লাই টপিকে অতিরিক্ত মেসেজসমূহের মাধ্যমে প্রেরিত সমস্ত মেসেজসমূহ প্রয়োজনে চাওয়া এবং তা যদি না হয় তবে সেগুলো ম্যানুয়ালি একটি সারিতে থাকবে যাতে পরবর্তী রিপ্লেতে দিবে।
@ -343,7 +343,7 @@ Python এবং VS Code ইন্সটল করি।
কমান্ডস হচ্ছে মেসেজ যা ক্লাউড দ্বারা কোন ডিভাইসে প্রেরণ করা হয় যাতে কিছু করার নির্দেশনা দেওয়া থাকে। বেশিরভাগক্ষেত্রে একচুয়েটরের আউটপুট সম্বলিত কিছু থাকে কিন্তু এতে ডিভাইসের নিজের জন্য কিছু নির্দেশনাও থাকতে পারে (যেমনঃ রিব্যুট করা) বা এক্সট্রা টেলেমেট্রি জড়ো করা এবং রেসপন্স হিসেবে কমান্ডকে রিটার্ন করা। কমান্ডস হচ্ছে মেসেজ যা ক্লাউড দ্বারা কোন ডিভাইসে প্রেরণ করা হয় যাতে কিছু করার নির্দেশনা দেওয়া থাকে। বেশিরভাগক্ষেত্রে একচুয়েটরের আউটপুট সম্বলিত কিছু থাকে কিন্তু এতে ডিভাইসের নিজের জন্য কিছু নির্দেশনাও থাকতে পারে (যেমনঃ রিব্যুট করা) বা এক্সট্রা টেলেমেট্রি জড়ো করা এবং রেসপন্স হিসেবে কমান্ডকে রিটার্ন করা।
![ইন্টারনেটে সংযুক্ত একটি থার্মোস্ট্যাট কমান্ড রিসিভের মাধ্যমে হিটিং সিস্টেমকে চালু করছে](../../../images/commands.png) ![ইন্টারনেটে সংযুক্ত একটি থার্মোস্ট্যাট কমান্ড রিসিভের মাধ্যমে হিটিং সিস্টেমকে চালু করছে](../../../../images/commands.png)
হিটিং সিস্টেম চালু করার জন্য একটি থার্মোস্ট্যাট ক্লাউ থেকে কমান্ড গ্রহণ করতে পারে। যদি ক্লাউড সার্ভিস সমস্ত সেন্সর হতে প্রাপ্ত টেলেমেট্রি ডাটার উপর ভিত্তি করে সিদ্ধান্ত নেয় যে হিটিং সিস্টেমটি চালু করা জরুরি তবে তা সে অনুযায়ী কমান্ড প্রেরণ করবে। হিটিং সিস্টেম চালু করার জন্য একটি থার্মোস্ট্যাট ক্লাউ থেকে কমান্ড গ্রহণ করতে পারে। যদি ক্লাউড সার্ভিস সমস্ত সেন্সর হতে প্রাপ্ত টেলেমেট্রি ডাটার উপর ভিত্তি করে সিদ্ধান্ত নেয় যে হিটিং সিস্টেমটি চালু করা জরুরি তবে তা সে অনুযায়ী কমান্ড প্রেরণ করবে।

Loading…
Cancel
Save