SIM908 - AT příkazy
- June 06 2015
- BEZmikrokontrolérů
- 4248x Přečteno
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ř \0) 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 \r\nOK\r\n - 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 \r\nERROR\r\n. 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
1.) Zkouška komunikace: Tento příkaz vyzkoušejte vždy jako první. Otestujete tím, zda modul vůbec komunikuje:
Odchozí zpráva: AT\r\n
Příchozí zpráva: AT\r\n\r\nOK\r\n
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?\r\n
Příchozí zpráva: AT+CPIN?\r\n\r\n+CPIN: READY\r\n\r\nOK\r\n
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?\r\n
Příchozí zpráva: AT+CREG?\r\n\r\n+CREG: x,y\r\n\r\nOK\r\n
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?\r\n\r\n+CREG: 1,1\r\n\r\nOK\r\n
Pokud je zpráva AT+CREG?\r\n\r\n+CREG: 0,1\r\n\r\nOK\r\n
Odešlete následující zprávu: AT+CREG=1\r\n
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?\r\n
Příchozí zpráva: AT+CSQ\r\n\r\n+CSQ: xx,y\r\n\r\nOK\r\n
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?\r\n
Při odpovědi AT+CMGF?\r\n+CMGF: 1\r\n\r\nOK\r\n 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=1\r\n
nastavíme formát SMS zprávy na TEXT.
Odeslání SMS provedete následující sekvencí AT příkazů:
AT+CMGS="TelefonníČíslo"\r\n
Po tomto AT příkazu se čeká na přijetí znaku >
ZPRÁVA\r\n0x1A\r\n
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: \r\n+CMGS: 10\r\nOK\r\n, kde 10 je číslo odeslané SMS zprávy.
Přečtení nepřečtených SMS zpráv:
AT+CMGL="REC UNREAD"\r\n
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"\r\n
Vypnutí modulu:
AT+CPOWD=1\r\n
Urgentní vypnutí modulu:
AT+CPOWD=0\r\n
Pokud chcete využít GPS část modulu, zapnutí provedete:
AT+CGPSPWR=1\r\n
Přijatá zpráva: AT+CGPSPWR=1\r\n\r\nOK\r\n
poté musí následovat reset modulu (v případě studeného startu)
AT+CGPSRST=0\r\n
Přijatá zpráva: AT+CGPSRST=0\r\n\r\nOK\r\n
Čtení dat z GPS můžete provést pomocí několika typů NMEA zpráv. Nejčastěji užívaná je GGA.
AT+CGPSINF=2\r\n
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=0\r\n
Přijatá zpráva: AT+CGPSPWR=0\r\n\r\nOK\r\n
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/