İçindekiler:

SMS Uyarısı ile Tesis İzleme: 5 Adım
SMS Uyarısı ile Tesis İzleme: 5 Adım

Video: SMS Uyarısı ile Tesis İzleme: 5 Adım

Video: SMS Uyarısı ile Tesis İzleme: 5 Adım
Video: 5. Sınıf Türkçe Dersi İlk Ders Dinleme İzleme Metni 2024, Kasım
Anonim
SMS Uyarısı ile Tesis İzleme
SMS Uyarısı ile Tesis İzleme

Burada SMS uyarısı ile Tesis izleme oluşturuyorum. Bu uyarı sistemi için sunucu gerekli değildir. Çok ucuz ve güvenilir bir projedir.

Adım 1: Sistemin Blok Şeması

Sistemin Blok Şeması
Sistemin Blok Şeması

Günümüz seralarında birçok parametre ölçümü gerekmektedir.

bitkilerin iyi kalite ve üretkenliğini izlemek ve kontrol etmek. Ancak istenen sonuçları elde etmek için daha iyi bir bitki büyümesi için gerekli olan Sıcaklık, Nem, Işık ve İyi Toprak gibi bazı çok önemli faktörler devreye girer. Bu parametreleri göz önünde bulundurarak Arduino kullanarak GSM modülü üzerinden Otomatik Tesis İzleme Sistemi kurdum. Bu sistem, kaliteli bitkiler yetiştirmek için çok verimlidir. Bu projenin bir diğer önemli yanı ise tam otomatik olması ve düşük voltajda çalışmasıdır. 5-12V DC besleme.

Artık bir gün GSM Modülü, her türlü verinin SMS durumunu göndermek için yaygın olarak kullanılmaktadır. İşte bu projede SIM900A GSM Modülü kullanarak iklimin bitkiler üzerindeki etkileri hakkında bilgi tutabiliriz. Sistem aynı zamanda tesisin verimliliğini ve kalitesini etkileyen iklim değişikliklerini de gösterecektir. Bu projenin ortaya çıkmasındaki temel amaç, GSM modülünün Sıcaklık, Nem, Işık şiddeti, Toprak gibi bilgileri gönderdiği bir Otomatik Tesis İzleme oluşturmaktır. nem.

Hindistan vatandaşı olduğum için SIM900A (A, Asya ağı anlamına gelir) modülünü kullandım ancak ülkenize göre farklı türde SIM modülü kullanabilirsiniz. AT kodları farklı olabilir.

2. Adım: Bileşen Detayı

Bileşen Detayı
Bileşen Detayı
Bileşen Detayı
Bileşen Detayı
Bileşen Detayı
Bileşen Detayı

------------------ Devam eden dört tür parametreyi ölçüyorum.

aşağıda görüşmek üzere: ------------------

Sıcaklık ve Nem

DHT11 sensörü, sıcaklık ve nemi algılamak için kullanılır. Sıcaklık ve nem yüksek olduğunda bitkilerin kökleri zarar görür ve bitkinin büyümesi iyi olmaz.

Işık şiddeti

Işık yoğunluğu bitki büyümesi için önemli bir faktördür. Işık yoğunluğunu tespit etmek için LDR (Işığa bağlı direnç) kullanılır. Işığın yoğunluğu LUX cinsinden ölçülür ve bu nedenle gösterim için tanımlı veya eşik seviyesi olarak 100 LUX ışık kullanılır.

Toprak nemi

Toprağın nem içeriği bitkilerin iyi büyümesi için çok önemlidir. Burada Toprak sensörü, Topraktaki nem içeriğini ölçmek için kullanılır. Bu sensör ile toprak verilerini hem analog hem de dijital olarak ölçebiliriz.

SMS Bildirimi:

Yukarıdaki parametrelerden herhangi birinin değeri tanımlanan seviyenin veya kritik seviyenin üzerine çıktığında, sistem sahibine veya işletmeciye ilgili parametre bilgisi ile birlikte otomatik olarak SMS gönderir ve değer normal aralıkta veya tanımlanan seviyenin altına düştüğünde sistem otomatik olarak tekrar otomatik olarak sahibine veya operatöre ilgili verilerin bilgisini içeren SMS gönderin.

Bildirim, koşul değişmeyene kadar yalnızca bir kez gönderilir, böylece işletme sahibi veya operatör sık SMS almaz. Bu nedenle, daha düşük SMS paketi gereklidir.

Adım 3: Devre Şeması

Devre şeması
Devre şeması

Tüm bu parçalar herhangi bir çevrimiçi alışveriş sitesinde kolayca bulunabilir.

veya tanınmış elektronik yedek parça satıcısı ile. Tüm bileşen veri sayfaları web'de mevcuttur. Herhangi bir zorluk olursa, postamdan iletişime geçmekten çekinmeyin.

Adım 4: Çalışma Videosu ve Kod Dosyası

Projenin son çalışma videosu

Adım 5: Program Kodu

#Dahil etmek

#Dahil etmek

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

dht DHT; #define dht_dpin A1 #define LUX A0 #toprağı tanımla A3

şamandıra volt, lüks, değer; int çıktı_değeri; int sıcaklık, nem; int ışıklı bayrak = 0; int işaret işareti = 0; int toprak işareti = 0; int geçici işaret = 0; int kontrol; int testi, test1; bayt derecesi[8] = { 0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000 };

geçersiz kurulum()

{ Serial.başlangıç(9600); //GSM Modem ile iletişim kurmak için seriyi başlat lcd.begin(16, 2); pinMode(toprak, GİRİŞ); lcd.createChar(1, derece); lcd.setCursor(0, 0); lcd.print("Bitki Sağlığı"); lcd.setCursor(0, 1); lcd.print("İzleme"); gecikme(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("AGRI PROJESİ"); lcd.setCursor(0, 1); lcd.print("SK CHHAYA Tarafından"); gecikme(1000); lcd.clear(); } void loop() { output_value = analogRead(toprak); çıktı_değeri = harita(çıktı_değeri, 550, 0, 0, 100); değer = analogRead(LUX); volt = (değer / 1023.0) * 5; lüks = ((2500 / volt) - 500) / 3.3; gecikme (10000); //GSM'nin Network'e kaydolması için yeterli zaman verin DHT.read11(dht_dpin); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Sıcaklık"); lcd.setCursor(0, 1); lcd.print(sıcaklık = DHT.sıcaklık); // LCD lcd.write(1) üzerindeki sıcaklık verileri; lcd.print("C"); gecikme(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Nem"); lcd.setCursor(0, 1); lcd.print(nem = DHT.nem); // LCD lcd.print'te nem verisi(" %"); gecikme(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Işık"); lcd.setCursor(0, 1); lcd.print(lüks); // LCD'deki ışık verileri lcd.print(" LUM"); gecikme(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Nem"); lcd.setCursor(0, 1); lcd.print(çıktı_değeri); // LCD'deki toprak verileri lcd.print(" %"); gecikme(1000); lcd.clear();

if (sıcaklık 40) { SendSMS(); // Yüksek Sıcaklık için SMS } if (nem 40) { SendSMS2(); // Yüksek Nem için SMS } if (lux 100) { SendSMS4(); // Light high için SMS } if (output_value == 950) { SendSMS7(); // Kuru Toprak için SMS } else if (output_value != 950) { SendSMS6(); // Islak Toprak için SMS } } void SendSMS() { if (tempflag == 0) { Serial.println("AT+CMGF=1"); gecikme(500); Serial.println("AT+CMGS=\"+919979897404\"\r"); gecikme(500); Serial.print("Sıcaklık Yüksek, "); Serial.print("Sıcaklık"); Serial.print(sıcaklık); Serial.println(" derece C"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Sıcaklık Yüksek"); gecikme(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Sıcaklık"); lcd.setCursor(0, 1); lcd.print(sıcaklık); lcd.write(1); lcd.print("C"); gecikme(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("SMS Gönderiliyor"); gecikme(1000); lcd.clear(); geçici işaret = 1; kontrol = 0; test = 0; gecikme(10); } } void SendSMS1() { if (tempflag == 1) { Serial.println("AT+CMGF=1"); gecikme(500); Serial.println("AT+CMGS=\"+919979897404\"\r"); gecikme(500); Serial.print("Sıcaklık Düşük, "); Serial.print("Sıcaklık"); Serial.print(sıcaklık); Serial.println(" derece C"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Sıcaklık Düşük"); gecikme(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Sıcaklık"); lcd.setCursor(0, 1); lcd.print(sıcaklık); lcd.write(1); lcd.print("C"); gecikme(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("SMS Gönderiliyor"); gecikme(1000); lcd.clear(); geçici işaret = 0; kontrol = 0; test = 0; gecikme(10); } } void SendSMS2() { if (humflag == 0) { Serial.println("AT+CMGF=1"); gecikme(500); Serial.println("AT+CMGS=\"+919979897404\"\r"); gecikme(500); Serial.print("Yüksek Nemlilik"); Seri.print(nem); Serial.println(" %"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Yüksek Nem"); gecikme(1000); lcd.setCursor(0, 1); lcd.print("Nem"); lcd.print(nem); lcd.print(" %"); gecikme(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("SMS Gönderiliyor"); gecikme(1000); lcd.clear(); humflag = 1; kontrol = 0; test = 0; gecikme(10); } }

void SendSMS3() { if (humflag == 1) { Serial.println("AT+CMGF=1"); gecikme(500); Serial.println("AT+CMGS=\"+919979897404\"\r"); gecikme(500); Serial.print("Düşük Nemlilik, "); Serial.print(" Nem "); Seri.print(nem); Serial.println(" %"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Düşük Nem"); gecikme(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Nem"); lcd.setCursor(0, 1); lcd.print(nem); lcd.print(" %"); gecikme(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("SMS Gönderiliyor"); gecikme(1000); lcd.clear(); uğultu işareti = 0; kontrol = 0; test = 0; gecikme(10); } } void SendSMS4() { if (lightflag == 0) { Serial.println("AT+CMGF=1"); //Metin Modu gecikmesinde SMS göndermek için(500); Serial.println("AT+CMGS=\"+919979897404\"\r"); //Hedef telefon numarası gecikmesine geç(500); Serial.print("İyi IŞIK,"); Serial.print("Yoğunluk"); Seri.baskı(lüks); Serial.println(" LÜX"); Serial.println((char)26); //durdurma karakteri Ctrl+Z lcd.setCursor(0, 0); lcd.print("İyi ışık"); gecikme(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Yoğunluk"); lcd.setCursor(0, 1); lcd.print(lüks); lcd.print("LÜX"); gecikme(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("SMS Gönderiliyor"); gecikme(1000); lcd.clear(); ışıklı bayrak = 1; kontrol = 0; test = 0; gecikme(10); } } void SendSMS5() { if (lightflag == 1) { Serial.println("AT+CMGF=1"); gecikme(500); Serial.println("AT+CMGS=\"+919979897404\"\r"); gecikme(500); Serial.print("DÜŞÜK IŞIK,"); Serial.print("Yoğunluk"); Seri.baskı(lüks); Serial.println(" LÜX"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Düşük ışık"); gecikme(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Yoğunluk"); lcd.setCursor(0, 1); lcd.print(lüks); lcd.print("LÜX"); gecikme(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("SMS Gönderiliyor"); gecikme(1000); lcd.clear(); ışıklı bayrak = 0; kontrol = 0; test = 0; gecikme(10); } } void SendSMS6() { if (soilflag == 0) { Serial.println("AT+CMGF=1"); gecikme(500); Serial.println("AT+CMGS=\"+919979897404\"\r"); gecikme(500); Serial.print("Kuru Toprak,"); Serial.print(" Nem "); Serial.print(çıktı_değeri); Serial.println(" %"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Kuru Toprak"); gecikme(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Nem"); lcd.setCursor(0, 1); lcd.print(çıktı_değeri); lcd.print(" %"); gecikme(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("SMS Gönderiliyor"); gecikme(1000); lcd.clear(); toprak bayrağı = 1; kontrol = 0; test = 0; gecikme(10); } } void SendSMS7() { if (soilflag == 1) { Serial.println("AT+CMGF=1"); gecikme(500); Serial.println("AT+CMGS=\"+919979897404\"\r"); gecikme(500); Serial.print("Islak Toprak,"); Serial.print(" Nem "); Serial.print(çıktı_değeri); Serial.println(" %"); Serial.println((char)26); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Islak Toprak"); gecikme(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Nem"); lcd.setCursor(0, 1); lcd.print(çıktı_değeri); lcd.print(" %"); gecikme(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("SMS Gönderiliyor"); gecikme(1000); lcd.clear(); toprak bayrağı = 0; kontrol = 0; test = 0; gecikme(10); } }

Önerilen: