GSM 모뎀을 사용하여 SMS를 보내고받는 방법

문제를 제거하기 위해 도구를 사용해보십시오





이 글에서는 아두 이노가 제어하는 ​​GSM 모뎀을 사용하여 SMS를주고받는 방법을 배웁니다. GSM 모뎀이 무엇인지, Arduino와 인터페이스하는 방법, 설정과 함께 SMS를 보내는 방법을 살펴 보겠습니다.

또한 사람이 문자 메시지를 보내는 것 외에 GSM 모뎀으로 수행 할 수있는 모든 응용 프로그램이 무엇인지 살펴볼 것입니다.



GSM 모뎀이란?

GSM은 Global System for Mobile Communications의 약자로 2G 통신 프로토콜을 기술 한 ETSI (European Telecommunications Standard Institute)에서 개발 한 표준입니다.

전이중 음성 통신에 최적화 된 최초의 이동 통신용 디지털 프로토콜입니다. 간단히 말해서 전이중 통신은 양 당사자가 동시에 데이터 (또는 음성)를 송수신 할 수 있음을 의미합니다.



GSM 프로토콜은 GPRS 및 EDGE와 같은 패킷 데이터의 전송도 허용합니다.

SIM800 GSM 모뎀 :

GSM 모뎀은 유효한 SIM 카드 (가입자 식별 모듈)를 받아들이는 하드웨어이며 기본적으로 모든 SIM이 작동하며 GSM 프로토콜을 지원하고 네트워크 가입이 있습니다.

화면과 키패드가없는 휴대폰과 같습니다. 선택한 모델에 따라 4 개의 I / O 핀이 있습니다.

TX 및 RX (송수신) 용 2 개, VCC 및 GND 용 핀 2 개 (모두 공통).

또한 모뎀과 컴퓨터 간의 직렬 통신을위한 RS232 포트로 구성되어 있지만이 프로젝트에서는 사용하지 않을 것입니다.

여기에는 전압 어댑터와 같은 외부 전원에서 전원을 공급받을 수있는 표준 DC 전원 잭이 있습니다.

모델에 따라 DC 잭의 작동 전압 범위는 5 ~ 12V입니다. 전원, 상태 및 네트워크에 대한 3 개의 LED 표시기가 있습니다.

전원 LED는 전원의 존재를 나타내고 상태 LED는 GSM 모뎀의 작동 여부를 나타내며 네트워크 LED는 모바일 네트워크 설정을 나타냅니다.

처음에는 네트워크 검색 중 네트워크 LED가 1 초마다 깜박이고, 모바일 네트워크가 설정되면 3 초마다 깜박입니다.

GSM 모뎀을 활성화하려면 전원 버튼을 2 ~ 3 초 동안 눌러야합니다. 일단 완료되면 모바일 네트워크에 고정됩니다.

GSM 모뎀이 작동하는지 확인하려면 SIM 카드를 삽입 한 번호로 전화하십시오. 벨소리가 들려야합니다. 그렇다면 모듈이 제대로 작동하는 것입니다.

쿼드 밴드 850 / 900 / 1800 / 1900MHz를 지원하는 SIM800 GSM 모뎀을 사용할 것입니다. 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 개의 디지털 전화 번호로 바꿉니다. SIM 카드에 작동하는 SMS 요금제가 있는지 확인하십시오.

인도 출신이 아닌 경우 프로그램에서 국가 코드를 변경하십시오.

예를 들면 :

영국 : +44
미국의 경우 : +1
캐나다 : +1
러시아 : +7

또한 Arduino를 적절하게 코딩하여 GSM 모뎀이 보내는 메시지를 자동화 할 수 있습니다. 도난 방지 경보, 화재 경보 경보, 해당 지역의 날씨 경보 등과 같은 자동 메시지 경보를 전화기로받을 수 있습니다.

GSM 모뎀에서 GPRS를 사용하여 인터넷에 연결할 수도 있지만 다른 기사의 주제입니다.

앞으로 다가올 기사 중 하나에서 우리는 GSM 모뎀 및 Arduino를 사용하여 SMS를받는 방법

GSM 모뎀을 사용하여 SMS를 보내는 방법에 대한 추가 질문이있는 경우 의견 섹션에서 언제든지 질문하십시오.

GSM 모뎀을 사용하여 SMS를받는 방법

위의 논의에서 우리는 GSM 모뎀을 사용하여 문자 메시지를 보내는 방법을 배웠고 GSM 모뎀의 기본 사항에 대해서도 논의했습니다.

이 섹션에서는 arduino IDE의 직렬 모니터를 통해 SMS를받는 방법에 대해 설명합니다. 우리는 SMS를받을뿐만 아니라 다른 키를 눌러 문자 메시지를 보낼 것입니다. 잠시 동안 's'를 누르면 사전 입력 문자 메시지가 전송되고 'r'을 누르면 실시간 SMS가 수신됩니다.

다음은 작성자의 프로토 타입입니다.

작동 원리

GSM 모드를 사용하여 SMS를 수신하는 회로는 매우 간단합니다. 3 개의 수-암 헤더 핀만 있으면됩니다. GSM 모뎀의 TX는 arduino의 9 번 핀에 연결되고 GSM 모뎀의 RX는 arduino의 8 번 핀에 연결되며 GSM과 arduino간에 접지 대 접지 연결도 제공됩니다.

항상 GSM 모뎀에 외부 전원 공급 장치를 사용하고 arduino의 전압 조정기에 과부하가 걸릴 수 있으므로 arduino에서 GSM 모뎀으로 5Vcc를 연결하지 마십시오.

SMS 비용 절감을 위해 SMS 요금제 또는 이와 유사한 것을 SMS 구독에 구현하는 것을 잊지 마십시오.

그렇지 않으면 SIM 카드가 GSM 모뎀에 있기 때문에 SMS를 보낼 때마다 이동 통신사로부터 아무런 승인도받지 않기 때문에 여러 개의 SMS를 보낸 후 계정 잔액이 비어있게됩니다.

당신이받는 유일한 승인은 빈 계정에 관한 경고 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 ( 'Hello I am GSM modem !!!') // 보낼 SMS 텍스트

프로그램을 컴파일하고 arduino에 업로드합니다.

SIM 카드를 삽입하고 외부 전원 공급 장치로 GSM 모뎀에 전원을 공급하고 전원 버튼을 3 초 동안 누르고 (모델에 따라 다름) 10 ~ 20 초 동안 기다렸다가 모바일 네트워크를 설정하면 네트워크 LED가 3 초마다 한 번씩 깜박입니다. 위에 언급 된 모든 것이 완료되면 다음 단계로 이동할 준비가 된 것입니다.

이제 직렬 모니터를 열고 'r'을 누르면 GSM 모뎀이 SMS를 수신 할 준비가됩니다. 이제 휴대폰에서 GSM 모뎀에 삽입 된 SIM 번호로 문자 메시지를 보냅니다.
아래 그림과 비슷한 텍스트 메시지가 직렬 모니터에 나타납니다.

'Hello world'는 GSM 모뎀으로 전송 된 메시지이며 문자 메시지가 전송 된 번호도 표시됩니다.

이제 미리 입력 된 메시지와 함께 프로그램에 미리 입력 된 번호로 SMS를 보냅니다. 's'를 누르면 아래 그림과 유사한 내용이 표시됩니다. 전송 된 SMS는 'Hello I am GSM modem'입니다.

이제 GSM 모뎀을 사용하여 SMS를 보내고받는 방법을 알았습니다.




이전 : 블루투스 모터 컨트롤러 회로 Next : 유도 히터 회로 설계 방법