תוכן עניינים:

צג צמחים באמצעות ESP32 Thing ו- Blynk: 5 שלבים
צג צמחים באמצעות ESP32 Thing ו- Blynk: 5 שלבים

וִידֵאוֹ: צג צמחים באמצעות ESP32 Thing ו- Blynk: 5 שלבים

וִידֵאוֹ: צג צמחים באמצעות ESP32 Thing ו- Blynk: 5 שלבים
וִידֵאוֹ: $5 WiFi Camera Setup | ESP32 Wifi Setup view on Mobile phone 2024, נוֹבֶמבֶּר
Anonim
צג צמחים באמצעות ESP32 Thing ו- Blynk
צג צמחים באמצעות ESP32 Thing ו- Blynk
צג צמח באמצעות ESP32 Thing ו- Blynk
צג צמח באמצעות ESP32 Thing ו- Blynk

סקירה כללית

מטרתו של פרויקט זה היא ליצור מכשיר קומפקטי המסוגל לעקוב אחר תנאי צמח הבית. המכשיר מאפשר למשתמש לבדוק את רמת הלחות בקרקע, רמת הלחות, הטמפרטורה והטמפרטורה "מרגישה" באמצעות סמארטפון באמצעות אפליקציית Blynk. בנוסף, המשתמש יקבל התראה בדוא"ל כאשר התנאים לא יתאימו למפעל. לדוגמה, המשתמש יקבל תזכורת להשקות את הצמח כאשר רמות לחות הקרקע יורדות מתחת לרמה המתאימה.

שלב 1: דרישות

דרישות
דרישות
דרישות
דרישות
דרישות
דרישות

פרויקט זה משתמש בדבר Sparkfun ESP32, בחיישן DHT22 ובחיישן לחות של קרקע בקרקע. בנוסף, נדרשת רשת wifi ואפליקציית Blynk. רצוי ליצור מארז עמיד למים שיכיל את הדבר ESP32. בעוד שדוגמה זו משתמשת בשקע סטנדרטי למקור חשמל, הוספת סוללה נטענת, פאנל סולארי ובקר טעינה תאפשר להפעיל את המכשיר באמצעות אנרגיה מתחדשת.

שלב 2: בלינק

בלינק
בלינק
בלינק
בלינק
בלינק
בלינק

כדי להיות, הורד את אפליקציית Blynk וצור פרויקט חדש. שימו לב לאסימון האימות-הוא ישמש בקוד. צור יישומוני תצוגה חדשים באפליקציית Blynk ובחר את הסיכות הווירטואליות המתאימות המוגדרות בקוד. הגדר את מרווח הרענון לדחיפה. לכל יישומון יש להקצות סיכה וירטואלית משלו.

שלב 3: Arduino IDE

Arduino IDE
Arduino IDE

הורד את Arduino IDE. עקוב אחר הוראות ההורדה של מנהל ההתקן של דבר ESP32 וההדגמה כדי להבטיח קישוריות wifi. הורד את ספריות Blynk ו- DHT הכלולות בקוד. מלא את אסימון האימות, סיסמת ה- wifi, שם המשתמש wifi והאימייל בקוד הסופי. השתמש בקוד ההדגמה עבור חיישן לחות הקרקע כדי למצוא את הערכים המינימליים והמקסימליים לסוג הקרקע. רשום והחליף ערכים אלה בקוד הסופי. החלף את ערכי המינימום לטמפרטורה, לחות הקרקע ולחות הצמח בקוד הסופי. העלה את הקוד.

שלב 4: בנה אותו

לבנות את זה
לבנות את זה
לבנות את זה
לבנות את זה
לבנות את זה
לבנות את זה

ראשית, חבר את חיישן לחות הקרקע ל- 3.3V, קרקע וסיכת כניסה 34. שים לב, הוא אינטגרלי, המתג מוגדר ל- A מכיוון שההגדרה האנלוגית של חיישן זה תשמש. לאחר מכן, חבר את חיישן DHT ל -3.3 וולט, קרקע וסיכת קלט 27. חיישן DHT22 דורש נגד 10K אוהם בין ה- VCC לבין סיכת הנתונים החוצה. הקפד לבדוק את תרשים DHT כדי לוודא שהוא מחובר כראוי. הגדר את ESP32 בתוך מארז עמיד למים עם חיישן הלחות בקרקע וחיישן DHT מעל פני השטח. התחבר למקור חשמל ותהנה מנתונים על סביבת המפעל שלך.

שלב 5: קוד

// כלול ספריות

#הגדר סדרה BLYNK_PRINT

#include #include #include #include "DHT.h"

// מידע על חיישן DHT

#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // סיכה דיגיטלית המחוברת לחיישן DHT dht (DHTPIN, DHTTYPE); // אתחל חיישן DHT.

// להגדיר סיכות ויציאות קלט

int soil_sensor = 34; // הגדר מספר סיכה קלט אנלוגי המחובר לחיישן לחות

int output_value; // הגדר כפלט

int לחות; // להגדיר כתפוקה

int notified = 0; // הגדר הודעה כ- 0

int timedelay = 60000L; // הגדר טיימר להפעלה קבל נתונים אחת לדקה או 60, 000 מילי שניות

// הגדר ערכי מינימום לצמח

int min_fuisture = 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;

// פונקציה זו שולחת את זמן העלייה של Arduino בכל שנייה לפין הווירטואלי (5).

// באפליקציה יש להגדיר את תדירות הקריאה של ווידג'ט ל- PUSH. המשמעות היא // שאתה מגדיר את התדירות שבה יש לשלוח נתונים לאפליקציית Blynk.

חיישני חלל () // הפונקציה העיקרית לקריאת חיישנים ולחיצה על בלינק

{output_value = analogRead (soil_sensor); // קרא אות אנלוגי מ- jord_sensor והגדר כ output_value // מפה output_vlaue מ- min, ערכי מקסימום ל- 100, 0 והגבל בין 0, 100 // השתמש בקוד לדוגמא ובצג טורי כדי למצוא דקות ו- ערכים מקסימליים לחיישן ולסוג קרקע בודדים לכיול לחות טוב יותר = רמה (מפה (פלט_ערך, 1000, 4095, 100, 0), 0, 100); 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!")); לַחֲזוֹר; } // זה מחבר ערכים לסיכות וירטואליות המוגדרות בווידג'טים באפליקציית Blynk Blynk.virtualWrite (V5, לחות -רמה); // שלח רמת לחות לסיכה וירטואלית 5 Blynk.virtualWrite (V6, f); // שלח טמפרטורה לוירטואלית סיכה 6 Blynk.virtualWrite (V7, h); // שלח לחות לסיכה וירטואלית 7 Blynk.virtualWrite (V8, hif); // שלח אינדקס חום לפין וירטואלי 8

אם (הודעה == 0)

{if (moisturelevel <= min_voisture) // אם רמת הלחות שווה לערך המינימלי או מתחת לו {Blynk.email ("Email_Here", "Monitor Monitor", "Plant Plant!"); // שלח דוא"ל למפעל המים} עיכוב (15000); // הודעות הדוא"ל של Blynk חייבות להיות בהפרש של 15 שניות. עיכוב של 15000 אלפיות השנייה אם (f <= min_temperature) // אם הטמפרטורה שווה לערך המינימלי או מתחת לו {Blynk.email ("Email_Here", "Monitor Monitor", "טמפרטורה נמוכה!"); // שלח דוא"ל שהטמפרטורה נמוכה

}

עיכוב (15000); // הודעות הדוא"ל של Blynk חייבות להיות בהפרש של 15 שניות. עיכוב של 15000 אלפיות השנייה אם (h <= min_humidity) // אם הלחות שווה לערך המינימלי או מתחת לו {Blynk.email ("Emial_Here", "Monitor Monitor", "לחות נמוכה!"); // שלח דוא"ל שהלחות נמוכה} הודעה = 1; timer.setTimeout (timedelay *5, resetNotified); // הכפל את זמן הזמן במספר הדקות המבוקשות בין הודעות אזהרה חוזרות}}

void resetNotified () // פונקציה נקראה לאיפוס תדירות הדוא ל

{הודעה = 0; }

הגדרת חלל ()

{Serial.begin (9600); // מסוף באגים Blynk.begin (auth, ssid, pass); // התחבר ל- blynk timer.setInterval (timedelay, חיישנים); // הגדר פונקציה שתקרא לה כל דקה או איזה שעה מוגדרת ל- dht.begin (); // הפעל חיישן DHT}

// לולאת Void צריכה להכיל רק blynk.run וטיימר

לולאת חלל () {Blynk.run (); // הפעל את blynk timer.run (); // יוזם BlynkTimer}

מוּמלָץ: