热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

合宙Air724UG模组(4GCat.1通信模组)测试过程

1.环境准备1.1.硬件准备Air724UG官方开发板一条USB线:Air724UGAir723UG支持多种开发方式,如USB上网、标准AT、Lua

1.环境准备


1.1. 硬件准备

Air724UG官方开发板+一条USB线:


Air724UG/Air723UG 支持多种开发方式,如USB上网、标准AT、 Lua脚本二次开发等。

使用串口AT开发的接法如下:

① 使用USB线连接开发板下方标识UART字样的USB口;
② 将旁边的拨动开关拨到UART1一侧;
③ 按下开机键,直至左下角红色LED亮起;

查看电脑设备管理器,可以看到端口即为连接正常:

使用USB连接PC的接法如下:

① 使用USB线连接开发板上方标识USB字样的USB口;
② 将旁边的拨动开关拨到ON一侧;
③ 按下开机键,直至左下角红色LED亮起;

如果正确安装了驱动,查看电脑设备管理器,则可以看到端口:
在这里插入图片描述
还可以使用USB转串口直接连接到开发板的UART1,注意只能连接GND、TXD、RXD,供电还是使用USB供电:


1.2. 软件准备


  • QCOM串口助手
  • Air724UG模组测试AT命令脚本(Air724UG.ini)
  • Windows USB 驱动

1.3. 文档准备


  • 上海合宙Luat 模块 Air724开发板 入门指南(1)
  • Luat 4G模块AT命令手册V4.1.6.pdf

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


AT

指令:AT

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

示例:

ATOK

AT+CPIN?

指令:AT+CPIN?

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

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

AT+CPIN?+CPIN: READYOK

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

AT+CPIN?+CME ERROR: 10

AT+CSQ

指令:AT+CSQ

功能:查询模组的信号强度,第一个值为0-31则正常,99为不正常,第二个参数是信道误码率 bit error rate, 只有通话建立后, 才能获知该值。

示例:

AT+CSQ+CSQ: 19,99OK

AT+CREG?

指令:AT+CREG?

功能:查询模组是否注册上GSM网络,+CREG:0,1 表示已注册上本地网,+CREG:0,5表示注册上漫游网。

示例:

AT+CREG?+CREG: 0,1OK

AT+CGREG?

指令:AT+CERGE?

功能:查询模组是否注册上GPRS网络,+CGREG:0,1 表示已注册上本地网,+CGREG:0,5表示注册上漫游网。

示例:

AT+CGREG?+CGREG: 0,1OK

3. 激活移动场景


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



AT+CIPMUX=0

指令:AT+CIPMUX=0

功能:设置为单路连接

示例:

AT+CIPMUX=0OK

AT+CIPMODE=0

指令:AT+CIPMUX=0

功能:设置为非透传模式

示例:

AT+CIPMUX=0OK

此命令只能在AT+CIPMUX=0的状态下(单链路模式)设置。



AT+CSTT=“CMNET”

指令:AT+CSTT=“CMNET”

功能:设置GPRS的APN,移动CMNET,联通UNINET

示例:

AT+CSTT="CMNET"OK

AT+CIPHEAD

指令:AT+CIPHEAD=1

功能:设置接收到消息时显示IP头,格式为:"+IPD,data length:"

示例:

AT+CIPHEAD=1OK

AT+CIPSHUT

指令:AT+CIPSHUT

功能:关闭移动场景

示例:

AT+CIPSHUTSHUT OK

AT+CIICR

指令:AT+CIICR

功能:激活移动场景

示例:

AT+CIICROK

AT+CIFSR

指令:AT+CIFSR

功能:查询本机IP地址

示例:

AT+CIFSR10.152.75.128

4. 基于 TCP 协议连接远程服务器通信实例


4.1. 搭建远程TCP服务器

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


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

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


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


这里的Python程序如下:

# tcpserver.pyfrom socket import *host = ''
port = 8902# 创建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则关闭socketif "quit" in data.decode():break# 关闭socketclient_socket.close()server_socket.close()print("socket closed.")break
except:client_socket.close()server_socket.close()print("socket closed.")

运行:

python3 tcp-server.py

效果如下:


4.2. 模组连接服务器

使用AT命令连接TCP服务器,其中第一个参数是协议类型,“TCP”则表示使用TCP协议,第二个参数是TCP服务器ip地址,也可以使用域名,最一个参数是TCP服务器开启监听的端口:

AT+CIPSTART=,,

示例:

AT+CIPSTART="TCP",117.50.111.72,8902OK+CSCON: 1CONNECT OK

连接之后,在服务器端也可以看到:
在这里插入图片描述

在多链路模式下(+CIPMUX=1),AT指令为:

AT+CIPSTART=,,,

返回结果为:

AT+CIPSTART=0,TCP,117.50.111.72,8902OK0, CONNECT OK

4.2. 模组接收消息

模组连接到服务器后,服务器会自动发送消息,所以接收到后打印出了:

+CSCON: 1
+IPD,14:Hello, client!

4.3. 模组主动发送消息

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

AT+CIPSEND=

示例:

AT+CIPSEND> helloSEND OK

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


4.4. 关闭TCP连接

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

AT+CIPCLOSE=

示例:

AT+CIPCLOSECLOSE OK

接收更多精彩文章及资源推送,欢迎订阅我的微信公众号:『mculover666』。


推荐阅读
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
author-avatar
青岛新侨妙妙
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有