本文以華為常用無線通訊模塊為例,介紹利用南京唐鼎科技GPRS模塊開發套件及串口調試工具發送短信例程:
一.GTM900B
連接好開發板和模塊、天線(GPRS天線),插入SIM卡(注意不能有Pin碼鎖定,且是移動的SIM卡,如:138、139、150等開頭的卡),使用串口調試工具,點選“回車”后,輸入指令:at+cmgs=字符串長度,輸入要發送的內容,點選“特殊字符”(點選后,會出現0x1A字樣)。例如:
發送“當你看到此短信時,說明你已經成功使用了該產品。”
AT+CMGS=61
? 0891683108200505F011000D91683108093277F60008002E5F534F60770B52306B6477ED4FE165F6FF0C8BF4660E4F605DF27ECF6210529F4F7F75284E868BE54EA754C13002
具體見最后詳解。
二.EM310
連接好開發板和模塊、天線(GPRS天線),插入SIM卡(注意不能有Pin碼鎖定,且是移動的SIM卡,如:138、139、150等開頭的卡),使用串口調試工具,點選“回車”后,輸入指令:at+cmgs=字符串長度,輸入要發送的內容,點選“特殊字符”(點選后,會出現0x1A字樣)。例如:
at+cmgf=1(短信設為文本模式)
at+cmgs=”13809023776”
? hello this is a good news
三.EM200
連接好開發板和模塊、天線(CDMA天線),插入SIM卡(注意不能有Pin碼鎖定,且是CDMA制式的SIM卡,如:189、130、133開頭的),使用串口調試工具,點選“回車”后,輸入指令:at+cmgs=字符串長度,輸入要發送的內容,點選“特殊字符”(點選后,會出現0x1A字樣)。例如:
at+cmgf=1(短信設為文本模式)
at%cmgs=”13809023776” (注意是“%”)
? hello this is a good news
AT指令發送PDU短信詳解
本文以一個實例來解說AT指令發送PDU短信的全過程,假如我要發送下面的短信:
接收號碼:+8613809023776
短信內容:你好
短信中心號碼:+8613800250500
一、短信中心號碼處理:用字符串 addr 表示
1、將短信息中心號碼去掉+號,看看長度是否為偶數,如果不是,最后添加F
即 addr = "+8613800250500"
=> addr = "8613800250500F"
2、將奇數位和偶數位交換。
=> addr = "683108200505F0"
3、將短信息中心號碼前面加上字符91,91是國際化的意思
=> addr = "91683108200505F0"
4、算出 addr 長度,結果除2,格式化成2位的16進制字符串,16 / 2 = 8 => "08"
=> addr = "0891683108200505F0"
二、手機號碼處理:用字符串 phone
1、將手機號碼去掉+號,看看長度是否為偶數,如果不是,最后添加F
即 phone = "+8613809023776"
=> phone = "8613809023776F"
2、將手機號碼奇數位和偶數位交換。
=> phone = "683108093277F6"
三、短信息部分處理:用字符串 msg 表示
1、轉字符串轉換為Unicode代碼,例如“你好”的unicode代碼為 4F60597D,
2、將 msg 長度除2,保留兩位16進制數,即 4F60597D = 8 / 2 => "04",再加上 msg
=> msg = "044F60597D "
四、組合
1、手機號碼前加上字符串 11000D91(1100:固定,0D:手機號碼的長度,不算+號,十六進制表示,91:發送到手機為91,發送到小靈通為81),
即 phone = "11000D91" + phone
=> 11000D91683108093277F6
2、手機號碼后加上 000800 和剛才的短信息內容,000800也寫死就可以了
即 phone = phone + "000800" + msg
即 11000D91683108093277F6 + 000800 +044F60597D
=> phone = 11000D91683108093277F6000800044F60597D
后面的len為此時phone長度,此處值19
3、phone 長度除以2,格式化成2位的十進制數
即 0891683108200505F011000D91683108093277F6000800044F60597D
五、所以要發送的內容為
1、AT+CMGF=0 <回車>
OK
2、“AT+CMGS=len<回車>”
AT+CMGS=19<回車>
3、> addr+phone <Ctrl+Z發送>
>0891683108200505F011000D91683108093277F6000800044F60597D
其他舉例:
發送“當你看到此短信時,說明你已經成功使用了該產品。”
AT+CMGS=61
> 0891683108200505F011000D91683108093277F60008002E5F534F60770B52306B6477ED4FE165F6FF0C8BF4660E4F605DF27ECF6210529F4F7F75284E868BE54EA754C13002