sim900a中英文短信發(fā)送步驟
第一:AT+CNMI,用于設(shè)置新消息指示。發(fā)送:AT+CNMI=2,1,設(shè)置新消息提示,當(dāng)收到新消息,且 SIM 卡未滿的時(shí)候,SIM900A 模塊會(huì)返回?cái)?shù)據(jù)給串口,如:+CMTI: “SM”,2,表示收到接收到新消息,存儲(chǔ)在 SIM 卡的位置 2。
第二:AT+CMGF,用于設(shè)置短消息模式,SIM900A 支持 PDU 模式和文本(TEXT)模式等 2種模式,發(fā)送:AT+CMGF=1,即可設(shè)置為文本模式。
第三:AT+CSCS,用于設(shè)置 TE 字符集,默認(rèn)的為 GSM 7 位缺省字符集,在發(fā)送純英文短信的時(shí)候,發(fā)送:AT+CSCS=“GSM”,設(shè)置為缺省字符集即可。在發(fā)送中英文短信的時(shí)候,需要發(fā)送:AT+CSCS=“UCS2”,設(shè)置為 16 位通用 8 字節(jié)倍數(shù)編碼字符集。
第四:AT+CSMP,用于設(shè)置短消息文本模式參數(shù),在使用 UCS2 方式發(fā)送中文短信的時(shí)候,需要發(fā)送:AT+CSMP=17,167,2,25,設(shè)置文本模式參數(shù)。AT+CMGR,用于讀取短信,比如發(fā)送:AT+CMGR=1,則可以讀取 SIM 卡存儲(chǔ)在位置1 的短信。
第五:AT+CMGS, 用于發(fā)送短信, 在“GSM”字符集下, 最大可以發(fā)送 180 個(gè)字節(jié)的英文字符,在“UCS2”字符集下,最大可以發(fā)送 70 個(gè)漢字(包括字符/數(shù)字) 。該指令我們?cè)诤竺嬖敿?xì)介紹。
第六:AT+CPMS, 用于查詢/設(shè)置優(yōu)選消息存儲(chǔ)器, 通過(guò)發(fā)送: AT+CPMS?, 可以查詢當(dāng)前 SIM卡最大支持多少條短信存儲(chǔ),以及當(dāng)前存儲(chǔ)了多少條短信等信息。如返回:+CPMS:
中英文短信的發(fā)送我們將利用 ATK-SIM900A 模塊來(lái)給指定手機(jī)號(hào)碼發(fā)送一條中英文短信。同樣,我們用到 AT+CMGS 指令來(lái)發(fā)送中英文短信。還是采用文本模式發(fā)送,發(fā)送步驟如下:
首先,發(fā)送:AT+CMGF=1,設(shè)置為文本模式。然后,發(fā)送:AT+CSMP=17,167,2,25,置文本模式參數(shù)。最后發(fā)送:AT+CSCS=“UCS2”,設(shè)置為 UCS2 編碼字符集。
此時(shí),我們便可以發(fā)送 AT+CMGS 指令來(lái)發(fā)送中英文短信了,不過(guò)由于使用了 UCS2字符集,所有字符/數(shù)字/漢字,都必須使用 UNICODE 編碼。假定我們要給手機(jī)號(hào):13922348612,發(fā)送一條中英文短信,內(nèi)容為“ATK-SIM900A 中英文短信發(fā)送測(cè)試” 。我們首先要用:漢字 UNICODE 互換工具.exe,
這個(gè)軟件將號(hào)碼和發(fā)送內(nèi)容轉(zhuǎn)換為 UNICODE 字符串(需要手動(dòng)去掉空格) ,得到:13922348612,轉(zhuǎn)換后的 UNICODE 字符串(去掉空格后)為:00310033003900320032003300340038003600310032
ATK-SIM900A 中英文短信發(fā)送測(cè)試,轉(zhuǎn)換后的 UNICODE 字符串為:00410054004B002D00530049004D00390030003000414E2D82F1658777ED4FE153D190016D4B8BD5
然后,發(fā)送:AT+CMGS=“00310038003100370035003600380034003700390039”,這個(gè)指令, 然后模塊返回: 》, 此時(shí)我們輸入我們需要發(fā)送的內(nèi)容: 00410054004B002D00530049004D00390030003000414E2D82F1658777ED4FE153D190016D4B8BD5。
注意,此可以不用發(fā)送回車了。在發(fā)送完內(nèi)容以后,最后以十六進(jìn)制(HEX)格式單獨(dú)發(fā)送(不用添加回車) :1A(即0X1A) ,啟動(dòng)一次短信發(fā)送,如圖 2.3.4.4.1 所示:
等到模塊發(fā)送完成,返回如:+CMGS: 158,表示短信已成功發(fā)送。此時(shí),我們?cè)谀繕?biāo)手機(jī)(13922348612)上面,就可以看到模塊發(fā)送過(guò)來(lái)的中英文短信了。
英文短信的發(fā)送我們將利用 ATK-SIM900A 模塊來(lái)給指定手機(jī)號(hào)碼發(fā)送一條英文短信。這里,我們用到 AT+CMGS 指令來(lái)發(fā)送短信,發(fā)送全英文/數(shù)字短信的時(shí)候,我們先設(shè)置為:“GSM”字符集(AT+CSCS=“GSM”) ,文本模式(AT+CMGF=1) 。
假設(shè)我們要給手機(jī)號(hào): 13922348612, 發(fā)送一條短信, 則發(fā)送: AT+CMGS=“13922348612”,然后模塊返回:》,此時(shí)我們輸入我們需要發(fā)送的內(nèi)容:ATK-SIM900A MSG SEND TEST,注意, 此可以不用發(fā)送回車了。 在發(fā)送完內(nèi)容以后, 最后以十六進(jìn)制(HEX)格式單獨(dú)發(fā)送 (不
用添加回車) :1A(即 0X1A) 1 ,即可啟動(dòng)一次短信發(fā)送。注 1:0X1A, 即 “CTRL+Z” 的鍵值, 用于告訴 SIM900A, 要執(zhí)行發(fā)送操作。 另外還可以發(fā)送: 0X1B,即“ESC”的鍵值,用于告訴 SIM900A,取消本次操作,不執(zhí)行發(fā)送。
稍等片刻,在短信成功發(fā)送后,模塊返回如:+CMGS: 156,的確認(rèn)信息,表示短信成功發(fā)送,其中 156 為模塊內(nèi)部的短信計(jì)數(shù)器,一般不用理會(huì)。如圖 2.3.4.2.1 所示:
從上圖可以看出,我們?cè)诙绦虐l(fā)送的最后,輸入的是十六進(jìn)制的 1A,將這個(gè)數(shù)據(jù)發(fā)送給 SIM900A 模塊后,啟動(dòng)短信發(fā)送,然后發(fā)送成功后,模塊返回了:+CMGS: 156,說(shuō)明短信發(fā)送成功了。