Spisu treści:

Monitorowanie instalacji za pomocą alertu SMS: 5 kroków
Monitorowanie instalacji za pomocą alertu SMS: 5 kroków

Wideo: Monitorowanie instalacji za pomocą alertu SMS: 5 kroków

Wideo: Monitorowanie instalacji za pomocą alertu SMS: 5 kroków
Wideo: Monitoring domowy - koszt instalacji oraz podsumowanie 3 lat działania. 2024, Lipiec
Anonim
Monitorowanie instalacji za pomocą alertu SMS
Monitorowanie instalacji za pomocą alertu SMS

Tutaj tworzę Monitoring Zakładu z alertem SMS. Serwer nie jest wymagany dla tego systemu alertów. Jest to bardzo tani i niezawodny projekt.

Krok 1: Schemat blokowy systemu

Schemat blokowy systemu
Schemat blokowy systemu

W dzisiejszych szklarniach wymagane są pomiary wielu parametrów

do monitorowania i kontrolowania dobrej jakości i produktywności roślin. Jednak aby uzyskać pożądane rezultaty, należy wziąć pod uwagę kilka bardzo ważnych czynników, takich jak temperatura, wilgotność, światło i dobra gleba, które są niezbędne do lepszego wzrostu roślin. Mając na uwadze te parametry, zbudowałem automatyczny system monitorowania instalacji przez moduł GSM przy użyciu Arduino. Ten system jest bardzo wydajny w uprawie roślin dobrej jakości. Inną ważną częścią tego projektu jest to, że jest w pełni automatyczny i działa na niskim napięciu; Zasilanie 5-12V DC.

Obecnie moduł GSM jest szeroko stosowany do wysyłania SMS o statusie dowolnego rodzaju danych. Tutaj w tym projekcie za pomocą modułu GSM SIM900A możemy przechowywać informacje o wpływie klimatu na rośliny. System będzie również pokazywał zmiany klimatyczne, które wpływają na produktywność i jakość zakładu itp. Głównym celem powstania tego projektu jest zbudowanie Automatycznego Monitoringu Zakładu, w którym moduł GSM przesyła informacje o Temperaturze, Wilgotności, Natężeniu światła, Glebie wilgoć.

Ponieważ jestem obywatelem Indii, użyłem modułu SIM900A (A oznacza sieć azjatycką), ale możesz użyć innego rodzaju modułu SIM, w zależności od kraju. Kody AT mogą się różnić.

Krok 2: Szczegóły komponentu

Szczegóły komponentu
Szczegóły komponentu
Szczegóły komponentu
Szczegóły komponentu
Szczegóły komponentu
Szczegóły komponentu

------------------ Mierzę cztery rodzaje parametrów, które idą

do omówienia poniżej: ------------------

Temperatura i wilgotność

Czujnik DHT11 służy do pomiaru temperatury i wilgotności. Gdy temperatura i wilgotność są wysokie, korzenie roślin są uszkodzone, a wzrost roślin nie jest prawidłowy.

Natężenie światła

Intensywność światła jest ważnym czynnikiem wzrostu roślin. Do wykrywania natężenia światła wykorzystywany jest LDR (Light dependant Resistant). Intensywność światła jest mierzona w luksach i dlatego do demonstracji używa się światła 100 luksów jako określonego lub progowego poziomu.

Wilgotność gleby

Zawartość wilgoci w glebie jest bardzo ważna dla dobrego wzrostu roślin. Tutaj czujnik gleby służy do pomiaru zawartości wilgoci w glebie. Za pomocą tego czujnika możemy mierzyć dane glebowe zarówno w sposób analogowy, jak i cyfrowy.

Powiadomienie SMS:

Gdy wartość któregokolwiek z powyższych parametrów przekroczy określony poziom lub poziom krytyczny, system automatycznie wyśle SMS do właściciela lub operatora z informacją o powiązanych parametrach, a gdy wartość znajdzie się w normalnym zakresie lub ponownie poniżej zdefiniowanego poziomu system automatycznie wyślij SMS do właściciela lub operatora z informacją o powiązanych danych.

Powiadomienie wysyłamy tylko raz, aż stan się nie zmieni, więc właściciel lub operator nie otrzymuje częstych SMS-ów. Dlatego wymagany niższy pakiet SMS.

Krok 3: Schemat obwodu

Schemat obwodu
Schemat obwodu

Wszystkie te części są łatwo dostępne w każdej witrynie zakupów online

lub ze znanym sprzedawcą części zamiennych do elektroniki. Wszystkie karty katalogowe komponentów są dostępne w Internecie. W razie jakichkolwiek trudności zapraszam do kontaktu na mój mail.

Krok 4: Działający plik wideo i kod

Końcowe wideo robocze projektu

Krok 5: Kod programu

#włączać

#włączać

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

dht DHT; #zdefiniuj dht_dpin A1 #zdefiniuj LUX A0 #zdefiniuj glebę A3

napięcie pływakowe, luks, wartość; int wartość_wyjściowa; temperatura wewnętrzna, wilgotność; int flaga świetlna = 0; int humflag = 0; int flaga gleby = 0; int flaga temp = 0; kontrola wewnętrzna; test int, test1; stopień bajtu[8] = { 0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000 };

pusta konfiguracja()

{ Szeregowy.początek(9600); //Zainicjuj port szeregowy do komunikacji z modemem GSM lcd.begin(16, 2); pinMode(gleba, INPUT); lcd.createChar(1, stopień); lcd.setCursor(0, 0); lcd.print("Zdrowie roślin"); lcd.setCursor(0, 1); lcd.print("Monitorowanie"); opóźnienie (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("PROJEKT AGRI"); lcd.setCursor(0, 1); lcd.print("Autor SK CHHAYA"); opóźnienie (1000); lcd.clear(); } void loop() { output_value = analogRead(gleba); wartość_wyjściowa = mapa(wartość_wyjściowa, 550, 0, 0, 100); wartość = odczyt analogowy (LUX); wolt = (wartość / 1023,0) * 5; luks = ((2500 / wolt) - 500) / 3,3; opóźnienie (10000); //Daj wystarczająco dużo czasu, aby GSM zarejestrował się w sieci DHT.read11(dht_dpin); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Temp"); lcd.setCursor(0, 1); lcd.print(temperatura = DHT.temperatura); // Dane temp. na LCD lcd.write(1); lcd.print("C"); opóźnienie (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Wilgotność"); lcd.setCursor(0, 1); lcd.print(wilgotność = DHT.wilgotność); // Dane wilgotności na LCD lcd.print(" %"); opóźnienie (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Światło"); lcd.setCursor(0, 1); lcd.print(lux); // Jasne dane na LCD lcd.print(" LUM"); opóźnienie (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Wilgoc"); lcd.setCursor(0, 1); lcd.print(wartość_wyjściowa); // Dane gleby na LCD lcd.print(" %"); opóźnienie (1000); lcd.clear();

if (temperatura 40) { WyślijSMS(); // SMS dla temp. wysokiej } if (wilgotność 40) { SendSMS2(); // SMS o wysokiej wilgotności } if (lux 100) { SendSMS4(); // SMS dla światła wysoki } if (wartość_wyjściowa == 950) { SendSMS7(); // SMS dla suchej gleby } else if (wartość_wyjściowa != 950) { SendSMS6(); // SMS dla mokrej gleby } } void SendSMS() { if (tempflag == 0) { Serial.println("AT+CMGF=1"); opóźnienie (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); opóźnienie (500); Serial.print("Temp High, "); Serial.print("Temp"); druk.seryjny(temperatura); Serial.println("stopień C"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Wysoka temperatura"); opóźnienie (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Temperatura"); lcd.setCursor(0, 1); lcd.print(temperatura); lcd.zapis(1); lcd.print("C"); opóźnienie (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Wysyłanie wiadomości SMS"); opóźnienie (1000); lcd.clear(); flaga temp = 1; sprawdź = 0; test = 0; opóźnienie(10); } } void SendSMS1() { if (tempflag == 1) { Serial.println("AT+CMGF=1"); opóźnienie (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); opóźnienie (500); Serial.print("Niska Temp, "); Serial.print("Temp"); druk.seryjny(temperatura); Serial.println("stopień C"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Niska temperatura"); opóźnienie (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Temperatura"); lcd.setCursor(0, 1); lcd.print(temperatura); lcd.zapis(1); lcd.print("C"); opóźnienie (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Wysyłanie wiadomości SMS"); opóźnienie (1000); lcd.clear(); flaga temp = 0; sprawdź = 0; test = 0; opóźnienie(10); } } void SendSMS2() { if (humflag == 0) { Serial.println("AT+CMGF=1"); opóźnienie (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); opóźnienie (500); Serial.print("Wilgotność wysoka"); Serial.print(wilgotność); Serial.println("%"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Wilgotność wysoka"); opóźnienie (1000); lcd.setCursor(0, 1); lcd.print("Wilgotność"); lcd.print(wilgotność); lcd.print("%"); opóźnienie (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Wysyłanie wiadomości SMS"); opóźnienie (1000); lcd.clear(); humflag = 1; sprawdź = 0; test = 0; opóźnienie(10); } }

void SendSMS3() { if (humflag == 1) { Serial.println("AT+CMGF=1"); opóźnienie (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); opóźnienie (500); Serial.print("Niska Wilgotność, "); Serial.print("Wilgotność"); Serial.print(wilgotność); Serial.println("%"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Niska wilgotność"); opóźnienie (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Wilgotność"); lcd.setCursor(0, 1); lcd.print(wilgotność); lcd.print("%"); opóźnienie (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Wysyłanie SMS"); opóźnienie (1000); lcd.clear(); humflag = 0; sprawdź = 0; test = 0; opóźnienie(10); } } void SendSMS4() { if (lightflag == 0) { Serial.println("AT+CMGF=1"); //Aby wysłać SMS w trybie tekstowym delay(500); Serial.println("AT+CMGS=\"+919979897404\"\r"); //Zmień na docelowy numer telefonu delay(500); Serial.print("Dobre ŚWIATŁO, "); Serial.print("Intensywność"); druk.seryjny(lux); Serial.println("LUX"); Serial.println((char)26); //znak zatrzymania Ctrl+Z lcd.setCursor(0, 0); lcd.print("Dobre światło"); opóźnienie (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Intensywność"); lcd.setCursor(0, 1); lcd.print(lux); lcd.print("LUX"); opóźnienie (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Wysyłanie SMS"); opóźnienie (1000); lcd.clear(); flaga świetlna = 1; sprawdź = 0; test = 0; opóźnienie(10); } } void SendSMS5() { if (lightflag == 1) { Serial.println("AT+CMGF=1"); opóźnienie (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); opóźnienie (500); Serial.print("MAŁE ŚWIATŁO, "); Serial.print("Intensywność"); druk.seryjny(lux); Serial.println("LUX"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Słabe oświetlenie"); opóźnienie (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Intensywność"); lcd.setCursor(0, 1); lcd.print(lux); lcd.print("LUX"); opóźnienie (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Wysyłanie SMS"); opóźnienie (1000); lcd.clear(); flaga świetlna = 0; sprawdź = 0; test = 0; opóźnienie(10); } } void SendSMS6() { if (soilflag == 0) { Serial.println("AT+CMGF=1"); opóźnienie (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); opóźnienie (500); Serial.print("Sucha ziemia, "); Serial.print(" Wilgoć "); Serial.print(wartość_wyjściowa); Serial.println("%"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Sucha ziemia"); opóźnienie (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Wilgoc"); lcd.setCursor(0, 1); lcd.print(wartość_wyjściowa); lcd.print("%"); opóźnienie (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Wysyłanie wiadomości SMS"); opóźnienie (1000); lcd.clear(); flaga gleby = 1; sprawdź = 0; test = 0; opóźnienie(10); } } void SendSMS7() { if (gleba == 1) { Serial.println("AT+CMGF=1"); opóźnienie (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); opóźnienie (500); Serial.print("Mokra gleba, "); Serial.print(" Wilgoć "); Serial.print(wartość_wyjściowa); Serial.println("%"); Serial.println((char)26); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Mokra gleba"); opóźnienie (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Wilgoc"); lcd.setCursor(0, 1); lcd.print(wartość_wyjściowa); lcd.print("%"); opóźnienie (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Wysyłanie SMS"); opóźnienie (1000); lcd.clear(); flaga gleby = 0; sprawdź = 0; test = 0; opóźnienie(10); } }

Zalecana: