فهرست مطالب:

مانیتور گیاهی با استفاده از ESP32 Thing و Blynk: 5 مرحله
مانیتور گیاهی با استفاده از ESP32 Thing و Blynk: 5 مرحله

تصویری: مانیتور گیاهی با استفاده از ESP32 Thing و Blynk: 5 مرحله

تصویری: مانیتور گیاهی با استفاده از ESP32 Thing و Blynk: 5 مرحله
تصویری: Lesson 05: Introduction to Serial Monitor | Robojax Arduino Step By Step Course 2024, نوامبر
Anonim
مانیتور گیاهی با استفاده از ESP32 Thing و Blynk
مانیتور گیاهی با استفاده از ESP32 Thing و Blynk
مانیتور گیاهی با استفاده از ESP32 Thing و Blynk
مانیتور گیاهی با استفاده از ESP32 Thing و Blynk

بررسی اجمالی

هدف این پروژه ایجاد یک دستگاه جمع و جور است که می تواند شرایط گیاهان آپارتمانی را تحت نظر داشته باشد. این دستگاه کاربر را قادر می سازد تا با استفاده از برنامه Blynk App سطح رطوبت خاک ، میزان رطوبت ، دما و درجه حرارت "شبیه به" را از طریق تلفن هوشمند بررسی کند. علاوه بر این ، هنگامی که شرایط برای کارخانه نامناسب می شود ، کاربر یک هشدار ایمیل دریافت می کند. به عنوان مثال ، هنگامی که سطح رطوبت خاک از سطح مناسب کاهش می یابد ، کاربر یادآوری آبیاری گیاه را دریافت می کند.

مرحله 1: الزامات

الزامات
الزامات
الزامات
الزامات
الزامات
الزامات

این پروژه از یک چیز Sparkfun ESP32 ، یک سنسور DHT22 و یک سنسور رطوبت خاک آجر الکترونیکی استفاده می کند. علاوه بر این ، یک شبکه wifi و برنامه Blynk مورد نیاز است. ترجیحاً یک محفظه ضد آب باید حاوی مورد ESP32 باشد. در حالی که در این مثال از یک منبع تغذیه استاندارد برای منبع تغذیه استفاده می شود ، افزودن باتری قابل شارژ ، پنل خورشیدی و کنترل کننده شارژ باعث می شود دستگاه از طریق انرژی های تجدید پذیر تغذیه شود.

مرحله 2: بلینک

بلینک
بلینک
بلینک
بلینک
بلینک
بلینک

برای بودن ، برنامه Blynk را بارگیری کرده و یک پروژه جدید ایجاد کنید. به رمز احراز هویت توجه کنید-در کد استفاده می شود. در برنامه Blynk ویدجت های نمایش جدیدی ایجاد کنید و پین های مجازی مربوطه را که در کد تعریف شده اند انتخاب کنید. فاصله بازخوانی را روی push تنظیم کنید. به هر ویجت باید پین مجازی خاص خود اختصاص داده شود.

مرحله 3: Arduino IDE

آردوینو IDE
آردوینو IDE

Arduino IDE را بارگیری کنید. برای اطمینان از اتصال wifi ، دستورالعمل های بارگیری درایور ESP32 thing و نسخه نمایشی را دنبال کنید. کتابخانه های Blynk و DHT موجود در کد را بارگیری کنید. کد احراز هویت ، رمز عبور wifi ، نام کاربری wifi و ایمیل را در کد نهایی پر کنید. از کد نمایشی برای سنسور رطوبت خاک برای پیدا کردن حداقل و حداکثر مقادیر برای نوع خاک استفاده کنید. این مقادیر را در کد نهایی ثبت و جایگزین کنید. حداقل مقادیر دما ، رطوبت خاک و رطوبت گیاه را در کد نهایی جایگزین کنید. کد را بارگذاری کنید.

مرحله 4: آن را بسازید

بسازش
بسازش
بسازش
بسازش
بسازش
بسازش

ابتدا ، سنسور رطوبت خاک را به 3.3 ولت ، زمین و پین ورودی 34 وصل کنید. توجه داشته باشید ، کلید یکپارچه است که روی A تنظیم شده است زیرا از تنظیمات آنالوگ این سنسور استفاده می شود. در مرحله بعد ، سنسور DHT را به پین 3.3V ، زمین و ورودی 27 وصل کنید. سنسور DHT22 به یک مقاومت 10K اهم بین VCC و پین خروجی داده نیاز دارد. مطمئن شوید که نمودار DHT را بررسی می کنید تا مطمئن شوید که به درستی سیم کشی شده است. ESP32 را در داخل محفظه ضد آب با سنسور رطوبت در خاک و سنسور DHT در بالای سطح پیکربندی کنید. به منبع تغذیه متصل شوید و از داده های محیط کارخانه خود لذت ببرید.

مرحله 5: کد

// شامل کتابخانه ها

#تعریف BLYNK_PRINT سریال

#شامل #شامل #شامل #شامل #شامل "DHT.h"

// اطلاعات سنسور DHT

#تعریف DHTTYPE DHT22 // DHT 22 (AM2302) ، AM2321 #تعریف DHTPIN 27 // پین دیجیتالی متصل به سنسور DHT DHT dht (DHTPIN ، DHTTYPE) ؛ // مقداردهی اولیه DHT.

// پین ها و خروجی های ورودی را تعریف کنید

int خاک_حسگر = 34؛ // تعریف شماره پین ورودی آنالوگ متصل به سنسور رطوبت

int output_value؛ // به عنوان خروجی تعریف کنید

int humiditylevel؛ // به عنوان خروجی تعریف کنید

int مطلع = 0؛ // notifed را به عنوان 0 تعریف کنید

int timedelay = 60000L ؛ // تایمر را تنظیم کنید تا داده ها را هر دقیقه یکبار یا 60،000 میلی ثانیه اجرا کند

// حداقل مقادیر را برای گیاه تنظیم کنید

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

// شما باید Auth Token را در برنامه Blynk دریافت کنید.

char auth = "Auth_Token_Here"؛

// اعتبارنامه WiFi شما.

char ssid = "Wifi_Network_Here"؛ char pass = "Wifi_Password_Here"؛

تایمر BlynkTimer ؛

// این عملکرد زمان آردوینو را در هر ثانیه به پین مجازی (5) ارسال می کند.

// در برنامه ، فرکانس خواندن ویجت باید روی PUSH تنظیم شود. این به این معنی است // که شما چند بار ارسال داده به Blynk App را تعیین می کنید.

void Sensors () // عملکرد اصلی خواندن سنسورها و فشار دادن به blynk

{output_value = analogRead (سنسور_خاک) ؛ // سیگنال آنالوگ از سنسور_خاک را بخوانید و به عنوان خروجی_ارزش تعریف کنید // نقشه output_vlaue از min ، حداکثر مقادیر تا 100 ، 0 و محدودیت بین 0 ، 100 // از کد نمونه و مانیتور سریال برای پیدا کردن min و حداکثر مقادیر برای سنسورهای جداگانه و نوع خاک برای کالیبراسیون بهتر float h = dht.readHumidity ()؛ // خواندن رطوبت شناور t = dht.readTemperature ()؛ // دما را به صورت سانتیگراد (پیش فرض) بخوانید f = dht.readTemperature (true)؛ // دما را فارنهایت بخوانید (isFahrenheit = true) // محاسبه شاخص حرارت در فارنهایت (به طور پیش فرض) float hif = dht.computeHeatIndex (f، h)؛ // بررسی کنید که آیا خواندن انجام نشد و زودتر خارج شوید (دوباره امتحان کنید). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("از سنسور DHT خوانده نشد!")) ؛ برگشت؛ } // این گزینه vales را به پین های مجازی تعریف شده در ابزارک ها در برنامه Blynk Blynk.virtualWrite (V5 ، levellevel) متصل می کند ؛ // ارسال سطح رطوبت به پین مجازی 5 Blynk.virtualWrite (V6، f) ؛ // ارسال دما به مجازی پین 6 Blynk.virtualWrite (V7 ، h) ؛ // ارسال رطوبت به پین مجازی 7 Blynk.virtualWrite (V8 ، hif) ؛ // ارسال شاخص حرارت به پین مجازی 8

اگر (اطلاع == 0)

{اگر (سطح رطوبت <= min_moisture) // اگر سطح رطوبت برابر یا کمتر از حداقل مقدار باشد {Blynk.email ("Email_Here" ، "Plant Monitor" ، "Water Plant!") ؛ // ارسال ایمیل به کارخانه آب} تأخیر (15000)؛ // ایمیل های بلینک باید 15 ثانیه فاصله داشته باشند. اگر (f <= min_temperature) // اگر دما برابر یا کمتر از مقدار حداقل باشد {Blynk.email ("Email_Here" ، "Plant Monitor" ، "Temperature Low!") 15000 میلی ثانیه را به تأخیر بیندازید. // ایمیل ارسال کنید که درجه حرارت پایین است

}

تاخیر (15000) ؛ // ایمیل های بلینک باید 15 ثانیه فاصله داشته باشند. اگر (h <= min_humidity) // اگر رطوبت برابر یا کمتر از مقدار حداقل باشد {15 Blynk.email ("Emial_Here" ، "Plant Monitor" ، "Humidity Low!") 15000 میلی ثانیه را به تأخیر بیندازید. // ایمیل ارسال کنید که رطوبت کم است} مطلع = 1؛ timer.setTimeout (timedelay *5 ، resetNotified) ؛ /

تابع void resetNotified () // برای بازنشانی فرکانس ایمیل فراخوانی می شود

{notified = 0؛ }

void setup ()

{Serial.begin (9600) ؛ // اشکال زدایی کنسول Blynk.begin (auth، ssid، pass)؛ // اتصال به blynk timer.setInterval (timedelay، Sensors)؛ // عملکردی را تنظیم کنید که هر دقیقه فراخوانی شود یا زمان تأخیر روی dht.begin () تنظیم شود ؛ // حسگر DHT را اجرا کنید}

// حلقه Void فقط باید شامل blynk.run و تایمر باشد

حلقه خالی () {Blynk.run ()؛ // اجرای blynk timer.run ()؛ // BlynkTimer را آغاز می کند}

توصیه شده: