INHOUDSOPGAWE:

Plantmonitering met SMS -waarskuwing: 5 stappe
Plantmonitering met SMS -waarskuwing: 5 stappe

Video: Plantmonitering met SMS -waarskuwing: 5 stappe

Video: Plantmonitering met SMS -waarskuwing: 5 stappe
Video: How to calibrate Soil Moisture Sensor in 5 minutes 2024, November
Anonim
Plantmonitering met SMS -waarskuwing
Plantmonitering met SMS -waarskuwing

Hier skep ek plantmonitering met SMS -waarskuwing. Bediener is nie nodig vir hierdie waarskuwingstelsel nie. Dit is 'n baie goedkoop en betroubare projek.

Stap 1: Blokdiagram van die stelsel

Blokdiagram van stelsel
Blokdiagram van stelsel

In die kweekhuise van vandag is baie parametermetings nodig

om die goeie kwaliteit en produktiwiteit van plante te monitor en te beheer. Maar om die gewenste resultate te behaal, is daar 'n paar baie belangrike faktore wat speel, soos temperatuur, humiditeit, lig en goeie grond, wat nodig is vir 'n beter plantgroei. Met inagneming van hierdie parameters, het ek 'n outomatiese plantmoniteringstelsel gebou op 'n GSM -module met behulp van Arduino. Hierdie stelsel is baie doeltreffend vir die verbouing van plante van goeie gehalte. Die ander belangrike deel van hierdie projek is dat dit volledig outomaties is en op lae spanning werk; 5-12V DC toevoer.

Deesdae word GSM -module wyd gebruik vir die stuur van SMS -status van enige soort data. Hier in hierdie projek kan ons met behulp van die SIM900A GSM -module inligting oor die uitwerking van die klimaat op plante bewaar. Die stelsel sal ook klimaatsveranderinge toon wat die plant se produktiwiteit en kwaliteit beïnvloed, ens. Die hoofdoel van hierdie projek is om 'n outomatiese plantmonitering op te stel waarin die GSM -module inligting oor temperatuur, humiditeit, ligintensiteit, grond stuur vog.

Omdat ek die Indiese burger is, het ek die SIM900A -module (A staan vir Asiatiese netwerk) gebruik, maar u kan 'n ander SIM -module volgens u land gebruik. Die AT -kodes kan verskil.

Stap 2: Komponentdetail

Komponent detail
Komponent detail
Komponent detail
Komponent detail
Komponent detail
Komponent detail

------------------ Ek meet vier tipes parameters, wat gaan

om hieronder te bespreek: ------------------

Temperatuur en humiditeit

Die DHT11 -sensor word gebruik om temperatuur en humiditeit te meet. As die temperatuur en humiditeit hoog is, is die wortel van plante beskadig en die groei van die plant nie goed nie.

Ligte intensiteit

Ligintensiteit is 'n belangrike faktor vir die plantegroei. Vir die opsporing van ligintensiteit word LDR (ligafhanklike weerstand) gebruik. Die intensiteit van lig word gemeet in LUX en daarom word 100 LUX -lig vir demonstrasie gebruik soos gedefinieer of drempelvlak.

Grondvog

Grondvog bevat baie belangrik vir goeie groei van plante. Hier word grondsensor gebruik om die voginhoud in die grond te meet. Met hierdie sensor kan ons gronddata op beide maniere meet, analoog sowel as digitaal.

SMS -kennisgewing:

As die waarde van enige van die bogenoemde parameters oorskry word vanaf 'n gedefinieerde vlak of kritieke vlak, stuur die stelsel outomaties SMS na die eienaar of die operateur met inligting oor verwante parameters en as die waarde binne normale omvang of weer onder die gedefinieerde vlak kom, stuur die stelsel outomaties stuur 'n SMS na die eienaar of die operateur met inligting oor verwante data.

Die kennisgewing word slegs een keer gestuur totdat die toestand nie verander nie, sodat die eienaar of operateur nie gereeld SMS ontvang nie. Laer SMS -pakket word dus benodig.

Stap 3: Kringdiagram

Stroombaandiagram
Stroombaandiagram

Al hierdie onderdele is maklik beskikbaar by enige aanlyn inkopiesentrum

of by 'n bekende elektroniese onderdele-handelaar. Alle gegewensblaaie vir komponente is op die web beskikbaar. As u probleme ondervind, kontak my gerus.

Stap 4: Werk video en kode lêer

Laaste werkvideo van die projek

Stap 5: Kode van program

#insluit

#insluit

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

dht DHT; #definieer dht_dpin A1 #definieer LUX A0 #definieer grond A3

float volt, lux, waarde; int output_waarde; int temperatuur, humiditeit; int ligvlag = 0; int humflag = 0; int grondvlag = 0; int tempflag = 0; int tjek; int toets, toets1; greepgraad [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};

leemte opstelling ()

{Serial.begin (9600); // Initialiseer reeks om met GSM -modem te kommunikeer lcd.begin (16, 2); pinMode (grond, INVOER); lcd.createChar (1, graad); lcd.setCursor (0, 0); lcd.print ("Plantgesondheid"); lcd.setCursor (0, 1); lcd.print ("Monitering"); vertraging (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("AGRI PROJECT"); lcd.setCursor (0, 1); lcd.print ("Deur S K CHHAYA"); vertraging (1000); lcd.clear (); } leemte lus () {output_value = analogRead (grond); output_value = kaart (output_value, 550, 0, 0, 100); waarde = analogRead (LUX); volt = (waarde / 1023,0) * 5; lux = ((2500 / volt) - 500) / 3.3; vertraging (10000); // Gee genoeg tyd vir GSM om op Network DHT.read11 (dht_dpin) te registreer; lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temp"); lcd.setCursor (0, 1); lcd.print (temperatuur = DHT.temperatuur); // Temp data op LCD lcd.write (1); lcd.print ("C"); vertraging (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Humiditeit"); lcd.setCursor (0, 1); lcd.print (humiditeit = DHT.vochtigheid); // Humiditeitsdata op LCD lcd.print (" %"); vertraging (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Lig"); lcd.setCursor (0, 1); lcd.print (lux); // Lig data op LCD lcd.print ("LUM"); vertraging (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Vog"); lcd.setCursor (0, 1); lcd.print (uitvoerwaarde); // Gronddata op LCD lcd.print (" %"); vertraging (1000); lcd.clear ();

as (temperatuur 40) {SendSMS (); // SMS vir Temp high} if (humiditeit 40) {SendSMS2 (); // SMS vir humiditeit hoog} if (lux 100) {SendSMS4 (); // SMS vir Light high} if (output_value == 950) {SendSMS7 (); // SMS vir droë grond} anders as (output_value! = 950) {SendSMS6 (); // SMS vir Wet Soil}} void SendSMS () {if (tempflag == 0) {Serial.println ("AT+CMGF = 1"); vertraging (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); vertraging (500); Serial.print ("Temp High"); Serial.print ("Temp"); Reeks.afdruk (temperatuur); Serial.println ("graad C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temp High"); vertraging (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("temperatuur"); lcd.setCursor (0, 1); lcd.print (temperatuur); lcd.write (1); lcd.print ("C"); vertraging (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS stuur"); vertraging (1000); lcd.clear (); tempflag = 1; tjek = 0; toets = 0; vertraging (10); }} ongeldig SendSMS1 () {if (tempflag == 1) {Serial.println ("AT+CMGF = 1"); vertraging (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); vertraging (500); Serial.print ("Lae temp,"); Serial.print ("Temp"); Reeks.afdruk (temperatuur); Serial.println ("graad C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temp Low"); vertraging (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("temperatuur"); lcd.setCursor (0, 1); lcd.print (temperatuur); lcd.write (1); lcd.print ("C"); vertraging (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS stuur"); vertraging (1000); lcd.clear (); tempflag = 0; tjek = 0; toets = 0; vertraging (10); }} ongeldig SendSMS2 () {if (humflag == 0) {Serial.println ("AT+CMGF = 1"); vertraging (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); vertraging (500); Serial.print ("humiditeit hoog"); Reeks.afdruk (humiditeit); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("humiditeit hoog"); vertraging (1000); lcd.setCursor (0, 1); lcd.print ("Humiditeit"); lcd.print (humiditeit); lcd.print (" %"); vertraging (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS stuur"); vertraging (1000); lcd.clear (); humflag = 1; tjek = 0; toets = 0; vertraging (10); }}

void SendSMS3 () {if (humflag == 1) {Serial.println ("AT+CMGF = 1"); vertraging (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); vertraging (500); Serial.print ("Lae humiditeit"); Serial.print ("Humiditeit"); Reeks.afdruk (humiditeit); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("lae humiditeit"); vertraging (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Humiditeit"); lcd.setCursor (0, 1); lcd.print (humiditeit); lcd.print (" %"); vertraging (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS stuur"); vertraging (1000); lcd.clear (); humflag = 0; tjek = 0; toets = 0; vertraging (10); }} ongeldig SendSMS4 () {if (lightflag == 0) {Serial.println ("AT+CMGF = 1"); // Om SMS te stuur in die teksmodusvertraging (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); // Wissel na bestemming telefoonnommer vertraging (500); Serial.print ("Goeie LIG"); Serial.print ("Intensiteit"); Reeks.afdruk (lux); Serial.println ("LUX"); Serial.println ((char) 26); // die stopkarakter Ctrl+Z lcd.setCursor (0, 0); lcd.print ("Goeie lig"); vertraging (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intensiteit"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); vertraging (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS stuur"); vertraging (1000); lcd.clear (); ligvlag = 1; tjek = 0; toets = 0; vertraging (10); }} ongeldig SendSMS5 () {if (lightflag == 1) {Serial.println ("AT+CMGF = 1"); vertraging (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); vertraging (500); Serial.print ("LOW LIGHT,"); Serial.print ("Intensiteit"); Reeks.afdruk (lux); Serial.println ("LUX"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Lae lig"); vertraging (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intensiteit"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); vertraging (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS stuur"); vertraging (1000); lcd.clear (); ligvlag = 0; tjek = 0; toets = 0; vertraging (10); }} void SendSMS6 () {if (soilflag == 0) {Serial.println ("AT+CMGF = 1"); vertraging (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); vertraging (500); Serial.print ("droë grond,"); Serial.print ("Vog"); Serial.print (uitvoerwaarde); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("droë grond"); vertraging (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Vog"); lcd.setCursor (0, 1); lcd.print (uitvoerwaarde); lcd.print (" %"); vertraging (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS stuur"); vertraging (1000); lcd.clear (); grondvlag = 1; tjek = 0; toets = 0; vertraging (10); }} void SendSMS7 () {if (soilflag == 1) {Serial.println ("AT+CMGF = 1"); vertraging (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); vertraging (500); Serial.print ("nat grond"); Serial.print ("Vog"); Serial.print (uitvoerwaarde); Serial.println (" %"); Serial.println ((char) 26); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("nat grond"); vertraging (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Vog"); lcd.setCursor (0, 1); lcd.print (uitvoerwaarde); lcd.print (" %"); vertraging (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS stuur"); vertraging (1000); lcd.clear (); grondvlag = 0; tjek = 0; toets = 0; vertraging (10); }}

Aanbeveel: