1. Főoldal
  2. Cikkek
  3. Dev
  4. SMS küldése 3G modem használatával

SMS küldése 3G modem használatával

Dev

Ez a leírás az internetszolgáltatóm lustaságának köszönhető, akik nem hitték, hogy gyakran elmegy a net, ezért úgy döntöttem, hogy automatizálom a hibajelentés folyamatát egy 3G-s modemmel és annak SMS küldési funkciójával. Az alábbi példák egy ZTE MF622 modemet használva, Windows 10 operációs rendszeren lesznek bemutatva.

 Kellékek

Ahhoz, hogy 3G/4G modemünket SMS küldésre és/vagy fogadásra használjuk, a következőkre lesz szükségünk:

  • Akarat;
  • USB modem;
  • Az adott modemmel használható SIM kártya (előfordulhat, hogy a modem „párosított”, azaz csak egy bizonyos SIM kártyával használható);
  • PuTTY.

Figyelem! A szerző nem vállal felelősséget az adott leírás használatából adódó esetleges következményekért!

 Első lépések

Első lépésként helyezzük be a SIM kártyát, majd csatlakoztassuk a modemet a számítógépünkhöz. Ha szükséges, telepítsük az eszköz illesztőprogramját. A modemhez való csatlakozáshoz szükségünk lesz a port számára, valamint a BAUD rátára (maximális sebesség). Ezen adatokat az eszközkezelőben találjuk. Nyissuk meg az eszközkezelőt, válasszuk ki a modemek alpontot. Kattintsunk jobb gombbal a tulajdonságokra, majd navigáljunk a modem fülre, ezután keressük meg és jegyezzük fel a fent említett 2 adatot.

 Kapcsolódás a modemhez

Ha a szükséges adatok rendelkezésre állnak, kapcsolódhatunk a modemhez. Ehhez nyissuk meg a PuTTY-t és a bal oldali menüből válasszuk ki a Serial portot.

A „Serial line to connect to” mezőben adjuk meg a modem portját (jelen példában COM8), ezen kívül módosítsuk a következő mezőket:
Speed (baud): [érték az eszközkezelőből; jelen példában 921600]
Data bits: 8
Stop bits: 1
Parity: None
Flow control: None.

 Előkészületek

Miután kapcsolódtunk a modemhez, ellenőrizzük, hogy az képes-e AT parancsokkal dolgozni, valamint SMS-eket küldeni. Ezt a következő parancsok kiadásával tudjuk megtenni:

 AT – ezzel ellenőrizzük, hogy a modem alkalmas lesz-e a feladatra. 

Ha OK választ kapunk, akkor a modemünk képes AT parancsok fogadására. Abban az esetben, ha a modem +ZUSIMR:2 (amivel eszközünk azt jelzi, hogy nem tudja, hová mentse a beérkező üzeneteket) üzenetekkel bombázna, adjuk ki a következő 2 parancsot (javasolt a „kopipészt” módszer használata):

AT+CPMS="SM" – SMS-ek mentése a SIM kártyára;
AT+CPBS="SM" – névjegyzék mentése a SIM kártyára.
 

Ha minden rendben, akkor a következő választ kell kapnunk:

Ha ezzel megvagyunk, az AT+CSCA? paranccsal ellenőrizzük, hogy az üzenet központ megfelelően van-e beállítva.

A kapott válasz a használt mobilszolgáltatótól függően eltérő lehet:

  • Telenor esetében +36209300099
  • Telekom esetében +36309888000
  • Vodafone esetében +36709996500

A sor végén a 145 azt jelenti, hogy az adott szám nemzetközi formátumban van megadva. Ha 145 helyett 129 szerepel, akkor a szám standard formátumban van megadva, pl. 06209300099.

Abban az esetben, ha az üzenet központ nincs, vagy nem megfelelően van beállítva, az

 AT+CSCA="KÖZPONT_SZÁMA",145

paranccsal tudjuk ezt a hibát korrigálni.

Mielőtt elküldhetnénk első SMS-ünket a parancssort használva, győződjünk meg róla, hogy a modem felcsatlakozott-e a mobilszolgáltató hálózatára. Ezt az

 AT+COPS?

paranccsal tudjuk megtenni, amire válaszban megkapjuk, hogy melyik hálózatra és milyen üzemmódban (2G/3G) regisztrált a készülék.

 SMS-ek küldése

A szöveges üzenetek küldéséhez először adjuk ki az

 AT+CMGF=[mód]

parancsot. A [mód]helyett a következő 2 érték szerepelhet:
0 – PDU mód (a cikkben ez lesz használva);
1 – szöveges mód (ennek a módnak a támogatottsága modemtól függ; a cikk írásánál használt ZTE MF622 nem támogatja).

Üzenetek küldéséhez 2 parancsot használhatunk: AT+CMGS (üzenet küldése) és AT+CMSS (üzenet küldése a memóriából). Utóbbi parancs akkor lehet hasznos, ha bizonyos időközönként egyforma üzenetet akarunk küldeni, például „Routerünk online”. Mivel jelen leírásban PDU módot használunk, ezért szükségünk lesz egy PDU generátorra, például erre, ahol használjuk a következő beállításokat:

Miután megadtuk a címzett számát, valamint megírtuk üzenetünket, kattintsunk a „Text:” mező alatt a jobb alsó sarokban lévő „Convert>” gombra. A generált PDU kódot a „PDU Message Entry/Display” mezőben találjuk:

Miután átkonvertáltuk az üzenetünket PDU formátumba, térjünk vissza a modemhez, ahonnan elküldhetjük azt a címzettnek. Ehhez használjuk a fent említett 2 parancs (AT+CMGS és AT+CMSS) valamelyikét.

 Az AT+CMGS parancs

Ezt a parancsot a változó szövegű, vagy egyszeri üzenetek küldésére javasolt használni. Ebben az esetben a készülék nem fogja eltárolni az üzenetet. Használata:

 AT+CMGS=[üzenet hossza][enter][üzenet PDU formában][CTRL-Z]

Ha minden jól megy, OK választ kapunk, ellenkező esetben +CMS ERROR: [hibakót]-ot.

 

 Az AT+CMGW és AT+CMSS parancsok

 Ezen parancs használatával elmenthetjük üzenetünket, annak szövegével valamint a címzett számával együtt későbbi (akár többszöri) használatra. Ez a parancs értesítők esetén lehet hasznos (például egy adott eszközünk online/offline, egy riasztó működésbe lépett, stb). Használata:

 AT+CMGW=[üzenet hossza][enter][üzenet PDU formában][CTRL-Z] 

Ha sikerült elmenteni az üzenetet, akkor +CMGW: [üzenet ID-je] választ kapunk. Ezt az ID-t később az AT+CMSS=[ID] paranccsal használhatjuk a küldéshez. A képen szereplő példából láthatjuk, hogy az elmentett üzenet a 0-s ID-t kapta, amit felhasználva kétszer elküldtük azt a címzett felé.

 Mentett üzenetek törlése

Üzenet(ek) törléséhez az AT+CMGD parancsot használhatjuk, aminek a szintaxisa a következő:

 AT+CMGD=[üzenet ID-je] 

Sikeres végrehajtás után OK választ kell kapnunk. Abban az esetben, ha a tárhelyen lévő összes üzenetet törölni szeretnénk, használjuk az AT+CMGD=0,4 parancsot.

 Lehetséges hibák

Előfordulhat a fent említett parancsok kiadása után a modem nem a várt választ adja vissza. Ez legtöbb esetben egy sima „ERROR” üzenet, hibakód nélkül. Ha ilyennel találkozunk, akkor próbáljuk meg ismét elküldeni az előző parancsot.

+CMS ERROR: 304” esetén győződjünk meg róla, hogy az SMS mód be van-e kapcsolva – adjuk ki az AT+CMGF=1 parancsot.

+CMS ERROR: 305” esetén ismételjük meg az előző parancsot. Ha ezután is 305-ös hibakódot kapunk, akkor győződjünk meg róla, hogy a SIM kártyával lehetséges-e a szöveges üzenetek küldése (pozitív-e az egyenlegünk, nem értük-e el az SMS küldési limitet).

insider profilképe
insider @insider +35
0 hozzászólás
Hozzászóláshoz jelentkezz be vagy Regisztrálj!