移远 M26 GSM模组(2G通信模组)AT指令测试 TCP 通信过程

您所在的位置:网站首页 移远m26模块 移远 M26 GSM模组(2G通信模组)AT指令测试 TCP 通信过程

移远 M26 GSM模组(2G通信模组)AT指令测试 TCP 通信过程

2024-07-15 16:54:57| 来源: 网络整理| 查看: 265

移远M26通信模组

移远 M26 GSM模组(2G通信模组)AT指令测试 TCP 通信过程_数据M26 是一款超小的四频 (850/900/1800/1900MHz)LCC 封装 GSM/GPRS 模块,尺寸仅为15.8mm×17.7mm×2.3mm,主要特点有:

供电电压3.3V~4.6V,待机电流低至1.3mA 支持音频功能、蓝牙功能 支持移远远程升级技术 QuecFOTATM 升级 内嵌网络服务协议栈,支持多个 Socket 及 IP 地址 支持的协议:TCP/UDP/PPP/FTP/HTTP/SMTP/CMUX/SSL 1. 环境准备 1.1. 硬件准备 小熊派开发板

移远 M26 GSM模组(2G通信模组)AT指令测试 TCP 通信过程_缓存_02

M26通信模组

移远 M26 GSM模组(2G通信模组)AT指令测试 TCP 通信过程_数据_03

小熊派开发板右上角的开关拨到AT-PC一端,则模组直接与PC相连,方便调试。

1.2. 软件准备 QCOM串口助手 M26通信模组测试AT命令脚本(M26.ini)

下载地址:https://github.com/Mculover666/QCOM_Tools_Scripts

下载之后在QCOM中导入M26测试脚本的方法如下:

移远 M26 GSM模组(2G通信模组)AT指令测试 TCP 通信过程_缓存_04移远 M26 GSM模组(2G通信模组)AT指令测试 TCP 通信过程_服务器_05移远 M26 GSM模组(2G通信模组)AT指令测试 TCP 通信过程_M26_06

1.3. 文档准备 M26 AT命令手册

此文档来自于移远官方!阅读本教程时,关于AT指令的详细说明请参考该文档!

2. 模组信号查询与网络查询AT指令 AT

指令:AT

功能:测试AT指令功能是否正常

示例:

AT OK AT+CPIN?

指令:AT+CPIN?

功能:查询SIM卡是否正常,返回ready则表示SIM卡正常

示例,如果SIM卡插入成功,则返回结果为:

AT+CPIN? +CPIN: READY OK

如果未插入SIM卡,则返回结果为:

AT+CPIN? +CME ERROR: 10 AT+CSQ

指令:AT+CSQ

功能:查询模组的信号强度

响应:第一个值rssi为信号值,0-31则正常,第二个值ber为误码率,99为不可测。

+CSQ: ,

示例:

AT+CSQ +CSQ: 17,0 OK AT+CREG?

指令:AT+CREG?

功能:查询模组是否注册上GSM网络

响应:第一个参数n为0表示禁用网络注册非请求结果码,第二个参数stat为1表示已注册上本地网,为5表示注册上漫游网,其余值表示注册不成功。

+CREG:,

示例:

AT+CREG? +CREG: 0,1 OK AT+CGREG?

指令:AT+CERGE?

功能:查询模组是否注册上GPRS网络

响应:第一个参数n为0表示禁用网络注册非请求结果码,第二个参数stat为1表示已注册上本地网,为5表示注册上漫游网,其余值表示注册不成功。

+CGREG:,

示例:

AT+CGREG? +CGREG: 0,1 OK 3. 激活移动场景,获取ip地址

必须在查询GPRS网络已正常注册网络的情况下进行本节实验!

AT+QIFGCNT=0

指令:AT+QIFGCNT=0

功能:配置当前场景

示例:

AT+QIFGCNT=0 OK AT+QICSGP=1, “CMNET”

指令:

AT+QICSGP=,

功能:

参数mode设置连接模式,0表示CSD连接模式,1表示GPRS连接模式; 参数apn设置GPRS的APN(移动CMNET、联通UNINET);

示例:

AT+QICSGP=1, "CMNET" OK AT+QIDEACT

指令:AT+QIDEACT

功能:在激活GPRS场景之前先关闭GPRS场景,确保连接正确

示例:

AT+QIDEACT DEACT OK AT+QIMUX=1

指令:

AT+QIMUX=

功能:

mode为1表示启用多路链接模式; mode为0表示不启用多路链接模式;

示例:

AT+QIMUX=1 OK AT+QIMODE=0

指令:

AT+QIMODE=

功能:设置数据传输模式,mode为0表示非透传模式,mode为1表示透传模式

示例:

AT+QIMODE=0 OK AT+QIREGAPP

指令:AT+QIREGAPP

功能:启动任务设置接入点APN

示例:

AT+QIREGAPP OK AT+QIACT

指令:AT+QIACT

功能:激活移动场景

示例:

AT+QIACT OK AT+QILOCIP

指令:AT+QILOCIP

功能:查看模组获取的IP地址

示例:

AT+QILOCIP 100.125.208.23 4. 基于 TCP 协议连接远程服务器通信实例 4.1. 搭建远程TCP服务器

首先我们需要搭建一个TCP服务器,有两种方式:

在服务器上使用Python、Java、C#等语言自行编写服务器程序; 在本地PC上使用网络调试助手开启TCP服务器;

因为M26模组直接注册的是公网ip地址,所以这里我们使用第一种方式,在Linux服务器上运行一个Python编写的tcp测试服务器:

本地PC使用的是局域网,公网不可以直接根据ip地址访问到本PC,需要进行内网穿透,不推荐使用。

这里的Python程序如下:

# tcp-server.py from socket import * host = '' port = 8000 # 创建server socket server_socket = socket(AF_INET,SOCK_STREAM) # 绑定socket监听地址 server_addr = (host,port) server_socket.bind(server_addr) # 开始监听,最大允许连接数5 server_socket.listen(5) # 处理连接请求 try: while True: print('waiting for connect...') #阻塞等待客户端的连接 client_socket, client_addr = server_socket.accept() # 连接成功后,打印客户端信息 print('a client connnect from:', client_addr) while(True): # 向客户端发送数据 client_socket.send('Hello, client!'.encode()) # 接收客户端的数据 data = client_socket.recv(1024) print('recv data is ', data.decode()) # 接收到quit则关闭socket if "quit" in data.decode(): break # 关闭socket client_socket.close() server_socket.close() print("socket closed.") break except: client_socket.close() server_socket.close() print("socket closed.")

运行:

python3 tcp-server.py

效果如下:

移远 M26 GSM模组(2G通信模组)AT指令测试 TCP 通信过程_ip地址_07

4.2. 模组连接服务器

M26作为 TCP 客户端的时候,连接TCP服务器的指令需要分以下两种情况对待。

① 如果是单链路模式(之前设置AT+QIMUX=0),则指令如下:

AT+QIOPEN=,/,

② 如果是多链路模式(之前设置AT+QIMUX=1),则指令如下:

AT+QIOPEN=,,/,

其中每个参数的意义如下:

index:0-5,多链路模式下有效,表示sokcet连接序号,M26 支持 6 个 SOCKET 同时存在; mode:字符串类型,“TCP”或者“UDP”,表示socket连接模式; Ipaddress:字符串类型,表示服务器ip地址; domain name:字符串类型,表示服务器域名地址; port:整数类型,表示服务器端口号;

两条指令的响应:

① 如果格式正确,返回:

OK

如果格式错误,返回:

ERROR

② 如果连接成功,返回:

[,] CONNECT OK

如果连接失败,返回:

[,] CONNECT FAIL

如果该编号的socket已经存在,返回:

ALREAY CONNECT

示例:

AT+QIOPEN=0,"TCP","117.50.111.72",8902 OK 0, CONNECT OK

连接之后,在服务器端也可以看到:

移远 M26 GSM模组(2G通信模组)AT指令测试 TCP 通信过程_ip地址_08

4.2. 模组接收消息

M26模组接收消息有两种模式,一种是接收到后直接打印,另一种是接收到缓存区中,使用AT指令读取,另外,还可以控制接收数据时的IP头是否显示。

4.2.1. 接收后直接打印模式

① 接收后直接打印,不显示IP头(默认模式):

+RECEIVE: 0, 14 Hello, client!

② 接收后直接打印,显示IP头,需要配置:

AT+QIHEAD=1 OK

接收效果如下:

+RECEIVE: 0, 14 IPD14:Hello, client! 4.2.2. 接收后保存到缓存区中

这种模式需要使用AT指令进行配置。

指令:

AT+QINDI=

功能:配置是否缓存接收到的数据

参数说明:

m = 0:默认模式,接收后直接输出到串口; m = 1:缓存模式1,接收到数据将会向串口上报提示(此时可以通过 AT+QIRD 读取缓存的数据),格式为: +QIRDI: ,, m = 2:缓存模式 2;接收到数据将会向串口上报提示,格式为: +QIRDI: ,,,,,

每个 Socket 将建立一个缓存,接收的数据将被保存在缓存中,直到通过 AT+QIRD 读取缓存的数据,缓存数据不应超过400KB。

示例:

AT+QINDI=1 OK

配置之后,模组接收到数据后就只会上报,如下:

+QIRDI: 0,1,0

使用AT指令读取数据:

AT+QIRD=0,1,0,128 +QIRD: 117.50.111.72:8902,TCP,14 Hello, client! OK 4.3. 模组主动发送消息

使用如下的命令即可向TCP服务器发送消息,首先设置要发送数据的字节数,等待模组返回>后,输入要发送的数据即可,如果发送的数据超过了设置的n个字节,则只发送前n个字节,后面的数据被认为是无效数据,不会发送:

AT+QISEND >hello

示例:

Hello, client!AT+QISEND > hello SEND OK

发送成功看服务器上运行的TCP服务器是否收到:

移远 M26 GSM模组(2G通信模组)AT指令测试 TCP 通信过程_服务器_09

4.4. 关闭TCP连接

通信完毕之后,可以使用下面的命令关闭TCP连接:

AT+QICLOSE

示例:

AT+QICLOSE CLOSE OK 5. 域名解析

指令:

AT+QIDNSGIP=


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭