GSM-GPRS modulok és shield-ek

A GPS, GPRS és GSM modulok nagy része a SIMxxx IC sorozatot integrálja. A GSM második generciós fejlesztés, nyilván azóta vannak fejlettebb átviteli megoldások is. Ezek között segít eligazodni az alábbi táblázat:

GenerációMegnevezéseMax. átviteli sebessége
2GGSM9,6 KBit/s
2.5GGPRS54 KBit/s
2.75GEDGE220 KBit/s
3GUMTS384 KBit/s
3.5GHSPA7,2 MBit/s
HSPA+42 MBit/s
3.9GLTE (bis CAT 4)150 MBit/s
4GTE Advanced (LTE-A ab CAT 6)300 MBit/s
4.5GLTE Advanced Pro (LTE-AP ab CAT 11)600 MBit/s
WCDMA/ HSPA / HSPA+ Modules
SIM5300EDual-Band HSPA/WCDMA Dual-Band GSM/GPRS/EDGETCP/UDP/PPP
SIM5300EADual-Band HSPA/WCDMA Dual-Band GSM/GPRS/EDGETCP/UDP/PPP
SIM5320Dual-Band UMTS
SIM5360Dual-Band HSPA+
GSM / GPRS + GNSS Modules
SIM808Quad-Band GSM/GPRS+GPS+BT 3.0integrated GPRS and GPS in a SMT package
SIM868Quad-Band GSM/GPRS+GNSSdesign with LCC and LGA pads
SIM868EQuad-Band GSM/GPRS+GNSSGSM / GPRS + GNSS + BT4.0 and BT3.0 (BLE)
GSM / GPRS Modules
SIM800Quad-band GSM/GPRSVoice, SMS and data
SIM800C-DS
SIM800C
SIM800FQuad-band GSM/GPRS
SIM800HQuad-Band GSM/GPRSFeaturing Bluetooth, FM and Embedded AT
SIM900Quad-Band GSM/GPRSGSM: voice, SMS, Data, and Fax
LTE Modules
SIM7100ETDD-LTE/FDD-LTE/WCDMA/GSM/GNSSmulti-band TDD-LTE/FDD-LTE/WCDMA/GSM/GNSS
SIM7500ALTE-FDD/HSPATCP/UDP/FTP/FTPS/HTTP/HTTPS/SMTP/POP3 and MMS
SIM7500ELTE-FDD/GSMTCP/UDP/FTP/FTPS/HTTP/HTTPS/SMTP/POP3 and MMS
SIM7600CLTE-TDD/LTE-FDD/HSPA+/TD-SCDMATCP/UDP/FTP/FTPS/HTTP/HTTPS/SMTP/POP3 and MMS
SIM7600ELTE-TDD/LTE-FDD/HSPA+GSM/GPRS/EDGETCP/UDP/FTP/FTPS/HTTP/HTTPS/DNS
CAT-M1/NB-IoT Modules
SIM7000ETri-Band LTE-FDD Dual-Band GPRS/EDGE
SIM7020Multi-Band NB-IoT
GPS/GLONASS Modules
SIM28MLGPS(standalone)
SIM33ELAMTK GNSS(Antenna)
SIM68EGPS & GLONASS
SIM68MGPS & GLONASS

A SIM modulok bővebb leírása itt található: https://simcom.ee/

SIM900 modul

A SIM modulok – sok más, kommunikációs modulhoz hasonlóan – AT parancsokkal kommunikálnak. Nyilván, az adott IC funkcionalitásától függően egyes parancs-sorok az adott sorozaton nem érhetők el.

Az AT parancsok teljes jegyzéke (shield V3, V1.11) itt található.

A serial monitorban a küldés funkció esetén a "both NL & CR" opciót kell a sorvég-zárásnál (jobboldalt lent) kijelölni.

Az idézőjelek például String alkalmazása esetén "összekeverednek". Az utasítások idézőjeleit ez esetben \" kell helyettesíteni. Például ha ez az utasítás: AT+FTPPUTNAME="first.txt", akkor a Stringes formája ez lesz: gsm_command("AT+FTPPUTNAME=\"first.txt\"");

Néhány, gyakrabban használt AT parancs:

ParancsVálaszLeírás
Általános parancsok
ATOKA SIM900 tesztelése
ATISIM900 R11.0
OK
Modul neve és verziószáma
AT+GMMSIMCOM_SIM900
OK
Hardver lekérdezése
AT+GSNIMEI számIMEI szám lekérdezése
AT+COPS?+COPS: 0Teszteli, hogy van e hálózati kapcsolat. 0: Mód: automatic, 1: Manual, 3: set only
AT+COPS=?Az elérhető hálózati szolgáltatók jegyzéke (a lekérdezés viszonylag sokáig tart)
AT+CCLKOKvalós idő (RTC) beállítása
AT+CBC+CBC: 0,95,4139A LiPo akkumulátor töltöttsége %-ban és aktuális feszültség mV-ben
a példa szerint 95% és 4,139 mV
AT+CSQ+CSQ: xx,xJelminőség 0..31, 31 a legjobb
AT+CCIDa kártya
azonosítója
SIM kártya rendelkezésre áll
AT+CREG?+CREG: 1,1
OK
+CMTI: "SM",1
+CMTI: "SM",2
Ellenőrzi, hogy az SIM-kártya regisztrált-e a hálózatban.
+CREG: <par1>, <par2>
par1: 0: nem engedélyezett, 1: engedélyezett hálózati regisztráció
par2: 0: nem reg. kártya, 1: regsiztráció ok, 2: nem reg., de keres másik operátort, 3: reg. tiltva, 4: ismeretlen státusz, 5: regisztrált, roaming
ATZOKDefault konfiguráció visszaállítása (reset)
AT+CBAND?+CBAND:
PGSM_MODE,ALL_BAND
Aktuális mobil-mód lekérdezése
ATE0ECHO tiltása
ATE1ECHO engedélyezése
AT+CPIN?+CPIN: SIM PINPIN lekérdezése:
READY: a SIM900 kész a használatra
SIM PIN: a SIM900 a PIN-re vár
SIM PUK: a SIM900 a PUK-ra vár
..
AT+CPIN=1234PIN megadása
AT+CEER+CEER: No CauseHiba lekérdezése
SMS parancsok
AT+CMGF=1OKA SIM900 átkapcsolása SMS módba
AT+CMGS="555xxx"\rOKAZ SMS címzettje és küldés (lásd a példaprogramot lent)
AT+CMGR=1-Az első bejövő SMS beolvasása az inbox-ba
AT+CMGR=n-Az n. bejövő SMS beolvasása az inbox-ba
AT+CMGR=ALL-Minden bejövő SMS beolvasása az inbox-ba
AT+CMGD=1OKAz első bejövő SMS törlése
AT+CCLK?+CCLK:
"time"
A modul-RTC (valósidejű óra) lekérdezése. Csak akkor működik, ha a gombelem is a helyén van.
Például: AT+CCLK ="03/09/20,23:20:50+08"
AT+CSMINS?+CSMINS: 0,1SIM Státusz
1.parameter: A SIM használható (a példán nem)
2.paraméter: A SIM a elyén van (a példán igen)
Hanghívás parancsok
ATDP+555xxxOKEgy szám hívása - a szám a nemzetközi hívásformátum szerinti
ATHOKA hívás felfüggesztése
GPRS parancsok
AT+CGATT=1OKGPRS funkció aktiválása
AT+CGATT=0OKGPRS funkció lekapcsolása
CSTT <apn> <user> <pw>Csatlakozás az AP (access point)-hoz:
<apn>: access point name
<user>: username
<pw>: jelszó
AT+CREG=1OKHálózat használatának az engedélyezése
AT+CIPSHUTSHUT OKGPRS PDP tiltása
AT+CIICRWireless kapcsolat aktiválása
TCP/UDP parancsok
AT+CIPMUX=<0,1>0: single IP kapcsolat
1: multi IP kapcsolat
AT+CIPSTART=<n>,<mode>,<addr/domain>,<port><n>: a kapcsolat azonosítója 0..7
<mode>: TCP vagy UDP
<addr/domain>: cím vagy domain
<port>: port
AT+CIPSEND=<length>Adatküldés a TCP-n vagy UDP-n keresztül.
A hossz megadása nélkül a telegrammokat a CTRL-Z-vel kell zárni.
AT+CIPQSEND=<mode>Adatátviteli mód:
0: normál: TCP nyugtázás után jön a SEND OK
1: gyors mód: az adatküldés után jön a SEND OK
AT+CIPCLOSEA TCP/UDP zárása
single mód: AT+CLPORT=<mode>,<port>
multimód: AT+CLPORT=<id>,<mode>,<port>
A lokális port beállítása:
<mode>: TCP / UDP
<port>: portszám
<id>: kapcsolat azonosítója
AT+CIFSRlokál IP lekérdezése
AT+CIPHEAD=<mode>érkező adatoknál egy extra header a küldő IP címmel
0: kikapcsolva
1: header: "+IPD, data length:"
AT+CIPSPRT=<prompt>Küldésnél a ECHO beállítása:
0: "send ok" megjelenik, ">" prompt nem
1: "send ok" megjelenik, ">" prompt adatok szintén
2: semmi ECHO
FTP parancsok
AT+FTPPORT?Az FTP port lekérdezése
AT+FTPPORT=<value>Az FTP Port beállítása, default: 21
AT+FTPMODE?FTP mód lekérdezése,
0: aktív, 1: passzív
AT+FTPMODE=<value>FTP mód beállítása, lásd fent
AT+FTPTYPE?Az FTP átviteli mód beállítása lekérdezése,
"A": ASCII, "I": bináris
AT+FTPTYPE=<value>Az FTP átviteli mód beállítása, lásd fent
AT+FTPPUTOPT?FTP fájlfelülírás módja:
"APPE" - hozzáfűzés (appending)
"STOU" - egyedi fájl tárolása
"STOR" - fájl tárolása
AT+FTPPUTOPT=<value>FTP fájlfelülírás módjának beállítása
AT+FTPUN?beállított FTP "user name" lekérdezése
AT+FTPUN=<value>FTP "user name" beállítása, max. 49 char
AT+FTPPW?beállított FTP jelszó lekérdezése
AT+FTPPW=<value>FTP jelszó beállítása, max. 49 char
AT+FTPGETNAME?
AT+FTPPUTNAME?
beállított letöltendő fájl neve
beállított feltöltendő fájl neve
AT+FTPGETNAME=<value>
AT+FTPPUTNAME=<value>
letöltendő fájl neve, max. 99 ASCII char
feltöltendő fájl neve, max. 99 ASCII char
AT+FTPGETPATH?
AT+FTPPUTPATH?
beállított elérési útvonal a letöltendő fájlhoz
beállított elérési útvonal a feltöltendő fájlhoz
AT+FTPGETPATH=<value>
AT+FTPPUTPATH=<value>
elérési útvonal a fájlhoz, max. 256 char
AT+FTPGET=<mode>[<hossz>]letöltés indítása:
mode=1: FTP művelet indítása
mode=2: az FTP adatok olvasása, max. 1460 char olvasása
AT+FTPPUT=<mode>[<hossz>]feltöltés indítása:
mode=1: FTP művelet indítása
mode=2: az FTP adatok írása, max. 1460 char olvasása
AT+FTPDELETEAz AT+FTPGETNAME és AT+FTPGETPATH utasítások által definiált távoli fájl törlése
AT+FTPSIZEAz AT+FTPGETNAME és AT+FTPGETPATH utasítások által definiált távoli fájl méretének a lekérdezése
AT+FTPSTATEAz FTP állapotának a lekérdezése, 0: szabad, 1: foglalt
AT+FTPMKDaz AT+FTPGETPATH által meghatározott könyvtár távoli létrehozása
AT+FTPRMDaz AT+FTPGETPATH által meghatározott könyvtár távoli törlése
AT+FTPLISTaz AT+FTPGETPATH által meghatározott könyvtár fájl-jegyzéke
AT+FTPQUITAz FTP átvitel lezárása

A modul előzetes tesztelése

AT                               // Modul is ok?
>> ok
 
AT+CPIN?                         // PIN ok?
>> +CPIN: READY -> rendben
 
ha a pin nem ok, pin megadása: AT+CPIN=1234
 
AT+CREG?                        // a kártya csatlakozott a hálózatra?
 
>> válasz: +CREG: 1,1 -> rendben

FTP: adatküldés a szerverre

AT+SAPBR=1,1                     // Enable the GPRS
AT+SAPBR=2,1                     // Query if the connection is setup properly, if we get back a IP address then we can proceed 
AT+FTPCID=1                      // We were allocated a IP address and now we can proceed further by setting up the FTP bearer profile identifier
AT+FTPSERV="42.42.42.42"         // Set the FTP server name to which we want to connect
AT+FTPUN="user"                  // Set the FTP user name
AT+FTPPW="blabla"                // et the FTP password for logging in
AT+FTPPUTNAME="first.txt"        // Set the file name which we want to upload to the server
AT+FTPPUTPATH="/"                // Set the path where the file needs to be uploaded
AT+FTPPUT=1                      // Start the FTP put session
>> ok
>> +FTPPUT:1,1,1260
AT+FTPPUT=2,10                   // Tells the module that we want to send 10 bytes of data  
HelloWorld                       // Data
AT+FTPPUT=2,0                    // Close the FTP put session

SMS küldése

AT+CMGF=1\r               // A SIM900 átkapcsolása SMS módba.
AT+CMGS="555xxx"\r        // Ahová az SMS-t küldi
<üzenet                   // SMS szövege
 
üzenet zárása: {CTRL+Z}   // SMS vége

SIM900 quad band GSM-GPRS shield

A SIM900 a leggyakrabban alkalmazott Arduino mobiltelefon-platform, mely alkalmas

  • SMS küldésre és fogadásra
  • Telefonhívások kezdeményezése és fogadása
  • Adatforgalmazásra a GPRS hálózaton keresztül

A modulhoz természetesen egy SIM-kártya szükséges, melynek esetleges korlátozásai (pl. nem alkalmas SMS küldésre) befolyásolhatják a modul működését.

A modul

  • Kompatibilis az Arduino-val és a különböző Arduino klónokkal
  • Valós idejű órával (RTC) rendelkezik (ehhez szükéges a hátoldalon a CR1220 gombelem)
  • AT parancsokkal vezérelhető
  • 12 GPIO-val, 2 PWM-mel és beépített ADC-vel rendelkezik
  • Négy sávot támogat: GSM850, EGSM900, DCS1800 és PCS1900, a 2G-hez kapcsolódik
  • 2G SIM-mel bármilyen globális GSM hálózathoz tud csatlakozni
  • Hanghívások kezdeményezése és fogadása külső fülhallgató és mikrofon segítségével
  • SMS-üzenetek küldése és fogadása
  • GPRS-adatok küldése és fogadása (TCP / IP, HTTP stb.)
  • Tallózni és fogni tudja az FM rádióadásokat
  • Átviteli teljesítmény:
  • * 4. osztály (2W) a GSM850-hez
  • * 1. osztály (1W) a DCS1800-hoz
  • Soros alapú AT parancskészlet
  • U.FL és SMA csatlakozók cellaantennához
  • A teljes méretű SIM-kártyát fogadja, de a csomag sok esetben adapter-kártyákat is tartalmaz

SIM kártya

A komolyabb meglepetéseket elkerülendő a modult érdemes prepaid kártyával tesztelni. A kártyán a PIN lock-ot fel kell oldani (Security → SIM lock → feloldás a mobiltelefonon). A kártyának - nyilván - előzetesen aktiváltnak kell lennie, ez is a mobiltelefonnal valósítható meg. A kártyát a hátoldali csatlakozóba kell illeszteni.

Táp

A modult érdemes külső tápról használni, ez lehet 9V (legalább) 1A vagy 12V (legalább) 1A táp. A külső tápra a "power supply select" átkapcsolásával lehet váltani, a külső forrást a "dc jack"-re kell kötni.

A SIM900 chip működési feszültsége 3,4..4,4V. Annak érdekében, hogy a tápfeszültség stabil 4,1 V legyen, a meglehetősen megbízható Micrel MIC29302WU feszültségszabályozóval szerelik a modult - ez képes akár 3A terhelési áramot is kezelni.

Amennyiben a modul tápellátása nem elégséges (például alapból < 2A - 4.1V), a SIM900 egyszerűen lekapcsol.

A modul energiaigénye

A SIM900 működésének egyik legfontosabb kitétele a megfelelő energiaellátás.

Attól függően, hogy milyen üzemmódban van a SIM900, meglehetősen energiaigényes eszköz. Az ic maximális áramfelvétele 2A körül lehet átvitel közben. Általában nem igényel ennyit, de de telefonhívások során 216 mA-t vagy hálózati átvitel során 80 mA-t szokott fogyasztani. Ez a táblázat összefoglalja az energiafelvételt eltérő állapotokban:

MódFrekvenciaJellemző áramfelvétel
Lekapcsolt állapot 60 uA
Alvó mód 1 mA
Készenlét 18 mA
HívásGSM850199 mA
EGSM900216 mA
DCS1800146 mA
PCS1900131 mA
GPRS453 mA
Maximális átvitel 2 A

SIM900 RTC

A valós idő (RTC) alkalmazásához a modul hátoldalán található foglalatba egy CR1220-as gombelemet kell keresni. A modul az RTC-t nem állítja automatikusan, ezt a "AT+CCLK" AT paranccsal lehet megtenni.

Serial beállítás

Az Arduino serial (HW) portja a PIN 0 és 1. Ez egy univerzális csatlakozó, nem érdemes speciális feladatokra alkalmazni (itt csatlakozik a Serial Monitor). A szoftver serial a pin8-9-re csatlakozik. (A szoftver és hardver soros kommunikációk közötti különbségről itt olvashat bővebben.) Ehhez a lenti (sárga) jumperokat "Serial Port Selecting" a fényképezett állásba kell kapcsolni:

Serial beállítás

Vezetékezés

Amennyiben a szoftware serial került kiválasztásra:

SIM900 D7 ↔ Arduino Pin7
SIM900 D8 ↔ Arduino Pin8
SIM900 GND ↔ Arduino GND

A szoftveres soros kommunikációra nem alkalmazható minden port, erről itt olvashat bővebben.

A modul be-kikapcsolása

A modult a "power key" kb. két másodperces lenyomásával lehet ki-be kapcsolni.