Innehållsförteckning:

Växtövervakning med SMS -varning: 5 steg
Växtövervakning med SMS -varning: 5 steg

Video: Växtövervakning med SMS -varning: 5 steg

Video: Växtövervakning med SMS -varning: 5 steg
Video: Störig granne 2024, November
Anonim
Växtövervakning med SMS -varning
Växtövervakning med SMS -varning

Här skapar jag växtövervakning med SMS -varning. Server krävs inte för detta varningssystem. Det är ett mycket billigt och pålitligt projekt.

Steg 1: Blockdiagram över systemet

Blockdiagram över systemet
Blockdiagram över systemet

I dagens växthus krävs många parametermätningar

att övervaka och kontrollera för växternas goda kvalitet och produktivitet. Men för att få önskat resultat finns det några mycket viktiga faktorer som spelar in, som temperatur, luftfuktighet, ljus och god jord, som är nödvändiga för en bättre växttillväxt. Med tanke på dessa parametrar har jag byggt ett automatiskt växtövervakningssystem över GSM -modul med Arduino. Detta system är mycket effektivt för odling av växter av god kvalitet. Den andra viktiga delen av detta projekt är att det är helautomatiskt och fungerar på lågspänning som; 5-12V likström.

Nu för tiden används GSM -modul i stor utsträckning för att skicka SMS -status för alla typer av data. Här i detta projekt kan vi med SIM900A GSM -modul behålla information om klimatets effekter på växter. Systemet ska också visa klimatförändringar som påverkar anläggningens produktivitet och kvalitet etc. Huvudsyftet med detta projekt är att bygga en automatisk växtövervakning där GSM -modul skickar information om temperatur, luftfuktighet, ljusintensitet, jord. fukt.

Eftersom jag är indisk medborgare använde jag SIM900A (A står för asiatiskt nätverk) men du kan använda olika typer av SIM -moduler enligt ditt land. AT -koder kan skilja sig åt.

Steg 2: Komponentdetaljer

Komponent detalj
Komponent detalj
Komponent detalj
Komponent detalj
Komponent detalj
Komponent detalj

------------------ Jag mäter fyra typer av parametrar, som går

att diskutera nedan: ------------------

Temperatur och luftfuktighet

DHT11 -sensorn används för att avkänna temperatur och luftfuktighet. När temperaturen och luftfuktigheten är hög roten av växter skadade och tillväxten av växten inte bra.

Ljusintensitet

Ljusintensitet är en viktig faktor för växttillväxten. För att detektera ljusintensitet används LDR (ljusberoende motstånd). Ljusintensitet mäts i LUX och därför används för demonstration 100 LUX -ljus som definierat eller tröskelnivå.

Markfuktighet

Jordfuktighetsinnehållet är mycket viktigt för en god tillväxt av växter. Här används jordgivare för att mäta fuktinnehåll i mark. Med denna sensor kan vi mäta jorddata på båda sätten, både analoga och digitala.

SMS -meddelande:

När värdet för någon av ovanstående parametrar överskrider från en definierad nivå eller kritisk nivå, skickar systemet automatiskt SMS till ägaren eller operatören med information om relaterade parametrar och när värdet kommer i normalt område eller under den definierade nivån igen systemet automatiskt skicka SMS till ägaren eller operatören med information om relaterad data.

Meddelandet skickas bara en gång tills villkoret inte ändras så att ägaren eller operatören inte får ofta sms. Därför krävs lägre SMS -paket.

Steg 3: Kretsdiagram

Kretsdiagram
Kretsdiagram

Alla dessa delar är lätt tillgängliga på alla onlineshopsidor

eller hos en välkänd elektronikreservhandlare. Alla komponenter datablad finns tillgängliga på webben. Om du har problem kan du kontakta mig på min mail.

Steg 4: Arbetsvideo och kodfil

Slutlig arbetsvideo av projektet

Steg 5: Programkod

#omfatta

#omfatta

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

dht DHT; #define dht_dpin A1 #define LUX A0 #definiera jord A3

float volt, lux, värde; int output_value; int temperatur, luftfuktighet; int lightflag = 0; int humflag = 0; int jordflagg = 0; int tempflag = 0; int check; int test, test1; bytegrad [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};

void setup ()

{Serial.begin (9600); // Initiera serien för att kommunicera med GSM -modem lcd.begin (16, 2); pinMode (jord, INGÅNG); lcd.createChar (1, grad); lcd.setCursor (0, 0); lcd.print ("Växthälsa"); lcd.setCursor (0, 1); lcd.print ("Monitering"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("AGRI PROJECT"); lcd.setCursor (0, 1); lcd.print ("Av S K CHHAYA"); fördröjning (1000); lcd.clear (); } void loop () {output_value = analogRead (jord); output_value = map (output_value, 550, 0, 0, 100); värde = analogRead (LUX); volt = (värde / 1023,0) * 5; lux = ((2500 / volt) - 500) / 3,3; fördröjning (10000); // Ge tillräckligt med tid för GSM att registrera sig på nätverket DHT.read11 (dht_dpin); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temp"); lcd.setCursor (0, 1); lcd.print (temperatur = DHT. temperatur); // Temp data på LCD lcd.write (1); lcd.print ("C"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Fuktighet"); lcd.setCursor (0, 1); lcd.print (fuktighet = DHT.fuktighet); // Luftfuktighetsdata på LCD lcd.print (" %"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Light"); lcd.setCursor (0, 1); lcd.print (lux); // Ljusdata på LCD lcd.print ("LUM"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Fukt"); lcd.setCursor (0, 1); lcd.print (output_value); // Jorddata på LCD lcd.print (" %"); fördröjning (1000); lcd.clear ();

if (temperatur 40) {SendSMS (); // SMS för Temp hög} if (fuktighet 40) {SendSMS2 (); // SMS för fuktighet hög} if (lux 100) {SendSMS4 (); // SMS för Light high} if (output_value == 950) {SendSMS7 (); // SMS för torr jord} annars if (output_value! = 950) {SendSMS6 (); // SMS för Wet Soil}} void SendSMS () {if (tempflag == 0) {Serial.println ("AT+CMGF = 1"); fördröjning (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); fördröjning (500); Serial.print ("Temp High"); Serial.print ("Temp"); Seriellt tryck (temperatur); Serial.println ("grad C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temp High"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatur"); lcd.setCursor (0, 1); lcd.print (temperatur); lcd.write (1); lcd.print ("C"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Skicka SMS"); fördröjning (1000); lcd.clear (); tempflag = 1; check = 0; test = 0; fördröjning (10); }} void SendSMS1 () {if (tempflag == 1) {Serial.println ("AT+CMGF = 1"); fördröjning (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); fördröjning (500); Serial.print ("Temp Low"); Serial.print ("Temp"); Seriellt tryck (temperatur); Serial.println ("grad C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temp Low"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatur"); lcd.setCursor (0, 1); lcd.print (temperatur); lcd.write (1); lcd.print ("C"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Skicka SMS"); fördröjning (1000); lcd.clear (); tempflag = 0; check = 0; test = 0; fördröjning (10); }} void SendSMS2 () {if (humflag == 0) {Serial.println ("AT+CMGF = 1"); fördröjning (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); fördröjning (500); Serial.print ("Luftfuktighet hög"); Seriellt tryck (luftfuktighet); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Luftfuktighet hög"); fördröjning (1000); lcd.setCursor (0, 1); lcd.print ("Fuktighet"); lcd.print (fuktighet); lcd.print (" %"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Skicka SMS"); fördröjning (1000); lcd.clear (); humflag = 1; check = 0; test = 0; fördröjning (10); }}

void SendSMS3 () {if (humflag == 1) {Serial.println ("AT+CMGF = 1"); fördröjning (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); fördröjning (500); Serial.print ("Låg luftfuktighet"); Serial.print ("Luftfuktighet"); Seriellt tryck (luftfuktighet); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Låg luftfuktighet"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Fuktighet"); lcd.setCursor (0, 1); lcd.print (fuktighet); lcd.print (" %"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Skicka SMS"); fördröjning (1000); lcd.clear (); humflag = 0; check = 0; test = 0; fördröjning (10); }} void SendSMS4 () {if (lightflag == 0) {Serial.println ("AT+CMGF = 1"); // För att skicka SMS i textlägesfördröjning (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); // Ändra till destination telefonnummer fördröjning (500); Serial.print ("Bra LJUS"); Serial.print ("Intensitet"); Serial.print (lux); Serial.println ("LUX"); Serial.println ((char) 26); // stopptecknet Ctrl+Z lcd.setCursor (0, 0); lcd.print ("Bra ljus"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intensitet"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Skicka SMS"); fördröjning (1000); lcd.clear (); lightflag = 1; check = 0; test = 0; fördröjning (10); }} void SendSMS5 () {if (lightflag == 1) {Serial.println ("AT+CMGF = 1"); fördröjning (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); fördröjning (500); Serial.print ("LÅGT LJUS"); Serial.print ("Intensitet"); Serial.print (lux); Serial.println ("LUX"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Svagt ljus"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intensitet"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Skicka SMS"); fördröjning (1000); lcd.clear (); lightflag = 0; check = 0; test = 0; fördröjning (10); }} void SendSMS6 () {if (soilflag == 0) {Serial.println ("AT+CMGF = 1"); fördröjning (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); fördröjning (500); Serial.print ("torr jord"); Serial.print ("Fukt"); Serial.print (output_value); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("torr jord"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Fukt"); lcd.setCursor (0, 1); lcd.print (output_value); lcd.print (" %"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Skicka SMS"); fördröjning (1000); lcd.clear (); jordflagg = 1; check = 0; test = 0; fördröjning (10); }} void SendSMS7 () {if (soilflag == 1) {Serial.println ("AT+CMGF = 1"); fördröjning (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); fördröjning (500); Serial.print ("Wet Soil"); Serial.print ("Fukt"); Serial.print (output_value); Serial.println (" %"); Serial.println ((char) 26); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("våt jord"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Fukt"); lcd.setCursor (0, 1); lcd.print (output_value); lcd.print (" %"); fördröjning (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Skicka SMS"); fördröjning (1000); lcd.clear (); jordflagg = 0; check = 0; test = 0; fördröjning (10); }}

Rekommenderad: