SIM300 AT
来源:互联网 发布:电脑怎么使用手机网络 编辑:程序博客网 时间:2024/06/10 09:26
基于SIM300制作的通信模组在工程中使用的非常多,下面总结一下其在网络通信方面的AT指令集应用方法
1、预备步骤:测试GPRS模组和业务是否好用
AT //测试网络连接是否完后
AT+ccid //检测是否装有SIM卡
AT+cgmr //检测软件版本,5.0 以上的才有GPRS 功能支持
AT+COPS? //运营商检测:
响应 +COPS:0
OK 未找到网络
响应 +COPS:0,0,”UNICOM” //联通
OK
响应 +COPS:0,0,”CHINA MOBILE” //移动
OK
AT+csq//检测信号质量,确定是否可以登陆上网络;若返回10--31,0之间的信号数字则继续,
//如果信号是99,99,则应该考虑不停的的让模块去搜寻网络。
2、网络初始化工作
AT+CGCLASS="B"
A->WCDMA: 出厂默认设置
B->GSM/GPRS: AT命令不支持设置此模式?
CG->GPRS Only: AT+CREG?返回未注册,但能pppd拨号
CC->GSM Only: AT+CREG?查看注册上,但pppd不能拨号上网
AT+CGDCONT=1,"IP",”CMNET" //首先定义PDP移动场景
AT+CGATT=1 //激活PDP,返回OK则继续
AT+CIPCSGP=1,"CMNET" //设置模块连接方式为GPRS连接,接入点为“CMNET”
AT+CDNSORIP=0 //0:通过IP访问
//1:通过域名访问
AT+CDNSCFG="211.136.17.107" //初始化本地dns,本例为中国移动
3、建立连接
AT+CIPSTART="TCP/UDP",221.216.163.44,2020
TCP/UDP指明是TCP连接还是UDP连接
221.216.163.44是SEVER端的IP地址 2020为端口
连接成功后模块返回:
OK
CONNECT OK
4、发送信息
AT+CIPSEN
发送完此命令后出现一个 ">" 符号,这样就可以在超级终端里输入要发送的信息,输入完毕后按下"ctl+z"发送,即将所要发送的数据发送到指定IP的服务器上
5、关闭连接
AT+CIPCLOSE //只有在TCP/UDP处于CONNECT OK的状态下才返回OK,否则返回ERROR
AT+CIPSHUT //关闭移动场景
6、应用举例:
使用TCP向远端SERVER传输数据
服务器端是一台连接到互联网上的PC机,pc机上可以运行一个接收软件,这种只适合测试模块是使用,其实最后开发时还要自己开发一个socket接收程序,注意该PC机的IP地址必须是公网IP,否则客户端找不到。
1)水木清华BBS访问:
AT+CIPSTART="TCP","166.111.8.238","23"//清华大学telnet服务器
2)自建一个tcp服务器:
在一个具有公网IP的电脑上运行以下服务器程序:
//=============================================================
// 文件名称:tcp_echo_srv.c
// 功能描述:TCP Echo Server
// 维护记录:2011-8-15 V1.0
//=============================================================
#include <stdio.h>
#include <stdlib.h>
#include <string.h> // bzero
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h> // inet_ntop
//=============================================================
// 语法格式: void main(void)
// 实现功能: 主函数,建立一个TCP Echo Server
// 入口参数: 无
// 出口参数: 无
//=============================================================
i<span style="color:#3333ff;">nt main(int argc, char *argv[])
{
char recvbuf[2048]; // 接收缓冲区
int sockfd; // 套接字
struct sockaddr_in servAddr; // 服务器地址结构体
unsigned short port = 8000; // 监听端口
if(argc > 1) // 由参数接收端口
{
port = atoi(argv[1]);
}
printf("TCP Server Started at port %d!\n", port);
//setp 1: 创建TCP套接字
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if(sockfd < 0)
{
perror("Invalid socket");
exit(1);
}
//setp 2: 将socket套接字与端口号、本机IP地址绑定
bzero(&servAddr, sizeof(servAddr)); // 初始化服务器地址
servAddr.sin_family = AF_INET; // 采用IPV4协议
servAddr.sin_port = htons(port); // 邦定端口号
servAddr.sin_addr.s_addr = htonl(INADDR_ANY); //绑定本机IP地址
printf("Binding server to port %d\n", port);
printf("servAddr.sin_addr.s_addr=%d\n",servAddr.sin_addr.s_addr);
if(bind(sockfd, (struct sockaddr*)&servAddr, sizeof(struct sockaddr)) != 0)
{
close(sockfd);
perror("binding err!");
exit(1);
}
//setp 3 将套接字设置为监听模式
if(listen(sockfd, 1) != 0)
{
close(sockfd);
perror("listen err!");
exit(1);
}
printf("waiting client...\n");
while(1)
{
char cliIP[INET_ADDRSTRLEN]; // 用于保存客户端IP地址
size_t recvLen;
struct sockaddr_in cliAddr; // 用于保存客户端地址
size_t cliAddrLen = sizeof(cliAddr);
// 必须初始化!!!
//setp 4:阻塞等待客户端的连接
int connfd = accept(sockfd, (struct sockaddr*)&cliAddr, &cliAddrLen);
// 获得一个已经建立的连接
if(connfd < 0)
{
close(sockfd);
perror("accept err!");
exit(1);
}
inet_ntop(AF_INET, &cliAddr.sin_addr.s_addr, cliIP, INET_ADDRSTRLEN);
printf("client ip = %s\n", cliIP);
//setp 5:读取客户端发送的数据并回送给客户端
while((recvLen = read(connfd, recvbuf, 2048)) > 0)
{
write(connfd, recvbuf, recvLen);
}
close(connfd);
printf("client closed!\n");
}
close(sockfd);
return 0;
}
使用以下方式连接:
AT+CIPSTART="TCP","124.*.*.139","8000"
使用以下命令发送数据:
AT+CIPSEND
服务器会把发送的数据回给你
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2011-10/44723.htm
- SIM300 AT
- SIM300 AT指令集
- SIM300模块AT命令参考
- SIM300模块发送中文短信AT命令
- SIMCOM公司的SIM300的AT指令中文翻译
- SIMCOM公司的SIM300的AT指令中文翻译
- SIMCOM公司的SIM300的AT指令中文翻译
- SIMCOM公司的SIM300的AT指令中文翻译
- SIMCOM公司的SIM300的AT指令中文翻译
- SIMCOM公司的SIM300的AT指令中文翻译
- SIMCOM公司的SIM300的AT指令中文翻译
- SIMCOM公司的SIM300的AT指令中文翻译
- SIMCOM公司的SIM300的AT指令中文翻译
- sim300模块AT指令C语言定义源码
- 基于SIM300和S3C2410的短信收发问题-2(AT指令篇-1)
- ZigBee CC2530发送AT指令通过SIM300实现打电话/发短信
- SIM300指令
- sim300的一些知识点
- PHP伪静态的四种方法总结
- iphone程序内调用谷歌地图
- 系统字节序检测的两种方法
- 黑马程序员学习笔记八——java高新技术
- iphone调用系统电话、浏览器、地图、邮件等
- SIM300 AT
- 类目(Category)概述
- 让一个UIImageView响应点击事件
- 黑马程序员学习笔记七——多线程
- NSTimer的用法
- SQL注入式攻击
- JSP 引擎工作原理
- uva 113 - Power of Cryptography
- com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance