Kazalo:

Nadzor rastlin s sporočilom SMS: 5 korakov
Nadzor rastlin s sporočilom SMS: 5 korakov

Video: Nadzor rastlin s sporočilom SMS: 5 korakov

Video: Nadzor rastlin s sporočilom SMS: 5 korakov
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, Julij
Anonim
Nadzor rastlin s sporočilom SMS
Nadzor rastlin s sporočilom SMS

Tukaj ustvarim nadzor rastlin s sporočilom SMS. Strežnik za ta sistem opozarjanja ni potreben. To je zelo poceni in zanesljiv projekt.

1. korak: Blokovni diagram sistema

Blok diagram sistema
Blok diagram sistema

V današnjih rastlinjakih so potrebne številne meritve parametrov

za spremljanje in nadzor dobre kakovosti in produktivnosti rastlin. Toda za doseganje želenih rezultatov obstajajo nekateri zelo pomembni dejavniki, kot so temperatura, vlažnost, svetloba in dobra tla, ki so potrebni za boljšo rast rastlin. Ob upoštevanju teh parametrov sem z uporabo Arduina zgradil avtomatski sistem za spremljanje obratov prek GSM modula. Ta sistem je zelo učinkovit za gojenje kakovostnih rastlin. Drugi pomemben del tega projekta je, da je popolnoma avtomatiziran in deluje na nizko napetosti; 5-12V DC napajanje.

Danes se GSM modul pogosto uporablja za pošiljanje SMS -statusov vseh vrst podatkov. Tukaj v tem projektu z uporabo modula SIM900A GSM lahko hranimo informacije o vplivih podnebja na rastline. Sistem mora prikazati tudi podnebne spremembe, ki vplivajo na rastlino v njeni produktivnosti in kakovosti itd. Glavni namen priprave tega projekta je izgradnja avtomatskega nadzora obrata, v katerem modul GSM pošilja podatke o temperaturi, vlažnosti, intenzivnosti svetlobe, tleh vlage.

Ker sem indijski državljan, sem uporabljal modul SIM900A (A pomeni azijsko omrežje), lahko pa uporabljate različne vrste modulov SIM glede na vašo državo. Kode AT se lahko razlikujejo.

2. korak: Podrobnosti o komponentah

Podrobnosti o komponentah
Podrobnosti o komponentah
Podrobnosti o komponentah
Podrobnosti o komponentah
Podrobnosti o komponentah
Podrobnosti o komponentah

------------------ Merim štiri vrste parametrov, ki se dogajajo

za razpravo spodaj: ------------------

Temperatura in vlažnost

Senzor DHT11 se uporablja za zaznavanje temperature in vlažnosti. Ko sta temperatura in vlaga visoka, se poškoduje korenina rastlin in rast ne uspeva dobro.

Intenzivnost svetlobe

Intenzivnost svetlobe je pomemben dejavnik za rast rastlin. Za zaznavanje svetlobne jakosti se uporablja LDR (od svetlobe odvisen upor). Intenzivnost svetlobe se meri v LUX -u, zato se za demonstracijo uporablja 100 luči LUX kot definirana ali pražna raven.

Vlažnost tal

Vlažnost tal je zelo pomembna za dobro rast rastlin. Tu se senzor tal uporablja za merjenje vsebnosti vlage v tleh. S tem senzorjem lahko podatke o tleh merimo na oba načina, analogni in tudi digitalni.

Obvestilo SMS:

Ko vrednost katerega koli od zgornjih parametrov preseže določeno raven ali kritično raven, sistem samodejno pošlje SMS lastniku ali operaterju z informacijami o sorodnih parametrih in ko je vrednost v normalnem območju ali pod določeno raven, sistem samodejno pošljite SMS lastniku ali operaterju s podatki o sorodnih podatkih.

Obvestilo pošljite samo enkrat, dokler se pogoj ne spremeni, zato lastnik ali operater ne dobiva pogostih SMS. Zato je potreben nižji paket SMS.

3. korak: Shema vezja

Shema vezja
Shema vezja

Vsi ti deli so zlahka na voljo na katerem koli spletnem mestu za nakupovanje

ali pri znanem prodajalcu rezervnih delov za elektroniko. Tehnični listi vseh komponent so na voljo na spletu. Če imate težave, se obrnite na mojo pošto.

4. korak: Delajte video in kodno datoteko

Zadnji delovni videoposnetek projekta

5. korak: Koda programa

#vključi

#vključi

LCD tekoči kristal (2, 3, 4, 5, 6, 7);

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

plavajoči volt, lux, vrednost; int output_value; int temperatura, vlažnost; int lightflag = 0; int humflag = 0; int talna zastava = 0; int tempflag = 0; int preverjanje; int test, test1; stopnja bajtov [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};

void setup ()

{Serial.begin (9600); // Začetek serijske komunikacije za komunikacijo z modemom GSM lcd.begin (16, 2); pinMode (tla, VHOD); lcd.createChar (1, stopnja); lcd.setCursor (0, 0); lcd.print ("Zdravje rastlin"); lcd.setCursor (0, 1); lcd.print ("Spremljanje"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("AGRI PROJECT"); lcd.setCursor (0, 1); lcd.print ("Avtor S K CHHAYA"); zamuda (1000); lcd.clear (); } void loop () {output_value = analogRead (zemlja); output_value = zemljevid (output_value, 550, 0, 0, 100); vrednost = analogno branje (LUX); volt = (vrednost / 1023,0) * 5; lux = ((2500 / volt) - 500) / 3,3; zamuda (10000); // GSM -ju damo dovolj časa za registracijo v omrežju DHT.read11 (dht_dpin); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temp"); lcd.setCursor (0, 1); lcd.tisk (temperatura = temperatura DHT); // Temp podatki na LCD lcd.write (1); lcd.print ("C"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Vlažnost"); lcd.setCursor (0, 1); lcd.print (vlažnost = DHT.vlažnost); // Podatki o vlažnosti na LCD lcd.print (" %"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Light"); lcd.setCursor (0, 1); lcd.tisk (lux); // Podatki o svetlobi na LCD lcd.print ("LUM"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Vlaga"); lcd.setCursor (0, 1); lcd.print (vrednost_izhoda); // podatki o tleh na LCD lcd.print (" %"); zamuda (1000); lcd.clear ();

if (temperatura 40) {SendSMS (); // SMS za visoko temperaturo} if (vlažnost 40) {SendSMS2 (); // SMS za visoko vlažnost} if (lux 100) {SendSMS4 (); // SMS za Light high} if (output_value == 950) {SendSMS7 (); // SMS za suho zemljo} else if (output_value! = 950) {SendSMS6 (); // SMS za mokro zemljo}} void SendSMS () {if (tempflag == 0) {Serial.println ("AT+CMGF = 1"); zamuda (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); zamuda (500); Serial.print ("Visoka temperatura"); Serial.print ("Temp"); Serijski.tisk (temperatura); Serial.println ("stopnja C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Visoka temperatura"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatura"); lcd.setCursor (0, 1); lcd.tisk (temperatura); lcd.write (1); lcd.print ("C"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Pošiljanje SMS -a"); zamuda (1000); lcd.clear (); tempflag = 1; ček = 0; test = 0; zamuda (10); }} void SendSMS1 () {if (tempflag == 1) {Serial.println ("AT+CMGF = 1"); zamuda (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); zamuda (500); Serial.print ("Nizka temperatura"); Serial.print ("Temp"); Serijski.tisk (temperatura); Serial.println ("stopnja C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temperatura nizka"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatura"); lcd.setCursor (0, 1); lcd.tisk (temperatura); lcd.write (1); lcd.print ("C"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Pošiljanje SMS -a"); zamuda (1000); lcd.clear (); tempflag = 0; ček = 0; test = 0; zamuda (10); }} void SendSMS2 () {if (humflag == 0) {Serial.println ("AT+CMGF = 1"); zamuda (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); zamuda (500); Serial.print ("Visoka vlažnost"); Serijski.tisk (vlažnost); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Visoka vlažnost"); zamuda (1000); lcd.setCursor (0, 1); lcd.print ("Vlažnost"); lcd.tisk (vlažnost); lcd.print (" %"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Pošiljanje SMS -a"); zamuda (1000); lcd.clear (); humflag = 1; ček = 0; test = 0; zamuda (10); }}

void SendSMS3 () {if (humflag == 1) {Serial.println ("AT+CMGF = 1"); zamuda (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); zamuda (500); Serial.print ("Nizka vlažnost"); Serial.print ("Vlažnost"); Serijski.tisk (vlažnost); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Nizka vlažnost"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Vlažnost"); lcd.setCursor (0, 1); lcd.tisk (vlažnost); lcd.print (" %"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Pošiljanje SMS -a"); zamuda (1000); lcd.clear (); humflag = 0; ček = 0; test = 0; zamuda (10); }} void SendSMS4 () {if (lightflag == 0) {Serial.println ("AT+CMGF = 1"); // Za pošiljanje SMS v besedilnem načinu zakasnitev (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); // Sprememba na zamudo telefonske številke cilja (500); Serial.print ("Good LIGHT,"); Serial.print ("Intenzivnost"); Serijski.tisk (lux); Serial.println ("LUX"); Serial.println ((char) 26); // zaustavitveni znak Ctrl+Z lcd.setCursor (0, 0); lcd.print ("Dobra svetloba"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intenzivnost"); lcd.setCursor (0, 1); lcd.tisk (lux); lcd.print ("LUX"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Pošiljanje SMS -a"); zamuda (1000); lcd.clear (); svetlobna zastava = 1; ček = 0; test = 0; zamuda (10); }} void SendSMS5 () {if (lightflag == 1) {Serial.println ("AT+CMGF = 1"); zamuda (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); zamuda (500); Serial.print ("LOW LIGHT",)); Serial.print ("Intenzivnost"); Serijski.tisk (lux); Serial.println ("LUX"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Slaba svetloba"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intenzivnost"); lcd.setCursor (0, 1); lcd.tisk (lux); lcd.print ("LUX"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Pošiljanje SMS -a"); zamuda (1000); lcd.clear (); svetlobna zastava = 0; ček = 0; test = 0; zamuda (10); }} void SendSMS6 () {if (groundflag == 0) {Serial.println ("AT+CMGF = 1"); zamuda (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); zamuda (500); Serial.print ("Suha tla"); Serial.print ("Vlaga"); Serial.print (vrednost_izhoda); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Suha tla"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Vlaga"); lcd.setCursor (0, 1); lcd.print (vrednost_izhoda); lcd.print (" %"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Pošiljanje SMS -a"); zamuda (1000); lcd.clear (); talna zastava = 1; ček = 0; test = 0; zamuda (10); }} void SendSMS7 () {if (groundflag == 1) {Serial.println ("AT+CMGF = 1"); zamuda (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); zamuda (500); Serial.print ("Mokra tla",); Serial.print ("Vlaga"); Serial.print (vrednost_izhoda); Serial.println (" %"); Serial.println ((char) 26); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Mokra tla"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Vlaga"); lcd.setCursor (0, 1); lcd.print (vrednost_izhoda); lcd.print (" %"); zamuda (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Pošiljanje SMS -a"); zamuda (1000); lcd.clear (); talna zastava = 0; ček = 0; test = 0; zamuda (10); }}

Priporočena: