用CP2102转串口再和GSM模块TC35连接,就可构成短信猫。电路图如下:
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
WWW_PLCJS@_COM%-PLC-技.术_网
WWW_PLC※JS_COM-PmLC-技.术_网
上位机用VB编写,界面如下
WWW_PLCJS_COM-PLC-技.术_网
WWW_PLCJS@_COM%-PLC-技.术_网
VB源码
WWW_PL※CJS_COM-PLC-技.术_网
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
Private Sub ReSet() 初始化模块WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
Dim n As IntegerW1WW_P4LCJS_COM-PLC-技.术_网
Timer1.Enabled = FalseW1WW_P4LCJS_COM-PLC-技.术_网
Link = FalseWW.W_PLCJS_COM-PLC-技.术_网
Sim = FalseP.L.C.技.术.网——可编程控制器技术门户
s = MSComm1.InputWWW_PLCJS@_COM%-PLC-技.术_网
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
MSComm1.Output = "AT+CIMI" & Chr(13) 检查是否插卡WWW.PLCJS.COM——可编程控制器技术门户
Sleep 200WWcW_PLCJS_COM-PLC-技.术_网
s = MSComm1.Inputplcjs.技.术_网
If Right(s, 4) = "OK" & Chr(13) & Chr(10) Then Sim = TrueWWcW_PLCJS_COM-PLC-技.术_网
If Not Sim ThenWWW.PLCJS.COM——可编程控制器技术门户
Label3.Caption = "未插卡!"WW.W_PLCJS_COM-PLC-技.术_网
Exit SubWWW_PLCJS_COM-PLC-技.术_网
End IfWWW_PLCJS@_COM%-PLC-技.术_网
W1WW_P4LCJS_COM-PLC-技.术_网
MSComm1.Output = "AT+CSQ" & Chr(13) 读信号强度WWW_PLC※JS_COM-PmLC-技.术_网
Sleep 150WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
s = MSComm1.InputWWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
n = CByte(Mid(s, 9, 2))plcjs.技.术_网
ProgressBar1.Value = nW1WW_P4LCJS_COM-PLC-技.术_网
P.L.C.技.术.网——可编程控制器技术门户
MSComm1.Output = "AT+CLIP=1" & Chr(13) 来电显示plcjs.技.术_网
Sleep 100P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
s = MSComm1.InputWW.W_PLCJS_COM-PLC-技.术_网
WW.W_PLC※JS_C,OM-PL,C-技.术_网
MSComm1.Output = "AT+CSCA?" & Chr(13) 读取短信中心地址WWW_P※LCJS_COM-PLC-)技.术_网
Sleep 200P.L.C.技.术.网——可编程控制器技术门户
s = MSComm1.InputP_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
Adress_SMS = Mid(s, 12, 13)WWW.PLCJS.COM——可编程控制器技术门户
Adress_SMS = CTP(Adress_SMS)WWW_PL※CJS_COM-PLC-技.术_网
WW.W_PLC※JS_C,OM-PL,C-技.术_网
MSComm1.Output = "AT+CMGF=0" & Chr(13) 设置短信为PDU模式WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
Sleep 100WWW.PLCJS.COM——可编程控制器技术门户
s = MSComm1.InputWWW_PLCJS@_COM%-PLC-技.术_网
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
MSComm1.Output = "AT+CNMI=1,1" & Chr(13) 设置短信接收方式WW.W_PLC※JS_C,OM-PL,C-技.术_网
Sleep 100WWW.PLCJS.COM——可编程控制器技术门户
s = MSComm1.InputP.L.C.技.术.网——可编程控制器技术门户
Timer1.Enabled = True 开始定时查询接收数据WWW_P※LCJS_COM-PLC-)技.术_网
End SubWWW_PLCJS_COM-PLC-技.术_网
WWW_P※LCJS_CO※M-PLC-技-.术_网
Private Sub Command1_Click() 发送短信命令
WWW_PLCJS_COM-PLC-技.术_网
Dim NumB As StringWWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
Dim Send As StringWWW_PLCJS@_COM%-PLC-技.术_网
Dim All As StringWWW_PL※CJS_COM-PLC-技.术_网
Dim n As IntegerWWW_PLCJS@_COM%-PLC-技.术_网
Dim m As Integer——可——编——程——控-制-器-技——术——门——户
Timer1.Enabled = False 发送命令后,延时接收
WWW_PL※CJS_COM-PLC-技.术_网
Command1.Enabled = FalseWWW_PLC※JS_COM-PmLC-技.术_网
NumB = Text2.Text 手机号码WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
Send = Text1.TextWWW_PLCJS_COM-PLC-技.术_网
m = 2 * Len(Text1.Text) 每个字占2个字节WWW_P※LCJS_CO※M-PLC-技-.术_网
n = m + 15WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
MSComm1.Output = "AT+CMGS=" & n & Chr(13) 发送短信长度——可——编——程——控-制-器-技——术——门——户
Sleep 100WWW_PL※CJS_COM-PLC-技.术_网
s = MSComm1.InputWW.W_PLC※JS_C,OM-PL,C-技.术_网
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
08--地址长度(91683108200505F0的字节数)WWW_P※LCJS_COM-PLC-)技.术_网
91--地址类型(小灵通时为81)WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
短信中心号码,前加86后补F,相邻奇偶位交换P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
11--消息类型WWW_P※LCJS_COM-PLC-)技.术_网
00--消息参考值WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
0D--目标地址数字个数WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
91--地址类型(小灵通时为81)——可——编——程——控-制-器-技——术——门——户
手机号码,前加86后补F,相邻奇偶位交换WWW_PLCJS@_COM%-PLC-技.术_网
00--上层协议标识,表示GSM,点对点WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
08--编码方式,Unicode方式WWW_P※LCJS_COM-PLC-)技.术_网
FF--有效期,最长WW.W_PLC※JS_C,OM-PL,C-技.术_网
发送数据长度,16进制,2位,不足2位前面补0。WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
发送数据内容,PDU码WW.W_PLCJS_COM-PLC-技.术_网
Chr(26),结束WW.W_PLCJS_COM-PLC-技.术_网
All = "0891" & Adress_SMS & "11000D91" & CTP(NumB) & "0008FF" & IIf(m > 15, Hex(m), "0" & Hex(m)) & CNU(Send) & Chr(26) 发送短信
WWW_P※LCJS_CO※M-PLC-技-.术_网
MSComm1.Output = All 发送短信内容WWcW_PLCJS_COM-PLC-技.术_网