====== 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.