ESP32在网上的资料很多,但问题也各式各样。由于ESP32主要做wifi功能,因此对于以太网的资料也很少。相对应的开发板也很少。

本人使用的是淘宝上购买的雨甄机电的带网口的开发板(如下图)安信可ESP-32S

参考资料主要以热心博主《兴趣使然_》的(5条消息) ESP32 单片机学习笔记 - 06 - (以太网)Ethernet转Wifi_esp32 以太网_兴趣使然_的博客-CSDN博客这篇文章。

对于我一个小白来说,先得学习一些理论知识。

首先,以太网是局域网的通讯方式,以太网是具有TCP/IP协议,以太网常用接口有RJ45接口。

然后以太网的组成包括mac和phy芯片和RJ45的座子。然后一个芯片说支不支持网络说的是是否具有内部mac,不支持的就需要外接W5500等模块(W5500就是把mac和phy组合到一个芯片上,然后利用SPI的方式和主板通信)。(mac和phy芯片中间有种通信方式叫RMII或MII,类似于SPI的东西,对于运用来说,两者主要区别就是一个的信号线多,一个的信号线少)。(理论知识太多了,我也看不到太懂,这就是我的理解)。

然后利用VS code 创建一个工程,创建工程之前需要先下载ESP的插件,下载方法网上很多。下载完毕后,打开vscode,此时快捷方式输入ctrl+shift+p,打开工程示例。

打开工程示例后,根据左边的目录找到ethernet>>basic

选中目标项目后进行创建

此时项目创建完成(也可以使用idf工具创建,但代码不好编辑查找)

由于vs code编译较慢,因此,采用idf编译,烧录和观察,采用vs cod来编辑代码

此时打开idf工具,找到此项目(由于idf工具没有ls等命令,只有cd,因此需要记得自己项目保存的位置)

因为第一次编译较慢,因此我们先编译一下(骗人的,第一次编译慢,之后每次改配置编译都慢),输入编译命令 idf.py build

等待编译完成

编译完成后,我们先将代码烧录进入开发板,由于我采用的开发板是带烧录功能的,因此直接使用type C线接好就可以烧录。输入烧录命令idf.py -p COM7 flash  (COM7具体情况来输入)

烧录完成后,此时可以运行一下观察现象(一般情况下,此时运行没有问题,就算完成了,但没有问题是基本不可能的,接坑才刚刚开始)

输入运行命令:idf.py -p COM7 monitor

此时观察log

我们出现的现象是

从打印我们可以看出是内存的问题,此时我们就需要修改配置了,修改方法有两种

方法一:采用idf工具修改,输入配置命令:idf.py menuconfig

输入命令idf.py menuconfig打开配置界面,进入Serial flasher config,按需将Flash size改为自己的大小。比较常用的两个模组:安信可ESP-32S乐鑫ESP32-WROOM-32,flash都是4MB。连续按Esc退出,按y保存。

此时再编译烧录,发现代码已经正常运行,不需要再进行修改(这就结束了吗?哦呜阔斯诺特)我们的代码之所以能正常运行,是因为之前已经进行了配置,正常情况下你可能会出现以下问题

  1. 不断重启
  2. 复位超时

  1. w550错误

这些都是配置的问题,如果配置不对,你是解决不了这些问题的。

接下来就看看我们的配置(idf工具自行配置,作者英文不好,也不擅长使用命令,配置方式还是配置命令到配置界面配置)

按照如下方式进行配置:

不配置时钟会导致不断重启,参考(5条消息) 66 ESP32 ethernet\basic实验记录_esp32 以太网_Chasing_Chasing的博客-CSDN博客进行时钟配置

配置完毕后再编译代码烧录观察。如果不出意外就会出现正常打印到

Ethernet Started

看起来是正常了。但是等待一段时间后,后出现错误打印,也可能是我哪里配置的原因,反正是正常可用了(如下):

此时是因为网线没插或者网线坏了等原因,我们只需要接入正常网线即可出现如下打印,此时,网口配置完成(如果还出现错误,则需要自行排查了)

(什么是正常网线呢?一般情况下,未插入网线时,RJ45亮橙(黄)色灯,当网线正常时亮绿灯,可以数据交互时橙(黄)色灯闪烁,所以我们的正常情况为:绿灯亮起,橙(黄)色灯闪烁。

如何检验是否正常工作,一般我们采用的都是ping的方式,也就是拿两个网线将电脑和ESP32都接到同一个路由器,电脑上打开命令窗口,然后输入指令ping 192.168.1.1查看连接情况,ping通了就可以证明配置完成且可用。

此时,配置完成。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐