Sommario:

Monitoraggio dell'impianto con SMS Alert: 5 passaggi
Monitoraggio dell'impianto con SMS Alert: 5 passaggi

Video: Monitoraggio dell'impianto con SMS Alert: 5 passaggi

Video: Monitoraggio dell'impianto con SMS Alert: 5 passaggi
Video: SMARTMAIC Controllo consumi con Monitoraggio Fotovoltaico 2024, Dicembre
Anonim
Monitoraggio dell'impianto con SMS Alert
Monitoraggio dell'impianto con SMS Alert

Qui creo il monitoraggio dell'impianto con avviso SMS. Il server non è richiesto per questo sistema di avviso. È un progetto molto economico e affidabile.

Passaggio 1: diagramma a blocchi del sistema

Schema a blocchi del sistema
Schema a blocchi del sistema

Nelle serre di oggi sono necessarie molte misurazioni di parametri

monitorare e controllare la buona qualità e produttività degli impianti. Ma per ottenere i risultati desiderati entrano in gioco alcuni fattori molto importanti come Temperatura, Umidità, Luce e Buon Terreno, necessari per una migliore crescita delle piante. Tenendo a mente questi parametri ho costruito un sistema di monitoraggio automatico dell'impianto su modulo GSM utilizzando Arduino. Questo sistema è molto efficiente per coltivare piante di buona qualità. L'altra parte importante di questo progetto è che è completamente automatico e funziona come a bassa tensione; Alimentazione 5-12V CC.

Oggigiorno il modulo GSM è ampiamente utilizzato per l'invio di SMS di stato di qualsiasi tipo di dati. Qui in questo progetto utilizzando il modulo GSM SIM900A possiamo conservare le informazioni sugli effetti del clima sulle piante. Il sistema deve anche dimostrare i cambiamenti climatici che influenzano l'impianto nella sua produttività e qualità, ecc. Lo scopo principale di realizzare questo progetto è costruire un monitoraggio automatico dell'impianto in cui il modulo GSM invia le informazioni su temperatura, umidità, intensità della luce, suolo umidità.

Poiché sono cittadino indiano, ho utilizzato il modulo SIM900A (A sta per rete asiatica) ma puoi utilizzare diversi tipi di modulo SIM secondo il tuo paese. I codici AT possono differire.

Passaggio 2: dettaglio del componente

Dettaglio componente
Dettaglio componente
Dettaglio componente
Dettaglio componente
Dettaglio componente
Dettaglio componente

------------------- Misuro quattro tipi di parametri, che stanno andando

da discutere di seguito: ------------------

Temperatura e umidità

Il sensore DHT11 viene utilizzato per rilevare la temperatura e l'umidità. Quando la temperatura e l'umidità sono elevate, la radice delle piante è danneggiata e la crescita della pianta non è buona.

Intensità luminosa

L'intensità della luce è un fattore importante per la crescita delle piante. Per rilevare l'intensità della luce viene utilizzato LDR (resistenza dipendente dalla luce). L'intensità della luce viene misurata in LUX e quindi per la dimostrazione viene utilizzata una luce di 100 LUX come livello definito o soglia.

Umidità del suolo

L'umidità del suolo è molto importante per una buona crescita delle piante. Qui il sensore del suolo viene utilizzato per misurare il contenuto di umidità nel suolo. Utilizzando questo sensore possiamo misurare i dati del suolo in entrambi i modi, sia analogici che digitali.

Notifica SMS:

Quando il valore di uno qualsiasi dei parametri sopra indicati viene superato da un livello definito o livello critico, il sistema invia automaticamente SMS al proprietario o all'operatore con le informazioni sui parametri correlati e quando il valore rientra nell'intervallo normale o al di sotto del livello definito il sistema automaticamente inviare SMS al titolare o all'operatore con l'informativa dei relativi dati.

La notifica viene inviata una sola volta fino a quando la condizione non cambia in modo che il proprietario o l'operatore non ricevano SMS frequenti. Pertanto, è necessario un pacchetto SMS inferiore.

Passaggio 3: schema elettrico

Schema elettrico
Schema elettrico

Tutte queste parti sono facilmente disponibili in qualsiasi sito di shopping online

o con un noto rivenditore di ricambi di elettronica. Tutti i datasheet dei componenti sono disponibili sul web. In caso di difficoltà non esitate a contattare sulla mia posta.

Passaggio 4: video di lavoro e file di codice

Video di lavoro finale del progetto

Passaggio 5: codice di programma

#includere

#includere

LCD a cristalli liquidi (2, 3, 4, 5, 6, 7);

dht DHT; #define dht_dpin A1 #define LUX A0 #define suolo A3

float volt, lux, valore; int valore_output; int temperatura, umidità; int bandiera luminosa = 0; int contrassegno = 0; int flag del suolo = 0; int flag temp = 0; controllo interno; int prova, prova1; byte grado[8] = { 0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000 };

configurazione nulla()

{ Serial.begin(9600); //Inizializza la seriale per comunicare con il Modem GSM lcd.begin(16, 2); pinMode(terreno, INPUT); lcd.createChar(1, grado); lcd.setCursor(0, 0); lcd.print("Salute delle piante"); lcd.setCursor(0, 1); lcd.print("Monitoraggio"); ritardo(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("PROGETTO AGRI"); lcd.setCursor(0, 1); lcd.print("Di S K CHHAYA"); ritardo(1000); lcd.clear(); } void loop() { output_value = analogRead(suolo); output_value = map(output_value, 550, 0, 0, 100); valore = analogRead(LUX); volt = (valore / 1023.0) * 5; lux = ((2500 / volt) - 500) / 3,3; ritardo (10000); //Dai abbastanza tempo al GSM per registrarsi sulla rete DHT.read11(dht_dpin); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Temp"); lcd.setCursor(0, 1); lcd.print(temperatura = DHT.temperatura); // Dati di temperatura su LCD lcd.write(1); lcd.print("C"); ritardo(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Umidità"); lcd.setCursor(0, 1); lcd.print(umidità = DHT.umidità); // Dati umidità su LCD lcd.print(" %"); ritardo(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Luce"); lcd.setCursor(0, 1); lcd.print(lux); // Dati luce su LCD lcd.print(" LUM"); ritardo(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Umidità"); lcd.setCursor(0, 1); lcd.print(output_value); // Dati del suolo su LCD lcd.print(" %"); ritardo(1000); lcd.clear();

if (temperatura 40) { SendSMS(); // SMS per Temp alta } if (umidità 40) { SendSMS2(); // SMS per umidità alta } if (lux 100) { SendSMS4(); // SMS per Light high } if (output_value == 950) { SendSMS7(); // SMS for Dry Soil } else if (output_value != 950) { SendSMS6(); // SMS per terreno umido } } void SendSMS() { if (tempflag == 0) { Serial.println("AT+CMGF=1"); ritardo (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); ritardo (500); Serial.print("Temperatura alta, "); Serial.print("Temp"); Serial.print(temperatura); Serial.println(" grado C"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Temperatura alta"); ritardo(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Temperatura"); lcd.setCursor(0, 1); lcd.print(temperatura); lcd.write(1); lcd.print("C"); ritardo(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Invio SMS"); ritardo(1000); lcd.clear(); tempflag = 1; verifica = 0; prova = 0; ritardo(10); } } void SendSMS1() { if (tempflag == 1) { Serial.println("AT+CMGF=1"); ritardo (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); ritardo (500); Serial.print("Temp. bassa, "); Serial.print("Temp"); Serial.print(temperatura); Serial.println("grado C"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Temp. bassa"); ritardo(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Temperatura"); lcd.setCursor(0, 1); lcd.print(temperatura); lcd.write(1); lcd.print("C"); ritardo(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Invio SMS"); ritardo(1000); lcd.clear(); tempflag = 0; verifica = 0; prova = 0; ritardo(10); } } void SendSMS2() { if (humflag == 0) { Serial.println("AT+CMGF=1"); ritardo (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); ritardo (500); Serial.print("Umidità alta"); Serial.print(umidità); Serial.println("%"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Umidità alta"); ritardo(1000); lcd.setCursor(0, 1); lcd.print("Umidità"); lcd.print(umidità); lcd.print("%"); ritardo(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Invio SMS"); ritardo(1000); lcd.clear(); humflag = 1; verifica = 0; prova = 0; ritardo(10); } }

void SendSMS3() { if (humflag == 1) { Serial.println("AT+CMGF=1"); ritardo (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); ritardo (500); Serial.print("Bassa umidità, "); Serial.print(" Umidità "); Serial.print(umidità); Serial.println("%"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Bassa umidità"); ritardo(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Umidità"); lcd.setCursor(0, 1); lcd.print(umidità); lcd.print("%"); ritardo(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Invio SMS"); ritardo(1000); lcd.clear(); humflag = 0; verifica = 0; prova = 0; ritardo(10); } } void SendSMS4() { if (flag luminoso == 0) { Serial.println("AT+CMGF=1"); //Per inviare SMS in modalità testo delay(500); Serial.println("AT+CMGS=\"+919979897404\"\r"); //Cambia al numero di telefono di destinazione delay(500); Serial.print("Buona LUCE, "); Serial.print(" Intensità "); Serial.print(lux); Serial.println(" LUX"); Serial.println((char)26); //il carattere di arresto Ctrl+Z lcd.setCursor(0, 0); lcd.print("Buona luce"); ritardo(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Intensità"); lcd.setCursor(0, 1); lcd.print(lux); lcd.print(" LUX"); ritardo(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Invio SMS"); ritardo(1000); lcd.clear(); bandiera luminosa = 1; verifica = 0; prova = 0; ritardo(10); } } void SendSMS5() { if (flag luminoso == 1) { Serial.println("AT+CMGF=1"); ritardo (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); ritardo (500); Serial.print("LUCE BASSA, "); Serial.print(" Intensità "); Serial.print(lux); Serial.println(" LUX"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Luce scarsa"); ritardo(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Intensità"); lcd.setCursor(0, 1); lcd.print(lux); lcd.print(" LUX"); ritardo(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Invio SMS"); ritardo(1000); lcd.clear(); bandiera luminosa = 0; verifica = 0; prova = 0; ritardo(10); } } void SendSMS6() { if (soilflag == 0) { Serial.println("AT+CMGF=1"); ritardo (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); ritardo (500); Serial.print("Terreno secco, "); Serial.print("Umidità"); Serial.print(output_value); Serial.println("%"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.print("Terreno asciutto"); ritardo(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Umidità"); lcd.setCursor(0, 1); lcd.print(output_value); lcd.print("%"); ritardo(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Invio SMS"); ritardo(1000); lcd.clear(); bandiera del suolo = 1; verifica = 0; prova = 0; ritardo(10); } } void SendSMS7() { if (soilflag == 1) { Serial.println("AT+CMGF=1"); ritardo (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); ritardo (500); Serial.print("Terreno umido, "); Serial.print("Umidità"); Serial.print(output_value); Serial.println("%"); Serial.println((char)26); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Terreno umido"); ritardo(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Umidità"); lcd.setCursor(0, 1); lcd.print(output_value); lcd.print("%"); ritardo(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Invio SMS"); ritardo(1000); lcd.clear(); bandiera del suolo = 0; verifica = 0; prova = 0; ritardo(10); } }

Consigliato: