এই টিউটোরিয়ালে, আমরা শিখব কীভাবে SunFounder ESP32 এবং একটি মাটির আর্দ্রতা সেন্সর ব্যবহার করে মাটির আর্দ্রতার মাত্রা পরিমাপ করা যায়, যা সেচ ব্যবস্থা স্বয়ংক্রিয় করতে সাহায্য করতে পারে। আর্দ্রতার মাত্রা পর্যবেক্ষণ করে, আমরা একটি বুজার চালু করতে পারি যখন আর্দ্রতা একটি নির্দিষ্ট সীমার নিচে নেমে যায়, যা নির্দেশ করে যে গাছগুলিতে জল দেওয়া প্রয়োজন। এই প্রকল্পটি উদ্ভিদের স্বাস্থ্য বজায় রাখার জন্য মূল্যবান এবং বিভিন্ন পরিবেশগত সেন্সিং অ্যাপ্লিকেশনের জন্য সম্প্রসারিত করা যেতে পারে। (ভিডিওতে 00:00 এ)
মাটির_আর্দ্রতা_মডিউল
আমরা একটি ক্যাপাসিটিভ মাটির আর্দ্রতা সেন্সর ব্যবহার করব, যা দুটি প্লেটের মধ্যে ক্যাপাসিট্যান্সের পরিবর্তন পরিমাপ করে কাজ করে, যা আশেপাশের মাধ্যমের আর্দ্রতা উপাদানের উপর ভিত্তি করে পরিবর্তিত হয়। এই সেন্সরটি একটি অ্যানালগ আউটপুট প্রদান করবে যা আর্দ্রতার মাত্রা প্রতিফলিত করে, যা আমাদের রিডিংয়ের উপর ভিত্তি করে সিদ্ধান্ত নিতে দেয়। ESP32 অ্যানালগ আউটপুট পড়বে এবং মাটি খুব শুষ্ক হলে একটি বুজার সক্রিয় করবে।
হার্ডওয়্যার ব্যাখ্যা
এই প্রকল্পের জন্য, প্রধান উপাদানগুলি হল SunFounder ESP32 মাইক্রোকন্ট্রোলার, ক্যাপাসিটিভ মাটির আর্দ্রতা সেন্সর এবং একটি বুজার। ESP32-তে অন্তর্নির্মিত Wi-Fi এবং ব্লুটুথ রয়েছে, যা দূরবর্তী পর্যবেক্ষণ এবং নিয়ন্ত্রণ সক্ষম করে। মাটির আর্দ্রতা সেন্সরটি দুটি প্লেট নিয়ে গঠিত যা ক্যাপাসিট্যান্স পরিমাপ করে, যা মাটির আর্দ্রতার মাত্রার উপর নির্ভর করে পরিবর্তিত হয়। ক্যাপাসিট্যান্সের এই পরিবর্তন আউটপুট ভোল্টেজ পরিবর্তন করে, যা ESP32 তার অ্যানালগ ইনপুটের মাধ্যমে পড়ে। বুজারটি আমাদের সতর্ক করবে যখন আর্দ্রতার মাত্রা একটি নির্ধারিত সীমার নিচে নেমে যায়।
মাটির_আর্দ্রতা_মডিউল_স্কিম্যাটিক
ডেটাশিট বিবরণ
প্রস্তুতকারক
SunFounder
পার্ট নম্বর
মাটির আর্দ্রতা সেন্সর
অপারেটিং ভোল্টেজ
3.3 থেকে 5 V
আউটপুট ধরন
অ্যানালগ
সিগন্যাল পরিসীমা
0 থেকে 3.3 V
প্রতিক্রিয়া সময়
দ্রুত
মাত্রা
প্রায় 60 x 20 মিমি
নোট / ভেরিয়েন্ট
ক্যাপাসিটিভ ধরনের সেন্সর
ক্ষতি রোধ করতে সেন্সরটি সম্পূর্ণরূপে জলে নিমজ্জিত না হয় তা নিশ্চিত করুন।
স্থিতিশীল রিডিংয়ের জন্য প্রয়োজন হলে উপযুক্ত পুল-আপ রোধ ব্যবহার করুন।
সঠিক আর্দ্রতা রিডিংয়ের জন্য আপনার নির্দিষ্ট মাটির ধরনের জন্য সেন্সরটি ক্যালিব্রেট করুন।
সিগন্যাল ক্ষতি এড়াতে সঠিক তারের সংযোগ বজায় রাখুন।
অতিরিক্ত ভোল্টেজ পরিস্থিতি এড়াতে পাওয়ার সাপ্লাই সম্পর্কে সতর্ক থাকুন।
ওয়্যারিং নির্দেশাবলী
ESP32-24-soild-moisture-wiring
ESP32-তে মাটির আর্দ্রতা সেন্সরটি সংযোগ করতে, সেন্সরের VCC পিনটি ESP32-এর 3.3V পিনের সাথে সংযুক্ত করুন। এরপর, সেন্সরের GND পিনটি ESP32-এর একটি GND পিনের সাথে সংযুক্ত করুন। মাটির আর্দ্রতা সেন্সরের অ্যানালগ আউটপুট পিনটি ESP32-এর অ্যানালগ পিন 35-এর সাথে সংযুক্ত করা উচিত। বুজারের জন্য, ধনাত্মক পিনটি ESP32-এর ডিজিটাল পিন 13-এর সাথে এবং ঋণাত্মক পিনটি GND-এর সাথে সংযুক্ত করুন। অপারেশনের সময় কোনো বিরতিহীন সমস্যা এড়াতে সমস্ত সংযোগ নিরাপদ কিনা তা নিশ্চিত করুন।
কোড উদাহরণ ও ওয়াকথ্রু
নীচে কোডের একটি সংক্ষিপ্ত অংশ দেওয়া হল যা সিরিয়াল যোগাযোগ শুরু করে এবং আর্দ্রতা সেন্সরের মান পড়ে:
void setup() {
// প্রতি সেকেন্ডে 115200 বিটে সিরিয়াল যোগাযোগ শুরু করুন:
Serial.begin(115200);
}
এই স্নিপেটটি সিরিয়াল যোগাযোগ সেট আপ করে, যা আমাদের সিরিয়াল মনিটরে আর্দ্রতা সেন্সরের রিডিং দেখতে দেয়।
এরপর, আমাদের মূল লুপ রয়েছে যেখানে সেন্সর থেকে অ্যানালগ মান পড়া হয়:
void loop() {
// অ্যানালগ মান পড়ুন
int analogValue = analogRead(35);
// মানগুলি প্রিন্ট করুন
Serial.printf("অ্যানালগ মান = %d\n",analogValue);
delay(300); // সিরিয়াল মনিটর থেকে স্পষ্ট পড়ার জন্য রিডের মধ্যে বিলম্ব
}
এই লুপে, কোডটি পিন 35 থেকে অ্যানালগ মান ক্রমাগত পড়ে এবং প্রতি 300 মিলিসেকেন্ডে সিরিয়াল মনিটরে প্রিন্ট করে। এটি আমাদের রিয়েল-টাইমে আর্দ্রতার মাত্রা পর্যবেক্ষণ করতে দেয়।
প্রদর্শন / কী আশা করবেন
যখন আর্দ্রতা সেন্সরটি শুষ্ক মাটিতে স্থাপন করা হয়, তখন অ্যানালগ মান বেশি হবে, যা কম আর্দ্রতা নির্দেশ করে। বিপরীতভাবে, যখন সেন্সরটি আর্দ্র মাটিতে ঢোকানো হয়, তখন মানটি উল্লেখযোগ্যভাবে কমে যাবে। যদি রিডিংটি নির্ধারিত সীমার নিচে পড়ে (যেমন, 2000), তাহলে পিন 13-এর সাথে সংযুক্ত বুজারটি সক্রিয় হবে, যা সংকেত দেবে যে গাছটিতে জল দেওয়া প্রয়োজন। ভাসমান ইনপুট সম্পর্কে সতর্ক থাকুন এবং নিশ্চিত করুন যে সেন্সরটি তার প্রস্তাবিত সীমার বাইরে জলের সংস্পর্শে না আসে (ভিডিওতে 02:30 এ)।
ভিডিও টাইমস্ট্যাম্প
00:00 শুরু
1:51 প্রকল্পের পরিচিতি
5:53 ওয়্যারিং ব্যাখ্যা
7:23 Arduino কোড ব্যাখ্যা
9:09 Arduino IDE-তে ESP32 বোর্ড এবং COM পোর্ট নির্বাচন
823-ESP32 Tutorial 24/55- Arduino code for soil moisture measurement
ভাষা: C++
void setup() {
// Initialize serial communication at 115200 bits per second:
Serial.begin(115200);
}
void loop() {
// Read the analog value
int analogValue = analogRead(35);
// Print out the values
Serial.printf("Analog value = %d\n",analogValue);
delay(300); // delay between reads for clear read from serial monitor
}
প্রকাশনা: আমাজন অ্যাসোসিয়েট হিসেবে, আমরা যোগ্য ক্রয়ের মাধ্যমে উপার্জন করি। এর মানে হল যে আপনি যদি একটি লিঙ্কে ক্লিক করেন এবং অতিরিক্ত খরচ ছাড়াই একটি ক্রয় করেন, তবে আমরা একটি ছোট কমিশন পেতে পারি।