SIM800L AT command
/***********************************************************
AT+ICF==<format> ,<parity>
Set TE-TA control character framing
************************************************************/
/***********************************************************
AT+IPR=<RATE>
110 300 600 1200 4800 9600 14400 19200 38400 56000 57600 115200
************************************************************/
/***********************************************************
AT+CREG 网络注册信息
************************************************************/
AT+CREG?
+CREG: 0,1 //当返回+CREG: 0,1 或+CREG: 0,5 时都说明模块已经注册上 GSM 网络。
OK
/***********************************************************
AT+CGREG GPRS网络注册状态
************************************************************/
AT+CGREG?
+CGREG: 0, 1 //当返回+CGREG: 0,1 或+CGREG: 0,5 时都说明模块已经注册上GPRS网络。
/***********************************************************
AT+CIPMUX 启动多 IP 连接
************************************************************/
/***********************************************************
AT+CIPSTART 建立TCP连接或UDP连接
************************************************************/
/***********************************************************
AT+CIPSEND 发送数据
************************************************************/
/***********************************************************
AT+CIPSHUT 关闭移动场景 ;关闭后下次连接时本机IP地址将发生改变。
************************************************************/
/***********************************************************
AT+CIPCLOSE 关闭TCP或UDP连接
关闭TCP或UDP连接,移动场景还在 ;下次连接时本机IP地址不变。
************************************************************/
/***********************************************************
AT+CSTT 启动任务并设置接入点APN、用户名、密码
************************************************************/
GPRS Modem实现TCP连接的AT指令主要操作步骤:
AT\r
AT+ccid\r //检测是否装有SIM 卡
AT+cgmr\r //检测软件版本,5.0 以上的才有GPRS 功能支持
AT+csq\r //检测信号质量,确定是否可以登陆上网络;若返回10--31,0之间的信号数字则继续,
如果信号是99,99,则应该考虑不停的的让模块去搜寻网络。
AT+CGCLASS="B"\r //设置模块工作类型
AT+CGDCONT=1,"IP","CMNET"\r
AT+CGATT=1 //激活PDP,获得IP
AT+CIPCSGP=1,"CMNET"\r
AT+CIPSTART="TCP",211.147.18.79,1433\r
AT+CIPSEND\r
> //返回“>”后输入要传输的数据,再发送CTRL+Z,即将所要发送的数据发送到指定IP的服务器上
AT+CIPCLOSE\r //只有在TCP/UDP处于CONNECT OK的状态下才返回OK,否则返回ERROR
AT+CIPSHUT\r //关闭移动场景
一、首先在超级终端下,对模块进行设置:
at OK at+ccid //检测是否装有SIM 卡 +CCID: "89860060190200147245" OK
at+cgmr //检测软件版本,5.0 以上的才有GPRS 功能支持
534_09gg.2C2 1747684 080602 16:50 OK
at+csq //检测信号质量,确定是否可以登陆上网络
+CSQ: 28,0 OK at+CGCLASS="B" //设置模块工作类型 1) OK
AT+CGDCONT=1,"IP","CMNET" //上网设置,只有开通GPRS 功能的SIM 卡才 可以 OK AT+CSQ 2) +CSQ: 27,0 OK
AT+CGACT=1,1 //激活网络 OK
AT+CGREG? //检测是否登陆上GPRS 网络 +CGREG: 0, 1 //成功登陆 OK
AT+IPR=0; //更改串口速率自适应 OK
AT&W //保存设置
1.AT命令语法:
所有命令行必须以AT或at作为开头,以回车(<CR>)作为结尾。
响应通常紧随命令之后,它的样式是“<回车><新行><响应内容><回车><新行>”即:(<CR><LF><响应内容><CR><LF>)
AT命令从语法上可以分为三类:“基础类”“S参数类”“扩展类”。
2.GSM模块可以被称为如下术语:
1)ME(移动设备)
AT + CMGF 选择短消息格式
AT + CSCS 选择TE字符集
AT + CSMP 设置短消息文本模式参数
AT + CMGS 发送短消息
/*********************************/
sent_byte(uchar data)
{
while((IFG1 & UTXIFG0)== 0);
U0TXBUF = data;
}
sent_string(uchar *p)
{
uchar *a;
a = p;
do
{
p = a;
while(*p!='\0')
{
sent_byte(*p);
p++;
}
}
while(!((Rbuf[0]=='O')&&(Rbuf[1]=='K')));
w = 0;
P4OUT = 0x0f;
}
/************************************/
sent_ph(uchar *data)
{
while(*data != '\0')
{
sent_byte(*data);
data++;
}
}
sent_data(uchar *data)
{
while(*data != '\0')
{
sent_byte(*data);
data++;
}
sent_byte(0x1A); //CTRL + Z 发送数据终止符,开始数据发送
}
SIM900_TCPIP_Application
AT + CIPMUX:启动多IP连接
AT+CIPMUX=<n> 被用来选择TCPIP连接模式,当n=0时,为单路连接模式;当n=1时,为多路连接模式;
默认配置为单路连接模式。对于单路连接模式,SIM900支持透明传输模式和非透明传输模式。
AT+CIPMODE=<n>被用来选择TCPIP应用模式,当n=0时,支持非透明模式(正常模式);当n=1时,
为透明模式。默认配置为非透明模式,在该模式下SIM900有三种工作模式,TCP客户端,UDP客户端和TCP服务器。
如何去建立一个TCP客户端连接:
首先,在任何TCP / UDP的相关操作之前设置模块应连接到GSM或GPRS网络。
用户可以使用命令“AT+ CREG?”和“AT+ CGATT?”查询GSM网络注册状态的模块是否已连接到GPRS服务。
AT+CPIN? //查询PIN
+CPIN:READY //MT不需要任何密码
OK
AT+CSQ=? //信号质量查询
+CSQ:20,0 //来自ME的接收信号强度指示和信道误码率
OK
AT+CREG? //查询网络注册信息
+CREG:0,1 //关闭显示网络注册未知结果码,注册的,归属网络
OK
AT+CGATT? //查询附着和分离GPRS业务
+CGATT:1 //附着状态
OK
其次,用户应该使用命令组AT+ CSTT,AT+ CIICR和AT+ CIFSR启动任务,激活无线连接。
最后,用户可以通过AT命令(AT + CIPSTART=“TCP”,“IP服务器的地址”,“服务器的端口号”)建立SIM900和服务器之间的TCP连接。
如果连接成功建立,将会从模块返回响应“CONNECT OK”。
现在,用户可以用“AT + CIPSEND”命令将数据发送到服务器。
“AT+ CIPSEND”将返回推进符号“>”,用户应在“>”然后发出CTRL+ Z(0x1A的)发送数据写入。
如果发送成功,它会回应“SEND OK”。
如果有数据来自服务器,模块将自动从串行端口接收的数据。
用户可以关闭与“AT+ CIPCLOSE”命令的TCP连接。
下面是TCP连接到远程服务器的一个例子。
AT+CGATT? //查询附着和分离GPRS业务
+CGATT:1 //附着状态
OK
AT+CSTT=“CMNET”//启动任务并设置接入点APN、用户名、密码
OK
AT+CIICR //打开无线连接(GPRS 或者 CSD)
OK
AT+CIFSR //获取本地IP地址
10.78.245.128
AT+CIPSTART=“TCP”,“116.228.221.51”,“8500”//建立TCP连接或注册UDP端口号
OK //格式正确
CONNECT OK //说明TCP连接已经成功建立
AT+CIPSEND //发送数据
> hello TCP sever//
SEND OK //数据发送成功
hello sim900 //服务器返回数据
CLOSED //服务器断开连接
如何建立一个UDP客户端连接
AT+CGATT? //查询附着和分离GPRS业务
+CGATT:1 //附着状态
OK
AT+CSTT=“CMNET”//启动任务并设置接入点APN、用户名、密码
OK
AT+CIICR //打开无线连接(GPRS 或者 CSD)
OK
AT+CIFSR //获取本地IP地址
10.77.65.18
AT+CIPSTART=“UDP”,“116,228,221.51”,"9600"//建立UDP连接,远端IP地址,远端服务端口号
CONNECT OK //UDP连接成功建立
AT+CIPSEND
> sim900 UDP test
SEND OK //只知道数据已经从端口发送出去,但不知道数据是否已经到达服务器
UDP test
AT+CIPCLOSE
CLOSE OK
如何建立一个TCP连接服务器
在单一连接模式下,当配置为TCP服务器,SIM900只允许一个客户端连接进来。
用户应该使用命令“AT+ CIPSERVER=1,”<port>“启动服务器功能,并设置监听端口。
如果成功的话,将返回响应“SERVER OK”,而现在服务器开始监听TCP端口。
然后,用户应使用命令“AT+ CIFSR”来获取本地IP地址,这是服务器的IP地址。
如果客户端连接到服务器成功,远程客户端的IP地址将在服务器这边被显示。
并且服务器可以从远程端接收的TCP数据。
用户还可以使用命令AT + CIPSEND将数据发送到远程客户端。
用户也可以使用“AT+ CIPSERVER=0”关闭监听状态。此外,用户可以使用AT+ CIPCLOSE关闭TCP连接。
AT+CGATT? //查询附着和分离GPRS业务
+CGATT:1 //附着状态
OK
AT+CIPSERVER=1,1234 //开启服务器配置,端口号1234
OK
SERVER OK //TCP服务器已经成功建立
AT+CIFSR //获取本地地址
10.78.33.227
AT+CIPSTATUS
OK
STATE:SERVER LISTENING //查询当前状态:监听
REMOTE IP:10.78.103.220 //接入远程客户端
hello server //接收到远程客户端的数据
AT+CIPSEND
>hello client //向远程客户端发送数据
SEND OK
AT + CIPSERVER = 0 //关闭当前监听状态
OK
SERVER CLOSE
hello sim900
AT+CIPCLOSE //关闭TCP或UDP连接
CLOSE OK
UDP扩展模式
在UDP扩展模式下,SIM900能接收到来自UDP数据
AT+CGATT? //查询附着和分离GPRS业务
+CGATT:1 //附着状态
OK
AT+CSTT //启动任务并设置接入点APN、用户名、密码
OK
AT+CIICR //打开无线连接(GPRS 或者 CSD)
OK
AT+CIFSR //获取本地IP地址
10.92.17.107
AT+CLPORT="UDP",8888 //设置本地UDP端口
OK
AT+CIPSRIP=1 //显示发送方的IP地址和端口号
OK
AT+CIPHEAD=1 //设置IP头,格式“+IDP,data length:”
OK
AT+CIPUDPMODE=1 //设置UDP扩展模式
OK
AT+CIPSTART="UDP","116.228.221.51",9600 //启动UDP与远端服务器的连接
OK
CONNECT OK
AT+CIPUDPMODE?
+CIPUDPMODE:1,"116.228.221.51",9600
OK
RECV FROM: 116.228.221.51:9600 //接收来自不同IP地址和端口的数据
+IPD,5,test1
RECV FROM: 116.228.221.51:1234
+IPD,5,test2
RECV FROM:10.78.103.220:5678
+IPD,5:test3
AT+CIPSEND
> Hello 9600
SEND OK
AT+CIPUDPMODE=2,"211.136.131.65",4500
OK
AT+CIPUDPMODE?
+CIPUDPMODE:1,"211.136.131.65",4500
OK
AT+CIPSEND
>Hello 4500
SEND OK
SIM800L AT command的更多相关文章
- ifconfig: command not found(CentOS专版,其他的可以参考)
ifconfig: command not found 查看path配置(echo相当于c中的printf,C#中的Console.WriteLine) echo $PATH 解决方案1:先看看是不是 ...
- scp报错 -bash: scp: command not found
环境:RHEL6.5 使用scp命令报错: [root@oradb23 media]# scp /etc/hosts oradb24:/etc/ -bash: scp: command not fou ...
- ENode框架单台机器在处理Command时的设计思路
设计目标 尽量快的处理命令和事件,保证吞吐量: 处理完一个命令后不需要等待命令产生的事件持久化完成就能处理下一个命令,从而保证领域内的业务逻辑处理不依赖于持久化IO,实现真正的in-memory: 保 ...
- 设计模式(六):控制台中的“命令模式”(Command Pattern)
今天的博客中就来系统的整理一下“命令模式”.说到命令模式,我就想起了控制台(Console)中的命令.无论是Windows操作系统(cmd.exe)还是Linux操作系统(命令行式shell(Comm ...
- GET command找不到
谷歌的: On running a cronjob with get command, I was getting the following error. /bin/sh: GET: command ...
- source /etc/profile报错-bash: id:command is not found
由于误操作导致 source /etc/profile 报错 -bash: id:command is not found 此时,linux下很多命令到不能能用,包括vi ls 等... 可以使用 e ...
- Webform(七)——内置对象(Session、Application)和Repeater的Command操作
内置对象:用于页面之间的数据交互 为什么要使用这么内置对象?因为HTTP的无状态性. 一.内置对象 (一)Session 跟Cookies一样用来存储用户数据 1.Session.Cookies对比 ...
- MDK st-link下载STM32程序出现Internal command error和Error:Flash download failed. Target DLL
MDK st-link下载STM32程序出现Internal command error和Error:Flash download failed. Target DLL 是因为目标板的芯片处于休眠 ...
- mac 修改command+q 退出
实在受不了! 在chrome中command+w 是关闭当前页面,command+q 退出浏览器: 经常查阅资料打开了N多个窗口,关闭时不小心将command+q当command+w按: so ... ...
随机推荐
- 「题解」「2014 NOI模拟赛 Day7」冒泡排序
目录 题目 考场思考 正解 题目勾起了我对我蒟蒻时代的回忆,虽然我现在也蒟蒻 题目 点这里 可能链接会挂,在网上搜题目就有. 毕竟 \(BZOJ\) 有点老了... 考场思考 本来以为十分友善的一道题 ...
- Spring Boot 定时任务 Quartz 使用教程
Quartz是一个完全由java编写的开源作业调度框架,他使用非常简单.本章主要讲解 Quartz在Spring Boot 中的使用. 快速集成 Quartz 介绍 Quartz 几个主要技术点 Qu ...
- 吴裕雄 python 神经网络——TensorFlow训练神经网络:MNIST最佳实践
import os import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data INPUT_N ...
- lnmp1.5安装memcache
1.安装libevent 由于Memcache用到了libevent这个库用于Socket的处理,所以需要安装libevent. # wget http://www.monkey.org/~provo ...
- 测试者出的APP测试面试题
测试者出的APP测试面试题 一.开场问题:(自由发挥) 1.请自我介绍一下: 2.为什么离开上一个公司呢? 3.做测试多久了?以前做过哪些项目?你们以前测试的流程是怎样的?用过哪些测试工具? 4.你觉 ...
- 设计模式课程 设计模式精讲 3-10 里氏替换原则coding
1 代码演练 1.1 继承关系判别(是否是真正意义的继承) 1.2 入参控制 1.3 出参控制 1 代码演练 1.1 继承关系判别(是否是真正意义的继承)(其实我觉得这个例子有点牵强) 1.1.1 反 ...
- SQL SERVER 2005还原差异备份、日志备份 2012-03-29 11:43
其实要备份,还原最安全最有保障的是完全备份.但是完全备份肯定是需要更多的磁盘空间的开销.尤其是数据量比较大的.比如基数是500M,每天的增长量为10M,那么第一次完全备份是500M,第二次是510M, ...
- icos下配置snake test
Topo: # $language = "Python" # $interface = "1.0"# Author:Bing Song# Date:6/21/2 ...
- Java基础 -2.6
String字符串 在任何语言里面 都没有提供所谓的字符串这种基本数据类型,但是从实际的使用上来讲呢,各个编程语言 为了方便程序的开发,也都会提供有字符串的相应描述 在进行字符串变量使用的时候也可以使 ...
- 夯实Java基础(二十一)——Java反射机制
1.反射机制概述 Java反射机制是指程序在运行状态中,对于任何一个类,我们都能够知道这个类的所有属性和方法(包括private.protected等).对于任何一个对象,我们都能够对它的属性和方法进 ...