Πίνακας περιεχομένων:

Παρακολούθηση εγκαταστάσεων με ειδοποίηση SMS: 5 βήματα
Παρακολούθηση εγκαταστάσεων με ειδοποίηση SMS: 5 βήματα

Βίντεο: Παρακολούθηση εγκαταστάσεων με ειδοποίηση SMS: 5 βήματα

Βίντεο: Παρακολούθηση εγκαταστάσεων με ειδοποίηση SMS: 5 βήματα
Βίντεο: Πώς να αποκρύψετε τη λίστα ακολούθων/ακολούθων στο Instagram (νέα ενημέρωση) | Hide Following List 2024, Ιούλιος
Anonim
Παρακολούθηση εγκαταστάσεων με ειδοποίηση SMS
Παρακολούθηση εγκαταστάσεων με ειδοποίηση SMS

Εδώ δημιουργώ την παρακολούθηση εγκαταστάσεων με ειδοποίηση SMS. Ο διακομιστής δεν απαιτείται για αυτό το σύστημα ειδοποιήσεων. Είναι πολύ φθηνό και αξιόπιστο έργο.

Βήμα 1: Αποκλεισμός διαγράμματος συστήματος

Αποκλεισμός διαγράμματος συστήματος
Αποκλεισμός διαγράμματος συστήματος

Στα σημερινά θερμοκήπια, απαιτούνται πολλές μετρήσεις παραμέτρων

για την παρακολούθηση και τον έλεγχο της καλής ποιότητας και παραγωγικότητας των φυτών. Αλλά για να επιτευχθούν τα επιθυμητά αποτελέσματα, υπάρχουν μερικοί πολύ σημαντικοί παράγοντες που παίζουν ρόλο όπως η θερμοκρασία, η υγρασία, το φως και το καλό έδαφος, οι οποίοι είναι απαραίτητοι για μια καλύτερη ανάπτυξη των φυτών. Έχοντας υπόψη αυτές τις παραμέτρους, έχω δημιουργήσει ένα αυτόματο σύστημα παρακολούθησης εγκαταστάσεων μέσω μονάδας GSM χρησιμοποιώντας το Arduino. Αυτό το σύστημα είναι πολύ αποτελεσματικό για την καλλιέργεια καλής ποιότητας φυτών. Το άλλο σημαντικό μέρος αυτού του έργου είναι ότι είναι πλήρως αυτόματο και λειτουργεί σε χαμηλή τάση όπως? Τροφοδοσία 5-12V DC.

Σήμερα, η ενότητα GSM χρησιμοποιείται ευρέως για την αποστολή καταστάσεων SMS οποιουδήποτε είδους δεδομένων. Εδώ σε αυτό το έργο χρησιμοποιώντας τη μονάδα SIM900A GSM μπορούμε να κρατήσουμε πληροφορίες σχετικά με τις επιπτώσεις του κλίματος στα φυτά. Το σύστημα θα επιδεικνύει επίσης τις κλιματικές αλλαγές που επηρεάζουν το φυτό στην παραγωγικότητα και την ποιότητα του κλπ. Ο κύριος σκοπός της υλοποίησης αυτού του έργου είναι η κατασκευή μιας αυτόματης παρακολούθησης εγκαταστάσεων στην οποία η μονάδα GSM στέλνει πληροφορίες σχετικά με τη θερμοκρασία, την υγρασία, την ένταση του φωτός, το έδαφος υγρασία.

Επειδή είμαι ο Ινδός πολίτης, χρησιμοποίησα τη μονάδα SIM900A (το Α σημαίνει ασιατικό δίκτυο), αλλά μπορείτε να χρησιμοποιήσετε διαφορετικό είδος μονάδας SIM ανάλογα με τη χώρα σας. Οι κωδικοί AT μπορεί να διαφέρουν.

Βήμα 2: Λεπτομέρεια εξαρτήματος

Λεπτομέρεια συστατικού
Λεπτομέρεια συστατικού
Λεπτομέρεια συστατικού
Λεπτομέρεια συστατικού
Λεπτομέρεια συστατικού
Λεπτομέρεια συστατικού

------------------ Μετράω τέσσερις τύπους παραμέτρων, οι οποίες συνεχίζονται

για συζήτηση παρακάτω: ------------------

Θερμοκρασία και Υγρασία

Ο αισθητήρας DHT11 χρησιμοποιείται για την ανίχνευση θερμοκρασίας και υγρασίας. Όταν η θερμοκρασία και η υγρασία είναι υψηλές, η ρίζα των φυτών έχει καταστραφεί και η ανάπτυξη του φυτού δεν είναι καλή.

Ελαφριά ένταση

Η ένταση του φωτός είναι ένας σημαντικός παράγοντας για την ανάπτυξη των φυτών. Για την ανίχνευση έντασης φωτός χρησιμοποιείται LDR (Αντίσταση εξαρτώμενη από το φως). Η ένταση του φωτός μετριέται σε LUX και ως εκ τούτου για επίδειξη χρησιμοποιείται 100 φως LUX όπως ορίζεται ή επίπεδο κατωφλίου.

Υγρασία εδάφους

Η υγρασία του εδάφους είναι πολύ σημαντική για την καλή ανάπτυξη των φυτών. Εδώ ο αισθητήρας εδάφους χρησιμοποιείται για τη μέτρηση της περιεκτικότητας σε υγρασία στο έδαφος. Χρησιμοποιώντας αυτόν τον αισθητήρα μπορούμε να μετρήσουμε τα δεδομένα του εδάφους και με τον δύο τρόπο, αναλογικά και ψηφιακά επίσης.

Ειδοποίηση SMS:

Όταν η τιμή οποιασδήποτε από τις παραπάνω παραμέτρους υπερβαίνει από ένα καθορισμένο επίπεδο ή κρίσιμο επίπεδο, το σύστημα στέλνει αυτόματα SMS στον κάτοχο ή τον χειριστή με πληροφορίες σχετικά με τις παραμέτρους και όταν η τιμή έρχεται στο φυσιολογικό εύρος ή κάτω από το καθορισμένο επίπεδο πάλι το σύστημα αυτόματα στείλτε SMS στον ιδιοκτήτη ή στον χειριστή με πληροφορίες σχετικά με τα δεδομένα.

Η ειδοποίηση αποστέλλεται μόνο μία φορά έως ότου η κατάσταση δεν αλλάξει, ώστε ο ιδιοκτήτης ή ο χειριστής να μην λαμβάνει συχνά SMS. Επομένως, απαιτείται χαμηλότερο πακέτο SMS.

Βήμα 3: Διάγραμμα κυκλώματος

Διάγραμμα κυκλώματος
Διάγραμμα κυκλώματος

Όλα αυτά τα μέρη είναι εύκολα διαθέσιμα σε οποιοδήποτε διαδικτυακό ιστότοπο αγορών

ή με γνωστό αντιπρόσωπο ηλεκτρονικών ειδών. Όλα τα φύλλα δεδομένων είναι διαθέσιμα στον ιστό. Αν έχετε κάποια δυσκολία επικοινωνήστε ελεύθερα στο mail μου.

Βήμα 4: Εργασία βίντεο και αρχείο κώδικα

Τελικό βίντεο εργασίας του έργου

Βήμα 5: Κώδικας Προγράμματος

#περιλαμβάνω

#περιλαμβάνω

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

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

float volt, lux, value? int output_value; int θερμοκρασία, υγρασία. int lightflag = 0; int humflag = 0; int groundflag = 0; int tempflag = 0; int έλεγχος? int test, test1; βαθμό byte [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};

void setup ()

{Serial.begin (9600); // Αρχικοποίηση σειράς για επικοινωνία με το GSM Modem lcd.begin (16, 2). pinMode (χώμα, ΕΙΣΟΔΟΣ); lcd.createChar (1, βαθμό); lcd.setCursor (0, 0); lcd.print ("Υγεία των φυτών"); lcd.setCursor (0, 1); lcd.print ("Παρακολούθηση"); καθυστέρηση (1000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("AGRI PROJECT"); lcd.setCursor (0, 1); lcd.print ("By S K CHHAYA"); καθυστέρηση (1000)? lcd.clear (); } void loop () {output_value = analogRead (χώμα); έξοδος_τιμής = χάρτης (τιμή_εξόδου, 550, 0, 0, 100); value = analogRead (LUX); volt = (τιμή / 1023,0) * 5; lux = ((2500 / volt) - 500) / 3,3; καθυστέρηση (10000)? // Δώστε αρκετό χρόνο για να εγγραφεί το GSM στο Δίκτυο DHT.read11 (dht_dpin). lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temp"); lcd.setCursor (0, 1); lcd.print (θερμοκρασία = θερμοκρασία DHT.temperature); // Temp δεδομένα σε LCD lcd.write (1); lcd.print ("C"); καθυστέρηση (1000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Υγρασία"); lcd.setCursor (0, 1); lcd.print (υγρασία = DHT. υγρασία); // Δεδομένα υγρασίας στην οθόνη LCD lcd.print (" %"); καθυστέρηση (1000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Light"); lcd.setCursor (0, 1); lcd.print (lux); // Φωτεινά δεδομένα σε LCD lcd.print ("LUM"). καθυστέρηση (1000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Υγρασία"); lcd.setCursor (0, 1); lcd.print (τιμή_εξόδου); // Στοιχεία εδάφους σε LCD lcd.print (" %"); καθυστέρηση (1000)? lcd.clear ();

εάν (θερμοκρασία 40) {SendSMS (); // SMS για Temp high} if (υγρασία 40) {SendSMS2 (); // SMS για υγρασία υψηλή} εάν (lux 100) {SendSMS4 (); // SMS for Light high} if (output_value == 950) {SendSMS7 (); // SMS για ξηρό έδαφος} αλλιώς αν (έξοδος_τιμής! = 950) {SendSMS6 (); // SMS για υγρό έδαφος}} void SendSMS () {if (tempflag == 0) {Serial.println ("AT+CMGF = 1"); καθυστέρηση (500)? Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); καθυστέρηση (500)? Serial.print ("Temp High"); Serial.print ("Temp"); Serial.print (θερμοκρασία) Serial.println ("βαθμός C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temp High"); καθυστέρηση (1000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Θερμοκρασία"); lcd.setCursor (0, 1); lcd.print (θερμοκρασία) lcd.write (1); lcd.print ("C"); καθυστέρηση (1000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Αποστολή SMS"); καθυστέρηση (1000)? lcd.clear (); tempflag = 1; έλεγχος = 0; δοκιμή = 0; καθυστέρηση (10)? }} void SendSMS1 () {if (tempflag == 1) {Serial.println ("AT+CMGF = 1"); καθυστέρηση (500)? Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); καθυστέρηση (500)? Serial.print ("Temp Low",); Serial.print ("Temp"); Serial.print (θερμοκρασία) Serial.println ("βαθμός C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temp Low"); καθυστέρηση (1000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Θερμοκρασία"); lcd.setCursor (0, 1); lcd.print (θερμοκρασία) lcd.write (1); lcd.print ("C"); καθυστέρηση (1000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Αποστολή SMS"); καθυστέρηση (1000)? lcd.clear (); tempflag = 0; έλεγχος = 0; δοκιμή = 0; καθυστέρηση (10)? }} void SendSMS2 () {if (humflag == 0) {Serial.println ("AT+CMGF = 1"); καθυστέρηση (500)? Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); καθυστέρηση (500)? Serial.print ("Υγρασία Υψηλή"); Serial.print (υγρασία)? Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Υγρασία Υψηλή"); καθυστέρηση (1000)? lcd.setCursor (0, 1); lcd.print ("Υγρασία"); lcd.print (υγρασία) lcd.print (" %"); καθυστέρηση (1000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Αποστολή SMS"); καθυστέρηση (1000)? lcd.clear (); humflag = 1; έλεγχος = 0; δοκιμή = 0; καθυστέρηση (10)? }}

void SendSMS3 () {if (humflag == 1) {Serial.println ("AT+CMGF = 1"); καθυστέρηση (500)? Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); καθυστέρηση (500)? Serial.print ("Χαμηλή υγρασία"); Serial.print ("Υγρασία"); Serial.print (υγρασία)? Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Χαμηλή υγρασία"); καθυστέρηση (1000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Υγρασία"); lcd.setCursor (0, 1); lcd.print (υγρασία) lcd.print (" %"); καθυστέρηση (1000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Αποστολή SMS"); καθυστέρηση (1000)? lcd.clear (); humflag = 0; έλεγχος = 0; δοκιμή = 0; καθυστέρηση (10)? }} void SendSMS4 () {if (lightflag == 0) {Serial.println ("AT+CMGF = 1"); // Για αποστολή SMS σε καθυστέρηση λειτουργίας κειμένου (500). Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); // Αλλαγή στον αριθμό τηλεφώνου προορισμού καθυστέρηση (500). Serial.print ("Καλό ΦΩΣ",); Serial.print ("Ένταση"); Serial.print (lux); Serial.println ("LUX"); Serial.println ((char) 26); // ο χαρακτήρας διακοπής Ctrl+Z lcd.setCursor (0, 0); lcd.print ("Καλό φως"); καθυστέρηση (1000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Ένταση"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); καθυστέρηση (1000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Αποστολή SMS"); καθυστέρηση (1000)? lcd.clear (); lightflag = 1; έλεγχος = 0; δοκιμή = 0; καθυστέρηση (10)? }} void SendSMS5 () {if (lightflag == 1) {Serial.println ("AT+CMGF = 1"); καθυστέρηση (500)? Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); καθυστέρηση (500)? Serial.print ("LOW LIGHT,"); Serial.print ("Ένταση"); Serial.print (lux); Serial.println ("LUX"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Χαμηλό φως"); καθυστέρηση (1000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Ένταση"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); καθυστέρηση (1000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Αποστολή SMS"); καθυστέρηση (1000)? lcd.clear (); lightflag = 0; έλεγχος = 0; δοκιμή = 0; καθυστέρηση (10)? }} void SendSMS6 () {if (groundflag == 0) {Serial.println ("AT+CMGF = 1"); καθυστέρηση (500)? Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); καθυστέρηση (500)? Serial.print ("Ξηρό έδαφος"); Serial.print ("Υγρασία"); Serial.print (έξοδος_τιμής); Serial.println (" %"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Ξηρό έδαφος"); καθυστέρηση (1000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Υγρασία"); lcd.setCursor (0, 1); lcd.print (τιμή_εξόδου); lcd.print (" %"); καθυστέρηση (1000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Αποστολή SMS"); καθυστέρηση (1000)? lcd.clear (); σημαία χώματος = 1; έλεγχος = 0; δοκιμή = 0; καθυστέρηση (10)? }} void SendSMS7 () {if (groundflag == 1) {Serial.println ("AT+CMGF = 1"); καθυστέρηση (500)? Serial.println ("AT+CMGS = \"+919979897404 / "\ r"); καθυστέρηση (500)? Serial.print ("Υγρό έδαφος"); Serial.print ("Υγρασία"); Serial.print (έξοδος_τιμής); Serial.println (" %"); Serial.println ((char) 26); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Υγρό έδαφος"); καθυστέρηση (1000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Υγρασία"); lcd.setCursor (0, 1); lcd.print (τιμή_εξόδου); lcd.print (" %"); καθυστέρηση (1000)? lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Αποστολή SMS"); καθυστέρηση (1000)? lcd.clear (); σημαία χώματος = 0; έλεγχος = 0; δοκιμή = 0; καθυστέρηση (10)? }}

Συνιστάται: