Mundarija:

SMS -ogohlantirish yordamida o'simliklarni kuzatish: 5 qadam
SMS -ogohlantirish yordamida o'simliklarni kuzatish: 5 qadam

Video: SMS -ogohlantirish yordamida o'simliklarni kuzatish: 5 qadam

Video: SMS -ogohlantirish yordamida o'simliklarni kuzatish: 5 qadam
Video: Xotirani kuchaytiruvchi 10 ta SIR. Hamma uchun birdek to'gri keladi! 10 daqiqada 2024, Iyul
Anonim
SMS -ogohlantirish yordamida o'simliklarni kuzatish
SMS -ogohlantirish yordamida o'simliklarni kuzatish

Bu erda men SMS -ogohlantirish yordamida o'simlik monitorini yarataman. Ushbu ogohlantirish tizimi uchun server talab qilinmaydi. Bu juda arzon va ishonchli loyiha.

1 -qadam: tizimning blok diagrammasi

Tizimning blok diagrammasi
Tizimning blok diagrammasi

Hozirgi issiqxonalarda ko'plab parametr o'lchovlari talab qilinadi

o'simliklarning yaxshi sifati va hosildorligini nazorat qilish va nazorat qilish. Ammo kerakli natijaga erishish uchun harorat, namlik, yorug'lik va yaxshi tuproq kabi muhim omillar mavjud bo'lib, ular o'simliklarning yaxshi o'sishi uchun zarurdir. Ushbu parametrlarni yodda tutib, Arduino yordamida GSM moduli orqali o'simliklarni avtomatik nazorat qilish tizimini qurdim. Bu tizim sifatli o'simliklarni etishtirishda juda samarali. Loyihaning yana bir muhim qismi shundaki, u to'liq avtomatik va past kuchlanishli; 5-12V doimiy quvvat manbai.

Hozirgi kunda GSM moduli har qanday ma'lumotni SMS holatini yuborish uchun keng qo'llaniladi. Bu erda SIM900A GSM moduli yordamida iqlimning o'simliklarga ta'siri haqidagi ma'lumotlarni saqlashimiz mumkin. Tizim shuningdek, o'simlikning hosildorligi va sifatiga ta'sir ko'rsatadigan iqlim o'zgarishlarini ko'rsatishi kerak. Loyihaning asosiy maqsadi - GSM moduli harorat, namlik, yorug'lik intensivligi, tuproq haqida ma'lumot yuboradigan avtomatik o'simlik monitoringi. namlik.

Men Hindiston fuqarosi bo'lganim uchun SIM900A (A - Osiyo tarmog'ining ma'nosi) moduli ishlatilgan, lekin siz o'z mamlakatingizga ko'ra har xil turdagi SIM -moduldan foydalanishingiz mumkin. AT kodlari boshqacha bo'lishi mumkin.

2 -qadam: Komponent detallari

Komponent tafsiloti
Komponent tafsiloti
Komponent tafsiloti
Komponent tafsiloti
Komponent tafsiloti
Komponent tafsiloti

------------------ Men ketayotgan parametrlarning to'rt turini o'lchayman

Quyida muhokama qilish uchun: ------------------

Harorat va namlik

DHT11 sensori harorat va namlikni sezish uchun ishlatiladi. Harorat va namlik yuqori bo'lsa, o'simlikning ildizi shikastlanadi va o'sishi yaxshi bo'lmaydi.

Yorug'lik intensivligi

Yorug'lik intensivligi o'simlik o'sishi uchun muhim omil hisoblanadi. Yorug'lik intensivligini aniqlash uchun LDR (nurga bog'liq qarshilik) ishlatiladi. Yorug'lik intensivligi LUX -da o'lchanadi, shuning uchun namoyish qilish uchun 100 LUX yorug'lik belgilangan yoki chegara darajasi sifatida ishlatiladi.

Tuproq namligi

Tuproq namligi o'simliklarning yaxshi o'sishi uchun juda muhimdir. Bu erda tuproq sensori tuproqdagi namlikni o'lchash uchun ishlatiladi. Ushbu sensordan foydalanib, biz tuproq ma'lumotlarini ham analog, ham raqamli o'lchashimiz mumkin.

SMS xabarnomasi:

Agar yuqoridagi parametrlardan birining qiymati belgilangan darajadan yoki kritik darajadan oshib ketsa, tizim avtomatik ravishda egasiga yoki operatorga tegishli parametrlar to'g'risida ma'lumot yuboradi va qiymat normal diapazonda yoki belgilangan darajadan past bo'lganda tizim avtomatik ravishda avtomatik ravishda yuboriladi. egasi yoki operatorga tegishli ma'lumotlar to'g'risida SMS yuboring.

Bildirishnoma sharti o'zgarmaguncha faqat bir marta yuboriladi, shuning uchun egasi yoki operatoriga tez -tez SMS kelmaydi. Shuning uchun pastroq SMS to'plami kerak.

3 -qadam: O'chirish diagrammasi

O'chirish diagrammasi
O'chirish diagrammasi

Bu qismlarni har qanday onlayn xarid qilish saytida osongina topish mumkin

yoki taniqli elektronika ehtiyot qismlari sotuvchisi bilan. Komponentlarning barcha ma'lumotlar jadvallari Internetda mavjud. Agar biron bir qiyinchilik bo'lsa, mening pochta orqali bog'laning.

4 -qadam: ishchi video va kodli fayl

Loyihaning yakuniy ishchi videosi

5 -qadam: Dastur kodeksi

#qo'shing

#qo'shing

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

DHT bilan; #dht_dpin A1 ni belgilang #LUX A0ni aniqlang #tuproqni aniqlang A3

float volt, lyuks, qiymat; int chiqish_ qiymati; harorat, namlik; int lightflag = 0; int humflag = 0; int tuproq bayrog'i = 0; int tempflag = 0; int tekshirish; int test, test1; bayt darajasi [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};

bo'sh o'rnatish ()

{Serial.begin (9600); // GSM Modem lcd.begin bilan bog'lanish uchun ketma -ketlikni boshlash (16, 2); pinMode (tuproq, Kirish); lcd.createChar (1 daraja); lcd.setCursor (0, 0); lcd.print ("O'simliklar salomatligi"); lcd.setCursor (0, 1); lcd.print ("Tekshirish"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("AGRI LOYIHA"); lcd.setCursor (0, 1); lcd.print ("By S K CHHAYA"); kechikish (1000); lcd.clear (); } void loop () {output_value = analogRead (tuproq); output_value = map (chiqish_qiymati, 550, 0, 0, 100); qiymat = analogRead (LUX); volt = (qiymat / 1023,0) * 5; lyuks = ((2500 / volt) - 500) / 3,3; kechikish (10000); // GSM tarmoq DHT.read11 (dht_dpin) da ro'yxatdan o'tishi uchun etarli vaqt bering; lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Harorat"); lcd.setCursor (0, 1); lcd.print (harorat = DHT harorati); // LCD lcd.write -dagi harorat ma'lumotlari (1); lcd.print ("C"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Namlik"); lcd.setCursor (0, 1); lcd.print (namlik = DHT. namlik); // LCD lcd.print namlik ma'lumotlari (" %"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Nur"); lcd.setCursor (0, 1); lcd.print (lyuks); // LCD lcd.print ("LUM") dagi engil ma'lumotlar; kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Namlik"); lcd.setCursor (0, 1); lcd.print (chiqish_ qiymati); // LCD lcd.printdagi tuproq ma'lumotlari (" %"); kechikish (1000); lcd.clear ();

if (harorat 40) {SendSMS (); // yuqori harorat uchun SMS} if (namlik 40) {SendSMS2 (); // Yuqori namlik uchun SMS} if (lux 100) {SendSMS4 (); // Light for SMS high} if (output_value == 950) {SendSMS7 (); // Quruq tuproq uchun SMS} else if if (output_value! = 950) {SendSMS6 (); // Nam tuproq uchun SMS}} bekor SendSMS () {if (tempflag == 0) {Serial.println ("AT+CMGF = 1"); kechikish (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kechikish (500); Serial.print ("Harorat yuqori"); Serial.print ("Harorat"); Seriyali bosma (harorat); Serial.println ("C" darajasi); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Harorat yuqori"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Harorat"); lcd.setCursor (0, 1); lcd.print (harorat); lcd.write (1); lcd.print ("C"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS yuborish"); kechikish (1000); lcd.clear (); tempflag = 1; tekshirish = 0; test = 0; kechikish (10); }} bekor SendSMS1 () {if (tempflag == 1) {Serial.println ("AT+CMGF = 1"); kechikish (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kechikish (500); Serial.print ("Harorat past"); Serial.print ("Harorat"); Seriyali bosma (harorat); Serial.println ("C" darajasi); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Harorat past"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Harorat"); lcd.setCursor (0, 1); lcd.print (harorat); lcd.write (1); lcd.print ("C"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS yuborish"); kechikish (1000); lcd.clear (); tempflag = 0; tekshirish = 0; test = 0; kechikish (10); }} bekor SendSMS2 () {if (humflag == 0) {Serial.println ("AT+CMGF = 1"); kechikish (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kechikish (500); Serial.print ("Yuqori namlik"); Seriyali bosma (namlik); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Yuqori namlik"); kechikish (1000); lcd.setCursor (0, 1); lcd.print ("Namlik"); lcd.print (namlik); lcd.print (" %"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS yuborish"); kechikish (1000); lcd.clear (); gumbaz = 1; tekshirish = 0; test = 0; kechikish (10); }}

void SendSMS3 () {if (humflag == 1) {Serial.println ("AT+CMGF = 1"); kechikish (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kechikish (500); Serial.print ("Kam namlik"); Serial.print ("Namlik"); Ketma -ket bosma (namlik); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Kam namlik"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Namlik"); lcd.setCursor (0, 1); lcd.print (namlik); lcd.print (" %"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS yuborish"); kechikish (1000); lcd.clear (); humflag = 0; tekshirish = 0; test = 0; kechikish (10); }} bekor bo'lgan SendSMS4 () {if (lightflag == 0) {Serial.println ("AT+CMGF = 1"); // Matn rejimida SMS yuborish uchun kechikish (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); // Belgilangan telefon raqamini kechiktirishga o'zgartirish (500); Serial.print ("Yaxshi yorug'lik"); Serial.print ("intensivlik"); Ketma -ket chop etish (lyuks); Serial.println ("LUX"); Serial.println ((char) 26); // to'xtatuvchi belgi Ctrl+Z lcd.setCursor (0, 0); lcd.print ("Yaxshi yorug'lik"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("intensivlik"); lcd.setCursor (0, 1); lcd.print (lyuks); lcd.print ("LUX"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS yuborish"); kechikish (1000); lcd.clear (); yorug'lik bayrog'i = 1; tekshirish = 0; test = 0; kechikish (10); }} bekor qilingan SendSMS5 () {if (lightflag == 1) {Serial.println ("AT+CMGF = 1"); kechikish (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kechikish (500); Serial.print ("LOW LIGHT"); Serial.print ("intensivlik"); Ketma -ket chop etish (lyuks); Serial.println ("LUX"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Kam yorug'lik"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("intensivlik"); lcd.setCursor (0, 1); lcd.print (lyuks); lcd.print ("LUX"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS yuborish"); kechikish (1000); lcd.clear (); yorug'lik bayrog'i = 0; tekshirish = 0; test = 0; kechikish (10); }} bekor SendSMS6 () {if (tuproq bayrog'i == 0) {Serial.println ("AT+CMGF = 1"); kechikish (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kechikish (500); Serial.print ("Quruq tuproq"); Serial.print ("Namlik"); Serial.print (chiqish_ qiymati); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Quruq tuproq"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Namlik"); lcd.setCursor (0, 1); lcd.print (chiqish_ qiymati); lcd.print (" %"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS yuborish"); kechikish (1000); lcd.clear (); tuproq bayrog'i = 1; tekshirish = 0; test = 0; kechikish (10); }} bekor SendSMS7 () {if (tuproq bayrog'i == 1) {Serial.println ("AT+CMGF = 1"); kechikish (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); kechikish (500); Serial.print ("Nam tuproq"); Serial.print ("Namlik"); Serial.print (chiqish_ qiymati); Serial.println (" %"); Serial.println ((char) 26); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Nam tuproq"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Namlik"); lcd.setCursor (0, 1); lcd.print (chiqish_ qiymati); lcd.print (" %"); kechikish (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS yuborish"); kechikish (1000); lcd.clear (); tuproq bayrog'i = 0; tekshirish = 0; test = 0; kechikish (10); }}

Tavsiya: