hu:arduino:gprs

Differences

This shows you the differences between two versions of the page.

hu:arduino:gprs [2020/08/27 22:34]
hu:arduino:gprs [2022/04/21 15:02] ()
 1:  1:
 +====== 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ó}}.
 +
 +<WRAP center round important 80%>
 +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\"");**
 +</WRAP>
 +
 +
 +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 ====
 +<code c>
 +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
 +
 +</code>
 +
 +==== FTP: adatküldés a szerverre ====
 +<code c>
 +AT+SAPBR=1,                    // Enable the GPRS
 +AT+SAPBR=2,                    // 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,                   // Close the FTP put session
 +</code>
 +==== SMS küldése ====
 +<code c>
 +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
 +</code>
 +
 +===== 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.
 +<WRAP center round important 80%>
 +Amennyiben a modul tápellátása nem elégséges (például alapból < 2A - 4.1V), a SIM900 egyszerűen lekapcsol.
 +</WRAP>
 +
 +=== 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.
 +
 +