Mündəricat:

SMS xəbərdarlığı ilə bitki monitorinqi: 5 addım
SMS xəbərdarlığı ilə bitki monitorinqi: 5 addım

Video: SMS xəbərdarlığı ilə bitki monitorinqi: 5 addım

Video: SMS xəbərdarlığı ilə bitki monitorinqi: 5 addım
Video: Təzyiqi DƏRMANSIZ salmaq üçün ən asan üsul 2024, Noyabr
Anonim
SMS xəbərdarlığı ilə bitki monitorinqi
SMS xəbərdarlığı ilə bitki monitorinqi

Burada SMS xəbərdarlığı ilə Bitki monitorinqi yaradıram. Bu xəbərdarlıq sistemi üçün server tələb olunmur. Çox ucuz və etibarlı bir layihədir.

Addım 1: Sistemin Blok Şeması

Sistemin Blok Şeması
Sistemin Blok Şeması

İndiki istixanalarda bir çox parametr ölçülməsi tələb olunur

bitkilərin keyfiyyətli və məhsuldar olmasına nəzarət etmək və nəzarət etmək. İstədiyiniz nəticəni əldə etmək üçün daha yaxşı bir bitki böyüməsi üçün lazım olan İstilik, Rütubət, İşıq və Yaxşı Torpaq kimi çox vacib amillər var. Bu parametrləri nəzərə alaraq Arduino istifadə edərək GSM modulu üzərində Avtomatik Bitki İzləmə Sistemi qurdum. Bu sistem keyfiyyətli bitkilər yetişdirmək üçün çox səmərəlidir. Bu layihənin digər əhəmiyyətli hissəsi tam avtomatik olması və aşağı gərginlikdə çalışmasıdır; 5-12V DC təchizatı.

İndi bir gün GSM Modulu hər hansı bir məlumatın SMS vəziyyətini göndərmək üçün geniş istifadə olunur. Burada bu layihədə SIM900A GSM Modulundan istifadə edərək iqlimin bitkilərə təsiri haqqında məlumat saxlaya bilərik. Sistem eyni zamanda bitkinin məhsuldarlığı və keyfiyyətinə təsir edən iqlim dəyişikliklərini nümayiş etdirməlidir. Bu layihəni hazırlamağın əsas məqsədi GSM modulunun Temperatur, Rütubət, İşıq intensivliyi, Torpaq haqqında məlumat göndərdiyi Avtomatik Bitki Monitorinqini qurmaqdır. nəm

Hindistan vətəndaşı olduğum üçün SIM900A (As şəbəkəsi deməkdir) modulundan istifadə etdim, ancaq ölkənizə görə fərqli növ SİM modullardan istifadə edə bilərsiniz. AT kodları fərqli ola bilər.

Addım 2: Komponent Detalları

Komponent Ətraflı
Komponent Ətraflı
Komponent Ətraflı
Komponent Ətraflı
Komponent Ətraflı
Komponent Ətraflı

------------------ Mən gedən dörd növ parametri ölçürəm

aşağıda müzakirə etmək üçün: ------------------

Temperatur və Rütubət

DHT11 sensoru temperatur və rütubəti hiss etmək üçün istifadə olunur. İstilik və rütubət yüksək olduqda bitkilərin kökü zədələnir və bitkinin inkişafı yaxşı olmaz.

İşıq intensivliyi

İşığın intensivliyi bitkinin inkişafı üçün vacib amildir. İşığın intensivliyini aşkar etmək üçün LDR (İşıqdan asılı rezistor) istifadə olunur. İşığın intensivliyi LUX ilə ölçülür və buna görə də nümayiş üçün 100 LUX işığı müəyyən edilmiş və ya eşik səviyyəsi olaraq istifadə olunur.

Torpaq Nəmliyi

Torpağın nəmliyi bitkilərin yaxşı inkişafı üçün çox vacibdir. Burada Torpaq sensoru Torpaqdakı nəmliyi ölçmək üçün istifadə olunur. Bu sensordan istifadə edərək torpaq məlumatlarını həm analoq həm də rəqəmsal olaraq ölçə bilərik.

SMS Bildirişi:

Yuxarıdakı parametrlərdən birinin dəyəri müəyyən bir səviyyədən və ya kritik səviyyədən artıq olduqda, sistem avtomatik olaraq sahibinə və ya operatora əlaqəli parametrlər haqqında məlumat göndərir və dəyər normal həddə və ya müəyyən edilmiş səviyyədən aşağı olduqda sistem avtomatik olaraq əlaqəli məlumatlar barədə sahibinə və ya operatoruna SMS göndərin.

Bildiriş, şərt dəyişməyincə sahibinə və ya operatoruna tez -tez SMS gəlməyənə qədər yalnız bir dəfə göndərilir. Buna görə daha aşağı SMS paketi tələb olunur.

Addım 3: Dövrə Şeması

Dövrə diaqramı
Dövrə diaqramı

Bütün bu hissələri istənilən onlayn alış -veriş saytında asanlıqla əldə etmək olar

və ya tanınmış elektronika ehtiyat hissələri satıcısı ilə. Bütün komponentlərin məlumat cədvəlləri İnternetdə mövcuddur. Hər hansı bir çətinlik olarsa, mənimlə əlaqə saxlayın.

Addım 4: İşləmə Video və Kod Dosyası

Layihənin son iş videosu

Addım 5: Proqram Məcəlləsi

#daxil edin

#daxil edin

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

DHT ilə; #dht_dpin A1 #define LUX A0 #torpağı təyin A3

float volt, lüks, dəyər; int çıxış_dəyəri; int temperatur, rütubət; int işıq bayrağı = 0; int humflag = 0; int torpaq bayrağı = 0; int tempflag = 0; int yoxlamaq; int testi, test1; bayt dərəcəsi [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};

boş quraşdırma ()

{Serial.begin (9600); // GSM Modem lcd.begin ilə ünsiyyət qurmaq üçün serialı işə salın (16, 2); pinMode (torpaq, GİRİŞ); lcd.createChar (1, dərəcə); lcd.setCursor (0, 0); lcd.print ("Bitki Sağlamlığı"); lcd.setCursor (0, 1); lcd.print ("İzləmə"); gecikmə (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("AGRI PROJESİ"); lcd.setCursor (0, 1); lcd.print ("S K CHHAYA tərəfindən"); gecikmə (1000); lcd.clear (); } void loop () {output_value = analogRead (torpaq); output_value = xəritə (output_value, 550, 0, 0, 100); dəyər = analogRead (LUX); volt = (dəyər / 1023.0) * 5; lüks = ((2500 / volt) - 500) / 3.3; gecikmə (10000); // GSM -in DHT.read11 Şəbəkəsində qeydiyyatdan keçməsi üçün kifayət qədər vaxt verin (dht_dpin); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temp"); lcd.setCursor (0, 1); lcd çap (temperatur = DHT temperaturu); // LCD lcd.write -də temperatur məlumatları (1); lcd.print ("C"); gecikmə (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Rütubət"); lcd.setCursor (0, 1); lcd çap (rütubət = DHT. rütubət); // LCD lcd.print -də rütubət məlumatları (" %"); gecikmə (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("İşıq"); lcd.setCursor (0, 1); lcd çap (lüks); // LCD lcd.print ("LUM") üzərindəki işıq məlumatları; gecikmə (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Nəm"); lcd.setCursor (0, 1); lcd.print (çıxış_dəyəri); // LCD lcd.printdəki torpaq məlumatları (" %"); gecikmə (1000); lcd.clear ();

if (temperatur 40) {SendSMS (); // yüksək temperatur üçün SMS} if (rütubət 40) {SendSMS2 (); // Yüksək Nəmlik üçün SMS} if (lux 100) {SendSMS4 (); // Light for SMS high} if (output_value == 950) {SendSMS7 (); // Quru Torpaq üçün SMS} else if if (output_value! = 950) {SendSMS6 (); // Nəmli Torpaq üçün SMS}} etibarsız SendSMS () {if (tempflag == 0) {Serial.println ("AT+CMGF = 1"); gecikmə (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); gecikmə (500); Serial.print ("Temp High",); Serial.print ("Temp"); Serial çap (temperatur); Serial.println ("C dərəcəsi"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Yüksək Temp"); gecikmə (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatur"); lcd.setCursor (0, 1); lcd çap (temperatur); lcd.write (1); lcd.print ("C"); gecikmə (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS göndərilir"); gecikmə (1000); lcd.clear (); tempflag = 1; yoxla = 0; test = 0; gecikmə (10); }} etibarsız SendSMS1 () {if (tempflag == 1) {Serial.println ("AT+CMGF = 1"); gecikmə (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); gecikmə (500); Serial.print ("Temp Low",); Serial.print ("Temp"); Serial çap (temperatur); Serial.println ("C dərəcəsi"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temp Low"); gecikmə (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatur"); lcd.setCursor (0, 1); lcd çap (temperatur); lcd.write (1); lcd.print ("C"); gecikmə (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS göndərilir"); gecikmə (1000); lcd.clear (); tempflag = 0; yoxla = 0; test = 0; gecikmə (10); }} etibarsız SendSMS2 () {if (humflag == 0) {Serial.println ("AT+CMGF = 1"); gecikmə (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); gecikmə (500); Serial.print ("Yüksək Nəmlik"); Serial çap (rütubət); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Yüksək Nəmlik"); gecikmə (1000); lcd.setCursor (0, 1); lcd.print ("Rütubət"); lcd çap (rütubət); lcd.print (" %"); gecikmə (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS göndərilir"); gecikmə (1000); lcd.clear (); humflag = 1; yoxla = 0; test = 0; gecikmə (10); }}

etibarsız SendSMS3 () {if (humflag == 1) {Serial.println ("AT+CMGF = 1"); gecikmə (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); gecikmə (500); Serial.print ("Aşağı Nəmlik"); Serial.print ("Rütubət"); Serial çap (rütubət); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Aşağı Nəmlik"); gecikmə (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Rütubət"); lcd.setCursor (0, 1); lcd çap (rütubət); lcd.print (" %"); gecikmə (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS göndərilir"); gecikmə (1000); lcd.clear (); humflag = 0; yoxla = 0; test = 0; gecikmə (10); }} etibarsız SendSMS4 () {if (lightflag == 0) {Serial.println ("AT+CMGF = 1"); // Mətn rejimində SMS göndərmək üçün gecikmə (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); // Təyinat telefon nömrəsinə keçin (500); Serial.print ("Yaxşı İŞIQ"); Serial.print ("İntensivlik"); Serial çapı (lüks); Serial.println ("LUX"); Serial.println ((char) 26); // dayandırma xarakteri Ctrl+Z lcd.setCursor (0, 0); lcd.print ("Yaxşı işıq"); gecikmə (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("İntensivlik"); lcd.setCursor (0, 1); lcd çap (lüks); lcd.print ("LUX"); gecikmə (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS göndərilir"); gecikmə (1000); lcd.clear (); işıq bayrağı = 1; yoxla = 0; test = 0; gecikmə (10); }} etibarsız SendSMS5 () {if (lightflag == 1) {Serial.println ("AT+CMGF = 1"); gecikmə (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); gecikmə (500); Serial.print ("LOW LIGHT,"); Serial.print ("İntensivlik"); Serial çapı (lüks); Serial.println ("LUX"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Aşağı işıq"); gecikmə (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("İntensivlik"); lcd.setCursor (0, 1); lcd çap (lüks); lcd.print ("LUX"); gecikmə (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS göndərilir"); gecikmə (1000); lcd.clear (); işıq bayrağı = 0; yoxla = 0; test = 0; gecikmə (10); }} etibarsız SendSMS6 () {if (tuproq bayrağı == 0) {Serial.println ("AT+CMGF = 1"); gecikmə (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); gecikmə (500); Serial.print ("Quru Torpaq"); Serial.print ("Nəm"); Serial.print (çıxış_dəyəri); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Quru Torpaq"); gecikmə (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Nəm"); lcd.setCursor (0, 1); lcd.print (çıxış_dəyəri); lcd.print (" %"); gecikmə (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS göndərilir"); gecikmə (1000); lcd.clear (); torpaq bayrağı = 1; yoxla = 0; test = 0; gecikmə (10); }} etibarsız SendSMS7 () {if (tuproq bayrağı == 1) {Serial.println ("AT+CMGF = 1"); gecikmə (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); gecikmə (500); Serial.print ("Yaş Torpaq"); Serial.print ("Nəm"); Serial.print (çıxış_dəyəri); Serial.println (" %"); Serial.println ((char) 26); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Yaş Torpaq"); gecikmə (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Nəm"); lcd.setCursor (0, 1); lcd.print (çıxış_dəyəri); lcd.print (" %"); gecikmə (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS göndərilir"); gecikmə (1000); lcd.clear (); torpaq bayrağı = 0; yoxla = 0; test = 0; gecikmə (10); }}

Tövsiyə: