在串口调试助手上使用AT命名控制GPRS模块发送短信

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_37618640/article/details/81484601

今天想在串口调试助手上用GPRS模块发送短信结果弄了一下午,想着其中有一些细节比较容易被忽略,所以把自己弄好的写了出来供大家可以参考一下。

一、GPRS简介

GSM模块,是将GSM射频芯片、基带处理芯片、存储器、功放器件等集成在一块线路板上,具有独立的操作系统、GSM射频处理、基带处理并提供标准接口的功能模块。GSM模块根据其提供的数据传输速率又可以分为GPRS模块、EDGE模块和纯短信模块。短信模块只支持语音和短信服务。GPRS,可说是GSM的延续。它经常被描述成“2.5G”,也就是说这项技术位于第二代(2G)和第三代(3G)移动通讯技术之间。GPRS的传输速率从56K到114Kbps不等,理论速度最高达171k。相对于GSM的9.6kbps的访问速度而言,GPRS拥有更快的访问数据通信速度,GPRS技术还具有在任何时间、任何地点都能实现连接,永远在线、按流量计费等特点。EDGE技术进一步提升了数据传输的速率到384K-473K,被称为”2.75G”,数据传输速率更2倍于GPRS。目前,国内的GSM网络普遍具有GPRS通讯功能,移动和联通的网络都支持GPRS,EDGE在部分省市实现了网络覆盖。
GPRS模块,是具有GPRS数据传输功能的GSM模块。GPRS模块就是一个精简版的手机,集成GSM通信的主要功能于一块电路板上,具有发送短消息、通话、数据传输等功能。GPRS模块相当于手机的核心部分,如果增加键盘和屏幕就是一个完整的手机。普通电脑或者单片机可以通过RS232串口与GPRS模块相连,通过AT指令控制GPRS模块实现各种基于GSM的通信功能。
GPRS模块区别于传统的纯短信模块,两者都是GSM模块,但是短信模块只能收发短信和语音通讯,而GPRS模块还具有GPRS数据传输功能。

二、串口调试助手

这里我使用的是开源电子网的XCOM2.0串口调试助手,自我感觉是一款非常好用的串口调试助手。我设置的波特率为9600(这个应和程序中的波特率一致),端口号是COM10。
软件链接https://pan.baidu.com/s/1qg4wzRR5-uRqeEgUuK51vQ
成功连接图如下:
这里写图片描述

二、GPRS功能测试AT指令集

在使用这些指令前最好确保你的SIM卡是好的,且处于无欠费状态。

1、AT(用于判断模块是否连接好,返回OK则代表通信正常)

这里写图片描述

2、ATI(用于查询SIM卡类型,我这里使用的是SIM900)

这里写图片描述

3、AT+CREG?(用于查询是否注册到基站,返回0,1或者0,5都表示注册成功)

这里写图片描述

4、AT+CPIN?(用于查询SIM卡状态,即SIM卡是否插好)

这里写图片描述

5、AT+CSQ(用于查询GPRS模块信号质量)

信号强度最大是31,一般大于10都算可以。
这里写图片描述

6、ATD【空格】【电话号码】【分号】(用于拨打想要呼叫的电话)

这里写图片描述

7、ATH(用于挂断电话)

这里写图片描述
8、ATA(用于接听别人打来的电话)

这里写图片描述
当收到来电的时候(串口接收屏幕上会一直打ring),接听来电后想结束电话,同样可用ATH挂断电话。
模块默认为喇叭输出若听不到声音可用 AT+SNFS=1 命令切换成耳机模式。

9、发送英文短信

1、AT+CMGF=1(设置成TEXT MODE)

这里写图片描述
2、AT+CMGS=“电话号码”(其中的电话号码为短信发给谁就写谁的)
这里写图片描述
3、发送短信内容(只要是不是汉字就可以)
这里写图片描述
注意看图:勾选了 发送新行 发送AT+CMGS="电话号码"后,然后不勾选 发送新行 发送短信内容
4、发送1A表示结束(串口调试助手上你需要在操作步骤3后不换行再次输入16进制的1A表示确认发送,不然信息不会发送)
这里写图片描述

10、发送中文短信

要用到PDU转码:http://www.multisilicon.com/_a/blog/a22201774~/pdu.htm
1、发送AT+CMGF=0(设置成PDU格式)
这里写图片描述
2、复制转换好的16进制的PDU消息到两个信息格中,注意不能复制到一个格中

这里写图片描述
短消息中心号码可以百度查询,其实这个短消息中心号码不填也可以,但是填了就一定要填对否则会出错
这里写图片描述
注意看图:勾选了 发送新行 发送AT+CMGS=27后,然后不勾选 发送新行 发送PDU码
3、发送1A表示结束(串口调试助手上你需要在操作步骤2后不换行再次输入16进制的1A表示确认发送,不然信息不会发送)
这里写图片描述

我本人就用GPRS模块进行了这些操作,第一次写写不好的望大家谅解,另外我也是参考了别人写的,在此表示感谢。附上链接
https://blog.csdn.net/fml1997/article/details/72929857

展开阅读全文

没有更多推荐了,返回首页