
স্কেচনোটটি তৈরী করেছেন [Nitya Narasimhan](https://github.com/nitya)। বড় সংস্করণে দেখার জন্য ছবিটিতে ক্লিক করতে হবে।
> স্কেচনোটটি তৈরী করেছেন [Nitya Narasimhan](https://github.com/nitya)। বড় সংস্করণে দেখার জন্য ছবিটিতে ক্লিক করতে হবে।
## লেকচার-পূর্ববর্তী কুইজ
@ -16,9 +16,9 @@
* [লো পাওয়ার আইওটি ডিভাইস থেকে হাই পাওয়ার ডিভাইস নিয়ন্ত্রণ](#লো-পাওয়ার-আইওটি-ডিভাইস-থেকে-হাই-পাওয়ার-ডিভাইস-নিয়ন্ত্রণ)
* [রিলে নিয়ন্ত্রণ](#রিলে-নিয়ন্ত্রণ)
* [MQTT দ্বারা উদ্ভিদ নিয়ন্ত্রণ](#control-a-relay)
* [সেন্সর এবং অ্যাকচুয়েটরের টাইমিং](#sensor-and-actuator-timing)
* [উদ্ভিদ নিয়ন্ত্রণে টাইমিং যুক্ত করা](#add-timing-to-your-plant-control)
* [MQTT দ্বারা উদ্ভিদ নিয়ন্ত্রণ](#MQTT-দ্বারা-উদ্ভিদ-নিয়ন্ত্রণ)
* [সেন্সর এবং অ্যাকচুয়েটরের টাইমিং](#সেন্সর-এবং-অ্যাকচুয়েটরের-টাইমিং)
* [উদ্ভিদ নিয়ন্ত্রণে টাইমিং যুক্ত করা](#উদ্ভিদ-নিয়ন্ত্রণ-সার্ভারে-টাইমিং-যুক্ত-করা)
## লো পাওয়ার আইওটি ডিভাইস থেকে হাই পাওয়ার ডিভাইস নিয়ন্ত্রণ
@ -28,7 +28,7 @@
এই সমস্যার সমাধানটি হল পাম্পকে একটি বাহ্যিক বিদ্যুৎ সরবরাহের সাথে সংযুক্ত করা এবং পাম্পটি চালু করার জন্য একটি অ্যাকচুয়েটর ব্যবহার করা যা অনেকটা বাতির স্যুইচ জ্বালানোর মতো। আমাদের আঙুল একটি স্যুইচ ফ্লিপ করতে খুব সামান্য পরিমাণ শক্তি (দেহের শক্তির আকারে) লাগে এবং এটি 110v বা 240v এ চলমান বিদ্যুতের সাথে বাতিকে সংযুক্ত করে।


> 🎓 [Mains electricity](https://wikipedia.org/wiki/Mains_electricity) বলতে বোঝানো হয়, জাতীয় অবকাঠামো থেকে বাসাবাড়িতে সরবরাহকৃত কারেন্ট।
@ -42,17 +42,17 @@
> 🎓 [ইলেক্ট্রোম্যাগনেট](https://wikipedia.org/wiki/Electromagnet) হলো এমন চৌম্বক যেগুলো তার প্যাঁচানো কয়েল দিয়ে বিদ্যুৎ পরিবহন করানোর মাধ্যমে তৈরী করা হয়। এখানে বিদ্যুৎ চালু করা হলে, কুণ্ডলী চৌম্বকিত হয়ে যায়। বিদ্যুৎ বন্ধ হয়ে গেলে, তা চুম্বকত্ব হারিয়ে ফেলে।


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


কন্ট্রোল সার্কিট অফ হয়ে গেলে, তড়িৎ চৌম্বকটি বন্ধ হয়ে যায়। এতে করে তা লিভারটি ছেড়ে দেয় এবং আউটপুট সার্কিটটি বন্ধ হয়ে যায়। রিলেগুলি হল ডিজিটাল অ্যাকচুয়েটর - রিলেতে একটি উচ্চতর সংকেত High সিগন্যাল এটি চালু করে, আবার Low সিগন্যাল এটি বন্ধ করে দেয়।
আউটপুট সার্কিটটি সেচকার্যের মতো অতিরিক্ত হার্ডওয়্যারকে পাওয়ার সরবরাহ করতে ব্যবহৃত হতে পারে। আইওটি ডিভাইস রিলে এর স্যুইচ অন করতে পারে যার ফলে সেচকার্য চালু করা যায় এবং গাছপালার পানির ব্যবস্থা হবে। আইওটি ডিভাইসটি তারপরে রিলেটি বন্ধ করে, এতে করে সেচ ব্যবস্থাতে পাওয়ার সরবরাহ বন্ধ হয়ে যায় এবং পানি দেয়ার কাজটি শেষ হয়।


উপরের ভিডিওতে, একটি রিলে চালু আছে। রিলে এর উপরে একটি এলইডি রয়েছে যা আমাদেরকে জানান দেয় এটি চালু রয়েছে কিনা (কিছু রিলে বোর্ডগুলি রিলে চালু বা বন্ধ আছে কিনা তা বোঝানোর জন্য এলইডি রয়েছে), এবং পাম্পে এনার্জি সরবরাহ করা হয়। ফলে এটি চালু হয়ে উদ্ভিদের জন্য পানি পাম্প করে।
@ -68,11 +68,11 @@
ইলেক্ট্রোম্যাগনেট দ্বারা লিভারটি সক্রিয় করতে এবং তার কাজ করতে খুব বেশি পাওয়ারের প্রয়োজন হয় না। এটি আইওটি ডেভ কিট থেকে 3.3V বা 5V আউটপুট ব্যবহার করে নিয়ন্ত্রণ করা যায়। ইন্ডাস্ট্রিয়াল ব্যবহারের জন্য মেইন ভোল্টেজ বা এমনকি উচ্চতর পাওয়ার লেভেলসহ রিলের উপর নির্ভর করে, আউটপুট সার্কিট আরও অনেক বেশি পাওয়ার বহন করতে পারে। এইভাবেই মূলত একটি আইওটি ডেভ কিট কোন একটি গাছের জন্য একটি ছোট পাম্প থেকে শুরু করে পুরো বাণিজ্যিক খামারের বিশাল শিল্প ব্যবস্থার সেচকার্য সমগ্রভাবে নিয়ন্ত্রণ করতে পারে।


উপরের চিত্রটিতে একটি গ্রোভ রিলে দেখা যাচ্ছে। কন্ট্রোল সার্কিটটি একটি আইওটি ডিভাইসের সাথে সংযোগ স্থাপন করে এবং 3.3V বা 5V ব্যবহার করে রিলেটি চালু বা বন্ধ করে দেয়। আউটপুট সার্কিটের দুটি টার্মিনাল রয়েছে, যেকোন ১টি পাওয়ার বা গ্রাউন্ড হতে পারে। আউটপুট সার্কিট 10A এ 250V পর্যন্ত হ্যান্ডেল করতে পারে, যা বেশ কয়েকটি মেইন-কারেন্ট চালিত ডিভাইসের জন্য যথেষ্ট। চাইলে উচ্চ শক্তি সহ্যক্ষমতা সম্পন্ন রিলে পাওয়া যায় ।


উপরের চিত্রটিতে, একটি রিলে এর মাধ্যমে পাম্পে পাওয়ার সরবরাহ করা হয়। রিলে এর আউটপুট সার্কিটের এক টার্মিনালে ইউএসবি পাওয়ার সাপ্লাইয়ের +5V টার্মিনাল সংযোগকারী একটি লাল তার রয়েছে এবং আউটপুট সার্কিটের অন্য টার্মিনালটিকে পাম্পের সাথে সংযুক্ত করে অন্য একটি লাল তারের সংযুক্ত করে। একটি কালো তার ইউএসবি পাওয়ার সাপ্লাইয়ের সাথে যুক্ত পাম্পটিকে গ্রাউন্ডে সংযুক্ত করে। রিলে চালু হয়ে গেলে, এটি সার্কিটটি সম্পূর্ণ করে, পাম্পে 5V প্রেরণ করে, পাম্পটি চালু করে।
@ -96,19 +96,19 @@
1. MQTT তে সংযোগের জন্য `soil-moisture-sensor` প্রজেক্টে প্রাসঙ্গিক MQTT লাইব্রেরি / pip প্যাকেজ এবং কোড যুক্ত করতে হবে। ক্লায়েন্ট আইডির নাম হবে `soilmoisturesensor_client` যেখানে শুরুতে আমাদের আইডি লিখতে হবে।
> ⚠️ এক্ষেত্রে [প্রজেক্ট-১, লেসন-৪ এ MQTT এর সাথে সংযোগ অংশটিতে বিস্তারিত নির্দেশাবলী রয়েছে](../../../1-getting-started/lessons/4-connect-internet/README.md#connect-your-iot-device-to-mqtt) যা প্রয়োজনে দেখা যেতে পারে।
> ⚠️ এক্ষেত্রে [প্রজেক্ট-১, লেসন-৪ এ MQTT এর সাথে সংযোগ অংশটিতে বিস্তারিত নির্দেশাবলী রয়েছে](../../../../1-getting-started/lessons/4-connect-internet/README.md#connect-your-iot-device-to-mqtt) যা প্রয়োজনে দেখা যেতে পারে।
1. মাটির আর্দ্রতা সহ টেলিমেট্রি ডেটা পাঠানোর জন্য প্রয়োজনীয় কোড সংযোজন করতে হবে। টেলিমেট্রি ম্যাসেজের জন্য, প্রপার্টি এর নাম হবে `soil_moisture` ।
1. টেলিমেট্রিতে সাবস্ক্রাইব করার জন্য লোকাল সার্ভার কোড লিখতে হবে এবং `soil-moisture-sensor-server` নামক ফোল্ডারে রিলে নিয়ন্ত্রণ করার জন্য একটি কমান্ড প্রেরণ করতে হবে। কমান্ড ম্যাসেজে এই প্রপারটির নাম হবে `relay_on` এবং ক্লায়েন্ট আইডি `soilmoisturesensor_server` যেখানে শুরুতে আমাদের আইডি লিখতে হবে। প্রজেক্ট-১, লেসন-৪ এর জন্য যে সার্ভার কোডটি লিখেছিলাম, সেই একই কাঠামো রাখতে হবে এবং পরে এই কোডটিতে আরো কিছু যুক্ত হবে।
> ⚠️ এক্ষেত্রে [প্রজেক্ট-১, লেসন-৪ এর সার্ভার কোড লেখার অংশটি](../../../1-getting-started/lessons/4-connect-internet/README.md#write-the-server-code) এবং সেই একই পাঠের [MQTT এর মাধ্যমে কমান্ড পাঠানো সংক্রান্ত নির্দেশনা](../../../1-getting-started/lessons/4-connect-internet/README.md#send-commands-to-the-mqtt-broker) প্রয়োজনে দেখা যেতে পারে।
> ⚠️ এক্ষেত্রে [প্রজেক্ট-১, লেসন-৪ এর সার্ভার কোড লেখার অংশটি](../../../../1-getting-started/lessons/4-connect-internet/README.md#write-the-server-code) এবং সেই একই পাঠের [MQTT এর মাধ্যমে কমান্ড পাঠানো সংক্রান্ত নির্দেশনা](../../../1-getting-started/lessons/4-connect-internet/README.md#send-commands-to-the-mqtt-broker) প্রয়োজনে দেখা যেতে পারে।
1. প্রাপ্ত কমান্ড থেকে রিলে নিয়ন্ত্রণের জন্য রিলে লিখতে হবে, ম্যাসেজ থেকে `relay_on` প্রপার্টি ব্যবহার করতে হবে। `soil_moisture` যদি ৪৫০ এর বেশি হয়, তবে `relay_on` এর জন্য TRUE হবে অন্যথায় FALSE ।
> ⚠️ [প্রজেক্ট-১, লেসন-৪ এ MQTT এর কমান্ডগুলোর প্রতিক্রিয়া জানানোর অংশে বিস্তারিত নির্দেশাবলী রয়েছে](../../../1-getting-started/lessons/4-connect-internet/README.md#handle-commands-on-the-iot-device)।
> ⚠️ [প্রজেক্ট-১, লেসন-৪ এ MQTT এর কমান্ডগুলোর প্রতিক্রিয়া জানানোর অংশে বিস্তারিত নির্দেশাবলী রয়েছে](../../../../1-getting-started/lessons/4-connect-internet/README.md#handle-commands-on-the-iot-device)।
> 💁 এই কাজের সকল কোড [code-mqtt](./code-mqtt) ফোল্ডারে রয়েছে।
@ -124,7 +124,7 @@
> 💁 আমরা যদি সেন্সরটির খুব কাছাকাছি পানি সরবরাহ করি, তবে আমরা দেখবো আর্দ্রতার মান খুব বেড়ে যাওয়ার পর দ্রুতই কমছে, আবার আস্তে আস্তে বাড়ছে- এটি সেন্সরটির নিকটবর্তী পানি পুরো মাটি জুড়ে ছড়িয়ে পড়ার প্রক্রিয়ার কারণেই হচ্ছে ।


উপরের ডায়াগ্রামে মাটির আর্দ্রতা পাঠ 655 দেখায় । উদ্ভিদটিতে জল সরবরাহ করা হয়েছে, তবে এই রিডিং তৎক্ষণাৎ পরিবর্তন হয় না, কারণ পানি তখনও সেন্সরে পৌঁছেনি। সেন্সরে পৌঁছানোর আগেই পানি শেষ হয়ে যেতে পারে এবং এতে নতুন আর্দ্রতার মান কমে যায়।
@ -146,11 +146,11 @@
> 💁 এই ধরণের টাইমিং কন্ট্রোল সংক্রান্ত বৈশিষ্ট্যগুলো সুনির্দিষ্টভাবে নির্ভর করে - আমরা যে আইওটি ডিভাইসটি তৈরি করছি তার উপর, যে বৈশিষ্ট্য পরিমাপ করছি এবং যেধরণের সেন্সর ও অ্যাকচুয়েটর ব্যবহার করছি তার উপর।
>


মনে করি, আমাদের কাছে মাটির আর্দ্রতা সেন্সর এবং একটি রিলে দ্বারা নিয়ন্ত্রিত একটি পাম্প সহ একটি স্ট্রবেরি গাছ রয়েছে। আমরা পর্যবেক্ষণ করেছি যে যখনই পানি দেয়া হয়, মাটির আর্দ্রতা রিডিং স্থির হতে প্রায় 20 সেকেন্ড সময় লাগে। এর অর্থ হল রিলেটি বন্ধ করতে হবে এবং আর্দ্রতার মাত্রা পরীক্ষা করার আগে 20 সেকেন্ড অপেক্ষা করতে হবে। অত্যধিক পানির তুলনায় বরং পানি একটু একটু করে দেয়াই ভালো -আমরা চাইলেই আরও পানি যুক্ত করতে সর্বদা পাম্প চালু করতে পারি, কিন্তু মাটি থেকে আমরা পানি সরাতে পারবো না।


অর্থাৎ সেচ দেয়ার জন্য সর্বোত্তম ধাপগুলি হবে
@ -165,7 +165,7 @@
> 💁 ঘরের বহিরাঙ্গনে উদ্ভিদের বৃদ্ধির জন্য স্বয়ংক্রিয় সেচব্যবস্থা নিয়ন্ত্রণ করার সময় আবহাওয়ার পূর্বাভাসগুলিও বিবেচনায় নেওয়া উচিত। যদি বৃষ্টিপাত হওয়ার সম্ভাবনা থাকে, তবে বৃষ্টি শেষ হওয়ার পর্যন্ত পেক্ষা করা যেতে পারে। তখন হয়তো মাটি পর্যাপ্ত পরিমাণে আর্দ্র হতে পারে যেকারণে এটির আর পানির প্রয়োজন হয় না।
## উদ্ভিদ নিয়ন্ত্রণ সার্ভারে সময় যুক্ত করা
## উদ্ভিদ নিয়ন্ত্রণ সার্ভারে টাইমিং যুক্ত করা
সেচকার্যের সময়কালের নিয়ন্ত্রণ যুক্ত করতে এবং মাটির আর্দ্রতার মাত্রা পরিবর্তনের জন্য অপেক্ষা করতে সার্ভার কোডটি সংশোধন করা যেতে পারে। রিলে সময় নিয়ন্ত্রণের জন্য এলগরিদম হবে -