V tomto článku se naučíme, jak odesílat a přijímat SMS pomocí GSM modemu, který je řízen Arduinem. Uvidíme, co je to GSM modem, jak jej propojit s Arduinem, jak posílat SMS s nastavením.
Budeme také zkoumat, jaké jsou všechny aplikace, kterých můžeme dosáhnout pomocí GSM modemu, kromě odesílání textových zpráv člověkem.
Co je GSM modem?
GSM je zkratka pro Global System for Mobile communications, což je standard vyvinutý ETSI (European Telecommunications Standard Institute), který popsal protokoly pro 2G komunikaci.
Jedná se o první digitální protokol pro mobilní komunikaci, který je optimalizován pro plně duplexní hlasovou komunikaci. Stručně řečeno, plně duplexní komunikace znamená, že obě strany mohou odesílat / přijímat data (nebo hlas) současně.
Protokol GSM také umožňuje přenos datových paketů, jako jsou GPRS a EDGE.
GSM modem SIM800:
GSM modem je hardware, který přijímá platnou SIM kartu (Subscriber Identity Module), v podstatě bude fungovat jakákoli SIM karta, která podporuje GSM protokol a se síťovým předplatným.
Je to jako mobilní telefon bez obrazovky a klávesnice. Má čtyři I / O piny v závislosti na modelu, který si vyberete.
Dva pro TX a RX (vysílání a příjem), další dva piny pro VCC a GND, což je společné u všech.
Skládá se také z portu RS232 pro sériovou komunikaci mezi modemem a počítačem, avšak v tomto projektu jej nebudeme používat.
Má standardní stejnosměrný napájecí konektor, který lze napájet z externích zdrojů energie, jako jsou napěťové adaptéry.
Má pracovní napětí v rozmezí od 5 do 12V na DC konektoru, v závislosti na modelu. Má 3 LED indikátory pro napájení, stav a síť.
Kontrolka napájení indikuje přítomnost napájení, stavová kontrolka indikuje, zda je GSM modem v provozu nebo ne, kontrolka Síť indikuje vytvoření mobilní sítě.
Zpočátku síťová LED bliká každou sekundu při hledání sítě, jakmile vytvoří mobilní síť, bliká každé 3 sekundy.
Pro aktivaci GSM modemu musíte stisknout tlačítko napájení na 2 až 3 sekundy, jakmile to uděláte, západka se připojí k mobilní síti.
Chcete-li ověřit, že váš GSM modem funguje, stačí zavolat na číslo, na které jste vložili SIM kartu. Měli byste dostat zpětný tón vyzvánění. Pokud ano, pak váš modul funguje dobře.
Budeme používat GSM modem SIM800, který podporuje čtyřpásmové 850/900/1800/1900 MHz. pokud vlastníte modem SIM900, nemusíte se bát, program a obvod jsou v tomto projektu kompatibilní.
Nyní byste získali nějakou představu o GSM modemu, teď se naučíme, jak jej propojit s arduino.
Kruhový diagram:
Jak můžete odvodit z diagramu, připojení obvodu je mrtvé snadné. Potřebujete pouze 3 samčí kolíky. V tomto projektu je kabel USB povinný, protože budeme komunikovat přes sériový monitor.
Napájejte GSM modem vždy externím adaptérem. Napájení z arduina je pro GSM modem nedostatečné, mohlo by dokonce přetížit regulátor napětí arduina.
To je všechno o hardwarové části. Nyní přejdeme ke kódování.
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---------------//
Nezapomeňte na tečku (.) Na každém konci zprávy , jinak nebude zpráva odeslána na předepsané číslo v programu. Nahraďte x svým 10 digitálním telefonním číslem v programu. Ujistěte se, že máte na své SIM kartě funkční plán SMS.
Pokud nejste z Indie, změňte prosím kód země v programu.
Například:
Pro Velkou Británii: +44
Pro USA: +1
Pro Kanadu: +1
Pro Rusko: +7
Zprávu odeslanou GSM modemem můžete také automatizovat příslušným kódováním Arduina. Do telefonu můžete dostávat automatická upozornění na zprávy, například upozornění na krádež, upozornění na požární poplach, upozornění na počasí ve vaší oblasti atd.
Můžete se dokonce připojit k internetu pomocí GPRS v GSM modemu, ale to je předmětem jiného článku.
V jednom z následujících článků se dozvíme Jak přijímat SMS pomocí GSM modemu a Arduina
Pokud máte další dotazy týkající se odesílání SMS pomocí GSM modemu, zeptejte se v sekci komentáře.
Jak přijímat SMS pomocí GSM modemu
Ve výše uvedené diskusi jsme se naučili posílat textové zprávy pomocí GSM modemu a také jsme probrali základní informace o GSM modemu.
V této části budeme diskutovat o tom, jak přijímat SMS přes sériový monitor arduino IDE. Nejdeme pouze přijímat SMS, ale také posílat textové zprávy stisknutím různých kláves. Stisknutím tlačítka „s“ na okamžik odešlete přednastavenou textovou zprávu, stisknutím tlačítka „r“ obdržíte SMS v reálném čase.
Zde je autorův prototyp:
Jak to funguje
Okruh pro příjem SMS pomocí modenu GSM je velmi jednoduchý, potřebujete pouze 3 kolíky záhlaví mezi muži a ženami. TX modemu GSM je připojen k pinu č. 9 arduina a RX GSM modemu je připojen k pinu č. 8 arduina a je také dáno zemní spojení mezi GSM a arduino.
Vždy používejte externí napájecí zdroj pro GSM modem, nepřipojujte 5Vcc z arduino k GSM modemu, protože existuje velká šance na přetížení regulátoru napětí arduino.
Nezapomeňte na předplatné SMS implementovat nástroj na snižování sazeb SMS nebo něco podobného, abyste snížili své výdaje za SMS.
V opačném případě po odeslání několika SMS skončíte s prázdným zůstatkem na účtu, protože po každé odeslané SMS nebude od vašeho mobilního operátora potvrzeno, protože SIM karta je v GSM modemu.
Jediným potvrzením, které dostanete, jsou varovné SMS týkající se vašeho prázdného účtu, takže buďte opatrní ohledně svých výdajů. Nyní přejdeme ke kódování části tohoto projektu.
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-------------//
Zadání telefonních čísel
Na začátku zadejte telefonní číslo příjemce do „xxxxxxxxxxx“ s kódem vaší země.
Zadejte text, který chcete odeslat do programu, do uvozovek: gsm.println ('Hello I am GSM modem !!!') // SMS text, který chcete odeslat
Zkompilujte program a nahrajte jej na arduino.
Vložte SIM kartu a napájejte GSM modem externím zdrojem napájení a stiskněte tlačítko napájení po dobu 3 sekund (v závislosti na modelu), počkejte 10 až 20 sekund na vytvoření mobilní sítě, kontrolka sítě by měla blikat jednou za 3 sekundy. Pokud je vše uvedeno výše, je hotovo, jsme připraveni jít na další krok.
Nyní otevřete sériový monitor a stiskněte „r“, GSM modem je připraven přijímat SMS. Nyní odešlete textovou zprávu z libovolného mobilního telefonu na číslo SIM karty vložené v GSM modemu.
Textová zpráva by se měla objevit na sériovém monitoru, něco podobného, jak je znázorněno níže:
„Hello world“ je zpráva odeslaná do GSM modemu a číslo, ze kterého je odeslána textová zpráva, je také zobrazeno.
Nyní nechte poslat SMS na předem zadané číslo v programu s předem zadanou zprávou. Stiskněte „s“ a uvidíte něco podobného, jak je znázorněno níže: Odeslaná SMS je „Hello I am GSM modem“.
Nyní víte, jak odesílat a přijímat SMS pomocí GSM modemu.
Předchozí: Obvod řadiče motoru Bluetooth Další: Jak navrhnout obvod indukčního ohřívače