實用WiFi ESP32 AT 新手入門指南

一、ESP32 AT介紹

Espressif 基於 esp-idf,針對 ESP32 芯片,實現了一些常用的 AT 指令集,鏈接地址為 esp32-at。該指令集可用於用戶/MCU/PC 同 ESP32 進行交互,也適用於快速進行 ESP32 開發。

本文基於 ubuntu 環境和 windows 環境,介紹快速的搭建 ESP32 AT 編譯環境和燒寫運行過程,供讀者參考。

二:硬件準備

linux 環境 或 windows 環境

用來編譯&燒寫&運行等操作的必須環境。

ESP32 設備

ESP32 設備包括 ESP32芯片,ESP32模組ESP-WROOM-32,ESP32開發板ESP32-DevKitC,ESP32開發板ESP-WROVER-KIT等。如:

實用WiFi ESP32 AT 新手入門指南

USB轉UART接口模塊

實用WiFi ESP32 AT 新手入門指南

USB 轉 UART 接口模塊一般採用專用的 USB 轉 UART 接口芯片,輸出為 TTL 電平,可以和 ESP32 內置的串口(UART)直接連接,使 ESP32 通過 USB 口和計算機通訊,方便、快捷。

三:環境搭建

3.1 編譯器環境搭建

編譯環境用於編譯 ESP32 AT 系列程序,環境搭建請參考 https://github.com/espressif/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 --recursive123

or

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

目錄結構如下:

├── 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 // 相關工具集12345678910111213141516171819

五:編譯&燒寫&運行

5.1 python 模塊安裝

由於編譯過程依賴於 python 以及 python 中 yaml,xlrd 模塊,在編譯前需正確安裝好 python,yaml,xlrd。(如已安裝,忽略 5.1)

根據自己的環境選擇安裝步驟a) or b):

a) windows 中安裝:

選擇安裝高版本的 python,如 python 3.6.3,選擇完全安裝,yaml,xlrd 模塊將自動安裝在 PC 上。

或:

選擇安裝低版本的 python,如python 2.7

接著安裝下載工具pip

再安裝 yaml,xlrd 模塊

$ pip install pyyaml xlrd1

如果安裝失敗,請嘗試下面方式:

$ easy_install rosinstall

$ easy_install python-yaml

$ easy_install xlrd123

b) ubuntu 中安裝:

$ sudo apt-get install python

$ sudo apt-get install python-yaml

$ sudo apt-get install python-xlrd123

5.2 編譯&燒寫

5.2.1 [可選]編譯前配置

配置 ESP32 AT 的編譯環境:

$ make menuconfig1

如選擇串口:

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

5.2.2 [可選]編譯前配置

擦除 ESP32 的 flash & 刪除編譯信息 & 刪除編譯配置:

$ make erase_flash && make clean && rm sdkconfig && make defconfig1

5.2.3 編譯&燒寫

$ make flash1

通過 make flash 將編譯整個 esp32-at ,同時下載/燒錄編譯好的程序到 ESP32 上。

5.3 運行

打開串口工具,連接,連接配置如下:

波特率: 115200

數據位: 8

停止位: 1

奇偶校驗: None

流控: None

將 ESP32 調到運行狀態,通過串口工具查看併發送 AT 指令,如通過 cutecom 可得到:

實用WiFi ESP32 AT 新手入門指南

以上,可查看AT信息並完成具體的交互過程。

六:ESP32 AT 指令集

參考官網文檔:ESP32 AT 指令集與使用示例

該文檔描述了 ESP32 AT 指令集功能以及使用方法,並介紹幾種常見的 AT 指令使用示例。

常見錯誤處理

實用WiFi ESP32 AT 新手入門指南

ESP32-WROVER 4MB PSRAM TF卡WiFi模塊藍牙開發板

a) 為什麼 git clone 速度奇慢無比?

可能由於服務器本身原因,可通過為 git 設置代理來git config –global 加速下載。

b) 為什麼編譯不過?

是不是 python/yaml/xlrd 模塊沒有下載好,參考 5.1 節,參考 issue 46

是不是子模塊沒有完整 clone 下來,參考第四節

出現 pthread 編譯錯誤,是不是編譯器和 esp32-at 不匹配?

由於有些用戶已經下載過 esp-idf 編譯器,以為不用再重新下載編譯器,其實不然,用戶需下載和 ESP32 AT 對應的編譯器,參考 3.1 節,參考issue 48

實用WiFi ESP32 AT 新手入門指南

ESP32 0.96 寸屏藍牙WIFI模塊

實用WiFi ESP32 AT 新手入門指南

使用示例圖

實用WiFi ESP32 AT 新手入門指南

使用示例圖

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。參考issue 52

e) 為什麼啟動了 AT ,兩個串口都能看到 log, 但輸入命令,控制檯無反應?

按照步驟 3.2 上重新接線, RX 和 TX 一定要正確,可以試試反接有沒有效果。

小編就是根據也就是這樣過來的 ,希望這邊文章對剛入門的你有幫助!


分享到:


相關文章: