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ése | Max. átviteli sebessége |
---|---|---|
2G | GSM | 9,6 KBit/s |
2.5G | GPRS | 54 KBit/s |
2.75G | EDGE | 220 KBit/s |
3G | UMTS | 384 KBit/s |
3.5G | HSPA | 7,2 MBit/s |
HSPA+ | 42 MBit/s | |
3.9G | LTE (bis CAT 4) | 150 MBit/s |
4G | TE Advanced (LTE-A ab CAT 6) | 300 MBit/s |
4.5G | LTE Advanced Pro (LTE-AP ab CAT 11) | 600 MBit/s |
SIM típusok összefoglalása
WCDMA/ HSPA / HSPA+ Modules | ||
SIM5300E | Dual-Band HSPA/WCDMA Dual-Band GSM/GPRS/EDGE | TCP/UDP/PPP |
SIM5300EA | Dual-Band HSPA/WCDMA Dual-Band GSM/GPRS/EDGE | TCP/UDP/PPP |
SIM5320 | Dual-Band UMTS | |
SIM5360 | Dual-Band HSPA+ | |
GSM / GPRS + GNSS Modules | ||
SIM808 | Quad-Band GSM/GPRS+GPS+BT 3.0 | integrated GPRS and GPS in a SMT package |
SIM868 | Quad-Band GSM/GPRS+GNSS | design with LCC and LGA pads |
SIM868E | Quad-Band GSM/GPRS+GNSS | GSM / GPRS + GNSS + BT4.0 and BT3.0 (BLE) |
GSM / GPRS Modules | ||
SIM800 | Quad-band GSM/GPRS | Voice, SMS and data |
SIM800C-DS | ||
SIM800C | ||
SIM800F | Quad-band GSM/GPRS | |
SIM800H | Quad-Band GSM/GPRS | Featuring Bluetooth, FM and Embedded AT |
SIM900 | Quad-Band GSM/GPRS | GSM: voice, SMS, Data, and Fax |
LTE Modules | ||
SIM7100E | TDD-LTE/FDD-LTE/WCDMA/GSM/GNSS | multi-band TDD-LTE/FDD-LTE/WCDMA/GSM/GNSS |
SIM7500A | LTE-FDD/HSPA | TCP/UDP/FTP/FTPS/HTTP/HTTPS/SMTP/POP3 and MMS |
SIM7500E | LTE-FDD/GSM | TCP/UDP/FTP/FTPS/HTTP/HTTPS/SMTP/POP3 and MMS |
SIM7600C | LTE-TDD/LTE-FDD/HSPA+/TD-SCDMA | TCP/UDP/FTP/FTPS/HTTP/HTTPS/SMTP/POP3 and MMS |
SIM7600E | LTE-TDD/LTE-FDD/HSPA+GSM/GPRS/EDGE | TCP/UDP/FTP/FTPS/HTTP/HTTPS/DNS |
CAT-M1/NB-IoT Modules | ||
SIM7000E | Tri-Band LTE-FDD Dual-Band GPRS/EDGE | |
SIM7020 | Multi-Band NB-IoT | |
GPS/GLONASS Modules | ||
SIM28ML | GPS(standalone) | |
SIM33ELA | MTK GNSS(Antenna) | |
SIM68E | GPS & GLONASS | |
SIM68M | GPS & GLONASS |
A SIM modulok bővebb leírása itt található: https://simcom.ee/
SIM AT parancsok
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:
Parancs | Válasz | Leírás |
---|---|---|
Általános parancsok | ||
AT | OK | A SIM900 tesztelése |
ATI | SIM900 R11.0 OK | Modul neve és verziószáma |
AT+GMM | SIMCOM_SIM900 OK | Hardver lekérdezése |
AT+GSN | IMEI szám | IMEI szám lekérdezése |
AT+COPS? | +COPS: 0 | Teszteli, 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+CCLK | OK | valós idő (RTC) beállítása |
AT+CBC | +CBC: 0,95,4139 | A 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,x | Jelminőség 0..31, 31 a legjobb |
AT+CCID | a 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 |
ATZ | OK | Default konfiguráció visszaállítása (reset) |
AT+CBAND? | +CBAND: PGSM_MODE,ALL_BAND | Aktuális mobil-mód lekérdezése |
ATE0 | ECHO tiltása | |
ATE1 | ECHO engedélyezése | |
AT+CPIN? | +CPIN: SIM PIN | PIN 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=1234 | PIN megadása | |
AT+CEER | +CEER: No Cause | Hiba lekérdezése |
SMS parancsok | ||
AT+CMGF=1 | OK | A SIM900 átkapcsolása SMS módba |
AT+CMGS=„555xxx”\r | OK | AZ 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=1 | OK | Az 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,1 | SIM 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+555xxx | OK | Egy szám hívása - a szám a nemzetközi hívásformátum szerinti |
ATH | OK | A hívás felfüggesztése |
GPRS parancsok | ||
AT+CGATT=1 | OK | GPRS funkció aktiválása |
AT+CGATT=0 | OK | GPRS funkció lekapcsolása |
CSTT <apn> <user> <pw> | Csatlakozás az AP (access point)-hoz: <apn>: access point name <user>: username <pw>: jelszó |
|
AT+CREG=1 | OK | Hálózat használatának az engedélyezése |
AT+CIPSHUT | SHUT OK | GPRS PDP tiltása |
AT+CIICR | Wireless 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+CIPCLOSE | A 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+CIFSR | loká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+FTPDELETE | Az AT+FTPGETNAME és AT+FTPGETPATH utasítások által definiált távoli fájl törlése | |
AT+FTPSIZE | Az AT+FTPGETNAME és AT+FTPGETPATH utasítások által definiált távoli fájl méretének a lekérdezése | |
AT+FTPSTATE | Az FTP állapotának a lekérdezése, 0: szabad, 1: foglalt | |
AT+FTPMKD | az AT+FTPGETPATH által meghatározott könyvtár távoli létrehozása | |
AT+FTPRMD | az AT+FTPGETPATH által meghatározott könyvtár távoli törlése | |
AT+FTPLIST | az AT+FTPGETPATH által meghatározott könyvtár fájl-jegyzéke | |
AT+FTPQUIT | Az 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ód | Frekvencia | Jellemző áramfelvétel |
---|---|---|
Lekapcsolt állapot | 60 uA | |
Alvó mód | 1 mA | |
Készenlét | 18 mA | |
Hívás | GSM850 | 199 mA |
EGSM900 | 216 mA | |
DCS1800 | 146 mA | |
PCS1900 | 131 mA | |
GPRS | 453 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:
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.