GSMモデムを使用してSMSを送受信する方法

問題を排除するために楽器を試してください





この記事では、Arduinoによって制御されるGSMモデムを使用してSMSを送受信する方法を学習します。 GSMモデムとは何か、Arduinoとのインターフェース方法、セットアップでSMSを送信する方法を見てみましょう。

また、人間がテキストメッセージを送信する以外に、GSMモデムで実現できるすべてのアプリケーションについても説明します。



GSMモデムとは何ですか?

GSMはGlobalSystem for Mobile Communicationsの略で、2G通信のプロトコルを説明したETSI(European Telecommunications Standard Institute)によって開発された標準です。

これは、全二重音声通信用に最適化されたモバイル通信用の最初のデジタルプロトコルです。一言で言えば、全二重通信とは、両方の当事者がデータ(または音声)を同時に送受信できることを意味します。



GSMプロトコルでは、GPRSやEDGEなどのパケットデータの転送も可能です。

SIM800 GSMモデム:

GSMモデムは、有効なSIMカード(サブスクライバーIDモジュール)を受け入れるハードウェアです。基本的に、GSMプロトコルをサポートし、ネットワークサブスクリプションを使用するすべてのSIMが機能します。

画面とキーパッドのない携帯電話のようなものです。選択したモデルに応じて、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をサポートするSIM800GSMモデムを使用します。 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でインターネットに接続することもできますが、それは別の記事の主題です。

今後の記事の1つで、 GSMモデムとArduinoを使用してSMSを受信する方法

GSMモデムを使用してSMSを送信する方法についてさらに質問がある場合は、コメントセクションでお気軽にお問い合わせください。

GSMモデムを使用してSMSを受信する方法

上記の説明では、GSMモデムを使用してテキストメッセージを送信する方法を学び、GSMモデムの基本についても説明しました。

このセクションでは、arduinoIDEのシリアルモニターを介してSMSを受信する方法について説明します。 SMSを受信するだけでなく、さまざまなキーを押してテキストメッセージを送信します。一瞬、「s」を押すと事前入力のテキストメッセージが送信され、「r」を押すとリアルタイムのSMSが受信されます。

著者のプロトタイプは次のとおりです。

使い方

GSMモデムを使用してSMSを受信するための回路は非常に単純で、必要なのは3つのオスからメスのヘッダーピンだけです。 GSMモデムのTXはarduinoのピン#9に接続され、GSMモデムのRXはarduinoのピン#8に接続され、GSMとarduinoの間のアース接続も行われます。

arduinoの電圧レギュレータが過負荷になる可能性が高いため、GSMモデムには常に外部電源を使用してください。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秒に1回点滅します。上記のすべてが完了したら、次のステップに進む準備ができています。

シリアルモニターを開き、「r」を押すと、GSMモデムがSMSを受信する準備が整います。次に、任意の携帯電話からGSMモデムに挿入されているSIMの番号にテキストメッセージを送信します。
以下に示すようなテキストメッセージがシリアルモニターにポップアップ表示されます。

「Helloworld」はGSMモデムに送信されるメッセージであり、テキストメッセージの送信元の番号も表示されます。

それでは、事前に入力されたメッセージを使用して、プログラムに事前に入力された番号にSMSを送信しましょう。 「s」を押すと、以下に示すようなものが表示されます。送信されたSMSは「HelloI amGSMmodem」です。

これで、GSMモデムを使用してSMSを送信する方法と受信する方法がわかりました。




前:Bluetoothモーターコントローラー回路 次へ:誘導加熱回路を設計する方法