Tartalomjegyzék:

Üzemfigyelés SMS riasztással: 5 lépés
Üzemfigyelés SMS riasztással: 5 lépés

Videó: Üzemfigyelés SMS riasztással: 5 lépés

Videó: Üzemfigyelés SMS riasztással: 5 lépés
Videó: ⚡ Электрический таймер ⚡ 5 минут (обратный отсчет) с музыкой Synthwave 2024, November
Anonim
Üzemfigyelés SMS riasztással
Üzemfigyelés SMS riasztással

Itt létrehozom a növényfigyelést SMS riasztással. Ehhez a riasztórendszerhez nem szükséges szerver. Nagyon olcsó és megbízható projekt.

Lépés: Blokkolja a rendszer diagramját

A rendszer blokkdiagramja
A rendszer blokkdiagramja

A mai üvegházakban sok paramétermérésre van szükség

a növények jó minőségének és termelékenységének nyomon követésére és ellenőrzésére. A kívánt eredmények eléréséhez azonban néhány nagyon fontos tényező játszik szerepet, mint például a hőmérséklet, a páratartalom, a könnyű és a jó talaj, amelyek szükségesek a növények jobb növekedéséhez. Ezeket a paramétereket szem előtt tartva építettem egy automatikus növényfigyelő rendszert GSM modulon keresztül az Arduino segítségével. Ez a rendszer nagyon hatékony jó minőségű növények termesztéséhez. A másik fontos része ennek a projektnek az, hogy teljesen automatikus, és alacsony feszültségen dolgozik; 5-12V DC tápegység.

Napjainkban a GSM modult széles körben használják bármilyen adat SMS -küldésére. Ebben a projektben a SIM900A GSM modul használatával információkat tárolhatunk az éghajlat növényekre gyakorolt hatásairól. A rendszernek bemutatnia kell az éghajlati változásokat is, amelyek befolyásolják az üzem termelékenységét és minőségét, stb. A projekt kidolgozásának fő célja egy automatikus üzemfigyelés felépítése, amelyben a GSM modul információkat küld a hőmérsékletről, páratartalomról, fényintenzitásról, talajról nedvesség.

Mivel én vagyok az indiai állampolgár, használt SIM900A (A jelentése ázsiai hálózat) modul, de az Ön országának megfelelően más típusú SIM -modult is használhat. Az AT kódok eltérhetnek.

2. lépés: Az alkatrész részletei

Komponens részletei
Komponens részletei
Komponens részletei
Komponens részletei
Komponens részletei
Komponens részletei

------------------ Négyféle paramétert mérek, amelyek mennek

alább megbeszélni: ------------------

Hőmérséklet és páratartalom

A DHT11 érzékelő a hőmérséklet és a páratartalom érzékelésére szolgál. Ha a hőmérséklet és a páratartalom magas, a növény gyökere sérült, és a növény növekedése nem megfelelő.

Fényintenzitás

A fény intenzitása fontos tényező a növény növekedésében. A fényintenzitás érzékelésére LDR (fényfüggő ellenállást) használnak. A fény intenzitását LUX -ban mérik, ezért a demonstrációhoz 100 LUX fényt használnak meghatározott vagy küszöbértékként.

Talaj nedvesség

A talaj nedvességtartalma nagyon fontos a növények jó növekedéséhez. Itt a talajérzékelőt a talaj nedvességtartalmának mérésére használják. Ezzel az érzékelővel mindkét módon mérhetjük a talaj adatait, analóg és digitális is.

SMS értesítés:

Ha a fenti paraméterek bármelyikének értéke meghaladja a meghatározott szintet vagy kritikus szintet, a rendszer automatikusan SMS -t küld a tulajdonosnak vagy a kezelőnek a kapcsolódó paraméterekkel kapcsolatos információkkal, és amikor az érték ismét normál tartományba esik vagy a meghatározott szint alá kerül, a rendszer automatikusan SMS -t küldeni a tulajdonosnak vagy az üzemeltetőnek a kapcsolódó adatokkal.

Az értesítés csak egyszer kerül elküldésre, amíg a feltétel nem változik, így a tulajdonos vagy az üzemeltető nem kap gyakori SMS -t. Ezért alacsonyabb SMS -csomag szükséges.

3. lépés: Áramköri diagram

Kördiagramm
Kördiagramm

Ezek az alkatrészek könnyen elérhetők bármely online vásárlási oldalon

vagy ismert elektronikai alkatrész-kereskedőnél. Minden összetevő adatlapja elérhető a weben. Ha bármilyen nehézsége van, bátran vegye fel a kapcsolatot a leveleimben.

4. lépés: Működő videó- és kódfájl

A projekt utolsó munkavideója

5. lépés: Programkód

#befoglalni

#befoglalni

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

dht DHT; #definálja dht_dpin A1 #define LUX A0 #definálja a talajt A3

úszó volt, lux, érték; int output_value; int hőmérséklet, páratartalom; int lightflag = 0; int humflag = 0; int groundflag = 0; int tempflag = 0; int ellenőrzés; int teszt, teszt1; bájt fok [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};

üres beállítás ()

{Serial.begin (9600); // Soros inicializálás a GSM modemmel való kommunikációhoz lcd.begin (16, 2); pinMode (talaj, BEMENET); lcd.createChar (1, fok); lcd.setCursor (0, 0); lcd.print ("Növény -egészségügy"); lcd.setCursor (0, 1); lcd.print ("Figyelés"); késleltetés (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("AGRI PROJECT"); lcd.setCursor (0, 1); lcd.print ("S K CHHAYA"); késleltetés (1000); lcd.clear (); } void loop () {output_value = analógRead (talaj); output_value = térkép (output_value, 550, 0, 0, 100); érték = analogRead (LUX); volt = (érték / 1023,0) * 5; lux = ((2500 / volt) - 500) / 3,3; késleltetés (10000); // Adjon elegendő időt a GSM regisztrálására a DHT.read11 hálózaton (dht_dpin); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Hőmérséklet"); lcd.setCursor (0, 1); lcd.print (hőmérséklet = DHT.hőmérséklet); // Ideiglenes adatok LCD lcd.write (1); lcd.print ("C"); késleltetés (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Páratartalom"); lcd.setCursor (0, 1); lcd.print (páratartalom = DHT.nedvesség); // Páratartalom adatok LCD lcd.print (" %"); késleltetés (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Fény"); lcd.setCursor (0, 1); lcd.print (lux); // Fényadatok az LCD lcd.print -en ("LUM"); késleltetés (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Nedvesség"); lcd.setCursor (0, 1); lcd.print (output_value); // Talajadatok az LCD lcd.print -en (" %"); késleltetés (1000); lcd.clear ();

if (40. hőmérséklet) {SendSMS (); // SMS for Temp magas} if (páratartalom 40) {SendSMS2 (); // SMS a magas páratartalomhoz} if (lux 100) {SendSMS4 (); // SMS for Light high} if (output_value == 950) {SendSMS7 (); // SMS száraz talajhoz} else if (output_value! = 950) {SendSMS6 (); // SMS nedves talajhoz}} void SendSMS () {if (tempflag == 0) {Serial.println ("AT+CMGF = 1"); késleltetés (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); késleltetés (500); Serial.print ("Hőmérséklet magas"); Serial.print ("Temp"); Soros.nyomtatás (hőmérséklet); Soros.println ("C fok"); Sorozat.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Hőmérséklet magas"); késleltetés (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Hőmérséklet"); lcd.setCursor (0, 1); lcd.print (hőmérséklet); lcd.write (1); lcd.print ("C"); késleltetés (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS küldése"); késleltetés (1000); lcd.clear (); tempflag = 1; csekk = 0; teszt = 0; késleltetés (10); }} void SendSMS1 () {if (tempflag == 1) {Serial.println ("AT+CMGF = 1"); késleltetés (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); késleltetés (500); Serial.print ("Alacsony hőmérséklet"); Serial.print ("Temp"); Soros.nyomtatás (hőmérséklet); Soros.println ("C fok"); Sorozat.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Alacsony hőmérséklet"); késleltetés (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Hőmérséklet"); lcd.setCursor (0, 1); lcd.print (hőmérséklet); lcd.write (1); lcd.print ("C"); késleltetés (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS küldése"); késleltetés (1000); lcd.clear (); tempflag = 0; csekk = 0; teszt = 0; késleltetés (10); }} void SendSMS2 () {if (humflag == 0) {Serial.println ("AT+CMGF = 1"); késleltetés (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); késleltetés (500); Serial.print ("Magas páratartalom"); Soros.nyomtatás (páratartalom); Serial.println (" %"); Sorozat.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Magas páratartalom"); késleltetés (1000); lcd.setCursor (0, 1); lcd.print ("Páratartalom"); lcd.print (páratartalom); lcd.print (" %"); késleltetés (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS küldése"); késleltetés (1000); lcd.clear (); humflag = 1; csekk = 0; teszt = 0; késleltetés (10); }}

void SendSMS3 () {if (humflag == 1) {Serial.println ("AT+CMGF = 1"); késleltetés (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); késleltetés (500); Serial.print ("Alacsony páratartalom"); Serial.print ("Páratartalom"); Soros.nyomtatás (páratartalom); Serial.println (" %"); Sorozat.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Alacsony páratartalom"); késleltetés (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Páratartalom"); lcd.setCursor (0, 1); lcd.print (páratartalom); lcd.print (" %"); késleltetés (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS küldése"); késleltetés (1000); lcd.clear (); humflag = 0; csekk = 0; teszt = 0; késleltetés (10); }} void SendSMS4 () {if (lightflag == 0) {Serial.println ("AT+CMGF = 1"); // SMS küldése szöveges módban késleltetés (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); // Váltás rendeltetési telefonszám késleltetésére (500); Serial.print ("Jó LIGHT"); Serial.print ("Intenzitás"); Soros.nyomtatás (lux); Serial.println ("LUX"); Sorozat.println ((char) 26); // a leállító karakter Ctrl+Z lcd.setCursor (0, 0); lcd.print ("Jó fény"); késleltetés (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intenzitás"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); késleltetés (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS küldése"); késleltetés (1000); lcd.clear (); fényzászló = 1; csekk = 0; teszt = 0; késleltetés (10); }} void SendSMS5 () {if (lightflag == 1) {Serial.println ("AT+CMGF = 1"); késleltetés (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); késleltetés (500); Serial.print ("LOW LIGHT"); Serial.print ("Intenzitás"); Soros.nyomtatás (lux); Serial.println ("LUX"); Sorozat.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Gyenge fény"); késleltetés (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intenzitás"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); késleltetés (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS küldése"); késleltetés (1000); lcd.clear (); lightflag = 0; csekk = 0; teszt = 0; késleltetés (10); }} void SendSMS6 () {if (groundflag == 0) {Serial.println ("AT+CMGF = 1"); késleltetés (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); késleltetés (500); Serial.print ("Száraz talaj"); Serial.print ("Nedvesség"); Serial.print (output_value); Serial.println (" %"); Sorozat.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Száraz talaj"); késleltetés (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Nedvesség"); lcd.setCursor (0, 1); lcd.print (output_value); lcd.print (" %"); késleltetés (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS küldése"); késleltetés (1000); lcd.clear (); groundflag = 1; csekk = 0; teszt = 0; késleltetés (10); }} void SendSMS7 () {if (groundflag == 1) {Serial.println ("AT+CMGF = 1"); késleltetés (500); Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); késleltetés (500); Serial.print ("Nedves talaj"); Serial.print ("Nedvesség"); Serial.print (output_value); Serial.println (" %"); Sorozat.println ((char) 26); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Nedves talaj"); késleltetés (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Nedvesség"); lcd.setCursor (0, 1); lcd.print (output_value); lcd.print (" %"); késleltetés (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("SMS küldése"); késleltetés (1000); lcd.clear (); groundflag = 0; csekk = 0; teszt = 0; késleltetés (10); }}

Ajánlott: