Cách gửi và nhận SMS bằng Modem GSM

Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề





Trong bài viết này, chúng ta sẽ tìm hiểu cách gửi và nhận SMS bằng modem GSM được điều khiển bởi Arduino. Hãy để chúng tôi xem, modem GSM là gì, cách giao diện nó với Arduino, cách gửi SMS khi cài đặt.

Chúng tôi cũng sẽ khám phá những ứng dụng mà chúng tôi có thể đạt được với modem GSM ngoài việc gửi tin nhắn văn bản của con người.



Modem GSM là gì?

GSM là viết tắt của Global System for Mobile Communication, nó là một tiêu chuẩn được phát triển bởi ETSI (Viện Tiêu chuẩn Viễn thông Châu Âu), người đã mô tả các giao thức cho giao tiếp 2G.

Đây là giao thức kỹ thuật số đầu tiên dành cho truyền thông di động được tối ưu hóa cho giao tiếp thoại song công. Tóm lại, giao tiếp song công có nghĩa là cả hai bên có thể gửi / nhận dữ liệu (hoặc thoại) đồng thời.



Giao thức GSM cũng cho phép truyền dữ liệu gói, chẳng hạn như GPRS và EDGE.

Modem GSM SIM800:

Modem GSM là phần cứng chấp nhận thẻ SIM hợp lệ (Mô-đun nhận dạng thuê bao), về cơ bản thì bất kỳ SIM nào cũng hoạt động, hỗ trợ giao thức GSM và có đăng ký mạng.

Nó giống như một chiếc điện thoại di động không có Màn hình và bàn phím. Nó có bốn chân I / O tùy thuộc vào kiểu máy bạn chọn.

Hai chân cho TX và RX (truyền và nhận), hai chân khác dành cho VCC và GND, đây là một chân chung.

Nó cũng bao gồm cổng RS232 để giao tiếp nối tiếp giữa modem và máy tính, tuy nhiên chúng tôi sẽ không sử dụng trong dự án này.

Nó có giắc cắm nguồn DC tiêu chuẩn, có thể được cấp nguồn từ các nguồn điện bên ngoài như bộ điều hợp điện áp.

Nó có điện áp làm việc khác nhau, từ 5 đến 12V trên giắc cắm DC, tùy thuộc vào kiểu máy. Nó có 3 chỉ báo LED, cho nguồn, trạng thái và mạng.

Đèn LED nguồn cho biết sự hiện diện của nguồn điện, đèn LED trạng thái cho biết modem GSM có đang hoạt động hay không, đèn LED Mạng cho biết việc thiết lập mạng di động.

Ban đầu đèn LED mạng nhấp nháy mỗi giây một lần trong khi tìm kiếm mạng, sau khi thiết lập mạng di động, đèn LED nhấp nháy 3 giây một lần.

Bạn cần nhấn nút nguồn trong 2 đến 3 giây để kích hoạt modem GSM, sau khi hoàn tất, nó sẽ kết nối với mạng di động.

Để xác minh rằng modem GSM của bạn hoạt động, chỉ cần gọi đến số mà bạn đã lắp thẻ SIM. Bạn sẽ nhận được nhạc chuông trở lại. Nếu đúng, thì mô-đun của bạn đang hoạt động tốt.

Chúng tôi sẽ sử dụng modem SIM800 GSM hỗ trợ bốn băng tần 850/900/1800/1900 MHz. nếu bạn sở hữu modem SIM900, không cần phải lo lắng, chương trình và mạch tương thích trong dự án này.

Bây giờ, bạn đã có được một số ý tưởng về modem GSM, bây giờ chúng ta hãy tìm hiểu cách giao diện nó với arduino.

Sơ đồ mạch:

Như bạn có thể suy ra sơ đồ, kết nối mạch rất dễ dàng. Bạn chỉ cần 3 chân tiêu đề đực đến cái. Cáp USB là bắt buộc trong dự án này, vì chúng ta sẽ giao tiếp qua màn hình nối tiếp.

Luôn cấp nguồn cho modem GSM bằng bộ chuyển đổi bên ngoài. Nguồn từ arduino không đủ cho modem GSM, nó thậm chí có thể làm quá tải bộ điều chỉnh điện áp của arduino.

Đó là tất cả về phần cứng. Bây giờ, hãy chuyển sang viết mã.

Chương trình:

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

Đừng quên dấu chấm (.) Ở mỗi cuối tin nhắn , nếu không, nó sẽ không gửi tin nhắn đến số được chỉ định trong chương trình. Thay x bằng 10 số điện thoại của bạn trong chương trình. Đảm bảo rằng bạn có gói SMS đang hoạt động trên thẻ SIM của mình.

Nếu bạn không đến từ Ấn Độ, vui lòng thay đổi mã quốc gia trong chương trình.

Ví dụ:

Đối với Vương quốc Anh: +44
Đối với Hoa Kỳ: +1
Đối với Canada: +1
Đối với Nga: +7

Bạn cũng có thể tự động hóa thông báo được gửi bởi modem GSM bằng cách mã hóa Arduino một cách thích hợp. Bạn có thể nhận các cảnh báo tin nhắn tự động trên điện thoại như: cảnh báo chống trộm, cảnh báo cháy, cảnh báo thời tiết trong khu vực địa phương của bạn, v.v.

Bạn thậm chí có thể kết nối internet bằng GPRS trong modem GSM, nhưng nó là chủ đề của một bài báo khác.

Trong một trong những bài sắp tới, chúng ta sẽ học Cách nhận SMS bằng Modem GSM và Arduino

Nếu bạn có thêm câu hỏi liên quan đến cách gửi SMS bằng GSM Modem, vui lòng hỏi trong phần bình luận.

Cách nhận SMS bằng Modem GSM

Trong phần thảo luận trên, chúng ta đã học cách gửi tin nhắn văn bản bằng modem GSM và cũng thảo luận những điều cơ bản về modem GSM.

Trong phần này, chúng ta sẽ thảo luận về cách nhận SMS qua màn hình nối tiếp của arduino IDE. Chúng tôi sẽ không chỉ nhận SMS mà còn gửi tin nhắn văn bản bằng cách nhấn các phím khác nhau. Trong tích tắc, nhấn “s” sẽ gửi tin nhắn văn bản nhập trước, nhấn “r” sẽ nhận được SMS thời gian thực.

Đây là nguyên mẫu của tác giả:

Làm thế nào nó hoạt động

Mạch nhận SMS bằng GSM moden rất đơn giản, bạn chỉ cần 3 chân cắm đầu đực ra cái. TX của modem GSM được kết nối với chân số 9 của arduino và RX của modem GSM được kết nối với chân số 8 của arduino và kết nối nối đất với mặt đất cũng được cung cấp giữa GSM và arduino.

Luôn sử dụng nguồn điện bên ngoài cho modem GSM, không kết nối 5Vcc từ arduino với modem GSM, vì có khả năng quá tải bộ điều chỉnh điện áp của arduino.

Đừng quên triển khai công cụ cắt cước SMS hoặc thứ gì đó tương tự trên đăng ký SMS của bạn để giảm chi phí SMS của bạn.

Nếu không, bạn sẽ cạn kiệt số dư tài khoản sau khi gửi nhiều SMS, vì sẽ không có bất kỳ xác nhận nào từ nhà cung cấp dịch vụ di động của bạn sau mỗi SMS được gửi, vì thẻ SIM nằm trong modem GSM.

Xác nhận duy nhất bạn nhận được là SMS cảnh báo, liên quan đến tài khoản trống của bạn, vì vậy hãy thận trọng với các khoản chi của bạn. Bây giờ chúng ta hãy chuyển sang phần viết mã của dự án này.

Chương trình:

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

Nhập số điện thoại

Nhập số điện thoại người nhận vào “xxxxxxxxxxx” trong chương trình với mã quốc gia của bạn ở đầu.

Nhập văn bản bạn muốn gửi trong chương trình trong dấu ngoặc kép: gsm.println ('Xin chào, tôi là modem GSM !!!') // Văn bản SMS bạn muốn gửi

Biên dịch chương trình và tải lên arduino.

Gắn thẻ SIM và cấp nguồn cho modem GSM với nguồn điện bên ngoài và nhấn nút nguồn trong 3 giây (tùy thuộc vào kiểu máy), đợi 10 đến 20 giây để thiết lập mạng di động, đèn LED mạng sẽ nhấp nháy một lần sau mỗi 3 giây. Nếu mọi thứ được nêu ở trên đã hoàn thành, chúng tôi đã sẵn sàng để thực hiện bước tiếp theo.

Bây giờ hãy mở màn hình nối tiếp và nhấn “r”, modem GSM đã sẵn sàng nhận SMS. Bây giờ, hãy gửi một tin nhắn văn bản từ bất kỳ điện thoại di động nào đến số của SIM được lắp trên modem GSM.
Tin nhắn văn bản sẽ bật lên trên màn hình nối tiếp, tương tự như được minh họa bên dưới:

“Hello world” là thông báo được gửi đến modem GSM và số mà tin nhắn văn bản được gửi cũng được hiển thị.

Bây giờ, hãy gửi SMS đến số được nhập trước trong chương trình với tin nhắn được nhập trước. Nhấn “s” và bạn sẽ thấy một cái gì đó tương tự được minh họa bên dưới: Tin nhắn SMS được gửi là “Xin chào, tôi là modem GSM”.

Bây giờ, bạn đã biết cách gửi và cách nhận SMS bằng modem GSM.




Trước: Mạch điều khiển động cơ Bluetooth Tiếp theo: Cách thiết kế mạch lò sưởi cảm ứng