Cara Menghantar dan Menerima SMS Menggunakan Modem GSM

Cuba Instrumen Kami Untuk Menghapuskan Masalah





Dalam artikel ini kita akan belajar, bagaimana mengirim dan menerima SMS menggunakan modem GSM yang dikendalikan oleh Arduino. Mari kita lihat, apa modem GSM, bagaimana menghubungkannya dengan Arduino, cara menghantar SMS dengan persediaan.

Kami juga akan meneroka semua aplikasi yang dapat kami capai dengan modem GSM selain daripada menghantar pesanan teks oleh manusia.



Apa itu modem GSM?

GSM bermaksud Sistem Global untuk komunikasi Bergerak, ia adalah standard yang dikembangkan oleh ETSI (European Telecommunications Standard Institute) yang menjelaskan protokol untuk komunikasi 2G.

Ini adalah protokol digital pertama untuk komunikasi mudah alih yang dioptimumkan untuk komunikasi suara dupleks penuh. Singkatnya komunikasi dupleks penuh bermaksud kedua-dua pihak dapat menghantar / menerima data (atau suara) secara serentak.



Protokol GSM juga membolehkan pemindahan data paket, seperti GPRS dan EDGE.

Modem GSM SIM800:

Modem GSM adalah perkakasan yang menerima kad SIM yang sah (Subscriber Identity Module), pada dasarnya mana-mana SIM akan berfungsi, yang menyokong protokol GSM dan dengan langganan rangkaian.

Ia seperti telefon bimbit tanpa Skrin dan papan kekunci. Ia mempunyai empat pin I / O bergantung pada model yang anda pilih.

Dua untuk TX dan RX (hantar dan terima), dua lagi pin untuk VCC dan GND, yang biasa berlaku di semua.

Ia juga terdiri dari port RS232 untuk komunikasi bersiri antara modem dan komputer, namun kami tidak akan menggunakannya dalam projek ini.

Ia mempunyai soket kuasa DC standard, yang boleh dikuasakan dari sumber kuasa luaran seperti penyesuai voltan.

Ia mempunyai voltan kerja antara 5 hingga 12V pada bicu DC, bergantung pada modelnya. Ia memiliki 3 indikator LED, untuk kuasa, status, dan rangkaian.

LED kuasa menunjukkan kehadiran kuasa, LED status menunjukkan sama ada modem GSM beroperasi atau tidak, LED Rangkaian menunjukkan pembentukan rangkaian mudah alih.

Pada mulanya LED rangkaian berkedip setiap saat ketika mencari rangkaian, setelah rangkaian mudah alih terbentuk, ia berkelip setiap 3 saat.

Anda perlu menekan butang kuasa selama 2 hingga 3 saat untuk mengaktifkan modem GSM, setelah anda selesai, ia terpasang ke rangkaian mudah alih.

Untuk mengesahkan bahawa modem GSM anda berfungsi, hubungi nombor yang anda masukkan kad SIM. Anda harus mendapat nada dering semula. Sekiranya berlaku, modul anda berfungsi dengan baik.

Kami akan menggunakan modem SIM800 GSM yang menyokong quad-band 850/900/1800/1900 MHz. jika anda memiliki modem SIM900, tidak perlu risau, program dan litar serasi dalam projek ini.

Sekarang, anda mungkin akan mendapat idea mengenai modem GSM, sekarang mari kita belajar bagaimana menghubungkannya dengan arduino.

Rajah Litar:

Kerana anda dapat membuat kesimpulan dari gambarajah, sambungan litar mudah dilakukan. Anda hanya memerlukan 3 pin header lelaki hingga wanita. Kabel USB adalah wajib dalam projek ini, kerana kami akan berkomunikasi melalui monitor bersiri.

Sentiasa gunakan modem GSM dengan penyesuai luaran. Kekuatan dari arduino tidak mencukupi untuk modem GSM bahkan boleh membebankan pengatur voltan arduino.

Itu semua mengenai bahagian perkakasan. Sekarang, mari beralih ke pengekodan.

Program:

//-------------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---------------//

Jangan lupa titik (.) Di setiap hujung mesej jika tidak, ia tidak akan menghantar mesej ke nombor yang ditentukan dalam program ini. Gantikan x dengan 10 nombor telefon digital anda dalam program ini. Pastikan anda mempunyai rancangan SMS yang berfungsi pada kad SIM anda.

Sekiranya anda bukan dari India, sila ubah kod negara dalam program ini.

Sebagai contoh:

Untuk UK: +44
Untuk AS: +1
Untuk Kanada: +1
Untuk Rusia: +7

Anda juga dapat mengotomatisasi mesej yang dihantar oleh modem GSM dengan mengekod Arduino dengan tepat. Anda boleh menerima amaran pesanan automatik di telefon anda seperti: amaran anti-kecurian, amaran penggera kebakaran, amaran cuaca di kawasan tempatan anda dll.

Anda bahkan boleh menyambung ke internet dengan GPRS dalam modem GSM, tetapi ia tertakluk pada artikel lain.

Dalam salah satu artikel akan datang kita akan belajar Cara Menerima SMS Menggunakan Modem GSM dan Arduino

Sekiranya anda mempunyai pertanyaan lebih lanjut mengenai cara mengirim SMS menggunakan Modem GSM, jangan ragu untuk bertanya di bahagian komen.

Cara Menerima SMS Menggunakan Modem GSM

Dalam perbincangan di atas, kami belajar bagaimana menghantar mesej teks menggunakan modem GSM dan juga membincangkan asas-asas modem GSM.

Dalam bahagian ini kita akan membincangkan mengenai bagaimana menerima SMS melalui monitor bersiri dari arduino IDE. Kami tidak hanya akan menerima SMS tetapi juga mengirim pesan teks dengan menekan kekunci yang berbeza. Untuk sekejap, menekan 's' akan mengirim pesan teks pra-masukkan, menekan 'r' akan menerima SMS masa nyata.

Berikut adalah prototaip pengarang:

Bagaimana ia berfungsi

Litar untuk menerima SMS menggunakan GSM moden sangat mudah, anda hanya memerlukan 3 pin header lelaki hingga wanita. Modem TX GSM disambungkan ke pin # 9 dari arduino dan modem RX dari GSM disambungkan ke pin # 8 arduino dan sambungan tanah ke tanah juga diberikan antara GSM dan arduino.

Sentiasa gunakan bekalan kuasa luaran untuk modem GSM, jangan sambungkan 5Vcc dari arduino ke modem GSM, kerana ada kemungkinan besar kelebihan pengatur voltan arduino.

Jangan lupa untuk melaksanakan pemotong kadar SMS atau yang serupa pada langganan SMS anda untuk pengurangan perbelanjaan SMS anda.

Jika tidak, anda akan mendapat baki akaun kosong setelah menghantar beberapa SMS, kerana tidak akan ada pengakuan dari penyedia selular anda setelah setiap SMS dihantar, kerana kad SIM ada dalam modem GSM.

Satu-satunya pengakuan yang anda dapat ialah SMS amaran, mengenai akaun kosong anda, jadi berhati-hatilah dengan perbelanjaan anda. Sekarang mari beralih ke pengekodan bahagian projek ini.

Program:

//-----------------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-------------//

Memasukkan Nombor Telefon

Masukkan nombor telefon penerima di 'xxxxxxxxxxx' dalam program dengan kod negara anda pada awalnya.

Masukkan teks yang ingin anda hantar dalam program dalam tanda petik: gsm.println ('Hello I am GSM modem !!!') // Teks SMS yang ingin anda hantar

Susun program dan muat naik ke arduino.

Masukkan kad SIM dan hidupkan modem GSM dengan bekalan kuasa luaran dan tekan butang kuasa selama 3 saat (bergantung pada model), tunggu 10 hingga 20 saat untuk mewujudkan rangkaian mudah alih, LED rangkaian harus berkedip sekali dalam setiap 3 saat. Sekiranya semua yang dinyatakan di atas selesai, kami sudah bersedia untuk melakukan langkah seterusnya.

Sekarang buka monitor bersiri dan tekan 'r' modem GSM siap menerima SMS. Sekarang hantar mesej teks dari mana-mana telefon bimbit ke nombor SIM yang dimasukkan pada modem GSM.
Mesej teks akan muncul di monitor bersiri, seperti yang digambarkan di bawah:

'Hello world' adalah mesej yang dihantar ke modem GSM dan nombor dari mana mesej teks dihantar juga dipaparkan.

Sekarang, mari hantar SMS ke nombor yang telah dimasukkan dalam program dengan mesej yang dimasukkan sebelumnya. Tekan 's' dan anda akan melihat sesuatu yang serupa digambarkan di bawah: SMS yang dihantar adalah 'Hello I am GSM modem'.

Sekarang, anda tahu cara mengirim dan bagaimana menerima SMS menggunakan modem GSM.




Sebelumnya: Litar Pengawal Motor Bluetooth Seterusnya: Cara Merangka Litar Pemanas Induksi