后台-插件-广告管理-内容页广告位一(手机)

您现在的位置是:首页 > 其他 > 物联网物联网

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

2021-06-07 20:59:26物联网人已围观

简介玩转RT-Thread系列教程(12)–WIFI模组的使用本章节也是最有意思的章节,我将带你手把手物联网,让你直观的感受RTT软件包的便捷以及强大之处!一、添加at_device软件包1.1、配置Cubemx根据正点原子开发板原理图,我们可以看出wifi使用到了串口3,记得用跳线帽将串口3与GBC接口连接。使能串口31.2、打开env配置使能串口31.3、使能at_device配置用户信息,输入您的wifi和密码1.4、更新软件包1.5、生成m

玩转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已经成功联网了

三、

四、可能出现的错误汇总

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");

2.不支持AT+CIPDNS_CUR?指令,ESP8266的固件版本太低

解决`AT+CIPDNS_CUR?指令问题

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

文章来源:https://blog.csdn.net/qq_43610430/article/details/117593678

Tags:物联网 rtt 操作系统 嵌入式 stm32 

很赞哦! ()

上一篇:在Ubuntu上实现mqtt通信

下一篇:返回列表

后台-插件-广告管理-内容页广告位二(手机)

相关文章

后台-插件-广告管理-内容页广告位三(手机)

随机图文

后台-插件-广告管理-内容页广告位四(手机)

文章评论

留言与评论(共有 0 条评论)
   
验证码:

本栏推荐

站点信息

  • 文章统计60210篇文章
  • 浏览统计4607次浏览
  • 评论统计1个评论
  • 标签管理标签云
  • 统计数据:统计代码
  • 微信公众号:扫描二维码,关注我们