SIM900A模块使用小记
正常工作状态:
接线方法:
首先将 AT 写入字符串输入框,然后点击 发送。因为模块波特率默认是 9600,所以两条指令的显示都是没有问题的;如果将软件的波特率设置为其他,第一条 AT 指令会返回乱码,第二条指令才会显示正确。发送 AT 这条指令,SIM900A 模块返回 OK,说明此条指令执行正确,同时说明:电脑和模块通信正常。
发送 AT+CSQ 查询信号强度指令。模块返回如下图所示,其中 19 为信号强度值,此值在 0—31 之间,越大代表信号越强。0 代表无信号,一般此数要达到 10 以上,模块才能正确执行发短信等功能。
SIM状态:
发送 AT+CPIN?查询模块是否检测到手机卡指令。指令返回如下图。READY 说明模块检测到了手机卡。如果返回 ERROR,说明模块没有检测到手机卡,请检查手机卡是否为 2G 卡,并且非电信卡。
网络状态:
发送 AT+COPS?指令,查询模块是否注册到网络。模块返回如下图所示。CHINA MOBILE 代表中国移动,因为我用的移动 2G 卡。说明模块已经注册到中国移动网络。
当模块注册到网络后,我们才可以操作模块执行发短信等功能。 在用单片机控制模块时 , 推荐首先要检测模块是否注册到网络 , 如果没注册到 , 要等待一段时间 , 直至注册到网络。
生产厂商
设备类型
GPRS状态:
关闭移动场景。发送:AT+CIPSHUT,则可以关闭移动场景,关闭场景
后连接状态为:IPINITIAL,可以通过发送:AT+CIPSTATUS,查询。
是否注册到网络
AT+SAPBR=3,1,”CONTYPE”,”GPRS”
出错可能之前已经打开HTTP,需要关掉执行AT+HTTPTERM
承载操作
查询承载:
AT+SAPBR=4,1
设置参数:
AT+SAPBR=3,1,”CONTYPE”,”GPRS”//设置承载参数:已经连接,因特网连接类型,GPRS连接 AT+SAPBR=3,1,”APN”,”CMNET”//设置承载参数:接入点名称为中国移动 AT+SAPBR=1,1//请求承载,失败时证明已经打开
保存参数:
AT+SAPBR=5,1
关闭承载:
AT+SAPBR=0,1//失败时证明已经关闭
承载操作演示:
AT+SAPBR=4,1
+SAPBR:
CONTYPE: GPRS
APN: CMNET
PHONENUM:
USER:
PWD:
RATE: 2
OK
AT+SAPBR=3,1,”CONTYPE”,”GPRS”
OK
AT+SAPBR=3,1,”APN”,”CMNET”
OK
AT+SAPBR=1,1
OK
HTTP操作
必要条件:SIM900A模块的D5常亮,D6慢闪。(SIM900A模块已插入SIM卡且搜索到网络)
操作步骤
1.打开承载(详见承载操作)
2.HTTP初始化
AT+HTTPINIT//初始化HTTP,失败则已打开
3.设置HTTP参数
查询参数:
AT+HTTPPARA?
设置http参数:
AT+HTTPPARA=”URL”,”http://119.29.132.199" //设置URL AT+HTTPPARA=”CONTENT”,”application/x-www-form-urlencoded” //设置数据格式
保存参数:AT+HTTPSCONT(待验证)
4.获取数据
设置缓冲区大小:
AT+HTTPDATA=8,10000 //字节数,获取时间ms
HTTP访问
AT+HTTPACTION=1 //0表示get,1表示post,2表示head
读取内容
AT+HTTPREAD
5.关闭HTTP服务
AT+HTTPTERM//失败时则已关闭
6.关闭承载 AT+SAPBR=0,1
HTTP操作演示:
浏览器访问结果:
PC端串口调试SIM900A模块访问结果:
AT+HTTPINIT
OK
AT+HTTPPARA?
+HTTPPARA:
CID: 1
URL:
UA: SIMCOM_MODULE
PROIP: 0.0.0.0
PROPORT: 0
REDIR: 0
BREAK: 0
BREAKEND: 0
OK
AT+HTTPPARA=”URL”,”http://119.29.132.199"
OK
AT+HTTPPARA=”CONTENT”,”application/x-www-form-urlencoded”
OK
AT+HTTPDATA=8,10000
DOWNLOAD
ERROR
AT+HTTPACTION=1
OK
+HTTPACTION:1,200,36
AT+HTTPREAD
+HTTPREAD:36
OK
#遇到的问题:
1.D5常亮,D6间歇性快闪:5V供电电压不足。
2.指令无回复,USB-TTL通信问题,换一个;必须共地
3.HTTPget访问返回601,原因未打开承载。
其他资料:
//下面的测试指令是可选的,用于确定当前是否可以连接 AT+CSQ AT+CREG? AT+CGATT? //下面的配置指令是必须的 AT+SAPBR=3,1,”CONTYPE”,”GPRS” AT+SAPBR=3,1,”APN”,”CMNET” AT+SAPBR=1,1 //操作HTTP AT+HTTPINIT //初始化Http AT+HTTPPARA=”URL”,”http://IP:port/Phase/station/test" //设置URL AT+HTTPPARA=”CONTENT”,”application/x-www-form-urlencoded” //设置数据格式 AT+HTTPPARA? //查看配置 //缓冲区的长度计算 AT+HTTPDATA=0,10000 AT+HTTPDATA=8,10000 //这里的8是总的数据长度,根据需要进行变更 //如果需要http头部的话,需要计入总长度 POST Phase/station/test HTTP/1.1 Host: 120.26.55.29 Accept: / Authorization: Basic c2VhbnByaWRkeTpvOWk4dTd5RVQk Content-Type: application/x-www-form-urlencoded;charset=utf-8 data=132 AT+HTTPACTION=1 //0表示get,1表示post,2表示head //读结果和关闭连接是可选的 AT+HTTPREAD //读取内容 AT_HTTPTERM //终止HTTP服务 AT+SAPBR=0,1: //最后别忘记关闭承载
参考链接:
https://www.cnblogs.com/makexu/articles/6502194.html
下面是C语言实现51单片机和sim900A模块全双工异步通信,主要完成模块的初始化以及网络检测等操作,通过led的指示灯可以观察现象
|
|
AT
OK
AT+SAPBR=3,1,”CONTYPE”,”GPRS”
OK
AT+SAPBR=3,1,”APN”,”CMNET”
OK
AT+SAPBR=1,1
OK
AT+HTTPINIT
OK
AT+HTTPPARA=”URL”,”http://product.scrazy.cn/adore"
OK
AT+HTTPPARA=”CONTENT”,”application/x-www-form-urlencoded”
OK
AT+HTTPDATA=8,10000
DOWNLOAD
ERROR
AT+HTTPACTION=0
OK
+HTTPACTION:0,200,4
AT+HTTPREAD
+HTTPREAD:4
send
OK
AT+HTTPTERM
OK
AT+SAPBR=0,1
OK