Τρόπος αποστολής και λήψης SMS χρησιμοποιώντας GSM Modem

Δοκιμάστε Το Όργανο Μας Για Την Εξάλειψη Των Προβλημάτων





Σε αυτό το άρθρο θα μάθουμε, πώς να στέλνουμε και να λαμβάνουμε SMS χρησιμοποιώντας το μόντεμ GSM που ελέγχεται από το Arduino. Ας δούμε, τι είναι το μόντεμ GSM, πώς να το συνδέσετε με το Arduino, πώς να στείλετε SMS με τη ρύθμιση.

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



Τι είναι το μόντεμ GSM;

Το GSM σημαίνει Παγκόσμιο Σύστημα για Κινητές Επικοινωνίες, είναι ένα πρότυπο που αναπτύχθηκε από το ETSI (European Telecommunications Standard Institute) που περιέγραψε τα πρωτόκολλα για την επικοινωνία 2G.

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



Το πρωτόκολλο GSM επιτρέπει επίσης τη μεταφορά δεδομένων πακέτων, όπως το GPRS και το EDGE.

Μόντεμ SIM800 GSM:

Το μόντεμ GSM είναι ένα υλικό που δέχεται μια έγκυρη κάρτα SIM (Subscriber Identity Module), βασικά οποιαδήποτε SIM θα λειτουργεί, η οποία υποστηρίζει πρωτόκολλο GSM και με συνδρομή δικτύου.

Είναι σαν ένα κινητό τηλέφωνο χωρίς οθόνη και πληκτρολόγιο. Διαθέτει τέσσερις καρφίτσες εισόδου / εξόδου ανάλογα με το μοντέλο που επιλέγετε.

Δύο για TX και RX (μετάδοση και λήψη), άλλες δύο ακίδες για VCC και GND, κάτι που είναι κοινό σε όλα.

Αποτελείται επίσης από θύρα RS232 για σειριακή επικοινωνία μεταξύ του μόντεμ και του υπολογιστή, ωστόσο δεν πρόκειται να το χρησιμοποιήσουμε σε αυτό το έργο.

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

Έχει τάση λειτουργίας που κυμαίνεται από 5 έως 12V στην υποδοχή DC, ανάλογα με το μοντέλο. Διαθέτει 3 ενδεικτικές λυχνίες LED, για ισχύ, κατάσταση και δίκτυο.

Το LED τροφοδοσίας υποδεικνύει την παρουσία ισχύος, το LED κατάστασης υποδεικνύει εάν το μόντεμ GSM λειτουργεί ή όχι, το LED δικτύου υποδεικνύει τη δημιουργία δικτύου κινητής τηλεφωνίας.

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

Πρέπει να πατήσετε το κουμπί λειτουργίας για 2 έως 3 δευτερόλεπτα για να ενεργοποιήσετε το μόντεμ GSM, μόλις το κάνετε, ασφαλίζει στο δίκτυο κινητής τηλεφωνίας.

Για να επαληθεύσετε ότι το μόντεμ GSM λειτουργεί, απλώς καλέστε τον αριθμό από τον οποίο έχετε τοποθετήσει την κάρτα SIM. Θα πρέπει να λάβετε ήχο κλήσης. Εάν συμβαίνει αυτό, τότε η λειτουργική σας μονάδα λειτουργεί καλά.

Θα χρησιμοποιήσουμε το μόντεμ SIM800 GSM που υποστηρίζει quad-band 850/900/1800/1900 MHz. Εάν διαθέτετε μόντεμ SIM900, δεν χρειάζεται να ανησυχείτε, το πρόγραμμα και το κύκλωμα είναι συμβατά σε αυτό το έργο.

Τώρα, θα έχετε αποκτήσει κάποια ιδέα για το μόντεμ GSM, τώρα ας μάθουμε πώς να το συνδέσουμε με το arduino.

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

Όπως μπορείτε να συμπεράνετε το διάγραμμα, η σύνδεση κυκλώματος είναι εύκολη. Χρειάζεστε μόνο 3 αρσενικές έως θηλυκές καρφίτσες κεφαλίδας. Ένα καλώδιο USB είναι υποχρεωτικό σε αυτό το έργο, καθώς πρόκειται να επικοινωνήσουμε μέσω σειριακής οθόνης.

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

Αυτό αφορά όλο το υλικό. Τώρα, ας προχωρήσουμε στην κωδικοποίηση.

Πρόγραμμα:

//-------------Program developed by R.Girish---------------//
#include
#define rxPin 9 // gsm TX------> arduino 9
#define txPin 8 //gsm RX--------> arduino 8
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin)
char text[150]
String message=''
int x
void setup()
{
Serial.begin(9600)
while (!Serial){}
mySerial.begin(9600)
delay(1000)
Serial.println('Write your message (with dot at end):')
}
void loop()
{
x=0
while( Serial.available()>0 )
{
text[x] = Serial.read()
message += text[x]
x++
if (text[x-1]==46)
{
Serial.println('Your message is sending......')
SendTextMessage()
ShowSerialData()
delay(1000)
Serial.println('r')
Serial.println('Success')
message=''
x=0
}}}
void SendTextMessage()
{
mySerial.print('AT+CMGF=1r')
delay(1000)
mySerial.print('AT+CMGS='+91xxxxxxxxxx'r') // Replace x with your 10 digit phone number
delay(1000)
mySerial.println(message)
mySerial.print('r')
delay(1000)
mySerial.println((char)26)
mySerial.println()
}
void ShowSerialData()
{
while(mySerial.available()!=0)
Serial.write(mySerial.read())
}
//-------------Program developed by R.Girish---------------//

Μην ξεχνάτε την τελεία (.) Σε κάθε άκρο του μηνύματος , διαφορετικά δεν θα στείλει το μήνυμα στον καθορισμένο αριθμό στο πρόγραμμα. Αντικαταστήστε το x με τον 10 ψηφιακό αριθμό τηλεφώνου σας στο πρόγραμμα. Βεβαιωθείτε ότι έχετε ένα πρόγραμμα SMS που λειτουργεί στην κάρτα SIM.

Εάν δεν είστε από την Ινδία, αλλάξτε τον κωδικό χώρας στο πρόγραμμα.

Για παράδειγμα:

Για Ηνωμένο Βασίλειο: +44
Για ΗΠΑ: +1
Για τον Καναδά: +1
Για τη Ρωσία: +7

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

Μπορείτε ακόμη και να συνδεθείτε στο Διαδίκτυο με GPRS στο μόντεμ GSM, αλλά υπόκειται σε άλλο άρθρο.

Σε ένα από τα επόμενα άρθρα θα μάθουμε Πώς να λαμβάνετε SMS χρησιμοποιώντας GSM Modem και Arduino

Εάν έχετε περαιτέρω ερωτήσεις σχετικά με τον τρόπο αποστολής SMS χρησιμοποιώντας το GSM Modem, μη διστάσετε να ρωτήσετε στην ενότητα σχολίων.

Τρόπος λήψης SMS χρησιμοποιώντας GSM Modem

Στην παραπάνω συζήτηση μάθαμε πώς να στέλνουμε ένα μήνυμα κειμένου χρησιμοποιώντας το μόντεμ GSM και επίσης συζητήσαμε τα βασικά του μόντεμ GSM.

Σε αυτήν την ενότητα θα συζητήσουμε σχετικά με τον τρόπο λήψης SMS μέσω σειριακής οθόνης του arduino IDE. Δεν θα λαμβάνουμε μόνο SMS, αλλά και θα στέλνουμε μήνυμα κειμένου πατώντας διαφορετικά πλήκτρα. Για μια στιγμή, το πάτημα του 's' θα στείλει μήνυμα κειμένου πριν από την εισαγωγή, πιέζοντας το 'r' θα λάβετε SMS σε πραγματικό χρόνο.

Εδώ είναι το πρωτότυπο του συγγραφέα:

Πως δουλεύει

Το κύκλωμα για τη λήψη SMS χρησιμοποιώντας ένα GSM moden είναι πολύ απλό, χρειάζεστε μόνο 3 αρσενικές έως θηλυκές καρφίτσες κεφαλίδας. Το μόντεμ TX του GSM συνδέεται στον ακροδέκτη # 9 του arduino και το μόντεμ GSM συνδέεται στον ακροδέκτη # 8 του arduino και η σύνδεση μεταξύ γης και γης δίνεται επίσης μεταξύ GSM και arduino.

Χρησιμοποιείτε πάντα εξωτερική τροφοδοσία για μόντεμ GSM, μην συνδέετε 5Vcc από arduino σε μόντεμ GSM, καθώς υπάρχει μεγάλη πιθανότητα υπερφόρτωσης του ρυθμιστή τάσης του arduino.

Μην ξεχάσετε να εφαρμόσετε τον κόπτη τιμών SMS ή κάτι παρόμοιο στη συνδρομή σας SMS για μείωση των εξόδων SMS.

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

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

Πρόγραμμα:

//-----------------Program developed by R.Girish-------------//
#include
SoftwareSerial gsm(9,8)
void setup()
{
gsm.begin(9600) // Setting the baud rate of GSM Module
Serial.begin(9600) // Setting the baud rate of Serial Monitor (Arduino)
delay(100)
}
void loop()
{
if (Serial.available()>0)
switch(Serial.read())
{
case 's':
Send()
break
case 'r':
Recieve()
break
case 'S':
Send()
break
case 'R':
Recieve()
break
}
if (gsm.available()>0)
Serial.write(gsm.read())
}
void Send()
{
gsm.println('AT+CMGF=1')
delay(1000)
gsm.println('AT+CMGS='+91xxxxxxxxxx'r') // Replace x with mobile number
delay(1000)
gsm.println('Hello I am GSM modem!!!')// The SMS text you want to send
delay(100)
gsm.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
void Recieve()
{
gsm.println('AT+CNMI=2,2,0,0,0') // AT Command to receive a live SMS
delay(1000)
}
//-----------------Program developed by R.Girish-------------//

Εισαγωγή των αριθμών τηλεφώνου

Εισαγάγετε τον αριθμό τηλεφώνου παραλήπτη στο 'xxxxxxxxxxx' στο πρόγραμμα με τον κωδικό χώρας στην αρχή.

Εισαγάγετε το κείμενο που θέλετε να στείλετε στο πρόγραμμα εντός του εισαγωγικού: gsm.println ('Γεια σας είμαι GSM modem !!!') // Το κείμενο SMS που θέλετε να στείλετε

Μεταγλώττιση του προγράμματος και αποστολή στο arduino.

Τοποθετήστε την κάρτα SIM και ενεργοποιήστε το μόντεμ GSM με εξωτερική τροφοδοσία και πατήστε το κουμπί λειτουργίας για 3 δευτερόλεπτα (ανάλογα με το μοντέλο), περιμένετε 10 έως 20 δευτερόλεπτα για να δημιουργήσετε δίκτυο κινητής τηλεφωνίας, η λυχνία LED δικτύου αναβοσβήνει μία φορά κάθε 3 δευτερόλεπτα. Εάν όλα όσα αναφέρονται παραπάνω γίνουν, είμαστε έτοιμοι να προχωρήσουμε για το επόμενο βήμα.

Τώρα ανοίξτε την σειριακή οθόνη και πατήστε 'r' το μόντεμ GSM είναι έτοιμο να λάβει SMS. Τώρα στείλτε ένα μήνυμα κειμένου από οποιοδήποτε κινητό τηλέφωνο στον αριθμό της SIM που έχει εισαχθεί στο μόντεμ GSM.
Το μήνυμα κειμένου θα πρέπει να εμφανιστεί στη σειριακή οθόνη, κάτι παρόμοιο με το παρακάτω:

Το 'Hello world' είναι το μήνυμα που αποστέλλεται στο μόντεμ GSM και εμφανίζεται επίσης ο αριθμός από τον οποίο αποστέλλεται το μήνυμα κειμένου.

Τώρα, ας στείλουμε SMS στον προ-καταχωρημένο αριθμό στο πρόγραμμα με προ-καταχωρημένο μήνυμα. Πατήστε 's' και θα δείτε κάτι παρόμοιο που φαίνεται παρακάτω: Το SMS που στάλθηκε είναι 'Γεια σας είμαι μόντεμ GSM'.

Τώρα, ξέρετε πώς να στέλνετε και πώς να λαμβάνετε SMS χρησιμοποιώντας το μόντεμ GSM.




Προηγούμενο: Κύκλωμα ελεγκτή κινητήρα Bluetooth Επόμενο: Πώς να σχεδιάσετε ένα κύκλωμα επαγωγής θερμαντήρα