如何使用 ATK-SIM900A 模块进行中英文的短信发送

常见的at指令集

AT+CNMI,用于设置新消息指示。发送:AT+CNMI=2,1,设置新消息提示,当收到新

消息,且 SIM 卡未满的时候,SIM900A
模块会返回数据给串口,如:+CMTI: "SM",2,表

示收到接收到新消息,存储在 SIM 卡的位置
2。

AT+CMGF,用于设置短消息模式,SIM900A
支持 PDU
模式和文本(TEXT)模式等
2

种模式,发送:AT+CMGF=1,即可设置为文本模式。

AT+CSCS,用于设置 TE
字符集,默认的为 GSM 7
位缺省字符集,在发送纯英文短信

的时候,发送:AT+CSCS="GSM",设置为缺省字符集即可。在发送中英文短信的时候,需

要发送:AT+CSCS="UCS2",设置为
16 位通用
8 字节倍数编码字符集。

AT+CSMP,用于设置短消息文本模式参数,在使用 UCS2
方式发送中文短信的时候,

需要发送:AT+CSMP=17,167,2,25,设置文本模式参数。

AT+CMGR,用于读取短信,比如发送:AT+CMGR=1,则可以读取
SIM 卡存储在位置

1 的短信。

AT+CMGS, 用于发送短信, 在"GSM"字符集下, 最大可以发送
180 个字节的英文字符,

在"UCS2"字符集下,最大可以发送
70 个汉字(包括字符/数字) 。该指令我们在后面详细介

绍。

AT+CPMS, 用于查询/设置优选消息存储器, 通过发送:
AT+CPMS?, 可以查询当前
SIM

卡最大支持多少条短信存储,以及当前存储了多少条短信等信息。如返回:+CPMS:

英文短信的发送

本节,我们将利用 ATK-SIM900A 模块来给指定手机号码发送一条英文短信。

这里,我们用到 AT+CMGS 指令来发送短信,发送全英文/数字短信的时候,我们先设

置为:"GSM"字符集(AT+CSCS="GSM") ,文本模式(AT+CMGF=1)

假设我们要给手机号: 13922348612, 发送一条短信, 则发送:
AT+CMGS="13922348612",

然后模块返回:>,此时我们输入我们需要发送的内容:ATK-SIM900A MSG SEND TEST,

注意, 此可以不用发送回车了。 在发送完内容以后, 最后以十六进制(HEX)格式单独发送 (不

用添加回车) :1A(即
0X1A)
1 ,即可启动一次短信发送。

注 1:0X1A, 即 “CTRL+Z” 的键值, 用于告诉
SIM900A, 要执行发送操作。 另外还可以发送:
0X1B,

即“ESC”的键值,用于告诉
SIM900A,取消本次操作,不执行发送。

稍等片刻,在短信成功发送后,模块返回如:+CMGS: 156,的确认信息,表示短信成

功发送,其中 156 为模块内部的短信计数器,一般不用理会。如图
2.3.4.2.1 所示:

从上图可以看出,我们在短信发送的最后,输入的是十六进制的 1A,将这个数据发送

给 SIM900A 模块后,启动短信发送,然后发送成功后,模块返回了:+CMGS: 156,说明短

信发送成功了。

中英文短信的发送

本节,我们将利用 ATK-SIM900A 模块来给指定手机号码发送一条中英文短信。

同样,我们用到 AT+CMGS 指令来发送中英文短信。还是采用文本模式发送,发送步

骤如下:

首先,发送:AT+CMGF=1,设置为文本模式。然后,发送:AT+CSMP=17,167,2,25,

设置文本模式参数。最后发送:AT+CSCS="UCS2",设置为
UCS2 编码字符集。

此时,我们便可以发送 AT+CMGS 指令来发送中英文短信了,不过由于使用了
UCS2

字符集,所有字符/数字/汉字,都必须使用
UNICODE 编码。

假定我们要给手机号:13922348612,发送一条中英文短信,内容为“ATK-SIM900A

英文短信发送测试” 。我们首先要用:汉字 UNICODE 互换工具.exe,

这个软件将号码和发

送内容转换为 UNICODE 字符串(需要手动去掉空格) ,得到:

13922348612,转换后的 UNICODE
字符串(去掉空格后)为:

00310033003900320032003300340038003600310032

ATK-SIM900A 中英文短信发送测试,转换后的 UNICODE
字符串为:

00410054004B002D00530049004D00390030003000414E2D82F1658777ED4FE153D1900

16D4B8BD5

然后,发送:

AT+CMGS="00310038003100370035003600380034003700390039",这个指

令, 然后模块返回: >, 此时我们输入我们需要发送的内容:
00410054004B002D00530049004D

00390030003000414E2D82F1658777ED4FE153D190016D4B8BD5,

注意,此可以不用发送回

车了。在发送完内容以后,最后以十六进制(HEX)格式单独发送(不用添加回车) :1A(即

0X1A) ,启动一次短信发送,如图 2.3.4.4.1
所示:

等到模块发送完成,返回如:+CMGS: 158,表示短信已成功发送。此时,我们在目标

手机(13922348612)上面,就可以看到模块发送过来的中英文短信了。

短信的读取与发送, 我们就介绍到这里, 我们全部是使用文本 (TEXT) 模式来实现的,

当然还可以用 PDU 模式,不过
PDU 模式稍微复杂点,有兴趣的朋友,可以参考相关资料自

行研究下。

接下来我们介绍几个常用的 AT 指令:

1, AT+CPIN?

该指令用于查询 SIM 卡的状态,主要是
PIN 码,如果该指令返回:+CPIN:READY,则

表明 SIM 卡状态正常,返回其他值,则有可能是没有
SIM 卡。

2, AT+CSQ

该指令用于查询信号质量,返回 SIM900A 模块的接收信号强度,如返回:+CSQ: 24,0,

表示信号强度是 24(最大有效值是
31) 。如果信号强度过低,则要检查天线是否接好了?

3, AT+COPS?

该指令用于查询当前运营商,该指令只有在连上网络后,才返回运营商,否则返回空,

如返回:+COPS:0,0, "CHINA MOBILE",表示当前选择的运营商是中国移动。

4, AT+CGMI

该指令用于查询模块制造商,如返回:SIMCOM_Ltd,说明
SIM900A 模块是
SIMCOM

公司生产的。

SIMCOM_Ltd

5, AT+CGMM

该指令用于查询模块型号,如返回:SIMCOM_SIM900A,说明模块型号是
SIM900A。

SIMCOM_SIM900A

6, AT+CGSN

该指令用于查询产品序列号(即 IMEI 号) ,每个模块的
IMEI 号都是不一样的,具有全

球唯一性,如返回:869988012018905,说明模块的产品序列号是:869988012018905。

863306026653540

7, AT+CNUM

该指令用于查询本机号码,必须在 SIM 卡在位的时候才可查询,如返回:+CNUM:

"","15902020353",129,7,4,则表明本机号码为:15902020353。另外,不是所有的
SIM 卡都

支持这个指令,有个别 SIM 卡无法通过此指令得到其号码。

时间: 2024-10-25 04:33:20

如何使用 ATK-SIM900A 模块进行中英文的短信发送的相关文章

4、ABPZero系列教程之拼多多卖家工具 集成短信发送模块

ABPZero并没有手机短信发送功能,现在我们来集成一个,为后面注册.登录作铺垫. 阿里云短信服务 首先需要在阿里云开通短信服务,连接地址 开通后,在签名管理中添加一个签名 在模板管理中添加一个模板,如下图所示 最后需要使用阿里云提供的.NET发送短信类库,下面可以直接下载我上传的类库,也可以去官方下载,然后提取我所说的2个类库(aliyun-net-sdk-core.dll.aliyun-net-sdk-dysmsapi.dll) 直接下载文件:https://files.cnblogs.co

安卓开发之简单的短信操作模块

最近做了一个简单的短信操作模块,比较实用小巧.主要功能是可以发送短信(包括短信发送状态的提示),储存短信(可以用于短信列表显示等等),短信的储存可以用SQLite,不过觉得也就几十条上百条短信,用SQLite未免大材小用,还麻烦,于是决定用SharePreference结合对象序列化来做这个模块. 首先是短信实体类,为了复用,做成抽象类,再具体项目中使用只要继承该抽象类即可: public abstract class Message implements Serializable{ priva

3、应用注册模块、监控模块 -功能详细设计 --短信平台

三.功能详细设计 系统包括下行短信发送WebService.下行短信发送服务.提交报告获取服务.状态报告获取服务.上行短信获取服务.上行短信获取守护服务.上行短信处理服务.状态监控服务.以及应用注册模块. 1.  应用注册模块 由于本系统为公共性短信发送平台,需要对接并服务于若干第三方系统,需要对所有发送和接收的短信统一管理并分别处理. 应用注册模块的具体功能有: A)应用注册:只有注册过的应用才能够发送短信. B)扩展码分配:云MAS系统的号码为12位,并预留8位共我们扩展使用,此8位扩展码,

16模块-messaging【发送短信】

Messaging模块管理设备通讯功能,可用于短信.彩信.邮件发送等.通过plus.messaging可获取设备通讯管理对象.另外也可以直接通过html中的href直接快速发送短信.拨打电话.发送邮件等. <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <meta name="viewport" content="initial-scale=1

NodeJS 实现手机短信验证 模块阿里大于

1,NodeJS 安装阿里大于模块 切换到项目目录使用npm 安装阿里于模块 npm i node-alidayu --save 2,aliyu官网使用淘宝账户登录 登录阿里大于 https://doc.alidayu.com/doc2/index.htm 1登录后点击管理中心 2点击应用管理===>创建应用 3配置管理===>验证码====>里添加短信签名 4应用列表里===>操作一栏===>点击设置    记住 app   key 和 APP  sercret 5.后台代

短信验证模块

最近使用到手机短信校验,分享一下我的实现方式,也希望能够了解更好的实现方式 使用短信平台:阿里大鱼(阿里巴巴) 使用语言:node.js 数据库:redis(可用任意数据库或文件操作替代) 实现代码如下: //安装依赖 //redis 数据库操作模块 npm install redis //taobao API 操作模块.ES6请使用topapi-node npm install top //AuthController var redisClient = require('../bin/red

linux下利用GPRS模块发短信、打电话

一.开发环境 内核版本:linux-3.0    开发板:FL2440(nandflash:K9F1G08 128M)    GPRS模块:SIM900 二.与发短信和拨号相关的 AT 指令 AT+CMGC   Send an SMS command(发出一条短消息命令) AT+CMGD   Delete SMS message(删除 SIM 卡内存的短消息) AT+CMGF   Select SMS message formate (选择短消息信息收发格式: 0-PDU;1-文本) AT+CM

[stm32] SIM808模块之发短信\GPS\TCP\HTTP研究

SIM8008是四频模块,全球可用.含有TTL电平接口等接口,能够实现发短信.打电话.GPRS传输数据.GPS等功能.[正版资料请找beautifulzzzz·博客园] 一些细节: >>  5V供电1A以上(用USB转TTL模块上的电源可以驱动,亲试) >> 上图黑色的线是VCC,白色线是GND,绿色线是TXD连接单片机或USB转TTL的RXD引脚,橙色的线类推. >> 其中GPS的天线一般要放在室外,否则无法收到有效信号. >> 三个LED指示灯: 一个是

STM32F103 GU906B模块GPRS、短信收发、拨号等功能的实现

这个程序搞了我很久,尤其是对如何提高响应速度上,程序流程很简单,大概就是: 发送AT指令->等待模块响应->一旦响应了,立即返回,并处理掉. 这个程序不一定只能用在GU906上,程序框架在任何GPRS模块上都能用,只要修改相应的AT指令,按照对应模块的AT指令流程,做下流程上的修改,就没啥问题,框架很简单,不像某宝上店家的那些代码一样,那些代码反正我是看的头晕,程序接口我都留着,只要按照相应的流程调用接口就好. 下面是模块的代码gu906.c文件 [objc] view plain copy