ESP32 AT 系列 - (一)ESP32 AT 入门指南
发布日期:2021-05-03 00:20:21 浏览次数:25 分类:精选文章

本文共 4085 字,大约阅读时间需要 13 分钟。

目录

介绍

espressif 基于 esp-idf,针对 ESP32 芯片,实现了一些常用的 AT 指令集,链接地址为 。该指令集可用于用户/MCU/PC 同 ESP32 进行交互,也适用于快速进行 ESP32 开发。

一:目的

本文基于 ubuntu 环境和 windows 环境,介绍快速的搭建 ESP32 AT 编译环境和烧写运行过程,供读者参考。

二:硬件准备

  • linux 环境windows 环境

用来编译&烧写&运行等操作的必须环境。

  • ESP32 设备

ESP32 设备包括 ,,,等。

p3

  • USB转UART接口模块

p1

USB 转 UART 接口模块一般采用专用的 USB 转 UART 接口芯片,输出为 TTL 电平,可以和 ESP32 内置的串口(UART)直接连接,使 ESP32 通过 USB 口和计算机通讯,方便、快捷。

三:环境搭建

3.1 编译器环境搭建

编译环境用于编译 ESP32 AT 系列程序,环境搭建请参考 目录下的 esp-idf 中的编译环境搭建。

注意:

以下的 esp-idf 需要是 esp32-at 下的 esp-idf,这个 esp-idf 通常是比较稳定的版本,而不是最新的 esp-idf,所以 esp32-at 和 esp-idf 必须匹配。如果 esp32-at 和 esp-idf 不匹配,有可能因为 esp-idf 函数接口或者结构体定义等变动,导致 esp32-at 无法正常工作。

3.1.1 ubuntu系统

参考 esp-idf/docs/get-started/linux-setup.rst 教程。

通过此教程,将完成编译器安装并默认生成 ~/esp/xtensa-esp32-elf/ 目录。

3.1.2 window系统

参考 esp-idf/docs/get-started/windows-setup.rst 教程。

通过此教程,您将完成编译器安装并默认在C盘生成 msys32 目录。
以下步骤都将在 C:\msys32\mingw32.exe shell中进行操作。

3.2 接线

默认 ESP32 与 PC/MCU 接线如下配置:

a). 通过串口线将 ESP32 连接到 PC,默认为 UART0 口,UART0口默认用来显示 ESP32 工作中详细的 log 以及用于烧录代码。

这些默认配置可通过 make menuconfig 由用户自己定义。

make menuconfig –> Component config –> ESP32-specific –> UART for console output 来配置 log 输出

b). 通过 USB 转 UART 接口模块将 ESP32 连接到 PC,默认为 UART1 口,UART1 口默认用来发送 AT 指令以及查看命令是否成功执行。

如 ESP-WROOM-32 的默认 GPIO 口如下:[如果要在其他 ESP32 设备上,需要根据官方文档,重新配置引脚]

  • GPIO16 - RXD
  • GPIO17 - TXD
  • GPIO14 - RTS
  • GPIO15 - CTS

这些默认配置可通过 make menuconfig由用户自己定义。

  • make menuconfig –> Component config –> AT 来配置 GPIO 口。

四:SDK 准备

用户可通过如下方式获取整个 SDK。

$ git clone https://github.com/espressif/esp32-at.git$ cd esp32-at$ git submodule update --init --recursive

or

$ git clone --recursive https://github.com/espressif/esp32-at.git

目录结构如下:

├── at_customize.csv            // 用户自定义分区表├── build                       // 存放编译后生成的文件├── components                  // 核心组件|   ├── at                      // AT 主目录|   |   ├── component.mk        // AT 编译入口|   |   ├── include             // 用户可用的 AT 头文件|   |   └── lib|   |       └── libat_core.a    // 核心 AT 功能实现|   └── customized_partitions   // customized_partitions 用于编译 AT 中,可以自定义使用的一些 bin 文件,如:ssl ca、ssl cert、ble server table 等├── docs                        // 说明文档├── esp-idf                     // esp32-at 编译依赖 esp-idf├── main                        // AT 应用程序入口├── Makefile                    // 总编译入口 makefile├── partitions_at.csv           // 系统分区表├── README.md                   // AT 说明├── sdkconfig                   // 用户自定义编译配置├── sdkconfig.defaults          // 默认编译配置├── sdkconfig.old└── tools                       // 相关工具集

五:编译&烧写&运行

5.1 python 模块安装

由于编译过程依赖于 python 以及 python 中 yaml,xlrd 模块,在编译前需正确安装好 python,yaml,xlrd。(如已安装,忽略 5.1)

根据自己的环境选择安装步骤a) or b):

a) windows 中安装:

选择安装高版本的 python,如 ,选择完全安装,yaml,xlrd 模块将自动安装在 PC 上。

或:

选择安装低版本的 python,如

接着安装下载工具
再安装 yaml,xlrd 模块

$ pip install pyyaml xlrd

如果安装失败,请尝试下面方式:

$ easy_install rosinstall$ easy_install python-yaml$ easy_install xlrd

b) ubuntu 中安装:

$ sudo apt-get install python$ sudo apt-get install python-yaml$ sudo apt-get install python-xlrd

5.2 编译&烧写

5.2.1 [可选]编译前配置

配置 ESP32 AT 的编译环境:

$ make menuconfig

如选择串口:

make menuconfig -> Serial flasher config -> Default serial port

5.2.2 [可选]编译前配置

擦除 ESP32 的 flash & 删除编译信息 & 删除编译配置:

$ make erase_flash && make clean && rm sdkconfig && make defconfig

5.2.3 编译&烧写

$ make flash

通过 make flash 将编译整个 esp32-at ,同时下载/烧录编译好的程序到 ESP32 上。

5.3 运行

1.打开串口工具,连接,连接配置如下:

  • 波特率: 115200
  • 数据位: 8
  • 停止位: 1
  • 奇偶校验: None
  • 流控: None

2.将 ESP32 调到运行状态, 通过串口工具查看并发送 AT 指令,如通过 cutecom 可得到:

p2

以上,可查看 AT 信息并完成具体的交互过程。

六:ESP32 AT 指令集

参考官网文档:

该文档描述了 ESP32 AT 指令集功能以及使用方法,并介绍几种常见的 AT 指令使用示例。

常见错误处理

a) 为什么 git clone 速度奇慢无比?

可能由于服务器本身原因,可通过为 git 设置代理来 加速下载。

b) 为什么编译不过?

  • 是不是 python/yaml/xlrd 模块没有下载好,参考 5.1 节,参考
  • 是不是子模块没有完整 clone 下来,参考第四节
  • 出现 pthread 编译错误,是不是编译器和 esp32-at 不匹配?
    由于有些用户已经下载过 esp-idf 编译器,以为不用再重新下载编译器,其实不然,用户需下载和 ESP32 AT 对应的编译器,参考 3.1 节,参考

c) 为什么 AT 启动不了,出现 no factory ,can not find boot 等情况?

编译前没有擦除 flash 中以前参数,请使用 5.2.2 节命令擦除

d) 为什么 AT 启动不了,出现 invalid magic number 1 等情况?

有些用户导出了最新的 esp-idf,将会由于 esp32-at 和 esp-idf 不匹配而启动出错,因为在 ESP32 AT 下,用户无需自己导出 esp-idf, ESP32 AT 将导出默认的 esp-at/esp-idf。参考

e) 为什么启动了 AT ,两个串口都能看到 log, 但输入命令,控制台无反应?

按照步骤 3.2 上重新接线, RX 和 TX 一定要正确,可以试试反接有没有效果。

上一篇:ESP-AT 系列: sleep 的使用
下一篇:ESP32 基础篇:ESP-IDF 编程指南

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年03月20日 20时47分45秒