Turinys:

Augalų stebėjimas naudojant SMS įspėjimą: 5 žingsniai
Augalų stebėjimas naudojant SMS įspėjimą: 5 žingsniai

Video: Augalų stebėjimas naudojant SMS įspėjimą: 5 žingsniai

Video: Augalų stebėjimas naudojant SMS įspėjimą: 5 žingsniai
Video: EM Technologija Lenkijoje I 2024, Gruodis
Anonim
Augalų stebėjimas naudojant SMS įspėjimą
Augalų stebėjimas naudojant SMS įspėjimą

Čia aš sukuriu augalų stebėjimą SMS įspėjimu. Šiai įspėjimo sistemai serveris nereikalingas. Tai labai pigus ir patikimas projektas.

1 žingsnis: Blokuoti sistemos schemą

Blokinė sistemos schema
Blokinė sistemos schema

Šiuolaikiniuose šiltnamiuose reikia atlikti daugybę parametrų matavimų

stebėti ir kontroliuoti gerą augalų kokybę ir produktyvumą. Tačiau norint pasiekti norimų rezultatų, reikia atsižvelgti į kai kuriuos labai svarbius veiksnius, tokius kaip temperatūra, drėgmė, šviesa ir geras dirvožemis, kurie yra būtini geresniam augalų augimui. Turėdamas omenyje šiuos parametrus, sukūriau automatinę augalų stebėjimo sistemą per GSM modulį, naudodamas „Arduino“. Ši sistema yra labai efektyvi auginant geros kokybės augalus. Kita svarbi šio projekto dalis yra tai, kad jis yra visiškai automatinis ir veikia esant žemai įtampai; 5-12 V nuolatinės srovės maitinimas.

Šiandien GSM modulis yra plačiai naudojamas bet kokios rūšies duomenų SMS būsenai siųsti. Šiame projekte, naudojant SIM900A GSM modulį, galime išsaugoti informaciją apie klimato poveikį augalams. Sistema taip pat turi parodyti klimato pokyčius, kurie turi įtakos gamyklos našumui ir kokybei ir pan. Pagrindinis šio projekto tikslas yra sukurti automatinį augalų stebėjimą, kuriame GSM modulis siunčia informaciją apie temperatūrą, drėgmę, šviesos intensyvumą drėgmės.

Kadangi esu Indijos pilietis, naudoju SIM900A (A reiškia Azijos tinklo) modulį, tačiau galite naudoti kitokio tipo SIM modulį pagal savo šalį. AT kodai gali skirtis.

2 veiksmas: išsami komponento informacija

Detali informacija apie komponentą
Detali informacija apie komponentą
Detali informacija apie komponentą
Detali informacija apie komponentą
Detali informacija apie komponentą
Detali informacija apie komponentą

------------------ Aš išmatuoju keturių tipų parametrus, kurie vyksta

aptarti žemiau: ------------------

Temperatūra ir drėgmė

DHT11 jutiklis naudojamas temperatūrai ir drėgmei matuoti. Esant aukštai temperatūrai ir drėgmei, augalų šaknys yra pažeistos, o augalas blogai auga.

Šviesos stiprumas

Šviesos intensyvumas yra svarbus augalo augimo veiksnys. Šviesos intensyvumui nustatyti naudojamas LDR (nuo šviesos priklausomas rezistorius). Šviesos intensyvumas matuojamas LUX, todėl demonstravimui naudojama 100 LUX šviesa kaip apibrėžta arba ribinė.

Dirvožemio drėgmė

Dirvožemio drėgmė yra labai svarbi geram augalų augimui. Čia dirvožemio jutiklis naudojamas drėgmės kiekiui dirvožemyje matuoti. Naudodami šį jutiklį, galime matuoti dirvožemio duomenis abiem būdais, taip pat ir analogiškai, ir skaitmeniniu būdu.

SMS pranešimas:

Kai bet kurio iš aukščiau išvardytų parametrų vertė viršija nustatytą lygį arba kritinį lygį, sistema automatiškai siunčia SMS savininkui arba operatoriui su informacija apie susijusius parametrus, o kai vertė vėl yra normali arba žemiau nustatyto lygio, sistema automatiškai siųsti SMS savininkui ar operatoriui su informacija apie susijusius duomenis.

Pranešimas siunčiamas tik vieną kartą, kol sąlyga nepasikeis, todėl savininkas ar operatorius negauna dažnai SMS. Todėl reikia mažesnio SMS paketo.

3 žingsnis: grandinės schema

Grandinės schema
Grandinės schema

Visos šios dalys yra lengvai prieinamos bet kurioje internetinėje parduotuvėje

arba pas žinomą elektronikos atsarginių dalių pardavėją. Visus komponentų duomenų lapus galima rasti internete. Jei kyla kokių nors sunkumų, nedvejodami susisiekite el.

4 veiksmas: vaizdo ir kodo failo veikimas

Paskutinis projekto vaizdo įrašas

5 žingsnis: programos kodas

#įtraukti

#įtraukti

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

dht DHT; #define dht_dpin A1 #define LUX A0 #define ground A3

plūdinis voltas, liuksas, vertė; int output_value; int temperatūra, drėgmė; int lightflag = 0; int humflag = 0; int groundflag = 0; int tempflag = 0; int patikrinti; int test, test1; baitų laipsnis [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};

negaliojanti sąranka ()

{Serial.begin (9600); // Inicijuoti serijinį ryšį su GSM modemu lcd.begin (16, 2); pinMode (dirvožemis, ĮVADAS); lcd.createChar (1 laipsnis); lcd.setCursor (0, 0); lcd.print („Augalų sveikata“); lcd.setCursor (0, 1); lcd.print („Stebėjimas“); vėlavimas (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („AGRI PROJEKTAS“); lcd.setCursor (0, 1); lcd.print ("Autorius S K CHHAYA"); vėlavimas (1000); lcd.clear (); } void loop () {output_value = analogRead (dirvožemis); output_value = žemėlapis (output_value, 550, 0, 0, 100); vertė = analogRead (LUX); voltas = (vertė / 1023,0) * 5; liuksai = ((2500 / voltų) - 500) / 3,3; vėlavimas (10000); // Skirkite pakankamai laiko GSM užsiregistruoti tinkle DHT.read11 (dht_dpin); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temp"); lcd.setCursor (0, 1); lcd.print (temperatūra = DHT.temperatūra); // Laikini duomenys skystųjų kristalų ekrane lcd.write (1); lcd.print ("C"); vėlavimas (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Drėgmė“); lcd.setCursor (0, 1); lcd.print (drėgmė = DHT. drėgmė); // Drėgmės duomenys LCD lcd.print (" %"); vėlavimas (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Šviesa“); lcd.setCursor (0, 1); lcd.print (liuksas); // Šviesos duomenys LCD lcd.print ("LUM"); vėlavimas (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Drėgmė“); lcd.setCursor (0, 1); lcd.print (output_value); // Dirvožemio duomenys LCD lcd.print (" %"); vėlavimas (1000); lcd.clear ();

jei (temperatūra 40) {SendSMS (); // SMS aukštai temperatūrai} if (drėgmė 40) {SendSMS2 (); // SMS dėl didelės drėgmės} if (lux 100) {SendSMS4 (); // SMS šviesiai aukštai} if (output_value == 950) {SendSMS7 (); // SMS sausam dirvožemiui} else if (output_value! = 950) {SendSMS6 (); // SMS šlapiam dirvožemiui}} void SendSMS () {if (tempflag == 0) {Serial.println ("AT+CMGF = 1"); vėlavimas (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); vėlavimas (500); Serial.print („Aukšta temperatūra“); Serial.print („Temp“); Serijinis atspaudas (temperatūra); Serial.println („C laipsnis“); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print („Aukšta temperatūra“); vėlavimas (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatūra"); lcd.setCursor (0, 1); lcd.print (temperatūra); lcd.write (1); lcd.print ("C"); vėlavimas (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („SMS siuntimas“); vėlavimas (1000); lcd.clear (); tempflag = 1; čekis = 0; testas = 0; vėlavimas (10); }} void SendSMS1 () {if (tempflag == 1) {Serial.println ("AT+CMGF = 1"); vėlavimas (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); vėlavimas (500); Serial.print („Žema temperatūra“); Serial.print („Temp“); Serijinis atspaudas (temperatūra); Serial.println („C laipsnis“); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print („Žema temperatūra“); vėlavimas (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatūra"); lcd.setCursor (0, 1); lcd.print (temperatūra); lcd.write (1); lcd.print ("C"); vėlavimas (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („SMS siuntimas“); vėlavimas (1000); lcd.clear (); tempflag = 0; čekis = 0; testas = 0; vėlavimas (10); }} void SendSMS2 () {if (humflag == 0) {Serial.println ("AT+CMGF = 1"); vėlavimas (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); vėlavimas (500); Serial.print („Didelė drėgmė“); Serijinis atspaudas (drėgmė); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print („Didelė drėgmė“); vėlavimas (1000); lcd.setCursor (0, 1); lcd.print („Drėgmė“); lcd.print (drėgmė); lcd.print (" %"); vėlavimas (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („SMS siuntimas“); vėlavimas (1000); lcd.clear (); humflag = 1; čekis = 0; testas = 0; vėlavimas (10); }}

void SendSMS3 () {if (humflag == 1) {Serial.println ("AT+CMGF = 1"); vėlavimas (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); vėlavimas (500); Serial.print („Maža drėgmė“); Serial.print („Drėgmė“); Serijinis atspaudas (drėgmė); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print („Maža drėgmė“); vėlavimas (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Drėgmė“); lcd.setCursor (0, 1); lcd.print (drėgmė); lcd.print (" %"); vėlavimas (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („SMS siuntimas“); vėlavimas (1000); lcd.clear (); humflag = 0; čekis = 0; testas = 0; vėlavimas (10); }} void SendSMS4 () {if (lightflag == 0) {Serial.println ("AT+CMGF = 1"); // Norėdami siųsti SMS teksto režimu, uždelsimas (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); // Pakeisti į paskirties telefono numerio uždelsimą (500); Serial.print („Gera šviesa“); Serial.print („Intensity“); Serijinis atspaudas (liuksai); Serial.println („LUX“); Serial.println ((char) 26); // stabdantis simbolis Ctrl+Z lcd.setCursor (0, 0); lcd.print („Gera šviesa“); vėlavimas (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Intensyvumas“); lcd.setCursor (0, 1); lcd.print (liuksas); lcd.print ("LUX"); vėlavimas (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („SMS siuntimas“); vėlavimas (1000); lcd.clear (); šviesos vėliava = 1; čekis = 0; testas = 0; vėlavimas (10); }} void SendSMS5 () {if (lightflag == 1) {Serial.println ("AT+CMGF = 1"); vėlavimas (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); vėlavimas (500); Serial.print („LOW LIGHT“); Serial.print („Intensity“); Serijinis atspaudas (liuksai); Serial.println („LUX“); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print („Silpnas apšvietimas“); vėlavimas (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Intensyvumas“); lcd.setCursor (0, 1); lcd.print (liuksas); lcd.print ("LUX"); vėlavimas (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („SMS siuntimas“); vėlavimas (1000); lcd.clear (); šviesos vėliava = 0; čekis = 0; testas = 0; vėlavimas (10); }} void SendSMS6 () {if (groundflag == 0) {Serial.println ("AT+CMGF = 1"); vėlavimas (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); vėlavimas (500); Serial.print („Sausas dirvožemis“); Serial.print („Drėgmė“); Serial.print (output_value); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Sausas dirvožemis"); vėlavimas (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Drėgmė“); lcd.setCursor (0, 1); lcd.print (output_value); lcd.print (" %"); vėlavimas (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („SMS siuntimas“); vėlavimas (1000); lcd.clear (); dirvos vėliava = 1; čekis = 0; testas = 0; vėlavimas (10); }} void SendSMS7 () {if (groundflag == 1) {Serial.println ("AT+CMGF = 1"); vėlavimas (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); vėlavimas (500); Serial.print („Šlapias dirvožemis“); Serial.print („Drėgmė“); Serial.print (output_value); Serial.println (" %"); Serial.println ((char) 26); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Šlapias dirvožemis“); vėlavimas (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Drėgmė“); lcd.setCursor (0, 1); lcd.print (output_value); lcd.print (" %"); vėlavimas (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („SMS siuntimas“); vėlavimas (1000); lcd.clear (); dirvos vėliava = 0; čekis = 0; testas = 0; vėlavimas (10); }}

Rekomenduojamas: