Բովանդակություն:

Բույսերի մոնիտորինգ SMS ահազանգով `5 քայլ
Բույսերի մոնիտորինգ SMS ահազանգով `5 քայլ

Video: Բույսերի մոնիտորինգ SMS ահազանգով `5 քայլ

Video: Բույսերի մոնիտորինգ SMS ահազանգով `5 քայլ
Video: Neel 51 Trimaran Atlantic Crossing, ARC Regatta - Ep.2/5 2024, Հուլիսի
Anonim
Բույսերի մոնիտորինգ SMS ահազանգով
Բույսերի մոնիտորինգ SMS ահազանգով

Այստեղ ես ստեղծում եմ բույսերի մոնիտորինգ SMS ահազանգով: Այս ազդանշանային համակարգի համար սերվեր չի պահանջվում: Դա շատ էժան և հուսալի նախագիծ է:

Քայլ 1: Արգելափակել համակարգի դիագրամը

Արգելափակել համակարգի դիագրամը
Արգելափակել համակարգի դիագրամը

Այսօրվա ջերմոցներում շատ պարամետրային չափումներ են պահանջվում

վերահսկել և վերահսկել բույսերի լավ որակը և արտադրողականությունը: Բայց ցանկալի արդյունքներ ստանալու համար կան մի քանի շատ կարևոր գործոններ, ինչպիսիք են ՝ Temերմաստիճանը, խոնավությունը, լույսը և լավ հողը, որոնք անհրաժեշտ են բույսերի ավելի լավ աճի համար: Այս պարամետրերը նկատի ունենալով ՝ ես կառուցել եմ գործարանների ավտոմատ մոնիտորինգի համակարգ GSM մոդուլի վրա ՝ օգտագործելով Arduino- ն: Այս համակարգը շատ արդյունավետ է լավ որակի բույսեր աճեցնելու համար: Այս նախագծի մյուս կարևոր մասն այն է, որ այն ամբողջովին ավտոմատ է և աշխատում է ցածր լարման վրա, ինչպես. 5-12V DC սնուցում:

Այժմ օրեր շարունակ GSM մոդուլը լայնորեն օգտագործվում է ցանկացած տեսակի տվյալների SMS կարգավիճակ ուղարկելու համար: Այստեղ այս նախագծում, օգտագործելով SIM900A GSM մոդուլը, կարող ենք տեղեկատվություն պահել բույսերի վրա կլիմայի ազդեցության մասին: Համակարգը պետք է նաև ցույց տա կլիմայի փոփոխություններ, որոնք ազդում են գործարանի արտադրողականության և որակի վրա: խոնավություն:

Քանի որ ես Հնդկաստանի քաղաքացի եմ, օգտագործված SIM900A (A- ն նշանակում է ասիական ցանց) մոդուլը, բայց դուք կարող եք օգտագործել տարբեր տեսակի SIM մոդուլներ ՝ ըստ ձեր երկրի: AT կոդերը կարող են տարբեր լինել:

Քայլ 2: Բաղադրիչի մանրամասն

Բաղադրիչի մանրամասն
Բաղադրիչի մանրամասն
Բաղադրիչի մանրամասն
Բաղադրիչի մանրամասն
Բաղադրիչի մանրամասն
Բաղադրիչի մանրամասն

------------------ Չափում եմ չորս տեսակի պարամետրեր, որոնք գնում են

ստորև քննարկել ՝ ------------------

Temերմաստիճանը և խոնավությունը

DHT11 սենսորը օգտագործվում է ջերմաստիճանը և խոնավությունը զգալու համար: Երբ ջերմաստիճանը և խոնավությունը բարձր են, բույսերի արմատը վնասված է, իսկ բույսերի աճը `ոչ լավ:

Լույսի ինտենսիվություն

Լույսի ուժգնությունը կարևոր գործոն է բույսերի աճի համար: Լույսի ինտենսիվությունը հայտնաբերելու համար օգտագործվում է LDR (Լույսի կախված դիմադրություն): Լույսի ինտենսիվությունը չափվում է LUX- ով և, հետևաբար, ցուցադրման համար 100 LUX լույս օգտագործվում է ըստ սահմանված կամ շեմային մակարդակի:

Հողի խոնավություն

Հողի խոնավությունը շատ կարևոր է բույսերի լավ աճի համար: Այստեղ Հողի սենսորը օգտագործվում է հողում խոնավության պարունակությունը չափելու համար: Այս սենսորով մենք կարող ենք չափել հողի տվյալները երկու եղանակով ՝ անալոգային և թվային:

SMS ծանուցում.

Երբ վերը նշված պարամետրերից որևէ մեկի արժեքը գերազանցում է սահմանված մակարդակը կամ կրիտիկական մակարդակը, համակարգը ինքնաբերաբար SMS է ուղարկում սեփականատիրոջը կամ օպերատորին `համապատասխան պարամետրերի տեղեկատվությամբ, և երբ արժեքը գալիս է նորմալ տիրույթում կամ սահմանված մակարդակից ցածր, համակարգը նորից ինքնաբերաբար SMS ուղարկեք սեփականատիրոջը կամ օպերատորին `համապատասխան տվյալների մասին տեղեկություններով:

Notificationանուցումն ուղարկվում է միայն մեկ անգամ, մինչև պայմանը չփոխվի, որպեսզի սեփականատերը կամ օպերատորը հաճախակի SMS չստանան: Հետևաբար, պահանջվում է ավելի ցածր SMS փաթեթ:

Քայլ 3: Շղթայի դիագրամ

Շղթայի դիագրամ
Շղթայի դիագրամ

Այս բոլոր մասերը հեշտությամբ մատչելի են ցանկացած առցանց գնումների կայքում

կամ էլեկտրոնիկայի հայտնի պահեստամասերի դիլերով: Բոլոր բաղադրիչների տվյալների թերթերը հասանելի են համացանցում: Եթե որևէ դժվարություն զգացեք, ազատ դիմեք իմ փոստին:

Քայլ 4. Աշխատանքային տեսանյութ և կոդի ֆայլ

Նախագծի վերջին աշխատանքային տեսաֆիլմը

Քայլ 5. Codeրագրի ծածկագիր

#ներառում

#ներառում

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

dht DHT; #սահմանել dht_dpin A1 #սահմանել LUX A0 #սահմանել հող A3

բոց վոլտ, լյուքս, արժեք; int ելքային_արժեք; int ջերմաստիճան, խոնավություն; int lightflag = 0; int humflag = 0; int հողային դրոշ = 0; int tempflag = 0; int ստուգում; int թեստ, test1; բայտի աստիճան [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};

դատարկ կարգավորում ()

{Serial.begin (9600); // GSM Modem- ի հետ lcd.begin- ի հետ հաղորդակցվելու համար սերիալ սկզբնավորել (16, 2); pinMode (հող, Մուտք); lcd.createChar (1, աստիճան); lcd.setCursor (0, 0); lcd.print («Բույսերի առողջություն»); lcd.setCursor (0, 1); lcd.print («Մոնիտորինգ»); ուշացում (1000); lcd. հստակ (); lcd.setCursor (0, 0); lcd.print («AGRI PROJECT»); lcd.setCursor (0, 1); lcd.print («S K CHHAYA» - ի կողմից); ուշացում (1000); lcd. հստակ (); } void loop () {output_value = analogRead (հող); output_value = քարտեզ (output_value, 550, 0, 0, 100); արժեք = analogRead (LUX); վոլտ = (արժեք / 1023.0) * 5; lux = ((2500 / վոլտ) - 500) / 3.3; ուշացում (10000); // Բավական ժամանակ տրամադրեք GSM- ին ցանցի DHT.read11 (dht_dpin) գրանցվելու համար; lcd. հստակ (); lcd.setCursor (0, 0); lcd.print ("Temp"); lcd.setCursor (0, 1); lcd.print (ջերմաստիճան = DHT. ջերմաստիճան); // Temp տվյալները LCD lcd.write (1); lcd.print («C»); ուշացում (1000); lcd. հստակ (); lcd.setCursor (0, 0); lcd.print («Խոնավություն»); lcd.setCursor (0, 1); lcd.print (խոնավություն = DHT. խոնավություն); // LCD lcd.print- ի խոնավության տվյալները (" %"); ուշացում (1000); lcd. հստակ (); lcd.setCursor (0, 0); lcd.print («Լույս»); lcd.setCursor (0, 1); lcd.print (lux); // Լույսի տվյալները LCD lcd.print («LUM»); ուշացում (1000); lcd. հստակ (); lcd.setCursor (0, 0); lcd.print («Խոնավություն»); lcd.setCursor (0, 1); lcd.print (ելքային_արժեք); // Հողի տվյալները LCD lcd.print (" %"); ուշացում (1000); lcd. հստակ ();

եթե (ջերմաստիճան 40) {SendSMS (); // SMS բարձր ջերմաստիճանի համար} եթե (խոնավություն 40) {SendSMS2 (); // SMS բարձր խոնավության համար} եթե (լյուքս 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 («pերմաստիճանի բարձր»); Serial.print ("Temp"); Serial.print (ջերմաստիճան); Serial.println («աստիճան C»); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temp High"); ուշացում (1000); lcd. հստակ (); lcd.setCursor (0, 0); lcd.print («peratերմաստիճան»); lcd.setCursor (0, 1); lcd.print (ջերմաստիճան); lcd. գրել (1); lcd.print («C»); ուշացում (1000); lcd. հստակ (); lcd.setCursor (0, 0); lcd.print («SMS ուղարկելը»); ուշացում (1000); lcd. հստակ (); tempflag = 1; ստուգում = 0; փորձարկում = 0; ուշացում (10); }} void SendSMS1 () {if (tempflag == 1) {Serial.println ("AT+CMGF = 1"); ուշացում (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); ուշացում (500); Serial.print ("pածր ջերմաստիճան"); Serial.print ("Temp"); Serial.print (ջերմաստիճան); Serial.println («աստիճան C»); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print («pածր ջերմաստիճան»); ուշացում (1000); lcd. հստակ (); lcd.setCursor (0, 0); lcd.print («peratերմաստիճան»); lcd.setCursor (0, 1); lcd.print (ջերմաստիճան); lcd. գրել (1); lcd.print («C»); ուշացում (1000); lcd. հստակ (); lcd.setCursor (0, 0); lcd.print («SMS ուղարկելը»); ուշացում (1000); lcd. հստակ (); tempflag = 0; ստուգում = 0; փորձարկում = 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. հստակ (); lcd.setCursor (0, 0); lcd.print («SMS ուղարկելը»); ուշացում (1000); lcd. հստակ (); humflag = 1; ստուգում = 0; թեստ = 0; ուշացում (10); }}

անվավեր SendSMS3 () {if (humflag == 1) {Serial.println ("AT+CMGF = 1"); ուշացում (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); ուշացում (500); Serial.print («Lowածր խոնավություն»); Serial.print («Խոնավություն»); Serial.print (խոնավություն); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print («Lowածր խոնավություն»); ուշացում (1000); lcd. հստակ (); lcd.setCursor (0, 0); lcd.print («Խոնավություն»); lcd.setCursor (0, 1); lcd.print (խոնավություն); lcd.print (" %"); ուշացում (1000); lcd. հստակ (); lcd.setCursor (0, 0); lcd.print («SMS ուղարկելը»); ուշացում (1000); lcd. հստակ (); humflag = 0; ստուգում = 0; թեստ = 0; ուշացում (10); }} void SendSMS4 () {if (lightflag == 0) {Serial.println ("AT+CMGF = 1"); // SMS ուղարկելու տեքստային ռեժիմի հետաձգում (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); // Փոխել նպատակակետի հեռախոսահամարի հետաձգումը (500); Serial.print («Բարի ԼՈTՅՍ»); Serial.print («Ինտենսիվություն»); Serial.print (lux); Serial.println ("LUX"); Serial.println ((char) 26); // կանգառի նշանը Ctrl+Z lcd.setCursor (0, 0); lcd.print («Լավ լույս»); ուշացում (1000); lcd. հստակ (); lcd.setCursor (0, 0); lcd.print («Ինտենսիվություն»); lcd.setCursor (0, 1); lcd.print (lux); lcd.print («LUX»); ուշացում (1000); lcd. հստակ (); lcd.setCursor (0, 0); lcd.print («SMS ուղարկելը»); ուշացում (1000); lcd. հստակ (); lightflag = 1; ստուգում = 0; փորձարկում = 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. հստակ (); lcd.setCursor (0, 0); lcd.print («Ինտենսիվություն»); lcd.setCursor (0, 1); lcd.print (lux); lcd.print («LUX»); ուշացում (1000); lcd. հստակ (); lcd.setCursor (0, 0); lcd.print («SMS ուղարկելը»); ուշացում (1000); lcd. հստակ (); lightflag = 0; ստուգում = 0; թեստ = 0; ուշացում (10); }} void 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. հստակ (); lcd.setCursor (0, 0); lcd.print («Խոնավություն»); lcd.setCursor (0, 1); lcd.print (ելքային_արժեք); lcd.print (" %"); ուշացում (1000); lcd. հստակ (); lcd.setCursor (0, 0); lcd.print («SMS ուղարկելը»); ուշացում (1000); lcd. հստակ (); հողային դրոշ = 1; ստուգում = 0; փորձարկում = 0; ուշացում (10); }} void 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. հստակ (); lcd.setCursor (0, 0); lcd.print («Թաց հող»); ուշացում (1000); lcd. հստակ (); lcd.setCursor (0, 0); lcd.print («Խոնավություն»); lcd.setCursor (0, 1); lcd.print (ելքային_արժեք); lcd.print (" %"); ուշացում (1000); lcd. հստակ (); lcd.setCursor (0, 0); lcd.print («SMS ուղարկելը»); ուշացում (1000); lcd. հստակ (); հողային դրոշ = 0; ստուգում = 0; փորձարկում = 0; ուշացում (10); }}

Խորհուրդ ենք տալիս: