Мазмуну:

SMS эскертүүсү менен өсүмдүктөрдү көзөмөлдөө: 5 кадам
SMS эскертүүсү менен өсүмдүктөрдү көзөмөлдөө: 5 кадам

Video: SMS эскертүүсү менен өсүмдүктөрдү көзөмөлдөө: 5 кадам

Video: SMS эскертүүсү менен өсүмдүктөрдү көзөмөлдөө: 5 кадам
Video: Биогумустун келечеги? Кайсы өсүмдүк менен бренд боло алабыз? Оттун гүлүн колдонсо болобу? Пайдасы? 2024, Июль
Anonim
SMS эскертүүсү менен өсүмдүктөрдү көзөмөлдөө
SMS эскертүүсү менен өсүмдүктөрдү көзөмөлдөө

Бул жерде мен SMS эскертүүсү менен Өсүмдүктөрдүн мониторингин түзөм. Бул эскертүү тутуму үчүн сервер талап кылынбайт. Бул абдан арзан жана ишенимдүү долбоор.

1 -кадам: Системанын блок диаграммасы

Системанын блок диаграммасы
Системанын блок диаграммасы

Бүгүнкү күнөсканаларда көптөгөн параметрлерди өлчөө талап кылынат

өсүмдүктөрдүн жакшы сапатына жана түшүмдүүлүгүнө мониторинг жүргүзүү жана көзөмөлдөө. Бирок керектүү натыйжаларды алуу үчүн өсүмдүктүн жакшы өсүшү үчүн зарыл болгон Температура, Нымдуулук, Жарык жана Жакшы Топурак сыяктуу маанилүү факторлор бар. Бул параметрлерди эске алуу менен мен Arduino аркылуу GSM модулунун үстүнөн өсүмдүктөрдү көзөмөлдөө системасын түздүм. Бул система сапаттуу өсүмдүктөрдү өстүрүү үчүн абдан эффективдүү. Бул долбоордун башка маанилүү бөлүгү - бул толугу менен автоматтык жана төмөнкү чыңалууда иштөө; 5-12V DC менен камсыздоо.

Азыр GSM модулу ар кандай маалыматтын SMS статусун жөнөтүү үчүн кеңири колдонулат. Бул жерде бул долбоордо SIM900A GSM модулун колдонуу менен климаттын өсүмдүктөргө тийгизген таасири тууралуу маалыматты сактай алабыз. Система ошондой эле өсүмдүктүн өндүрүмдүүлүгүнө жана сапатына таасир эткен климаттык өзгөрүүлөрдү көрсөтүшү керек. Бул долбоорду иштеп чыгуунун негизги максаты - GSM модулу Температура, Нымдуулук, Жарык интенсивдүүлүгү, Топурак жөнүндө маалыматты жөнөтүүчү Автоматтык Өсүмдүктөр Мониторингин куруу. ным

Мен Индиянын жараны болгонум үчүн SIM900A (А Азия тармагын билдирет) модулун колдонгон, бирок сиз өзүңүздүн өлкөгө жараша ар кандай SIM -модулду колдоно аласыз. AT коддору айырмаланышы мүмкүн.

2 -кадам: Компоненттин чоо -жайы

Компоненттин чоо -жайы
Компоненттин чоо -жайы
Компоненттин чоо -жайы
Компоненттин чоо -жайы
Компоненттин чоо -жайы
Компоненттин чоо -жайы

------------------ Мен бара жаткан параметрлердин төрт түрүн өлчөйм

төмөндө талкуулоо үчүн: ------------------

Температура жана нымдуулук

DHT11 сенсор температура жана нымдуулукту сезүү үчүн колдонулат. Температура жана нымдуулук жогору болгондо өсүмдүктөрдүн тамыры бузулат жана өсүмдүктөрдүн өсүүсү начарлайт.

Жарык интенсивдүүлүгү

Жарыктын интенсивдүүлүгү өсүмдүктүн өсүшү үчүн маанилүү фактор болуп саналат. Жарык интенсивдүүлүгүн аныктоо үчүн LDR (Жарыкка көз каранды каршылык) колдонулат. Жарыктын интенсивдүүлүгү LUX менен өлчөнөт, демек көрсөтүү үчүн 100 LUX жарыгы аныкталган же босого деңгээл катары колдонулат.

Топурактын нымдуулугу

Топурактын нымдуулугу өсүмдүктөрдүн жакшы өсүшү үчүн абдан маанилүү. Бул жерде Топурак сенсору Топурактагы нымдуулукту өлчөө үчүн колдонулат. Бул сенсордун жардамы менен биз топурактын маалыматын аналогдук жана санариптик түрдө өлчөй алабыз.

SMS билдирүүсү:

Жогорудагы параметрлердин биринин мааниси аныкталган деңгээлден же критикалык денгээлден ашып кеткенде, система автоматтык түрдө кожоюнуна же операторуна байланышкан параметрлер боюнча маалымат жөнөтөт жана маани кадимки диапазондо же аныкталган деңгээлден төмөн болгондо система автоматтык түрдө автоматтык түрдө жөнөтүлөт. тиешелүү маалыматтын ээси же операторуна SMS жөнөтүү.

Билдирүү шарт өзгөрмөйүнчө бир гана жолу жөнөтүлөт, андыктан ээсине же операторуна тез -тез SMS келбейт. Ошондуктан, төмөн SMS топтому талап кылынат.

3 -кадам: Райондук диаграмма

Райондук диаграмма
Райондук диаграмма

Булардын бардык бөлүктөрү каалаган онлайн соода сайтында оңой жеткиликтүү

же белгилүү электроника запастык бөлүктөрүнүн сатуучусу менен. Бардык компоненттердин маалымат баракчалары Интернетте жеткиликтүү. Эгерде кандайдыр бир кыйынчылыктар болсо, менин почтама кайрылыңыз.

4 -кадам: Жумушчу видео жана код файлы

Долбоордун акыркы жумушчу видеосу

5 -кадам: Программанын коду

#кошуу

#кошуу

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

DHT DHT; #аныктоо dht_dpin A1 #define LUX A0 #топуракты аныктоо A3

сүзүүчү вольт, люкс, наркы; int output_value; int температурасы, нымдуулугу; int lightflag = 0; int humflag = 0; int tuproq желеги = 0; int tempflag = 0; int check; int test, test1; байт даражасы [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};

жараксыз орнотуу ()

{Serial.begin (9600); // GSM Modem 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 PROJECT"); lcd.setCursor (0, 1); lcd.print ("By S K CHHAYA"); кечигүү (1000); lcd.clear (); } void loop () {output_value = analogRead (Топурак); output_value = карта (output_value, 550, 0, 0, 100); мааниси = analogRead (LUX); вольт = (мааниси / 1023,0) * 5; люкс = ((2500 / вольт) - 500) / 3,3; кечигүү (10000); // GSMге DHT.read11 (dht_dpin) тармагына катталуу үчүн жетиштүү убакыт бериңиз; lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temp"); lcd.setCursor (0, 1); lcd.print (температура = DHT. температурасы); // 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 (output_value); // Топурактын маалыматы LCD lcd.print (" %"); кечигүү (1000); lcd.clear ();

if (температура 40) {SendSMS (); // Темп жогорку үчүн SMS} if (нымдуулук 40) {SendSMS2 (); // Жогорку нымдуулук үчүн SMS} if (lux 100) {SendSMS4 (); // Light for SMS жогорку} if (output_value == 950) {SendSMS7 (); // Кургак Топуракка SMS} else if if (output_value! = 950) {SendSMS6 (); // Нымдуу Топуракка SMS}} жараксыз SendSMS () {if (tempflag == 0) {Serial.println ("AT+CMGF = 1"); кечигүү (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); кечигүү (500); Serial.print ("Temp High,"); Serial.print ("Temp"); Serial.print (температура); Serial.println ("C даражасы"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temp High"); кечигүү (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; тест = 0; кечигүү (10); }} жараксыз SendSMS1 () {if (tempflag == 1) {Serial.println ("AT+CMGF = 1"); кечигүү (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); кечигүү (500); Serial.print ("Temp Low",); Serial.print ("Temp"); Serial.print (температура); Serial.println ("C даражасы"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temp Low"); кечигүү (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; тест = 0; кечигүү (10); }} жараксыз 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; тест = 0; кечигүү (10); }}

жараксыз 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; тест = 0; кечигүү (10); }} жараксыз SendSMS4 () {if (lightflag == 0) {Serial.println ("AT+CMGF = 1"); // Текст режиминин кечигүүсүндө SMS жөнөтүү үчүн (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); // Көздөгөн телефон номеринин кечигүүсүнө өзгөртүү (500); Serial.print ("Жакшы жарык"); 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; тест = 0; кечигүү (10); }} жараксыз 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; тест = 0; кечигүү (10); }} жараксыз SendSMS6 () {if (tuproqflag == 0) {Serial.println ("AT+CMGF = 1"); кечигүү (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); кечигүү (500); Serial.print ("Кургак топурак,"); Serial.print ("Нымдуулук"); Serial.print (output_value); 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 (output_value); lcd.print (" %"); кечигүү (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS жөнөтүү"); кечигүү (1000); lcd.clear (); жердин желеги = 1; check = 0; тест = 0; кечигүү (10); }} жараксыз SendSMS7 () {if (tuproqflag == 1) {Serial.println ("AT+CMGF = 1"); кечигүү (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); кечигүү (500); Serial.print ("Нымдуу топурак,"); Serial.print ("Нымдуулук"); Serial.print (output_value); 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 (output_value); lcd.print (" %"); кечигүү (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS жөнөтүү"); кечигүү (1000); lcd.clear (); жердин желеги = 0; check = 0; тест = 0; кечигүү (10); }}

Сунушталууда: