首页 > 代码库 > linux下利用GPRS模块发短信、打电话
linux下利用GPRS模块发短信、打电话
开发板: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+CMGL List SMS message from preferred store(列出 SIM 卡中的短消息
AT+CMGR Read SMS message(读短消息)
AT+CMGS Send SMS message(发送短消息)
AT+CMGW Write SMS message to memory(向 SIM 内存中写入待发的短消息)
AT+CMSS Send SMS message from storage(从 SIN |M 内存中发送短消息)
AT+CNMI New SMS message indications(显示新收到的短消息)
AT+CPMS Preferred SMS message storage(选择短消息内存)
AT+CSCA SMS service center address(短消息中心地址)
AT+CSCB Select cell broadcast messages(选择蜂窝广播消息)
AT+CSMP Set SMS text mode parameters(设置短消息文本模式参数)
AT+CSMS Select Message Service(选择短消息服务)
AT+CNMI=2,1,0,0,0 //设置收到新短信存于SIM卡中并发CMTI通知
+CMTI:”SM”,1 //收到了短信,自动弹出,其中1表示存在SIM中的序号
AT+CMGR=1 //读取短信,其中1要与上面序号对应
AT+CMGD=1 //删除短信,其中1为短信序号
OK
ATD 拨号命令。这个命令用来设置通话、数据或传真呼叫。
例 ATD13844019770;ATH 挂机命令。
ATA 接电话。
发送短消息有两种方式:PDU和TEXT 模式,TEXT模式只支持传送英文及数字信息,但它的编码要比PDU模式简单很多,所以建议采用TXET模式发送和接受短消息。(以下以TEXT 模式示范)
三、准备工作
GPRS模块,是具有GPRS数据传输功能的GSM模块。GPRS模块就是一个精简版的手机,集成GSM通信的主要功能于一块电路板上,具有发送短消息、通话、数据传输等功能。GPRS模块相当于手机的核心部分,如果增加键盘和屏幕就是一个完整的手机。普通电脑或者单片机可以通过RS232串口与GPRS模块相连,通过AT指令控制GPRS模块实现各种基于GSM的通信功能。 制作串口线将 GPRS模块的串口和开发板的串口连接起来(我连接的是开发的第二个串口,因为第一个穿孔连接PC了),然后将可用手机SIM卡插入 GPRS模块的卡槽;然后启动开发板,接通GPRS模块的电源,然后按下GPRS模块的SW1,让SIM开始工作,搜索网络这是发光二极管D3会闪烁。
四、过程实例:
如果内核添加了串口驱动执行如下命令就会看到串口设备:
[root@root /]# ls dev/
td2 null tty3 ttyS0
mtd2ro pcmC0D0c tty30 ttyS1
mtd3 pcmC0D0p tty31 ttyS2
[root@root /]# microcom -s 115200 /dev/ttyS1 (microcom命令制作跟文件系统时busybox会添加,这里的/dev/ttyS1需要根据你GPRS连 接板子的串口选择)
at (返回OK则说明你的模块可以正常工作,否则出现故障。)
OK
AT+COPS? (运营商,我用的是联通)
+COPS: 0,0,"CHN-UNICOM"
AT+CSQ (查看SIM信号质量)
+CSQ: 23,0
OK
AT+CPIN? (查询状态,模块准备好打印如下)
+CPIN: READY
OK
AT+CMGF=1 //首先将短信息格式设为 TEXT 模式,如果为0 则为PDU格式
OK
AT+CSCS="GSM" //设置字符格式为GSM 模式
OK
//有的说在发短信之前要设置短信中心号码示例:AT+CSCA=”+86138XXXXXXXX”,,但是我的没有设置就可以发短信,示例如下
at+cmgs="13007110996" //输入手机号
> zhouyou,hello! //出现>后输入短信内容,之后不是enter键输入,切记是按ctrl+z,如果错了可按esc返回
+CMGS: 36
OK //发送成功的标志
ATD13007110996; //打电话,注意后面的分号不能掉,拨号成功返回OK,插上带话筒的耳机就可以通话了
OK
ATH //挂电话命令,成功后返回OK
OK
RING //来电话时,会不断打印RING
RING
ATA //接听命令,成功后返回OK
OK
ATH
OK
如果串口没有输出,检查看串口线是否是好的,波特率是否正确,一般我们的波特率设为115200.
linux下利用GPRS模块发短信、打电话