Ο ασύρματος πίνακας ανακοινώσεων είναι πολύ επιλεκτικός όρος για αυτό το έργο, καθώς έχει πολύ ευρύ πεδίο και όχι απλώς έναν απλό πίνακα ανακοινώσεων. Πρώτα πρέπει να κατανοήσουμε τον σκοπό αυτού του έργου, σε αυτό το σύστημα μπορούμε να εμφανίσουμε ένα μήνυμα ή μια ειδοποίηση σε κάποια συσκευή προβολής όπως η οθόνη LCD και αυτό το μήνυμα μπορεί εύκολα να ρυθμιστεί ή να αλλάξει από οπουδήποτε στον κόσμο, απλά χρησιμοποιώντας τη δυνατότητα SMS του κινητό ακουστικό. Όποια ειδοποίηση θέλουμε να εμφανίσουμε, απλώς στείλτε το SMS αυτού του κειμένου, με κάποιο πρόθεμα και επίθημα.
Αυτό είναι πολύ χρήσιμο σε ξενοδοχεία, εμπορικά κέντρα, κολέγια, γραφεία και μπορεί να χρησιμοποιηθεί οπουδήποτε, ακόμη και στο σπίτι. Όπως μπορείτε να ορίσετε το μήνυμα όπως «Μην ενοχλείτε» στην πύλη δωματίου του ξενοδοχείου σας, μπορεί να ορίσετε μήνυμα στην πόρτα του σπιτιού σας όταν βρίσκεστε μακριά, και φυσικά χρησιμοποιείται ως πίνακας ανακοινώσεων σε σχολεία, κολέγια, αίθουσες κινηματογράφου κ.λπ. ναι, δεν είναι απλώς ένας πίνακας μηνυμάτων, η χρησιμότητα αυτού του έργου είναι ότι μπορείτε να ορίσετε ή να αλλάξετε το μήνυμα ή την ειδοποίηση από οπουδήποτε, απλώς στέλνοντας SMS από το τηλέφωνό σας. Μπορείτε επίσης να ελέγξετε ένα παρόμοιο έργο, αλλά σε διαφορετικό τύπο οθόνης: Πίνακας αποτελεσμάτων Arduino χρησιμοποιώντας εξωτερική οθόνη Matrix LED P10.
Έχουμε χρησιμοποιήσει προηγουμένως τη δυνατότητα SMS του κινητού τηλεφώνου για την ασφάλεια του σπιτιού και τον έλεγχο των οικιακών συσκευών από απόσταση: PIR Sensor and GSM Based Security System και GSM Based Home Automation χρησιμοποιώντας το Arduino
Επεξήγηση εργασίας:
Σε αυτό το έργο, το Arduino UNO χρησιμοποιείται για τον έλεγχο ολόκληρης της διαδικασίας, μονάδα GSM (SIM900A) για τη λήψη SMS / μηνύματος που αποστέλλεται από κινητό τηλέφωνο και LCD για την εμφάνιση του μηνύματος.
Μπορούμε να στείλουμε κάποιο μήνυμα ή ειδοποίηση όπως "#Circuit Digest *", "#We Σας Καλωσορίζουμε *" μέσω του SMS. Εδώ χρησιμοποιήσαμε ένα πρόθεμα στη συμβολοσειρά μηνυμάτων που είναι «#». Αυτό το πρόθεμα χρησιμοποιείται για τον προσδιορισμό της έναρξης του μηνύματος ή της ειδοποίησης. Και το '*' χρησιμοποιείται ως επίθημα για να δείξει το τέλος του μηνύματος ή της ειδοποίησης.
Όταν στέλνουμε SMS από κινητό τηλέφωνο στη μονάδα GSM, τότε το GSM λαμβάνει αυτό το SMS και το στέλνει στο Arduino. Τώρα ο Arduino διάβασε αυτό το SMS και εξαγάγει το κύριο μήνυμα ειδοποίησης από τη ληφθείσα συμβολοσειρά και αποθηκεύει σε άλλη συμβολοσειρά. Και στη συνέχεια στέλνει το εξαγόμενο μήνυμα σε LCD 16x2 χρησιμοποιώντας τις κατάλληλες εντολές.
Η περαιτέρω εργασία αυτού του συστήματος εξηγείται στην ενότητα «Περιγραφή κώδικα» παρακάτω. Πριν μπείτε στις λεπτομέρειες προγραμματισμού πρέπει να γνωρίζουμε για την ενότητα GSM.
Ενότητα GSM:
Η μονάδα GSM χρησιμοποιείται σε πολλές συσκευές επικοινωνίας που βασίζονται στην τεχνολογία GSM (Παγκόσμιο Σύστημα για Κινητές Επικοινωνίες). Χρησιμοποιείται για την αλληλεπίδραση με το δίκτυο GSM χρησιμοποιώντας έναν υπολογιστή. Η μονάδα GSM κατανοεί μόνο τις εντολές AT και μπορεί να ανταποκριθεί ανάλογα. Η πιο βασική εντολή είναι "AT", εάν το GSM ανταποκρίνεται εντάξει τότε λειτουργεί καλά διαφορετικά αποκρίνεται με "ERROR". Υπάρχουν διάφορες εντολές AT, όπως ATA για να απαντήσετε σε μια κλήση, ATD για να καλέσετε μια κλήση, AT + CMGR για να διαβάσετε το μήνυμα, AT + CMGS για να στείλετε το sms κ.λπ.), όπως "AT + CMGS \ r". Μπορούμε να χρησιμοποιήσουμε τη μονάδα GSM χρησιμοποιώντας αυτές τις εντολές:
ATE0 Για απενεργοποίηση της ηχούς
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS = "Αριθμός κινητού"
>> Τώρα μπορούμε να γράψουμε το μήνυμά μας
>> Μετά τη σύνταξη μηνύματος
Ctrl + Z αποστολή μηνύματος εντολή (26 σε δεκαδικό).
ENTER = 0x0d σε HEX
Το SIM900 είναι μια ολοκληρωμένη μονάδα GSM / GPRS Quad-band που παρέχει απόδοση GSM / GPRS 850/900/1800 / 1900MHz για φωνή, SMS και δεδομένα με χαμηλή κατανάλωση ενέργειας.
Περιγραφή κυκλώματος:
Οι συνδέσεις του Wireless Notice Board με χρήση GSM και Arduino είναι απλές και φαίνονται στο παρακάτω σχήμα. Εδώ χρησιμοποιείται μια οθόνη υγρών κρυστάλλων (LCD) για την εμφάνιση της «Ειδοποίησης» ή του μηνύματος, το οποίο αποστέλλεται μέσω του κινητού τηλεφώνου ως SMS. Οι καρφίτσες δεδομένων της LCD, συγκεκριμένα RS, EN, D4, D5, D6, D7 συνδέονται με τον ψηφιακό ακροδέκτη arduino με αριθμό 7, 6, 5, 4, 3, 2. Και οι ακροδέκτες Rx και Tx της μονάδας GSM συνδέονται απευθείας σε Tx και Rx καρφίτσα του Arduino αντίστοιχα. Και η μονάδα GSM τροφοδοτείται χρησιμοποιώντας έναν προσαρμογέα 12 volt.
Περιγραφή κωδικού:
Ο κώδικας του προγράμματος είναι εύκολα κατανοητός. το νέο πράγμα εδώ είναι η συνάρτηση αρχικοποίησης GSN gsm_init (), η οποία εξηγείται στο τέλος.
Στο πρόγραμμα, πρώτα απ 'όλα συμπεριλαμβάνουμε βιβλιοθήκη για οθόνη υγρών κρυστάλλων (LCD) και μετά ορίζουμε δεδομένα και καρφίτσες ελέγχου για LCD και ορισμένες μεταβλητές.
#περιλαμβάνω
Μετά από αυτό, η σειριακή επικοινωνία αρχικοποιείται στα 9600 bps και δίνει κατεύθυνση στον χρησιμοποιημένο πείρο. Και αρχικοποιήστε τη μονάδα GSM στο βρόχο εγκατάστασης.
άκυρη ρύθμιση () {lcd.begin (16,2); Serial.begin (9600); pinMode (led, OUTPUT); digitalWrite (led, HIGH); lcd.print ("GSM Initilizing…"); gsm_init (); lcd.setCursor (0,0); lcd.print ("Ασύρματη ειδοποίηση");
Για τη λήψη σειριακών δεδομένων χρησιμοποιούμε δύο συναρτήσεις, μία είναι Serial.available που ελέγχει τυχόν σειριακά δεδομένα που έρχονται ή όχι και άλλη μία είναι Serial.read που διαβάζει τα δεδομένα που έρχονται σειριακά.
void serialEvent () {while (Serial.available ()) {char ch = (char) Serial.read (); str = ch; αν (ch == '*') {temp = 1; lcd.clear (); lcd.print ("Λήψη μηνύματος"); καθυστέρηση (1000) }}}
Αφού λάβουμε σειριακά δεδομένα, τα αποθηκεύουμε σε μια συμβολοσειρά και αυτή η συμβολοσειρά ελέγχεται για «#» και «*», για να βρούμε την αρχή και το τέλος της Ειδοποίησης ή του μηνύματος. Στη συνέχεια, η Σημείωση εκτυπώνεται σε LCD χρησιμοποιώντας το lcd.print:
void loop () {για (χωρίς υπογραφή int t = 0; t <60000; t ++) {serialEvent (); εάν (temp == 1) {x = 0, k = 0, temp = 0; ενώ (x
Η λειτουργία αρχικοποίησης 'gsm_init () ' για το GSM είναι σημαντική εδώ, όπου πρώτα, η μονάδα GSM ελέγχεται εάν είναι συνδεδεμένη ή όχι αποστέλλοντας την εντολή 'AT' στη μονάδα GSM. Εάν ληφθεί απάντηση ΟΚ, σημαίνει ότι είναι έτοιμη. Το σύστημα ελέγχει συνεχώς τη μονάδα έως ότου ετοιμαστεί ή έως ότου ληφθεί το «OK» Στη συνέχεια, το ECHO απενεργοποιείται στέλνοντας την εντολή ATE0, διαφορετικά η μονάδα GSM θα επαναλάβει όλες τις εντολές. Τελικά ελέγχεται η διαθεσιμότητα δικτύου μέσω του "AT + CPIN;" εντολή, εάν η κάρτα που έχει εισαχθεί είναι κάρτα SIM και υπάρχει PIN, δίνει την απόκριση + CPIN: READY. Αυτό ελέγχεται επίσης επανειλημμένα έως ότου βρεθεί το δίκτυο. Αυτό μπορεί να γίνει κατανοητό από το παρακάτω βίντεο.
άκυρο gsm_init () {lcd.clear (); lcd.print ("Εύρεση μονάδας.."); boolean at_flag = 1; ενώ (at_flag) {Serial.println ("AT"); ενώ (Serial.available ()> 0) {if (Serial.find ("OK")) at_flag = 0; } καθυστέρηση (1000) }