====== 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/
{{ :hu:arduino:sim900_modul.png?250|SIM900 modul}}
===== SIM AT parancsok =====
{{anchor:at_coms}}
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 {{ :de:arduino:at_commands_v1.11.pdf |(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: 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 ||Csatlakozás az AP (access point)-hoz: \\ : access point name \\ : username \\ : 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=,,,||: a kapcsolat azonosítója 0..7 \\ : TCP vagy UDP \\ : cím vagy domain \\ : port|
|AT+CIPSEND=||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=||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=, \\ multimód: AT+CLPORT=,, \\ ||A lokális port beállítása: \\ : TCP / UDP \\ : portszám \\ : kapcsolat azonosítója|
|AT+CIFSR||lokál IP lekérdezése|
|AT+CIPHEAD=||érkező adatoknál egy extra header a küldő IP címmel \\ 0: kikapcsolva \\ 1: header: "+IPD, data length:"|
|AT+CIPSPRT=||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=||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=||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=||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=||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=||FTP "user name" beállítása, max. 49 char|
|AT+FTPPW?||beállított FTP jelszó lekérdezése|
|AT+FTPPW=||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= \\ AT+FTPPUTNAME= ||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= \\ AT+FTPPUTPATH=||elérési útvonal a fájlhoz, max. 256 char \\ |
|AT+FTPGET=[]||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=[]||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 =====
{{ :de:arduino:sim900_1.png?300|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 [[hu:arduino:start#serial_hw|itt olvashat bővebben]].) Ehhez a lenti (sárga) jumperokat "Serial Port Selecting" a fényképezett állásba kell kapcsolni:
{{:de:arduino:sim900_3.png?200|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 [[hu:arduino:start#serial_sw|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.