Cuprins:

Monitorizarea instalației cu alertă SMS: 5 pași
Monitorizarea instalației cu alertă SMS: 5 pași

Video: Monitorizarea instalației cu alertă SMS: 5 pași

Video: Monitorizarea instalației cu alertă SMS: 5 pași
Video: Cel mai IEFTIN și mai ”POPULAR” SMARTWATCH din ROMÂNIA 2024, Iulie
Anonim
Monitorizarea plantelor cu alertă SMS
Monitorizarea plantelor cu alertă SMS

Aici creez monitorizarea plantelor cu alertă SMS. Serverul nu este necesar pentru acest sistem de alertă. Este un proiect foarte ieftin și de încredere.

Pasul 1: Diagrama bloc a sistemului

Diagrama bloc a sistemului
Diagrama bloc a sistemului

În serele actuale, sunt necesare multe măsurători ale parametrilor

să monitorizeze și să controleze buna calitate și productivitatea plantelor. Dar pentru a obține rezultatele dorite există câțiva factori foarte importanți care intră în joc, cum ar fi temperatura, umiditatea, lumina și solul bun, care sunt necesare pentru o creștere mai bună a plantelor. Ținând cont de acești parametri, am construit un sistem automat de monitorizare a plantelor pe modul GSM folosind Arduino. Acest sistem este foarte eficient pentru cultivarea plantelor de bună calitate. Cealaltă parte importantă a acestui proiect este că este complet automat și funcționează la tensiune joasă, cum ar fi; Alimentare DC 5-12V.

Acum, modulul GSM de câteva zile este utilizat pe scară largă pentru trimiterea stării SMS a oricărui tip de date. Aici, în acest proiect, folosind modulul SIM900A GSM putem păstra informații despre efectele climatului asupra plantelor. Sistemul va demonstra, de asemenea, schimbările climatice care afectează planta în ceea ce privește productivitatea și calitatea sa etc. umiditate.

Deoarece sunt cetățean indian, am folosit modulul SIM900A (A înseamnă rețea asiatică), dar puteți utiliza diferite tipuri de module SIM în funcție de țara dvs. Codurile AT pot diferi.

Pasul 2: Detaliu component

Detaliu component
Detaliu component
Detaliu component
Detaliu component
Detaliu component
Detaliu component

------------------ Măsoară patru tipuri de parametri, care merg

pentru a discuta mai jos: ------------------

Temperatura și umiditatea

Senzorul DHT11 este utilizat pentru detectarea temperaturii și umidității. Când temperatura și umiditatea sunt ridicate, rădăcina plantelor este deteriorată și creșterea plantei nu este bine.

Intensitatea luminii

Intensitatea luminii este un factor important pentru creșterea plantelor. Pentru detectarea intensității luminii se folosește LDR (rezistență dependentă de lumină). Intensitatea luminii este măsurată în LUX și, prin urmare, pentru demonstrație, se utilizează 100 LUX, așa cum este definit sau nivelul pragului.

Umiditatea solului

Umiditatea solului conținută este foarte importantă pentru o bună creștere a plantelor. Aici senzorul de sol este utilizat pentru a măsura conținutul de umiditate din sol. Folosind cu acest senzor putem măsura datele solului în ambele sensuri, atât analogice, cât și digitale.

Notificare prin SMS:

Atunci când valoarea oricăruia dintre parametrii de mai sus este depășită de la un nivel definit sau un nivel critic, sistemul trimite automat SMS către proprietar sau operator cu informații despre parametrii asociați și când valoarea se situează în interval normal sau sub nivelul definit din nou sistemul automat trimite SMS către proprietar sau operator cu informații despre datele aferente.

Notificarea se trimite o singură dată până când condiția nu se modifică, astfel încât proprietarul sau operatorul să nu primească SMS-uri frecvente. Prin urmare, este necesar un pachet SMS mai mic.

Pasul 3: Diagrama circuitului

Diagrama circuitului
Diagrama circuitului

Toate aceste piese sunt ușor disponibile la orice site de cumpărături online

sau cu un cunoscut distribuitor de piese electronice. Toate fișele tehnice ale componentelor sunt disponibile pe web. Dacă aveți dificultăți, nu ezitați să contactați prin e-mailul meu.

Pasul 4: Fișier video și cod de lucru

Video final de lucru al proiectului

Pasul 5: Codul programului

#include

#include

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

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

float volt, lux, valoare; int output_value; temperatura int, umiditatea; int lightflag = 0; int humflag = 0; int soilflag = 0; int tempflag = 0; verificare int; int test, test1; grad de octeți [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};

configurare nulă ()

{Serial.begin (9600); // Inițializați serialul pentru a comunica cu modemul GSM lcd.begin (16, 2); pinMode (sol, INPUT); lcd.createChar (1, grad); lcd.setCursor (0, 0); lcd.print („Sănătatea plantelor”); lcd.setCursor (0, 1); lcd.print („Moniterare”); întârziere (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („PROIECT AGRI”); lcd.setCursor (0, 1); lcd.print („De S K CHHAYA”); întârziere (1000); lcd.clear (); } void loop () {output_value = analogRead (soil); output_value = hartă (output_value, 550, 0, 0, 100); valoare = analogRead (LUX); volt = (valoare / 1023,0) * 5; lux = ((2500 / volt) - 500) / 3,3; întârziere (10000); // Acordați suficient timp pentru ca GSM să se înregistreze pe rețeaua DHT.read11 (dht_dpin); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temp"); lcd.setCursor (0, 1); lcd.print (temperatura = temperatura DHT.); // Date temporare pe LCD lcd.write (1); lcd.print ("C"); întârziere (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Umiditate"); lcd.setCursor (0, 1); lcd.print (umiditate = DHT.umiditate); // Date privind umiditatea pe LCD lcd.print ("%"); întârziere (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Lumina"); lcd.setCursor (0, 1); lcd.print (lux); // Date luminoase pe LCD lcd.print ("LUM"); întârziere (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Umiditate"); lcd.setCursor (0, 1); lcd.print (output_value); // Date despre sol pe LCD lcd.print ("%"); întârziere (1000); lcd.clear ();

if (temperatura 40) {SendSMS (); // SMS pentru Temp ridicat} if (umiditate 40) {SendSMS2 (); // SMS pentru umiditate ridicată} if (lux 100) {SendSMS4 (); // SMS pentru Light high} if (output_value == 950) {SendSMS7 (); // SMS pentru sol uscat} else if (output_value! = 950) {SendSMS6 (); // SMS pentru sol umed}} void SendSMS () {if (tempflag == 0) {Serial.println ("AT + CMGF = 1"); întârziere (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); întârziere (500); Serial.print ("Temp High"); Serial.print ("Temp"); Serial.print (temperatura); Serial.println („gradul C”); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temp High"); întârziere (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatura"); lcd.setCursor (0, 1); lcd.print (temperatura); lcd.write (1); lcd.print ("C"); întârziere (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Trimiterea de SMS”); întârziere (1000); lcd.clear (); tempflag = 1; verifica = 0; test = 0; întârziere (10); }} void SendSMS1 () {if (tempflag == 1) {Serial.println ("AT + CMGF = 1"); întârziere (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); întârziere (500); Serial.print ("Temp Low"); Serial.print ("Temp"); Serial.print (temperatura); Serial.println („gradul C”); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temp Low"); întârziere (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatura"); lcd.setCursor (0, 1); lcd.print (temperatura); lcd.write (1); lcd.print ("C"); întârziere (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Trimiterea de SMS”); întârziere (1000); lcd.clear (); tempflag = 0; verifica = 0; test = 0; întârziere (10); }} void SendSMS2 () {if (humflag == 0) {Serial.println ("AT + CMGF = 1"); întârziere (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); întârziere (500); Serial.print ("Umiditate ridicată"); Serial.print (umiditate); Serial.println ("%"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print („Umiditate ridicată”); întârziere (1000); lcd.setCursor (0, 1); lcd.print ("Umiditate"); lcd.print (umiditate); lcd.print ("%"); întârziere (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Trimiterea de SMS”); întârziere (1000); lcd.clear (); humflag = 1; verifica = 0; test = 0; întârziere (10); }}

void SendSMS3 () {if (humflag == 1) {Serial.println ("AT + CMGF = 1"); întârziere (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); întârziere (500); Serial.print („Umiditate scăzută”); Serial.print ("Umiditate"); Serial.print (umiditate); Serial.println ("%"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print („Umiditate scăzută”); întârziere (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Umiditate"); lcd.setCursor (0, 1); lcd.print (umiditate); lcd.print ("%"); întârziere (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Trimiterea de SMS”); întârziere (1000); lcd.clear (); humflag = 0; verifica = 0; test = 0; întârziere (10); }} void SendSMS4 () {if (lightflag == 0) {Serial.println ("AT + CMGF = 1"); // Pentru a trimite SMS în modul Text întârziere (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); // Treceți la întârzierea numărului de telefon de destinație (500); Serial.print („LUMINĂ bună”); Serial.print („Intensitate”); Serial.print (lux); Serial.println ("LUX"); Serial.println ((char) 26); // caracterul de oprire Ctrl + Z lcd.setCursor (0, 0); lcd.print („Lumina bună”); întârziere (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Intensitate”); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); întârziere (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Trimiterea de SMS”); întârziere (1000); lcd.clear (); lightflag = 1; verifica = 0; test = 0; întârziere (10); }} void SendSMS5 () {if (lightflag == 1) {Serial.println ("AT + CMGF = 1"); întârziere (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); întârziere (500); Serial.print ("LIGHT LIGHT"); Serial.print („Intensitate”); Serial.print (lux); Serial.println ("LUX"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print („Lumina slabă”); întârziere (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Intensitate”); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); întârziere (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Trimiterea de SMS”); întârziere (1000); lcd.clear (); lightflag = 0; verifica = 0; test = 0; întârziere (10); }} void SendSMS6 () {if (soilflag == 0) {Serial.println ("AT + CMGF = 1"); întârziere (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); întârziere (500); Serial.print („Sol uscat”); Serial.print ("Umiditate"); Serial.print (output_value); Serial.println ("%"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print („Sol uscat”); întârziere (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Umiditate"); lcd.setCursor (0, 1); lcd.print (output_value); lcd.print ("%"); întârziere (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Trimiterea de SMS”); întârziere (1000); lcd.clear (); soilflag = 1; verifica = 0; test = 0; întârziere (10); }} void SendSMS7 () {if (soilflag == 1) {Serial.println ("AT + CMGF = 1"); întârziere (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); întârziere (500); Serial.print („Sol umed”); Serial.print ("Umiditate"); Serial.print (output_value); Serial.println ("%"); Serial.println ((char) 26); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Sol umed”); întârziere (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Umiditate"); lcd.setCursor (0, 1); lcd.print (output_value); lcd.print ("%"); întârziere (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Trimiterea de SMS”); întârziere (1000); lcd.clear (); soilflag = 0; verifica = 0; test = 0; întârziere (10); }}

Recomandat: