SIM908 – AT příkazy

Pokud již máte vývojový kit SIM908 z našich či jiných stránek, pak tento článek by vám měl nastínit a uvést potřebné AT příkazy pro úspěšnou komunikaci s tímto GSM/GPRS/GPS modulem.

Ještě jedno opakování. K modulu musíte mít zapojen mikrokontrolér skrze UART. Tzn. Tx mikrokontroléru (nebo z počítače – např. přes převodník USB – UART) na Rx modulu a naopak. Dostatečný napájecí zdroj (3.2 – 4.6V) a dostatečně dimenzované přívodní napájecí vodiče – proudové špičky až 2A.

Relativně dost AT příkazů se shoduje i se SIM900 a podobnými typy.

Ke komunikaci: Modul neposílá ukončovací znak řetězce (např ) ani počet bytů, které pošle. Pokud komunikujete s modulem mikrokontrolérem, musíte tuto situaci vyřešit jinak. Naskytují se tři řešení (které mě zrovna napadlo).

Prvním z nich je timeout. V nekonečné smyčce, kde čekáte na přijatý znak dáte podmínku: pokud se nastaví flag časovače, vyskoč z cyklu. Toto řešení je velmi jednoduché, ale má jednu nevýhodu. Pokud modul pošle další zprávu po vypršení timeoutu, vy se jí nikdy nedozvíte.

Dalším řešení je čekání na řetězec rnOKrn – tímto řetězcem končí drtivá většina příchozích zpráv. Nevýhoda je ale nasnadě. Modul může poslat i jiný ukončovací řetězec. Typicky rnERRORrn. Nebo nemusí přijít žádná odpověď, i když by měla.

A posledním řešením je přijetí znaků v přerušení a vyzvednutí si řetězce po určité době. To ale je velmi podobné První možnosti. Výhodou ale je, že mikrokontrolér nečeká v nekonečné smyčce, ale může vykonávat další operace.

Při komunikaci s modulem musíte dodržet několik podmínek. V 99% instrukcí musíte odeslat i ukončovací znak = rn. Dále budu zapisovat pouze rn.

1.) Zkouška komunikace: Tento příkaz vyzkoušejte vždy jako první. Otestujete tím, zda modul vůbec komunikuje:

Odchozí zpráva: ATrn

Příchozí zpráva: ATrnrnOKrn

2.) PIN kód: Tento příkaz otestuje, zda je SIM karta blokována PIN kódem. Pro jednodušší komunikaci PIN kód zakažte.

Odchozí zpráva: AT+CPIN?rn

Příchozí zpráva: AT+CPIN?rnrn+CPIN: READYrnrnOKrn

3.) Registrace do sítě: Tento příkaz testuje, zda je modul již připojen k síti a jakým způsobem.

Odchozí zpráva: AT+CREG?rn

Příchozí zpráva: AT+CREG?rnrn+CREG: x,yrnrnOKrn

Hodnota x značí, zda je modul zaregistrován v síti, domácí síti, registrace byla zamítnuta,

registrace pouze pro SMS a další možnosti. Hodnota y značí technologie komunikace, které je

možné použít (GSM, UTRAN, HSDPA a další).

Očekávaný příchozí zpráva tedy je: AT+CREG?rnrn+CREG: 1,1rnrnOKrn

Pokud je zpráva AT+CREG?rnrn+CREG: 0,1rnrnOKrn

Odešlete následující zprávu: AT+CREG=1rn

Tím se povolí přístup do sítě (toto je nutné nastavit po prvním zapnutí modulu. Při dalších zapnutích si to modul již pamatuje).

4.) Měření signálu:

Odchozí zpráva: AT+CSQ?rn

Příchozí zpráva: AT+CSQrnrn+CSQ: xx,yrnrnOKrn

Kde xx je hodnota signálu (bylo popsáno výše) a y je bitová chybovost přenosu v procentech.

Toto jsou nejzákladnější AT příkazy sloužící k testu připojení do sítě, komunikace popřípadě měření signálu.

Například hodnota 2 znamená -109 dBm, hodnota 10 je -93dBm, kdy signál je už dostatečný pro komunikaci s BTS, hodnota 15 je -83 dBm, přičemž signál je už dobrý a od hodnoty 20, což je -73dBm a více je signál vynikající.

Po registraci do sítě již můžete například odeslat SMS zprávu.

Prvně ale otestujeme typ zpráv.

AT+CMGF?rn

Při odpovědi AT+CMGF?rn+CMGF: 1rnrnOKrn je nastaven formát textu na TEXT (což je pro další pokračování důležité). V případě odpovědi +CMGF: 0 je typ zpráv nastaven na PDU.

AT+CMGF=1rn

nastavíme formát SMS zprávy na TEXT.

Odeslání SMS provedete následující sekvencí AT příkazů:

AT+CMGS=“TelefonníČíslo“rn

Po tomto AT příkazu se čeká na přijetí znaku >

ZPRÁVArn0x1Arn

0x1A je znak pro odeslání zprávy. Je to znak Ctrl+Z sekvence a po tomto přijetí je okamžitě zpráva odeslána.
Zpráva by tedy mohla vypadat následovně:

AT+CMGS=“+420XXXyyyyyy“

> Test SMS. http://chiptron.cz

Po tomto zadání je již odeslána SMS zpráva. Očekávejte zprávu: rn+CMGS: 10rnOKrn, kde 10 je číslo odeslané SMS zprávy.

Přečtení nepřečtených SMS zpráv:

AT+CMGL=“REC UNREAD“rn

Při výpisu všech SMS zpráv zaměníme REC UNREAD za ALL, výpis přečtených zpráv REC READ.

Smazání všech zpráv:

AT+CMGDA=“DEL ALL“rn

Vypnutí modulu:

AT+CPOWD=1rn

Urgentní vypnutí modulu:

AT+CPOWD=0rn

Pokud chcete využít GPS část modulu, zapnutí provedete:

AT+CGPSPWR=1rn

Přijatá zpráva: AT+CGPSPWR=1rnrnOKrn

poté musí následovat reset modulu (v případě studeného startu)

AT+CGPSRST=0rn

Přijatá zpráva: AT+CGPSRST=0rnrnOKrn

Čtení dat z GPS můžete provést pomocí několika typů NMEA zpráv. Nejčastěji užívaná je GGA.

AT+CGPSINF=2rn

NMEA zpráva GGA může vypadat takto:

$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47

Vypnutí GPS části modulu provedete pomocí příkazu:

AT+CGPSPWR=0rn

Přijatá zpráva: AT+CGPSPWR=0rnrnOKrn

Další zdroje naleznete zde:
Datasheet, Reference Manual a další informace o SIM908
http://m2msupport.net/m2msupport/software-and-at-commands-for-m2m-modules/
Seznam a použití AT příkazů: http://m2msupport.net/m2msupport/atcreg-network-registration/

Sdílejte článek:

Související články

Nedávno zveřejněné zprávy poukazují na potenciální bezpečnostní rizika spojená s široce používanými čipy ESP32, které vyrábí čínská společnost Espressif.

Pro vytvoření mé diplomové práce bylo nutné vytvořit nějaký vývojový kit s modulem SIM908.

Daniel Skopalík sdílel návod, jak použít populární jednodeskový počítač RaspberryPi jako JTAG programátor například ESP32.

O zařízení EasyTerm jsem tu už několikrát psal (tady a tady) – jednoduchý a všestranný pomocník při vývoji.

Byl jednou jeden červený kufřík a v něm vše, co jste si kdy přáli.