常见的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 指令来发送中英文短信。还是采用文本模式发送,发送步骤如下:
首先,发送: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 字符串为:00410054004b002d00530049004d00390030003000414e2d82f1658777ed4fe153d190016d4b8bd5
然后,发送:at+cmgs=“00310038003100370035003600380034003700390039”,这个指令, 然后模块返回: 》, 此时我们输入我们需要发送的内容: 00410054004b002d00530049004d00390030003000414e2d82f1658777ed4fe153d190016d4b8bd5。
注意,此可以不用发送回车了。在发送完内容以后,最后以十六进制(hex)格式单独发送(不用添加回车) :1a(即0x1a) ,启动一次短信发送,如图 2.3.4.4.1 所示:
等到模块发送完成,返回如:+cmgs: 158,表示短信已成功发送。此时,我们在目标手机(13922348612)上面,就可以看到模块发送过来的中英文短信了。
英文短信的发送
我们将利用 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,说明短信发送成功了。
在4S店买这些SUV至少贵15%,那么要去那里买最划算!
嵌入式语音识别系统是什么
怎样来操作fpc电路板的生产
HaluEval数据集的构建过程分析
初创企业正在开创一种可替代电池的全新电网储能方式
sim900a中英文短信发送步骤
Linux 6.3内核的合并窗口已开启
邦克仕发布了多款苹果快充新品主打苹果快充普及风暴
国内随身mifi江湖闲谈
基于一种新型的用于无声语音识别的贴片式智能传感器
深至科技获数千万元A轮融资 将持续深耕AI超声应用
人工智能当前有六大研究领域
深圳进入山寨3.0时代 电子书取代上网本成新宠
未来电动汽车充电会是什么样子?插电、换电和无线哪个最有潜力
物联网的哪五种营销策略将可能零售市场的发展
dfrobotMaKey MaKey教程简介
PPG测量原理详解
应对数智化时代下SAP用户的系统转型挑战——SNP TDO
Unicode和UTF-8、UTF-16到底有什么不同?
E资讯:小米新品发布,一张长图放不下