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

ניטור צמחים עם התראת SMS: 5 שלבים
ניטור צמחים עם התראת SMS: 5 שלבים

וִידֵאוֹ: ניטור צמחים עם התראת SMS: 5 שלבים

וִידֵאוֹ: ניטור צמחים עם התראת SMS: 5 שלבים
וִידֵאוֹ: ELF/EMBARC Bronchiectasis conference 2023 with subtitles 2024, נוֹבֶמבֶּר
Anonim
ניטור צמחים עם התראת SMS
ניטור צמחים עם התראת SMS

כאן אני יוצר ניטור צמחים עם התראת SMS. השרת אינו נדרש עבור מערכת התראה זו. זהו פרויקט זול ואמין מאוד.

שלב 1: חסימת תרשים המערכת

תרשים חסימה של המערכת
תרשים חסימה של המערכת

בחממות של היום, נדרשות מדידות פרמטרים רבות

לפקח ולפקח על איכות טובה ופרודוקטיביות של צמחים. אך בכדי להשיג את התוצאות הרצויות ישנם כמה גורמים חשובים ביותר אשר נכנסים לפעולה כמו טמפרטורה, לחות, אור וקרקע טובה, הדרושים לצמיחת צמחים טובה יותר. בהתחשב בפרמטרים אלה, בניתי מערכת ניטור צמחים אוטומטית באמצעות מודול GSM באמצעות Arduino. מערכת זו יעילה מאוד לגידול צמחים באיכות טובה. החלק החשוב הנוסף בפרויקט זה הוא שהוא אוטומטי לחלוטין ועובד על מתח נמוך כמו; אספקת DC 5-12V.

כיום, מודול GSM נמצא בשימוש נרחב לשליחת סטטוס SMS של כל סוג של נתונים. כאן בפרויקט זה באמצעות מודול SIM900A GSM אנו יכולים לשמור מידע על השפעות האקלים על הצמחים. המערכת תדגים גם שינויי אקלים המשפיעים על המפעל בתפוקתו ובאיכותו וכו '. המטרה העיקרית להעלות פרויקט זה היא לבנות ניטור צמחים אוטומטי שבו מודול GSM שולח מידע על טמפרטורה, לחות, עוצמת אור, קרקע. לַחוּת.

מכיוון שאני אזרח הודי השתמש במודול SIM900A (A מייצג רשת אסיאתית) אך אתה יכול להשתמש במודול SIM מסוג אחר בהתאם למדינה שלך. קודי ה- AT עשויים להיות שונים.

שלב 2: פירוט רכיב

פירוט רכיב
פירוט רכיב
פירוט רכיב
פירוט רכיב
פירוט רכיב
פירוט רכיב

------------------ אני מודד ארבעה סוגים של פרמטרים, שעוברים

לדון להלן: ------------------

טמפרטורה ולחות

חיישן DHT11 משמש לחישת טמפרטורה ולחות. כאשר הטמפרטורה והלחות גבוהים שורש הצמחים שנפגע והצמיחה של הצמח לא טובה.

עוצמת האור

עוצמת האור היא גורם חשוב לצמיחת הצמח. לגילוי עוצמת האור נעשה שימוש ב- LDR (הנגד תלוי האור). עוצמת האור נמדדת ב- LUX ולכן לצורך הדגמה 100 אור LUX משמש כהגדרה או רמת סף.

לחות קרקע

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

הודעת SMS:

כאשר הערך של כל אחד מהפרמטרים לעיל חורג מרמה מוגדרת או מרמה קריטית, המערכת שולחת אוטומטית SMS לבעלים או למפעיל עם מידע על פרמטרים קשורים וכאשר הערך מגיע בטווח נורמלי או מתחת לרמה המוגדרת שוב המערכת אוטומטית לשלוח SMS לבעלים או למפעיל עם מידע על נתונים קשורים.

ההודעה נשלחת רק פעם אחת עד שהמצב לא ישתנה כך שהבעלים או המפעיל לא מקבלים SMS תכוף. לכן, חבילת SMS נמוכה יותר נדרשת.

שלב 3: תרשים מעגלים

תרשים מעגלים
תרשים מעגלים

כל החלקים האלה זמינים בקלות בכל אתר קניות מקוון

או עם סוחר חלקי אלקטרוניקה ידוע. כל גליונות הנתונים של הרכיבים זמינים באינטרנט. אם יש קושי אל תהסס לפנות בדואר שלי.

שלב 4: עבודה של קובץ וידאו וקוד

סרטון עבודה אחרון של הפרויקט

שלב 5: קוד תוכנה

#לִכלוֹל

#לִכלוֹל

LiquidCrystal lcd (2, 3, 4, 5, 6, 7);

dht DHT; #הגדר dht_dpin A1 #הגדר LUX A0 #הגדר אדמה A3

צף וולט, לוקס, ערך; int output_value; int טמפרטורה, לחות; int lightflag = 0; int humflag = 0; int earthflag = 0; int tempflag = 0; int check; מבחן int, test1; תואר בייט [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};

הגדרת חלל ()

{Serial.begin (9600); // אתחל סדרת תקשורת עם מודם GSM lcd.begin (16, 2); pinMode (אדמה, INPUT); lcd.createChar (1, תואר); lcd.setCursor (0, 0); lcd.print ("בריאות הצמחים"); lcd.setCursor (0, 1); lcd.print ("מוניטור"); עיכוב (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("פרוייקט AGRI"); lcd.setCursor (0, 1); lcd.print ("מאת S K CHHAYA"); עיכוב (1000); lcd.clear (); } לולאת חלל () {output_value = analogRead (אדמה); פלט_ערך = מפה (פלט_ערך, 550, 0, 0, 100); value = analogRead (LUX); וולט = (ערך / 1023.0) * 5; lux = ((2500 / וולט) - 500) / 3.3; עיכוב (10000); // תן מספיק זמן ל- GSM להירשם ברשת DHT.read11 (dht_dpin); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("טמפ '"); lcd.setCursor (0, 1); lcd.print (טמפרטורה = DHT.temperature); // נתוני טמפ 'ב- LCD lcd.write (1); lcd.print ("C"); עיכוב (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("לחות"); lcd.setCursor (0, 1); lcd.print (לחות = DHT. לחות); // נתוני לחות על LCD lcd.print (" %"); עיכוב (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("אור"); lcd.setCursor (0, 1); lcd.print (lux); // נתוני אור על LCD lcd.print ("LUM"); עיכוב (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("לחות"); lcd.setCursor (0, 1); lcd.print (פלט_ערך); // נתוני קרקע על LCD lcd.print (" %"); עיכוב (1000); lcd.clear ();

if (טמפרטורה 40) {SendSMS (); // SMS לטמפרטורה גבוהה} if (לחות 40) {SendSMS2 (); // SMS ללחות גבוהה} if (lux 100) {SendSMS4 (); // SMS עבור Light high} if (output_value == 950) {SendSMS7 (); // SMS לאדמה יבשה} אחרת אם (output_value! = 950) {SendSMS6 (); // SMS עבור קרקע רטובה}} void SendSMS () {if (tempflag == 0) {Serial.println ("AT+CMGF = 1"); עיכוב (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); עיכוב (500); Serial.print ("טמפ 'גבוהה"); Serial.print ("טמפ '"); Serial.print (טמפרטורה); Serial.println ("תואר C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("טמפ 'גבוה"); עיכוב (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("טמפרטורה"); lcd.setCursor (0, 1); lcd.print (טמפרטורה); lcd.write (1); lcd.print ("C"); עיכוב (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("שליחת SMS"); עיכוב (1000); lcd.clear (); tempflag = 1; check = 0; test = 0; עיכוב (10); }} void SendSMS1 () {if (tempflag == 1) {Serial.println ("AT+CMGF = 1"); עיכוב (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); עיכוב (500); Serial.print ("טמפ 'נמוכה"); Serial.print ("טמפ '"); Serial.print (טמפרטורה); Serial.println ("תואר C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("טמפרטורה נמוכה"); עיכוב (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("טמפרטורה"); lcd.setCursor (0, 1); lcd.print (טמפרטורה); lcd.write (1); lcd.print ("C"); עיכוב (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("שליחת SMS"); עיכוב (1000); lcd.clear (); tempflag = 0; check = 0; test = 0; עיכוב (10); }} void SendSMS2 () {if (humflag == 0) {Serial.println ("AT+CMGF = 1"); עיכוב (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); עיכוב (500); Serial.print ("לחות גבוהה"); Serial.print (לחות); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("לחות גבוהה"); עיכוב (1000); lcd.setCursor (0, 1); lcd.print ("לחות"); lcd.print (לחות); lcd.print (" %"); עיכוב (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("שליחת SMS"); עיכוב (1000); lcd.clear (); humflag = 1; check = 0; test = 0; עיכוב (10); }}

void SendSMS3 () {if (humflag == 1) {Serial.println ("AT+CMGF = 1"); עיכוב (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); עיכוב (500); Serial.print ("לחות נמוכה"); Serial.print ("לחות"); Serial.print (לחות); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("לחות נמוכה"); עיכוב (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("לחות"); lcd.setCursor (0, 1); lcd.print (לחות); lcd.print (" %"); עיכוב (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("שליחת SMS"); עיכוב (1000); lcd.clear (); humflag = 0; check = 0; test = 0; עיכוב (10); }} void SendSMS4 () {if (lightflag == 0) {Serial.println ("AT+CMGF = 1"); // לשליחת SMS בעיכוב מצב טקסט (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); // שנה לעיכוב מספר הטלפון ליעד (500); Serial.print ("LIGHT Good"); Serial.print ("אינטנסיביות"); Serial.print (lux); Serial.println ("LUX"); Serial.println ((char) 26); // תו העצירה Ctrl+Z lcd.setCursor (0, 0); lcd.print ("אור טוב"); עיכוב (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("עוצמה"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); עיכוב (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("שליחת SMS"); עיכוב (1000); lcd.clear (); lightflag = 1; check = 0; test = 0; עיכוב (10); }} void SendSMS5 () {if (lightflag == 1) {Serial.println ("AT+CMGF = 1"); עיכוב (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); עיכוב (500); Serial.print ("LOW LIGHT"); Serial.print ("אינטנסיביות"); Serial.print (lux); Serial.println ("LUX"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("אור נמוך"); עיכוב (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("עוצמה"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); עיכוב (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("שליחת SMS"); עיכוב (1000); lcd.clear (); lightflag = 0; check = 0; test = 0; עיכוב (10); }} void SendSMS6 () {if (soilflag == 0) {Serial.println ("AT+CMGF = 1"); עיכוב (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); עיכוב (500); Serial.print ("אדמה יבשה"); Serial.print ("לחות"); Serial.print (פלט_ערך); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("אדמה יבשה"); עיכוב (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("לחות"); lcd.setCursor (0, 1); lcd.print (פלט_ערך); lcd.print (" %"); עיכוב (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("שליחת SMS"); עיכוב (1000); lcd.clear (); עפר = 1; check = 0; test = 0; עיכוב (10); }} void SendSMS7 () {if (soilflag == 1) {Serial.println ("AT+CMGF = 1"); עיכוב (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); עיכוב (500); Serial.print ("אדמה רטובה"); Serial.print ("לחות"); Serial.print (פלט_ערך); Serial.println (" %"); Serial.println ((char) 26); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("אדמה רטובה"); עיכוב (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("לחות"); lcd.setCursor (0, 1); lcd.print (פלט_ערך); lcd.print (" %"); עיכוב (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("שליחת SMS"); עיכוב (1000); lcd.clear (); עפר = 0; check = 0; test = 0; עיכוב (10); }}

מוּמלָץ: