সুচিপত্র:

ESP32 Thing এবং Blynk ব্যবহার করে উদ্ভিদ মনিটর: 5 টি ধাপ
ESP32 Thing এবং Blynk ব্যবহার করে উদ্ভিদ মনিটর: 5 টি ধাপ

ভিডিও: ESP32 Thing এবং Blynk ব্যবহার করে উদ্ভিদ মনিটর: 5 টি ধাপ

ভিডিও: ESP32 Thing এবং Blynk ব্যবহার করে উদ্ভিদ মনিটর: 5 টি ধাপ
ভিডিও: ESP32 Project 24 - Measuring Soil Mositure for Irrigation | SunFounder's ESP32 IoT Learnig kit 2024, জুন
Anonim
ESP32 Thing এবং Blynk ব্যবহার করে উদ্ভিদ মনিটর
ESP32 Thing এবং Blynk ব্যবহার করে উদ্ভিদ মনিটর
ESP32 Thing এবং Blynk ব্যবহার করে উদ্ভিদ মনিটর
ESP32 Thing এবং Blynk ব্যবহার করে উদ্ভিদ মনিটর

ওভারভিউ

এই প্রকল্পের লক্ষ্য হ'ল একটি হোমপ্ল্যান্টের অবস্থা পর্যবেক্ষণ করতে সক্ষম একটি কমপ্যাক্ট ডিভাইস তৈরি করা। ডিভাইসটি ব্যবহারকারীকে ব্লাইঙ্ক অ্যাপ ব্যবহার করে স্মার্টফোন থেকে মাটির আর্দ্রতা স্তর, আর্দ্রতা স্তর, তাপমাত্রা এবং "অনুভূতির মতো" তাপমাত্রা পরীক্ষা করতে সক্ষম করে। অতিরিক্তভাবে, ব্যবহারকারী একটি ইমেল সতর্কতা পাবেন যখন শর্তগুলি উদ্ভিদের জন্য অনুপযুক্ত হয়ে ওঠে। উদাহরণস্বরূপ, ব্যবহারকারী উদ্ভিদকে জল দেওয়ার জন্য একটি অনুস্মারক পাবেন যখন মাটির আর্দ্রতার মাত্রা একটি উপযুক্ত স্তরের নিচে নেমে যায়।

ধাপ 1: প্রয়োজনীয়তা

প্রয়োজনীয়তা
প্রয়োজনীয়তা
প্রয়োজনীয়তা
প্রয়োজনীয়তা
প্রয়োজনীয়তা
প্রয়োজনীয়তা

এই প্রকল্পটি একটি স্পার্কফুন ESP32 জিনিস, একটি DHT22 সেন্সর এবং একটি ইলেকট্রনিক ইট মাটি আর্দ্রতা সেন্সর ব্যবহার করে। উপরন্তু, একটি ওয়াইফাই নেটওয়ার্ক এবং Blynk অ্যাপ্লিকেশন প্রয়োজন। ইএসপি 32 জিনিস ধারণ করার জন্য একটি জলরোধী ঘের তৈরি করা উচিত। যদিও এই উদাহরণটি বিদ্যুৎ উৎসের জন্য একটি স্ট্যান্ডার্ড আউটলেট ব্যবহার করে, রিচার্জেবল ব্যাটারি, সোলার প্যানেল এবং চার্জ কন্ট্রোলার যোগ করলে ডিভাইসটি নবায়নযোগ্য শক্তির মাধ্যমে চালিত হতে সক্ষম হবে।

ধাপ 2: Blynk

ব্লাইঙ্ক
ব্লাইঙ্ক
ব্লাইঙ্ক
ব্লাইঙ্ক
ব্লাইঙ্ক
ব্লাইঙ্ক

হওয়ার জন্য, Blynk অ্যাপটি ডাউনলোড করুন এবং একটি নতুন প্রকল্প তৈরি করুন। প্রমাণীকরণ টোকেন নোট করুন-এটি কোড ব্যবহার করা হবে। Blynk অ্যাপে নতুন ডিসপ্লে উইজেট তৈরি করুন এবং কোডে সংজ্ঞায়িত সংশ্লিষ্ট ভার্চুয়াল পিন নির্বাচন করুন। ধাক্কা দেওয়ার জন্য রিফ্রেশ ব্যবধান সেট করুন। প্রতিটি উইজেটকে তার নিজস্ব ভার্চুয়াল পিন দেওয়া উচিত।

ধাপ 3: Arduino IDE

Arduino IDE
Arduino IDE

Arduino IDE ডাউনলোড করুন। ওয়াইফাই সংযোগ নিশ্চিত করতে ESP32 জিনিস ড্রাইভার এবং ডেমো ডাউনলোডের নির্দেশাবলী অনুসরণ করুন। কোডে অন্তর্ভুক্ত Blynk এবং DHT লাইব্রেরিগুলি ডাউনলোড করুন। চূড়ান্ত কোডে প্রমাণীকরণ টোকেন, ওয়াইফাই পাসওয়ার্ড, ওয়াইফাই ব্যবহারকারীর নাম এবং ইমেল পূরণ করুন। মাটির আর্দ্রতা সেন্সরের জন্য ডেমো কোড ব্যবহার করুন মাটির প্রকারের জন্য সর্বনিম্ন এবং সর্বোচ্চ মান খুঁজে পেতে। চূড়ান্ত কোডে এই মানগুলি রেকর্ড করুন এবং প্রতিস্থাপন করুন। চূড়ান্ত কোডে উদ্ভিদের তাপমাত্রা, মাটির আর্দ্রতা এবং আর্দ্রতার ন্যূনতম মানগুলি প্রতিস্থাপন করুন। কোড আপলোড করুন।

ধাপ 4: এটি তৈরি করুন

এটি তৈরি করুন
এটি তৈরি করুন
এটি তৈরি করুন
এটি তৈরি করুন
এটি তৈরি করুন
এটি তৈরি করুন

প্রথমে, মাটির আর্দ্রতা সেন্সরকে 3.3V, গ্রাউন্ড এবং ইনপুট পিন 34 এর সাথে সংযুক্ত করুন। দ্রষ্টব্য, এটি অবিচ্ছেদ্য সুইচটি A তে সেট করা আছে কারণ এই সেন্সরের এনালগ সেটিং ব্যবহার করা হবে। এর পরে, DHT সেন্সরকে 3.3V, গ্রাউন্ড এবং ইনপুট পিন 27 এর সাথে সংযুক্ত করুন। এটি সঠিকভাবে তারযুক্ত কিনা তা নিশ্চিত করতে DHT ডায়াগ্রামটি পরীক্ষা করে দেখুন। ESP32 একটি জলরোধী ঘেরের ভিতরে মাটিতে আর্দ্রতা সেন্সর এবং পৃষ্ঠের উপরে DHT সেন্সর দিয়ে কনফিগার করুন। একটি বিদ্যুৎ উৎসের সাথে সংযোগ স্থাপন করুন এবং আপনার উদ্ভিদ এর পরিবেশের তথ্য উপভোগ করুন।

ধাপ 5: কোড

// অন্তর্ভুক্ত গ্রন্থাগার

#BLYNK_PRINT সিরিয়াল সংজ্ঞায়িত করুন

#অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #DHT.h

// DHT সেন্সর তথ্য

#DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 সংজ্ঞায়িত করুন DHTPIN 27 নির্ধারণ করুন // DHT সেন্সরের সাথে সংযুক্ত ডিজিটাল পিন DHT dht (DHTPIN, DHTTYPE); // ডিএইচটি সেন্সর শুরু করুন।

// ইনপুট পিন এবং আউটপুট নির্ধারণ করুন

int soil_sensor = 34; // আর্দ্রতা সেন্সরের সাথে সংযুক্ত এনালগ ইনপুট পিন নম্বর সংজ্ঞায়িত করুন

int output_value; // আউটপুট হিসাবে সংজ্ঞায়িত করুন

int আর্দ্রতা স্তর; // আউটপুট হিসাবে সংজ্ঞায়িত করুন

int notified = 0; // 0 হিসাবে notifed সংজ্ঞায়িত করুন

int timedelay = 60000L; // প্রতি মিনিটে একবার বা 60, 000 মিলিসেকেন্ডে ডেটা পাওয়ার জন্য টাইমার সেট করুন

// উদ্ভিদের জন্য সর্বনিম্ন মান নির্ধারণ করুন

int min_moisture = 20; int min_temperature = 75; int min_humidity = 60;

// আপনার Blynk অ্যাপে Auth টোকেন পাওয়া উচিত।

char auth = "Auth_Token_Here";

// আপনার ওয়াইফাই শংসাপত্র।

char ssid = "Wifi_Network_Here"; char pass = "Wifi_Password_Here";

BlynkTimer টাইমার;

// এই ফাংশনটি প্রতি সেকেন্ডে ভার্চুয়াল পিন (5) এ Arduino এর আপ টাইম পাঠায়।

// অ্যাপে, উইজেটের পড়ার ফ্রিকোয়েন্সি PUSH এ সেট করা উচিত। এর মানে হল // যে আপনি Blynk অ্যাপে কতবার ডেটা পাঠাবেন তা নির্ধারণ করুন।

অকার্যকর সেন্সর () // প্রধান ফাংশন সেন্সর পড়তে এবং blynk ধাক্কা

{output_value = analogRead (soil_sensor); // মাটি_সেন্সর থেকে এনালগ সিগন্যাল পড়ুন এবং আউটপুট_ভ্যালু হিসাবে নির্ধারণ করুন // ম্যাপ আউটপুট_ভ্লিউ মিনি থেকে, সর্বোচ্চ মান 100, 0 এবং 0, 100 এর মধ্যে সীমাবদ্ধ // নমুনা কোড এবং সিরিয়াল মনিটর ব্যবহার করুন মিনি এবং ভাল ক্রমাঙ্কনের জন্য পৃথক সেন্সর এবং মাটির প্রকারের সর্বোচ্চ মান ভাসা h = dht.readHumidity (); // পড়ুন আর্দ্রতা ভাসমান t = dht.readTemperature (); // সেলসিয়াস হিসাবে তাপমাত্রা পড়ুন (ডিফল্ট) ফ্লোট f = dht.readTemperature (true); // ফারেনহাইট হিসাবে তাপমাত্রা পড়ুন (isFahrenheit = true) // ফারেনহাইট (ডিফল্ট) ফ্লোট hif = dht.computeHeatIndex (f, h); // কোন পাঠ ব্যর্থ হয়েছে কিনা তা পরীক্ষা করুন এবং তাড়াতাড়ি বেরিয়ে আসুন (আবার চেষ্টা করার জন্য)। যদি (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("DHT সেন্সর থেকে পড়তে ব্যর্থ!")); প্রত্যাবর্তন; } // এটি Blynk অ্যাপ Blynk.virtualWrite (V5, moistlevel) এ উইজেটগুলিতে সংজ্ঞায়িত ভার্চুয়াল পিনের সাথে ভ্যালকে সংযুক্ত করে; // ভার্চুয়াল পিন 5 আর্দ্রতা স্তর পাঠান। পিন 6 Blynk.virtualWrite (V7, h); // ভার্চুয়াল পিন 7 আর্দ্রতা পাঠান Blynk.virtualWrite (V8, hif); // ভার্চুয়াল পিন 8 এ তাপ সূচক পাঠান

যদি (বিজ্ঞপ্তি == 0)

{যদি (আর্দ্রতা মাত্রা // জল প্লান্টে ইমেল পাঠান} বিলম্ব (15000); // Blynk ইমেলগুলি অবশ্যই 15 সেকেন্ডের ব্যবধানে থাকতে হবে। 15000 মিলিসেকন দেরি করুন যদি (f <= min_temperature) // যদি তাপমাত্রা ন্যূনতম মানের সমান বা কম হয় {Blynk.email ("Email_Here", "Plant Monitor", "তাপমাত্রা কম!"); // ইমেল পাঠান যে তাপমাত্রা কম

}

বিলম্ব (15000); // Blynk ইমেলগুলি অবশ্যই 15 সেকেন্ডের ব্যবধানে থাকতে হবে। বিলম্ব 15000 মিলিসেকন যদি (h <= min_humidity) // যদি আর্দ্রতা ন্যূনতম মানের সমান বা কম হয় {Blynk.email ("Emial_Here", "Plant Monitor", "Humidity Low!"); // ইমেল পাঠান যে আর্দ্রতা কম} বিজ্ঞপ্তি = 1; timer.setTimeout (timedelay *5, resetNotified); // পুনরাবৃত্ত সতর্কতা ইমেলগুলির মধ্যে মিনিটের সংখ্যার দ্বারা মাল্টি টাইম বিলম্ব}}

void resetNotified () // ফাংশন যা ইমেল ফ্রিকোয়েন্সি রিসেট করতে বলা হয়

{বিজ্ঞপ্তি = 0; }

অকার্যকর সেটআপ()

{Serial.begin (9600); // ডিবাগ কনসোল Blynk.begin (auth, ssid, pass); // blynk timer.setInterval (timedelay, Sensors) এর সাথে সংযোগ করুন; // প্রতি মিনিটে একটি ফাংশন সেটআপ করুন বা dht.begin () এ কোন টাইমডেল সেট করা আছে; // DHT সেন্সর চালান}

// অকার্যকর লুপটিতে কেবল blynk.run এবং টাইমার থাকা উচিত

অকার্যকর লুপ () {Blynk.run (); // চালান blynk timer.run (); // BlynkTimer শুরু করে}

প্রস্তাবিত: