Мазмұны:

SMS ескертуімен өсімдіктерді бақылау: 5 қадам
SMS ескертуімен өсімдіктерді бақылау: 5 қадам

Бейне: SMS ескертуімен өсімдіктерді бақылау: 5 қадам

Бейне: SMS ескертуімен өсімдіктерді бақылау: 5 қадам
Бейне: IELTS Writing Academic Task 1 - Diagrams - IELTS Writing Tips & Strategies for a band 6 to 9 2024, Қараша
Anonim
SMS ескертуі арқылы өсімдіктерді бақылау
SMS ескертуі арқылы өсімдіктерді бақылау

Мұнда мен SMS ескертуі арқылы өсімдіктердің мониторингісін жасаймын. Бұл ескерту жүйесі үшін сервер қажет емес. Бұл өте арзан және сенімді жоба.

1 -қадам: жүйенің блок -схемасы

Жүйелік блок -схема
Жүйелік блок -схема

Қазіргі жылыжайларда көптеген параметрлерді өлшеу қажет

өсімдіктердің жақсы сапасы мен өнімділігін бақылау және бақылау. Қажетті нәтижеге қол жеткізу үшін өсімдіктердің жақсы өсуі үшін қажет температура, ылғалдылық, жарық және жақсы топырақ сияқты маңызды факторлар бар. Осы параметрлерді ескере отырып, мен Arduino көмегімен GSM модулі арқылы өсімдіктерді бақылаудың автоматты жүйесін құрдым. Бұл жүйе сапалы өсімдіктерді өсіру үшін өте тиімді. Бұл жобаның тағы бір маңызды бөлігі - ол толық автоматты және төмен кернеуде жұмыс істейді; 5-12В тұрақты ток көзі.

Қазіргі уақытта 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_dpin A1 анықтаңыз #LUX A0 анықтаңыз #топырақты анықтаңыз A3

өзгермелі вольт, люкс, мән; int output_value; температура, ылғалдылық; int lightflag = 0; int humflag = 0; int топырақ жалауы = 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 ЖОБАСЫ»); 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 high} 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.println («С дәрежесі»); 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; тексеру = 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.println («С дәрежесі»); 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; тексеру = 0; тест = 0; кешіктіру (10); }} жарамсыз SendSMS2 () {if (humflag == 0) {Serial.println («AT+CMGF = 1»); кешіктіру (500); Serial.println («AT+CMGS = \»+919979897404 / «\ r»); кешіктіру (500); 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 (); гумфлаг = 1; тексеру = 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.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 (); гумфлаг = 0; тексеру = 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 (); жарық жалауы = 1; тексеру = 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 (); жарық жалауы = 0; тексеру = 0; тест = 0; кешіктіру (10); }} жарамсыз SendSMS6 () {if (groundflag == 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; тексеру = 0; тест = 0; кешіктіру (10); }} жарамсыз SendSMS7 () {if (groundflag == 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; тексеру = 0; тест = 0; кешіктіру (10); }}

Ұсынылған: