LiteOS通信模组教程01-AT指令玩转WIFI通信

LiteOS通信模组教程01-AT指令玩转WIFI通信,第1张

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

指令:AT

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

示例

指令:AT+GMR

功能:查询模组固件版本信息

示例:

指令:AT+RST

功能:软复位模组

示例:

使用下面的命令设置模组的工作模式为 softAP 与 Station 模式共存:

示例:

使用下面的命令将模组连接到一个可以上网的无线路由器上,或者可以正常上网的手机热点也可以,其中 SSID 是热点名称, password 是热点密码:

示例:

连接路由器成功之后,使用下面的命令查询模组获取的ip地址,查询出的ip有两种, APIP 是模组自身作为热点提供的网关ip,另一个 STAIP 就是模组连接路由器自动获取到的ip地址:

示例:

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

这里我们使用第二种方式,使用网络调试助手工具开启一个TCP服务器,具体步骤如下:

首先保证PC与模组连接到的是同一台路由器,在cmd命令行中使用Ping命令测试网络是否是通的:

示例:

确保模组与PC之间可以ping通之后,开启TCP服务器:

接下来填写TCP服务器的监听端口,范围0-65535,注意避开21(FTP)、22(SSH)、80(HTTP)、431(HTTPS)端口即可,这里我使用9999作为测试:

创建成功之后,如图:

接下来还需要关闭Windows Defender 的网络防火墙,否则模组不能访问到PC。在桌面左下角搜索“防火墙”,选择“防火墙和网络保护”,关闭三种网络的防火墙:

接下来还有最后一步,查询PC的ip地址,可以在网络设置中查看:

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

示例:

连接之后,在网络调试助手中也可以看到:

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

示例:

发送成功看PC端的网络调试助手是否收到:

当网络调试助手作为TCP服务器向模组发送数据时,模组会打印出收到的信息:

在串口助手中模组会输出收到的信息:

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

示例:

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

指令:AT

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

示例:

指令:AT+CPIN?

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

示例:

指令:AT+CSQ

功能:查询模组的信号强度,第一个值为0-31则正常,99为不正常

示例:

指令:AT+CREG?

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

示例:

指令:AT+CERGE?

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

示例:

指令:AT+QIFGTCNT=0

功能:配置当前场景

示例:

指令:AT+QICSGP=1, "CMNET"

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

示例:

指令:AT+QIMODE=0

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

示例:

指令:AT+QIDEACT

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

示例:

指令:AT+QIREGAPP

功能:启动任务并设置接入点APN、用户名和密码

示例:

指令:AT+QIACT

功能:激活移动场景

示例:

指令:AT+QILOCIP

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

示例:

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

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

这里的Python程序如下:

运行:

效果如下:

查询ip地址:

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

示例:

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

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

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

示例:

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

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

示例:

BC35-G 是一款高性能、低功耗的多频段 NB-IoT 无线通信模块,支持 B1/B3/B8/B5/B20/B28 频段,在设计和AT指令上与BC95兼容。

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

指令:AT

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

示例:

指令:AT+CSQ

功能:返回从 UE 接收到的信号强度指示 <rssi> 和信道误码率 <ber>,其中第一个值rssi应当在0-31之间,如果为99则表示信号无法检测,第二个参数ber因为模组当前不支持,所以始终为99。

示例:

指令:AT+CEREG?

功能:查询当前 EPS 网络注册状态,该指令返回的第一个参数为0则表示禁止网络注册URC,第二个参数表示网络注册状态,1表示已注册本地网,5表示已注册漫游网络,其余值则表示注册失败。

示例:

指令:AT+CGATT?

功能:该命令用于查询当前是否将 UE 附着于 PS 域,返回值为1则表示已附着,即网络激活成功。

示例:

指令:AT+CGPADDR

功能:该命令用于查询模组当前的ip地址。

示例:

由于NB-IoT模组可以直接对接IoT平台,所以在单独测试使用UDP连接时,需要 在激活网络成功之后,在获取ip地址之前,关闭IoT平台注册功能

使用如下命令禁止该功能:

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

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

这里的Python程序如下:

运行:

效果如下:

使用AT命令连接UDP服务器,首先需要创建一个 UDP 类型的 Socket,创建socket的指令如下:

其中第一个参数是socket类型,DGRAM表示UDP,STREAM表示UDP;第二个参数表示协议类型,UDP 为 17, UDP 为 6,最后一个参数指定socket使用的本地端口,如果为0则表示随机分配。

所以创建UDP socket的示例如下:

指令:

其中第一个参数是由 AT+NSOCR 返回的 Socket 编号,第二个参数是UDP服务器ip地址,也可以使用域名,第三个参数是UDP服务器开启监听的端口,第四个是发送数据的长度,最后一个是要发送的十六进制数据。

示例:

发送之后,在服务器端也可以看到:

模组发送数据到服务器后,服务器会自动发送消息,模组会打印出收到信息的提示:

该信息表示编号为1的socket收到了18字节的数据。

可以使用如下命令查看收到的数据,第一个参数是socket编号,第二个参数是查询的数据长度:

查看刚刚收到的数据:

其中收到的数据为倒数第二个参数,是十六进制格式:

使用 在线工具 将数据转化为字符串即可:

通信完毕之后,可以使用下面的命令关闭最开始创建的socket:

示例:


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/487156.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-12
下一篇2023-06-12

发表评论

登录后才能评论

评论列表(0条)

    保存