玩转RT-Thread系列教程(12)--WIFI模组的使用

16 篇文章 6 订阅
14 篇文章 6 订阅

玩转RT-Thread系列教程(12)–WIFI模组的使用

本章节也是最有意思的章节,我将带你手把手物联网,让你直观的感受RTT软件包的便捷以及强大之处!

一、添加at_device软件包

1.1、配置Cubemx

根据正点原子开发板原理图,我们可以看出wifi使用到了串口3,记得用跳线帽将串口3与GBC接口连接。

使能串口3

1.2、打开env配置

使能串口3

1.3、使能at_device

配置用户信息,输入您的wifi和密码

1.4、更新软件包

1.5、生成mdk工程

二、启动测试AT组件

打开已经生成好的mdk工程,我们发现自动添加了两个文件,分别为AT、at_device

2.1、测试前的准备工作

2.1.1、首先让我们先来了解一下AT指令吧

AT 命令集是一种应用于 AT 服务器(AT Server)与 AT 客户端(AT Client)间的设备连接与数据通信的方式

  • AT 功能的实现需要 AT Server 和 AT Client 两个部分共同完成。
  • 前缀由字符 AT 构成,主体由命令、参数和可能用到的数据组成;结束符一般为 <CR><LF> ("\r\n")。
  • AT Server 和 AT Client 之间支持多种数据通讯的方式(UART、SPI 等),最常用的是串口 UART 通讯方式。

本次我们使用的通信模组为安信可公司出版的ESP8266,以下是改通讯模组常用AT指令:

  • AT+RST 复位模组
  • AT+GMR 查询版本信息
  • AT+CWMODE=1 开启模组透传
  • AT+CWJAP=“WIFI名称”,“WIFI密码” 模组作为STA模式连接wifi
  • AT+CIFSR 查看分配的IP地址
  • AT+CIPSTART=“TCP”,“xxxxx”,1883 使用TCP方式连接服务器
  • AT+CIPMODE=1 开启透传
  • AT+CIPSEND 发送数据

2.2、修改at_client+at_device_esp8266文件

修改响应最大支持的接收数据的长度为128,防止缓冲区内存过小

将rt_thread_mdelay函数的延迟时间修改成1000ms,让AT+RST有足够时间来运行

2.3、编译、下载、验证

可以看到,AT_Client已经成功初始化,并且模组已经成功的连接到wifi。

测试联网

可以看到输入ifconfig已经成功的获取到了ip地址

Ping下百度,可以收到数据包,证明我们的wifi已经成功联网了

三、可能出现的错误汇总

3.1、超时问题

 \ | /
- RT -     Thread Operating System
 / | \     4.0.2 build Aug 16 2019
 2006 - 2019 Copyright by rt-thread team
[32m[I/sal.skt] Socket Abstraction Layer initialize success.[0m
[32m[I/at.clnt] AT client(V1.3.0) on device uart3 initialize success.[0m
[0m[D/at.dev] the network interface device(esp0) set up status[0m
[0m[D/at.dev] esp8266 device(esp0) initialize start.[0m
[31m[E/at.clnt] Read response buffer failed. The Response buffer size is out of buffer size(256)![0m
[0m[D/at.clnt] execute command (ATE0) timeout (5000 ticks)![0m
[32m[I/at.dev] esp8266 device(esp0) initialize retry...[0m

1.Read response buffer failed. 缓冲区内存过小,那我们就直接增大就好了

2.command (ATE0)运行超时,ATE0是AT指令中的关闭回显,出现这个问题的原因可能是AT组件初始化时间过短

解决缓冲区内存过小问题

修改响应最大支持的接收数据的长度为128,防止缓冲区内存过小

解决ATE0运行超时问题

AT_SEND_CMD(client, resp, "AT+RST");
/* reset waiting delay */
rt_thread_mdelay(2000);//增加延时
/* disable echo */
AT_SEND_CMD(client, resp, "ATE0");

3.2、不支持AT+CIPDNS_CUR?指令—8266的固件版本太低

解决`AT+CIPDNS_CUR?指令问题

访问乐鑫的官网去下载更新版本的AT固件,https://www.espressif.com/zh-hans/support/download/at,并烧录固件即可

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
RT-Thread是一款基于实时操作系统的开源嵌入式软件,用于支持小型设备的开发。而SDIO是一种用于在嵌入式系统中连接外部设备的接口标准,它可以用于连接SD卡、WiFi模块等。RT-Thread支持使用SDIO接口连接WiFi模块,实现设备的无线联网功能。 RT-Thread提供了SDIO总线驱动和WiFi协议栈实现,可以与SDIO连接的WiFi模块进行通信。用户在使用RT-Thread时,可以通过配置和调用相应的函数实现与SDIO WiFi模块的交互。通过这种方式,开发者可以在嵌入式设备中使用RT-Thread来管理WiFi模块的状态、发送和接收WiFi数据。RT-Thread提供的SDIO WiFi驱动和协议栈实现可以支持常见的WiFi功能,如扫描、连接、断开连接、发送和接收数据等。 使用RT-Thread连接SDIO WiFi模块的好处是,它提供了一种方便、高效的方式来实现嵌入式设备的无线联网功能。开发者可以使用RT-Thread提供的接口来管理和控制WiFi模块,无需自行编写驱动程序和协议栈。这样可以大大简化开发过程,提高开发效率。同时,RT-Thread的架构设计也使得其具备较小的内存占用和快速的启动时间,适合用于资源受限的嵌入式设备。 总结来说,RT-Thread支持SDIO接口连接WiFi模块,可以帮助嵌入式设备实现无线联网功能。它提供了SDIO总线驱动和WiFi协议栈实现,使得开发者可以方便地管理和控制WiFi模块。RT-Thread的设计也使得它成为一款适用于资源受限嵌入式设备的轻量级实时操作系统

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值