Senden und Empfangen von SMS mit dem GSM-Modem

Senden und Empfangen von SMS mit dem GSM-Modem

In diesem Artikel erfahren Sie, wie Sie SMS mit einem von Arduino gesteuerten GSM-Modem senden und empfangen. Lassen Sie uns sehen, was ein GSM-Modem ist, wie es mit Arduino verbunden wird und wie SMS mit dem Setup gesendet werden.

Wir werden auch untersuchen, welche Anwendungen wir mit einem GSM-Modem außer dem Senden von Textnachrichten durch einen Menschen erreichen können.



Was ist ein GSM-Modem?

GSM steht für Global System for Mobile Communications. Es ist ein Standard, der von ETSI (European Telecommunications Standard Institute) entwickelt wurde, das die Protokolle für die 2G-Kommunikation beschrieb.



Es ist das erste digitale Protokoll für die mobile Kommunikation, das für die Vollduplex-Sprachkommunikation optimiert ist. Kurz gesagt bedeutet Vollduplex-Kommunikation, dass beide Parteien gleichzeitig Daten (oder Sprache) senden / empfangen können.

Das GSM-Protokoll ermöglicht auch die Übertragung von Paketdaten wie GPRS und EDGE.



SIM800 GSM-Modem:

Das GSM-Modem ist eine Hardware, die eine gültige SIM-Karte (Subscriber Identity Module) akzeptiert. Grundsätzlich funktioniert jede SIM-Karte, die das GSM-Protokoll unterstützt und über ein Netzwerkabonnement verfügt.

Es ist wie ein Handy ohne Bildschirm und Tastatur. Es verfügt über vier E / A-Pins, je nach gewähltem Modell.

Zwei für TX und RX (Senden und Empfangen), zwei weitere Pins für VCC und GND, was allen gemeinsam ist.



Es besteht auch aus einem RS232-Anschluss für die serielle Kommunikation zwischen Modem und Computer, den wir in diesem Projekt jedoch nicht verwenden werden.

Es verfügt über eine Standard-Gleichstrombuchse, die über externe Stromquellen wie Spannungsadapter mit Strom versorgt werden kann.

Die Betriebsspannung an der DC-Buchse liegt je nach Modell zwischen 5 und 12 V. Es verfügt über 3 LED-Anzeigen für Stromversorgung, Status und Netzwerk.

Die Betriebs-LED zeigt das Vorhandensein von Strom an, die Status-LED zeigt an, ob das GSM-Modem in Betrieb ist oder nicht, die Netzwerk-LED zeigt den Aufbau eines Mobilfunknetzes an.

Anfänglich blinkt die Netzwerk-LED alle eine Sekunde, während nach dem Netzwerk gesucht wird. Sobald das Mobilfunknetz eingerichtet ist, blinkt sie alle 3 Sekunden.

Sie müssen den Netzschalter 2 bis 3 Sekunden lang drücken, um das GSM-Modem zu aktivieren. Sobald Sie fertig sind, wird es mit dem Mobilfunknetz verbunden.

Um zu überprüfen, ob Ihr GSM-Modem funktioniert, rufen Sie einfach die Nummer an, unter der Sie die SIM-Karte eingelegt haben. Sie sollten einen Rückrufton erhalten. Wenn dies der Fall ist, funktioniert Ihr Modul einwandfrei.

Wir werden ein SIM800 GSM-Modem verwenden, das Quadband 850/900/1800/1900 MHz unterstützt. Wenn Sie ein SIM900-Modem besitzen, brauchen Sie sich keine Sorgen zu machen, das Programm und die Schaltung sind in diesem Projekt kompatibel.

Jetzt hätten Sie eine Vorstellung vom GSM-Modem. Jetzt lernen wir, wie man es mit Arduino verbindet.

Schaltplan:

Wie Sie dem Diagramm entnehmen können, ist die Schaltungsverbindung kinderleicht. Sie benötigen nur 3 Stecker für Stecker. In diesem Projekt ist ein USB-Kabel obligatorisch, da wir über einen seriellen Monitor kommunizieren werden.

Schalten Sie das GSM-Modem immer mit einem externen Adapter ein. Die Leistung von Arduino reicht für das GSM-Modem nicht aus, es könnte sogar den Spannungsregler des Arduino überlasten.

Das ist alles über Hardware-Teil. Kommen wir nun zur Codierung.

Programm:

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

Vergessen Sie nicht den Punkt (.) An jedem Ende der Nachricht Andernfalls wird die Nachricht nicht an die im Programm vorgeschriebene Nummer gesendet. Ersetzen Sie x durch Ihre 10 digitalen Telefonnummern im Programm. Stellen Sie sicher, dass Ihre SIM-Karte einen funktionierenden SMS-Tarif enthält.

Wenn Sie nicht aus Indien kommen, ändern Sie bitte die Landesvorwahl im Programm.

Zum Beispiel:

Für Großbritannien: +44
Für USA: +1
Für Kanada: +1
Für Russland: +7

Sie können die vom GSM-Modem gesendete Nachricht auch automatisieren, indem Sie Arduino entsprechend codieren. Sie können auf Ihrem Telefon automatische Nachrichtenbenachrichtigungen erhalten, z. B.: Diebstahlwarnung, Feueralarm, Wetterwarnung in Ihrer Nähe usw.

Sie können sogar mit GPRS im GSM-Modem eine Verbindung zum Internet herstellen, dies ist jedoch Gegenstand eines anderen Artikels.

In einem der nächsten Artikel werden wir lernen So empfangen Sie SMS mit GSM-Modem und Arduino

Wenn Sie weitere Fragen zum Senden von SMS mit dem GSM-Modem haben, können Sie diese gerne im Kommentarbereich stellen.

So empfangen Sie SMS mit einem GSM-Modem

In der obigen Diskussion haben wir gelernt, wie man eine Textnachricht mit einem GSM-Modem sendet, und auch die Grundlagen des GSM-Modems besprochen.

In diesem Abschnitt wird erläutert, wie Sie SMS über den seriellen Monitor der Arduino IDE empfangen. Wir werden nicht nur SMS empfangen, sondern auch Textnachrichten senden, indem wir verschiedene Tasten drücken. Durch Drücken von 's' wird für einen Moment eine vorab eingegebene Textnachricht gesendet, durch Drücken von 'r' werden Echtzeit-SMS empfangen.

Hier ist der Prototyp des Autors:

Wie es funktioniert

Die Schaltung zum Empfangen von SMS mit einem GSM-Moden ist sehr einfach. Sie benötigen lediglich 3 Stecker-Buchsen-Stecknadeln. Der TX des GSM-Modems ist mit Pin 9 des Arduino verbunden, und der RX des GSM-Modems ist mit Pin 8 des Arduino verbunden, und die Masse-Masse-Verbindung ist auch zwischen GSM und Arduino gegeben.

Verwenden Sie für das GSM-Modem immer eine externe Stromversorgung. Schließen Sie keine 5 Vcc vom Arduino zum GSM-Modem an, da die Wahrscheinlichkeit einer Überlastung des Spannungsreglers des Arduino groß ist.

Vergessen Sie nicht, SMS Rate Cutter oder ähnliches in Ihrem SMS-Abonnement zu implementieren, um Ihre SMS-Kosten zu senken.

Andernfalls wird der Kontostand nach dem Senden mehrerer SMS leer, da nach jeder gesendeten SMS keine Bestätigung von Ihrem Mobilfunkanbieter erfolgt, da sich die SIM-Karte im GSM-Modem befindet.

Die einzige Bestätigung, die Sie erhalten, ist eine Warn-SMS bezüglich Ihres leeren Kontos. Seien Sie also vorsichtig mit Ihren Ausgaben. Kommen wir nun zum Codierungsteil dieses Projekts.

Programm:

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

Eingabe der Telefonnummern

Geben Sie die Empfängertelefonnummer unter 'xxxxxxxxxxx' im Programm mit Ihrer Landesvorwahl am Anfang ein.

Geben Sie den Text, den Sie im Programm senden möchten, in das Anführungszeichen ein: gsm.println ('Hallo, ich bin ein GSM-Modem !!!') // Der SMS-Text, den Sie senden möchten

Kompilieren Sie das Programm und laden Sie es auf arduino hoch.

Legen Sie die SIM-Karte ein, versorgen Sie das GSM-Modem mit einer externen Stromversorgung und drücken Sie den Netzschalter 3 Sekunden lang (je nach Modell). Warten Sie 10 bis 20 Sekunden, um das Mobilfunknetz einzurichten. Die Netzwerk-LED sollte alle 3 Sekunden einmal blinken. Wenn alles oben Genannte erledigt ist, sind wir bereit für den nächsten Schritt.

Öffnen Sie nun den seriellen Monitor und drücken Sie 'r'. Das GSM-Modem ist bereit, SMS zu empfangen. Senden Sie nun von jedem Mobiltelefon aus eine SMS an die Nummer der SIM-Karte, die in das GSM-Modem eingelegt ist.
Die Textnachricht sollte auf dem seriellen Monitor angezeigt werden, ähnlich wie unten dargestellt:

Die 'Hallo Welt' ist die an das GSM-Modem gesendete Nachricht und die Nummer, von der die Textnachricht gesendet wird, wird ebenfalls angezeigt.

Senden Sie nun eine SMS mit der vorab eingegebenen Nachricht an die im Programm eingegebene Nummer. Drücken Sie 's' und Sie werden etwas Ähnliches sehen: Die gesendete SMS lautet 'Hallo, ich bin ein GSM-Modem'.

Jetzt wissen Sie, wie Sie SMS mit einem GSM-Modem senden und empfangen.




Zurück: Bluetooth Motor Controller Circuit Weiter: Entwerfen eines Induktionsheizkreises