Sadržaj:

Nadzor postrojenja sa SMS upozorenjem: 5 koraka
Nadzor postrojenja sa SMS upozorenjem: 5 koraka

Video: Nadzor postrojenja sa SMS upozorenjem: 5 koraka

Video: Nadzor postrojenja sa SMS upozorenjem: 5 koraka
Video: Место, ГДЕ случилась КРУПНЕЙШАЯ техногеннная КАТАСТРОФА ☢️ БЩУ-4 на ЧЕРНОБЫЛЬСКОЙ АЭС ☢️ 2024, Juli
Anonim
Nadzor postrojenja s SMS upozorenjem
Nadzor postrojenja s SMS upozorenjem

Ovdje stvaram nadzor postrojenja sa SMS upozorenjem. Server nije potreban za ovaj sistem upozorenja. To je vrlo jeftin i pouzdan projekt.

Korak 1: Blok dijagram sistema

Blok dijagram sistema
Blok dijagram sistema

U današnjim staklenicima potrebna su mnoga mjerenja parametara

za praćenje i kontrolu dobrog kvaliteta i produktivnosti biljaka. No, da bi se postigli željeni rezultati, postoje neki vrlo važni faktori koji utječu na temperaturu, vlažnost, svjetlost i dobro tlo, koji su neophodni za bolji rast biljaka. Imajući ove parametre na umu, izgradio sam automatski sistem za nadgledanje postrojenja preko GSM modula pomoću Arduina. Ovaj sistem je vrlo efikasan za uzgoj biljaka dobrog kvaliteta. Drugi važan dio ovog projekta je da je potpuno automatiziran i radi na niskonaponskom naponu; 5-12V DC napajanje.

Danas se GSM modul široko koristi za slanje SMS statusa bilo koje vrste podataka. Ovdje u ovom projektu pomoću SIM900A GSM modula možemo čuvati informacije o utjecaju klime na biljke. Sistem će također pokazati klimatske promjene koje utiču na biljku u njenoj produktivnosti i kvaliteti itd. Glavna svrha ovog projekta je izgradnja automatskog nadzora postrojenja u kojem GSM modul šalje informacije o temperaturi, vlažnosti, intenzitetu svjetlosti, tlu vlage.

Budući da sam indijski državljanin, koristio sam SIM900A (A označava azijsku mrežu) modul, ali možete koristiti različite vrste SIM modula prema vašoj zemlji. AT kodovi se mogu razlikovati.

Korak 2: Detalji o komponentama

Detalji o komponentama
Detalji o komponentama
Detalji o komponentama
Detalji o komponentama
Detalji o komponentama
Detalji o komponentama

------------------ Ja mjerim četiri vrste parametara, koji idu

za diskusiju u nastavku: ------------------

Temperatura i vlažnost

Senzor DHT11 koristi se za mjerenje temperature i vlažnosti. Kod visokih temperatura i vlažnosti korijen biljaka je oštećen, a rast biljke nije dobar.

Intenzitet svjetla

Intenzitet svjetlosti važan je faktor za rast biljaka. Za detekciju intenziteta svjetlosti koristi se LDR (otpor ovisan o svjetlu). Intenzitet svjetlosti mjeri se u LUX -u, pa se za demonstraciju koristi 100 LUX svjetla kao definirani ili granični nivo.

Vlažnost tla

Sadržaj vlage u tlu vrlo je važan za dobar rast biljaka. Ovdje se senzor tla koristi za mjerenje sadržaja vlage u tlu. Pomoću ovog senzora možemo mjeriti podatke o tlu na oba načina, analogni i digitalni.

SMS obavještenje:

Kada vrijednost bilo kojeg od gore navedenih parametara pređe definiranu razinu ili kritični nivo, sistem automatski šalje SMS vlasniku ili operatoru s informacijama o srodnim parametrima, a kada vrijednost dođe u normalni raspon ili ispod definiranog nivoa, sistem automatski pošaljite SMS vlasniku ili operatoru s podacima o srodnim podacima.

Obavijest se šalje samo jednom dok se uvjet ne promijeni, pa vlasnik ili operater nemaju česte SMS poruke. Stoga je potreban niži SMS paket.

Korak 3: Dijagram kola

Dijagram kola
Dijagram kola

Svi ovi dijelovi lako su dostupni na bilo kojoj web stranici za kupovinu

ili kod poznatog prodavača rezervnih dijelova elektronike. Tehnički listovi svih komponenti dostupni su na webu. Ako imate bilo kakvih poteškoća, slobodno me kontaktirajte na moj mail.

Korak 4: Radni video zapis i datoteka koda

Završni radni video zapis projekta

Korak 5: Kodeks programa

#include

#include

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

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

plivajući volt, lux, vrijednost; int output_value; int temperatura, vlažnost; int lightflag = 0; int humflag = 0; int groundflag = 0; int tempflag = 0; int check; int test, test1; stepen bajtova [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};

void setup ()

{Serial.begin (9600); // Pokretanje serijske veze za komunikaciju s GSM modemom lcd.begin (16, 2); pinMode (zemlja, INPUT); lcd.createChar (1, stepen); lcd.setCursor (0, 0); lcd.print ("Zdravlje biljaka"); lcd.setCursor (0, 1); lcd.print ("Monitering"); kašnjenje (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("AGRI PROJECT"); lcd.setCursor (0, 1); lcd.print ("Autor S K CHHAYA"); kašnjenje (1000); lcd.clear (); } void loop () {output_value = analogRead (zemlja); output_value = mapa (output_value, 550, 0, 0, 100); value = analogRead (LUX); volt = (vrijednost / 1023,0) * 5; lux = ((2500 / volt) - 500) / 3,3; kašnjenje (10000); // Dajte dovoljno vremena da se GSM registrira na mreži DHT.read11 (dht_dpin); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temp"); lcd.setCursor (0, 1); lcd.print (temperatura = DHT.temperatura); // Podaci o tempu na LCD lcd.write (1); lcd.print ("C"); kašnjenje (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Vlažnost"); lcd.setCursor (0, 1); lcd.print (vlažnost = DHT. vlažnost); // Podaci o vlažnosti na LCD lcd.print (" %"); kašnjenje (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Light"); lcd.setCursor (0, 1); lcd.print (lux); // Podaci o svjetlu na LCD lcd.print ("LUM"); kašnjenje (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Vlaga"); lcd.setCursor (0, 1); lcd.print (output_value); // Podaci o tlu na LCD lcd.print (" %"); kašnjenje (1000); lcd.clear ();

if (temperatura 40) {SendSMS (); // SMS za visoku temperaturu} if (vlažnost 40) {SendSMS2 (); // SMS za visoku vlažnost} if (lux 100) {SendSMS4 (); // SMS za Light high} if (output_value == 950) {SendSMS7 (); // SMS za suho tlo} else if (output_value! = 950) {SendSMS6 (); // SMS za mokro tlo}} void SendSMS () {if (tempflag == 0) {Serial.println ("AT+CMGF = 1"); kašnjenje (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kašnjenje (500); Serial.print ("Visoka temperatura"); Serial.print ("Temp"); Serial.print (temperatura); Serial.println ("stepen C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temp. visoka"); kašnjenje (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatura"); lcd.setCursor (0, 1); lcd.print (temperatura); lcd.write (1); lcd.print ("C"); kašnjenje (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Slanje SMS -a"); kašnjenje (1000); lcd.clear (); tempflag = 1; ček = 0; test = 0; kašnjenje (10); }} void SendSMS1 () {if (tempflag == 1) {Serial.println ("AT+CMGF = 1"); kašnjenje (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kašnjenje (500); Serial.print ("Niska temp."); Serial.print ("Temp"); Serial.print (temperatura); Serial.println ("stepen C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Niska temp."); kašnjenje (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatura"); lcd.setCursor (0, 1); lcd.print (temperatura); lcd.write (1); lcd.print ("C"); kašnjenje (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Slanje SMS -a"); kašnjenje (1000); lcd.clear (); tempflag = 0; ček = 0; test = 0; kašnjenje (10); }} void SendSMS2 () {if (humflag == 0) {Serial.println ("AT+CMGF = 1"); kašnjenje (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kašnjenje (500); Serial.print ("Visoka vlažnost"); Serial.print (vlažnost); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Visoka vlažnost"); kašnjenje (1000); lcd.setCursor (0, 1); lcd.print ("Vlažnost"); lcd.print (vlažnost); lcd.print (" %"); kašnjenje (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Slanje SMS -a"); kašnjenje (1000); lcd.clear (); humflag = 1; ček = 0; test = 0; kašnjenje (10); }}

void SendSMS3 () {if (humflag == 1) {Serial.println ("AT+CMGF = 1"); kašnjenje (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kašnjenje (500); Serial.print ("Niska vlažnost",); Serial.print ("Vlažnost"); Serial.print (vlažnost); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Niska vlažnost"); kašnjenje (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Vlažnost"); lcd.setCursor (0, 1); lcd.print (vlažnost); lcd.print (" %"); kašnjenje (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Slanje SMS -a"); kašnjenje (1000); lcd.clear (); humflag = 0; ček = 0; test = 0; kašnjenje (10); }} void SendSMS4 () {if (lightflag == 0) {Serial.println ("AT+CMGF = 1"); // Za slanje SMS -a u tekstualnom modu kašnjenje (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); // Promjena na kašnjenje telefonskog broja odredišta (500); Serial.print ("Good LIGHT,"); Serial.print ("Intenzitet"); Serial.print (lux); Serial.println ("LUX"); Serial.println ((char) 26); // znak za zaustavljanje Ctrl+Z lcd.setCursor (0, 0); lcd.print ("Dobro svjetlo"); kašnjenje (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intenzitet"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); kašnjenje (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Slanje SMS -a"); kašnjenje (1000); lcd.clear (); lightflag = 1; ček = 0; test = 0; kašnjenje (10); }} void SendSMS5 () {if (lightflag == 1) {Serial.println ("AT+CMGF = 1"); kašnjenje (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kašnjenje (500); Serial.print ("LOW LIGHT,"); Serial.print ("Intenzitet"); Serial.print (lux); Serial.println ("LUX"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Slabo osvjetljenje"); kašnjenje (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intenzitet"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); kašnjenje (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Slanje SMS -a"); kašnjenje (1000); lcd.clear (); lightflag = 0; ček = 0; test = 0; kašnjenje (10); }} void SendSMS6 () {if (groundflag == 0) {Serial.println ("AT+CMGF = 1"); kašnjenje (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kašnjenje (500); Serial.print ("Suho tlo"); Serial.print ("Vlaga"); Serial.print (output_value); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Suho tlo"); kašnjenje (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Vlaga"); lcd.setCursor (0, 1); lcd.print (output_value); lcd.print (" %"); kašnjenje (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Slanje SMS -a"); kašnjenje (1000); lcd.clear (); groundflag = 1; ček = 0; test = 0; kašnjenje (10); }} void SendSMS7 () {if (groundflag == 1) {Serial.println ("AT+CMGF = 1"); kašnjenje (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kašnjenje (500); Serial.print ("Mokro tlo"); Serial.print ("Vlaga"); Serial.print (output_value); Serial.println (" %"); Serial.println ((char) 26); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Mokro tlo"); kašnjenje (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Vlaga"); lcd.setCursor (0, 1); lcd.print (output_value); lcd.print (" %"); kašnjenje (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Slanje SMS -a"); kašnjenje (1000); lcd.clear (); groundflag = 0; ček = 0; test = 0; kašnjenje (10); }}

Preporučuje se: