ESP32-S3-GEEK 教程

说明

产品概述

ESP32-S3-GEEK 是一款微雪 (Waveshare) 为极客设计的开发板,板载USB-A公口、1.14寸LCD屏幕、Mirco SD卡槽等外设,支持 2.4GHz WiFi 和 BLE 5,集成16MB Flash 和2MB PSRAM,提供 I2C 接口、UART 接口和 GPIO 接口,可以为你的项目提供无限可能

产品特性

  • 主芯片采用乐鑫ESP32-S3R2
  • 搭载Xtensa® 32位LX7双核处理器,主频高达240 MHz
  • 内置512 KB SRAM、384KB ROM、2MB的片上PSRAM、板载16MB Flash存储器
  • 板载 1.14 英寸 240×135 像素的 65K 彩色 IPS LCD 显示屏
  • 集成 2.4 GHz Wi-Fi  低功耗蓝牙 Bluetooth 5 (LE)
    • Wi-Fi支持基础结构型网络 (Infrastructure BSS)Station 模式、SoftAP 模式和 Station + SoftAP 模式
    • Wi-Fi支持 1T1R 模式,数据速率高达 150 Mbps
    • 蓝牙支持高功率模式 (20 dBm)
    • 蓝牙与Wi-Fi共存,共用同一个天线
  • 板载 3PIN UART 接口,可用于实现 USB 串口转接器的功能
  • 板载 3PIN GPIO 接口,可用于调试其他模块或ADC采集等功能
  • 板载 4PIN I2C 接口,可用于测试目标板
  • 配备塑料外壳以及相关连接线材
  • 提供完善的开源例程资料,方便编程学习和开发项目

尺寸图


开发环境配置

  • 以下开发系统默认为Windows

ESP-IDF

  • 推荐使用VSC插件进行开发

使用VSCode插件开发

安装VSCode

  1. 打开VSCode官网的下载页面,选择对应系统和系统位数进行下载
  2. 运行安装包后,其余均可以默认安装,但这里为了后续的体验建议,建议在此处勾选框中的1、2、3项
    • 第一二项开启后,可以直接通过鼠标右键文件或者目录打开VSCode,可以提高后续的使用体验.
    • 第三项开启后,选择打开方式时,可以直接选择VSCode

安装Espressif IDF插件

  • 注:当前插件最新版本为V1.6.0,为体验一致,用户可以选择与我们一样的版本
  1. 打开VSCode,使用快捷键Shift+Ctrl+X,进入插件管理器

  2. 在搜索栏中,输入Espressif IDF,选择对应的插件点击 install即可

  3. 使用快捷键F1,输入
    esp-idf: configure esp-idf extension

  4. 选择express(此教程针对第一次安装的用户,故只讲述初次的通用安装教程)
  5. 打开后显示该界面
  6. 选择下载服务器,我们推荐国内用户使用Espressif作为你的下载服务器
  7. 选择想要现在的ESP-IDF版本,我们选择最新的V5.0.1(注意ESP-IDF从V4.4版本后才开始支持ESP32-S3)
  8. 下面两个分别为ESP-IDF容器安装地址和ESP-IDF所需的工具安装地址,
    • 注意:如果之前有安装过ESP-IDF,或者失败过的,请务必彻底删除文件或者创建全新的无中文路径
  9. 配置完成后,点击 install 进行下载

  10. 进入下载页面,其会自动安装对应工具与环境,稍等片刻即可
  11. 安装完成后,会进入以下界面,说明安装完成

使用官方例程

创建例程
  1. 使用快捷键F1,输入
    esp-idf:show examples projects


  2. 选择你当前的IDF版本

  3. 以Hello world例程为例

  4. ①选择对应例程
  5. ②其readme会说明该例程适用于什么芯片(下文有介绍例程怎么使用与文件结构,这里略)
  6. ③点击创建例程
  7. 选择放置例程的路径,要求无例程同名文件夹
修改COM口
  1. 此处显示使用对应的COM口,点击可以修改对应COM口
  2. 我们查看设备管理器COM口,选择COM5,请根据自己对应COM口进行选择
  3. 选择使用的工程或者例程
  4. 然后我们的COM口就修改好了
修改驱动对象
  1. 此处显示的是使用的驱动对象,点击可以修改对应驱动对象
  2. 选择使用的工程或者例程
  3. 点击后需要稍等片刻
  4. 选择我们需要驱动的对象,也就是我们的主芯片为ESP32S3

  5. 选择openocd的路径,这里对我们没有影响,所以我们随便选择一个即可

其余状态栏简介
  • ①SDK 配置编辑器,ESP-IDF很多功能与配置可以在其内修改
  • ②全部清理,清空所有编译文件,
  • ③编译
  • ④当前下载方式,默认为UART
  • ⑤烧录当前固件,请在编译后进行
  • ⑥打开串口监视器,用于查看串口信息
  • ⑦编译,烧录,打开串口监视器 一体按键(调试时最常用)
编译、烧录、串口监视
  1. 点击我们之前介绍的 编译,烧录,打开串口监视器按键
  2. 编译可能需要较长时间才能完成,尤其是在第一次编译时。
    • 在此过程中,ESP-IDF可能会占用大量CPU资源,因此可能会导致系统卡顿。
  3. 下载失败可按住boot按键上电后再松开按键,然后进行烧录下载
  4. 下载成功后,自动进入串口监视器,可以看到芯片输出对应的信息并提示10S后重启

Arduino

安装Arduino IDE

  1. 打开官网软件下载页面,选择对应的系统和系统位数下载
  2. 可以选择直接下载,也可以选择捐赠并下载
  3. 运行安装程序,全部默认安装即可

在线安装arduino-esp32

  1. 打开首选项
  2. 添加对应的板管理链接,点击该按键
  3. 在第一个空白处,添加下文
    https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

  4. 保存设置
  5. 打开板管理器并搜索输入ESP32

  6. 等待下载
  7. arduino-esp32下载完成

离线安装arduino-esp32(国内推荐)

  1. 离线包(提取码:1r4i)
    • 提取码:1r4i
  2. 将压缩包解压缩
  3. 将解压文件放在对应用户的arduino器件包目录
    C:\Users\{用户名}\AppData\Local\Arduino15\packages\
    以用户名为waveshare为例
    C:\Users\waveshare\AppData\Local\Arduino15\packages\
  4. 关闭全部arduino窗口,确保arduino关闭
  5. 打开arduino,并打开板管理器,看到esp32-arduino已经安装即可


MicroPython

烧录固件

  1. 下载MicroPython固件:烧录器与固件或 micropython官网固件
  2. 将刚刚下载的解压包解压并进入

  3. 长按ESP32-S3-GEEK按键连接电脑USB后,再松开boot按键
  4. 进入flash_download_tool_3.9.4文件夹,打开flash_download_tool_3.9.4.exe

  5. 选择对应的芯片,这里选择ESP32-S3、USB

  6. 选择对应的COM口,我们已经为你配置好其他信息,点击Start开始下载即可

  7. 等待烧录完成

安装Thonny

  1. 打开Thonny官
  2. 选择对应的系统和版本,这里我选择windows,鼠标要移动到windows处,才会显示对应的信息
  3. 一路默认安装即可
  4. 安装完成

获取例程

  1. 点击此处下载例程
  2. 解压例程压缩包

运行例程

  1. 打开thonny,并选择配置解释器

  2. 选择MicroPython(ESP32)为解释器

  3. 点击OK进行保存
  4. 点击Stop按键,或者快捷键 Ctrl+F2
  5. 此时命令行可以看到 MicroPython的版本信息与板名

  6. 打开文件串口

  7. 选择我们的例程文件,并打开一个例程,这里我们选的是lcd_example.py例程

    • ①当前本机文件目录
    • ②我们要打开的例程 lcd_example.py
    • ③点击运行按键,或者快捷键 F5
  8. 稍等片刻,可以看到ESP32-S3-GEEK的LCD屏幕显示ESP32-S3-GEEK.bmp图片

Arduino示例程序

注意:在使用Arduino例程前,请先检查Arduino环境与下载设置是否正确配置,具体操作可查看Arduino环境配置

WIFI


01-WIFI_AP_LCD

该例程可使用ESP32-S3-GEEK打开WIFI的AP模式,PC连接其WIFI后,可以登录IP,在网页端进行控制ESP32-S3-GEEK的LCD显示图片
  • ssid是ESP32-S3-GEEK创建的AP名称(ESP32-S3-GEEK),password则是连接AP的密码(Waveshare)


  • 使用PC连接ESP32-S3-GEEK的AP,输入密码Waveshare


  • LCD会显示HTTP服务器的IP地址,使用浏览器进行登录IP:192.168.4.1
  • 通过服务器上的按钮对ESP32-S3-GEEK的LCD进行控制,按下不同按钮,观察LCD变化,更多LCD的显示函数具体可以看LCD程序说明



02-WIFI_TCP_Client

该例程可使用ESP32-S3-GEEK打开WIFI的STA模式,与PC端或者手机端连接同一个WIFI后,作为TCP Client访问PC或手机创建的TCP Server,并且与PC或手机建立TCP通讯,在LCD上显示接收内容
  • 使用NetAssist.exe打开TCP Server,Local host IP为默认,Local host Por为8080,点击“连接”,用于和ESP32-S3-GEEK(TCP Client)进行连接与TCP通讯


  • ESP32-S3-GEEK作为STA模式与PC连接同一个WIFI网络(ESP32-S3-GEEK连接的WIFI需要有2.4GHz 频带的,如果没有2.4GHz 频带,可以使用PC打开热点,网络频带选择“任何可用频率”),记得将ssid与password修改成要连接的WIFI名称和密码


  • 修改serverIP为刚刚使用NetAssist.exe打开的TCP ServerIP,serverPort为8080,连接成功后,TCP Server会收到ESP32-S3-GEEK发送的TCP消息"Hello world",LCD会显示“Access successful”


  • 通过PC端TCP Server发送TCP消息给ESP32-S3-GEEK,若发送成功,ESP32-S3-GEEK作为TCP Client接收到消息会将消息内容显示在LCD上,可以观察到LCD是否显示消息


  • 还可以使用手机打开热点,热点名称与密码为ssid和password,2.4GHz 频带,打开热点后使用TCP调试助手与ESP32-S3-GEEK进行TCP通讯


  • 修改代码中连接的WIFI为手机的热点,serverIP为上图最后手机创建TCPserver的IP(192.168.6.123)


  • 烧录代码复位,连接成功后,TCP Server会收到ESP32-S3-GEEK发送的TCP消息"Hello world",LCD会显示“Access successful”,可通过手机端TCP Server发送TCP消息给ESP32-S3-GEEK,若发送成功,ESP32-S3-GEEK作为TCP Client接收到消息会将消息内容显示在LCD上,可以观察到LCD是否显示消息



03-WIFI_TCP_Server

该例程可使用ESP32-S3-GEEK打开WIFI的STA模式,连接PC端打开的热点后,创建TCP Server,PC创建TCP Client访问ESP32-S3-GEEK,两者建立TCP通讯,GEEK在LCD上显示接收内容
  • ESP32-S3-GEEK作为STA模式连接同一个Wi-Fi网络(ESP32-S3-GEEK连接的Wi-Fi需要有2.4GHz 频带的,如果没有2.4GHz 频带,可以使用PC打开热点,网络频带选择“任何可用频率”),记得将ssid与password修改成要连接的Wi-Fi名称和密码


  • Wi-Fi连接后,LCD上会显示TCP ServerIP,使用SSCOM打开TCP Client,用于和ESP32-S3-GEEK(TCP Server)进行连接与TCP通讯
  • 通过TCP Client发送TCP消息给ESP32-S3-GEEK(TCP Server),注意发送时需要勾选回车加换行


  • 若发送成功,ESP32-S3-GEEK作为TCP Server接收到消息会将消息内容显示在LCD上,可以观察到LCD是否正确显示接收到的消息

04-WIFI_Web_Server

该例程可使用ESP32-S3-GEEK打开WIFI的AP模式,PC端连接其WIFI后,打开串口调试助手,通过ESP32-S3-GEEK创建的HTTP网页端发送消息给GEEK,观察串口调试助手与LCD上的接收内容
  • ssid是ESP32-S3-GEEK创建的AP名称,password则是连接AP的密码

  • 使用PC连接ESP32-S3-GEEK的AP


  • LCD会显示HTTP服务器的IP地址,使用浏览器进行登录IP:192.168.4.1
  • 使用ESP32-S3-GEEK的UART接口通过USB转UART工具与PC连接,打开串口调试助手
  • 可在HTTP Web上输入文本内容并且发送HTTP请求至ESP32-S3-GEEK,可在串口调试助手与LCD上显示接收内容

BLE


01-BLE_LCD

该例程可使用ESP32-S3-GEEK打开蓝牙BLE,使用手机打开蓝牙调试助手,连接ESP32-S3-GEEK,与手机进行蓝牙BLE通讯,发送与接收的消息在LCD上显示
  • BLEDevice::init("Waveshare_ESP32S3_GEEK")中Waveshare_ESP32S3_GEEK为蓝牙名称


  • 使用手机端打开蓝牙调试助手扫描连接设备


  • 使用手机蓝牙调试助手发送蓝牙消息至ESP32-S3-GEEK,ESP32-S3-GEEK接收到消息会把消息显示在LCD上




  • 手机端的蓝牙调试助手打开接收设置


  • ESP32-S3-GEEK使用USB转UART连接PC,打开串口调试助手,发送串口消息转为蓝牙消息至手机,注意发送时要勾选上回车加换行,发送的消息内容会显示在LCD上,在手机端观察是否接收到蓝牙消息




02-BLE_uart

该例程可使用ESP32-S3-GEEK打开蓝牙BLE,使用手机打开蓝牙调试助手,连接ESP32-S3-GEEK,与手机进行蓝牙BLE通讯,发送与接收的消息在串口上显示
操作与BLE_LCD相同,但是没有开启LCD,使用UART显示消息内容,较大程度将功耗降低
  • BLEDevice::init("Waveshare_ESP32S3_GEEK")中Waveshare_ESP32S3_GEEK为蓝牙名称
  • 使用手机端打开蓝牙调试助手扫描连接设备
  • 使用手机蓝牙调试助手发送蓝牙消息至ESP32-S3-GEEK,ESP32-S3-GEEK接收到消息会把消息显示在串口调试助手上



  • 手机端的蓝牙调试助手打开接收设置



  • ESP32-S3-GEEK使用USB转UART连接PC,打开串口调试助手,发送串口消息转为蓝牙消息至手机,注意发送时要加上回车Enter作为结束符,发送的消息内容会显示在LCD上,在手机端观察是否接收到蓝牙消息



03-BLE_Keyboard

该例程可将ESP32-S3-GEEK作为蓝牙键盘使用,使用PC蓝牙连接ESP32-S3-GEEK,可以进行一系列键盘单键或组合操作
  • 使用BLE_Keyboard之前需要先将libraries文件夹中ESP32-BLE-Keyboard的Arduino库文件夹先加入到Arduino IDE的安装目录下的libraries中
  • 如果之前已经安装好了ESP32-BLE-Keyboard的Arduino库,注意需要在BleKeyboard.c文件进行以下修改:
BLESecurity *pSecurity = new BLESecurity();
pSecurity->setAuthenticationMode(ESP_LE_AUTH_REQ_SC_MITM_BOND);

修改为:
BLESecurity *pSecurity = new BLESecurity();
pSecurity->setAuthenticationMode(ESP_LE_AUTH_BOND);
  • ESP32-S3-GEEK为蓝牙键盘的名称


  • 使用PC打开蓝牙扫描连接设备
  • 连接成功后会每隔5秒会进行一系列键盘操作(输出“Waveshare”、Ctrl+Alt+Delete)
  • 修改为你的开屏密码,则可进行自动锁屏与开屏操作


  • 可在libraries文件夹中的BleKeyboard.h文件中查看各个单键的值
const uint8_t KEY_LEFT_CTRL = 0x80;
const uint8_t KEY_LEFT_SHIFT = 0x81;
const uint8_t KEY_LEFT_ALT = 0x82;
const uint8_t KEY_LEFT_GUI = 0x83;
const uint8_t KEY_RIGHT_CTRL = 0x84;
const uint8_t KEY_RIGHT_SHIFT = 0x85;
const uint8_t KEY_RIGHT_ALT = 0x86;
const uint8_t KEY_RIGHT_GUI = 0x87;

const uint8_t KEY_UP_ARROW = 0xDA;
const uint8_t KEY_DOWN_ARROW = 0xD9;
const uint8_t KEY_LEFT_ARROW = 0xD8;
const uint8_t KEY_RIGHT_ARROW = 0xD7;
const uint8_t KEY_BACKSPACE = 0xB2;
const uint8_t KEY_TAB = 0xB3;
const uint8_t KEY_RETURN = 0xB0;
const uint8_t KEY_ESC = 0xB1;
const uint8_t KEY_INSERT = 0xD1;
const uint8_t KEY_PRTSC = 0xCE;
const uint8_t KEY_DELETE = 0xD4;
const uint8_t KEY_PAGE_UP = 0xD3;
const uint8_t KEY_PAGE_DOWN = 0xD6;
const uint8_t KEY_HOME = 0xD2;
const uint8_t KEY_END = 0xD5;
const uint8_t KEY_CAPS_LOCK = 0xC1;
const uint8_t KEY_F1 = 0xC2;
const uint8_t KEY_F2 = 0xC3;
const uint8_t KEY_F3 = 0xC4;
const uint8_t KEY_F4 = 0xC5;
const uint8_t KEY_F5 = 0xC6;
const uint8_t KEY_F6 = 0xC7;
const uint8_t KEY_F7 = 0xC8;
const uint8_t KEY_F8 = 0xC9;
const uint8_t KEY_F9 = 0xCA;
const uint8_t KEY_F10 = 0xCB;
const uint8_t KEY_F11 = 0xCC;
const uint8_t KEY_F12 = 0xCD;
const uint8_t KEY_F13 = 0xF0;
const uint8_t KEY_F14 = 0xF1;
const uint8_t KEY_F15 = 0xF2;
const uint8_t KEY_F16 = 0xF3;
const uint8_t KEY_F17 = 0xF4;
const uint8_t KEY_F18 = 0xF5;
const uint8_t KEY_F19 = 0xF6;
const uint8_t KEY_F20 = 0xF7;
const uint8_t KEY_F21 = 0xF8;
const uint8_t KEY_F22 = 0xF9;
const uint8_t KEY_F23 = 0xFA;
const uint8_t KEY_F24 = 0xFB;

const uint8_t KEY_NUM_0 = 0xEA;
const uint8_t KEY_NUM_1 = 0xE1;
const uint8_t KEY_NUM_2 = 0xE2;
const uint8_t KEY_NUM_3 = 0xE3;
const uint8_t KEY_NUM_4 = 0xE4;
const uint8_t KEY_NUM_5 = 0xE5;
const uint8_t KEY_NUM_6 = 0xE6;
const uint8_t KEY_NUM_7 = 0xE7;
const uint8_t KEY_NUM_8 = 0xE8;
const uint8_t KEY_NUM_9 = 0xE9;
const uint8_t KEY_NUM_SLASH = 0xDC;
const uint8_t KEY_NUM_ASTERISK = 0xDD;
const uint8_t KEY_NUM_MINUS = 0xDE;
const uint8_t KEY_NUM_PLUS = 0xDF;
const uint8_t KEY_NUM_ENTER = 0xE0;
const uint8_t KEY_NUM_PERIOD = 0xEB;

typedef uint8_t MediaKeyReport[2];

const MediaKeyReport KEY_MEDIA_NEXT_TRACK = {1, 0};
const MediaKeyReport KEY_MEDIA_PREVIOUS_TRACK = {2, 0};
const MediaKeyReport KEY_MEDIA_STOP = {4, 0};
const MediaKeyReport KEY_MEDIA_PLAY_PAUSE = {8, 0};
const MediaKeyReport KEY_MEDIA_MUTE = {16, 0};
const MediaKeyReport KEY_MEDIA_VOLUME_UP = {32, 0};
const MediaKeyReport KEY_MEDIA_VOLUME_DOWN = {64, 0};
const MediaKeyReport KEY_MEDIA_WWW_HOME = {128, 0};
const MediaKeyReport KEY_MEDIA_LOCAL_MACHINE_BROWSER = {0, 1}; // Opens "My Computer" on Windows
const MediaKeyReport KEY_MEDIA_CALCULATOR = {0, 2};
const MediaKeyReport KEY_MEDIA_WWW_BOOKMARKS = {0, 4};
const MediaKeyReport KEY_MEDIA_WWW_SEARCH = {0, 8};
const MediaKeyReport KEY_MEDIA_WWW_STOP = {0, 16};
const MediaKeyReport KEY_MEDIA_WWW_BACK = {0, 32};
const MediaKeyReport KEY_MEDIA_CONSUMER_CONTROL_CONFIGURATION = {0, 64}; // Media Selection
const MediaKeyReport KEY_MEDIA_EMAIL_READER = {0, 128};

MQTT


01-MQTT_sub_pub

该例程可使用ESP32-S3-GEEK打开WIFI的STA模式,连接WIFI后,使用微雪云平台,进行MQTT通讯,订阅与发布主题,实现远距离传输信息
  • 创建完毕后,根据ESP32SDK教程在Arduino IDE中进行相应的配置
  • 配置完毕后,根据微雪云上新建设备的"查看地址"可以看到设备的Client ID、Pub Topic、Sub Topic,可以将它们写入例程中进行赋值,用于ESP32-S3-GEEK连接自己的云平台设备
  • ESP32-S3-GEEK作为STA模式连接同一个Wi-Fi网络(ESP32-S3-GEEK连接的Wi-Fi需要有2.4GHz 频带的,如果没有2.4GHz 频带,可以使用PC打开热点,网络频带选择“任何可用频率”),记得将ssid与password修改成要连接的Wi-Fi名称和密码



  • 在callback函数中可以修改识别的标识符为我们自己在云平台上创建的设备属性标识符



  • 安装PubSubClient库,LIBRARY MANAGER -> 搜索PubSubClient -> INSTALL


  • 烧录代码,连接上WIFI后,观察微雪云平台上设备是否进入online状态,若没有可以尝试刷新网页与使用USB转UART连接PC通过串口调试助手查看WIFI与MQTT连接情况,并且在LCD屏上也会显示WIFI与MQTT的连接情况



  • ESP32-S3-GEEK连接微雪云成功之后即可通过Dashboard进行发送MQTT消息



  • 我们能在LCD和串口调试助手中看到我们对设备属性值(例:"key")的变化进行了不同的反馈,并且在微雪云的设备接收值中看到ESP32-S3-GEEK发送至微雪云设备的数据(接受值为自己的Client ID,后续自己可将key的返回值或者状态发送回微雪云),至此实现了MQTT的数据上行与下行、订阅主题与发布主题



02-MQTT_BLE_Keyboard

该例程可使用ESP32-S3-GEEK打开WIFI的STA模式与蓝牙,连接WIFI与蓝牙后,使用微雪云平台,可实现远程蓝牙锁屏与输入密码开屏,还有更多组合键等待您的开发
  • 创建完毕后,根据ESP32SDK教程在Arduino IDE中进行相应的配置
  • 配置完毕后,根据微雪云上新建设备的"查看地址"可以看到设备的Client ID、Pub Topic、Sub Topic,可以将它们写入例程中进行赋值,用于ESP32-S3-GEEK连接自己的云平台设备



  • ESP32-S3-GEEK作为STA模式连接同一个Wi-Fi网络(ESP32-S3-GEEK连接的Wi-Fi需要有2.4GHz 频带的,如果没有2.4GHz 频带,可以使用PC打开热点,网络频带选择“任何可用频率”),记得将ssid与password修改成要连接的Wi-Fi名称和密码
  • 在callback函数中可以修改识别的标识符为我们自己在云平台上创建的设备属性标识符



  • 烧录代码,连接上WIFI后,打开PC蓝牙进行连接ESP32-S3-GEEK
  • 观察微雪云平台上设备是否进入online状态,若没有可以尝试刷新网页与使用USB转UART连接PC通过串口调试助手查看WIFI与MQTT连接情况,并且在LCD上也会显示WIFI与MQTT连接情况


  • ESP32-S3-GEEK连接微雪云成功之后,可通过手机端登录微雪云Dashboard进行远程控制PC进行锁屏与输入密码开屏
  • 我们能在LCD和串口调试助手中看到我们对设备属性值(例:"key")的变化进行了不同的反馈,后续还可以在callback函数中将按键修改成Ctrl+C、Ctrl+V等组合键,自己DIY属于你的远程控制蓝牙键盘


  • 还可通过键盘测试的网站来测试ESP32-S3-GEEK蓝牙控制按下了哪些按键

SD


01-SD_Test

该例程可使用ESP32-S3-GEEK的SD卡槽,将SD卡插入卡槽,打开串口调试助手,可以看到ESP32-S3-GEEK对SD卡的文件进行增删改查



02-SD_LCD

该例程可使用ESP32-S3-GEEK的SD卡槽读取SD卡中的图片,将照片图片存入SD卡后,把SD卡插入卡槽,ESP32-S3-GEEK可将SD卡中的照片读取并且显示在LCD上,或者刷照片形成动态图
  • 将libraries中TFT_eSPI文件夹复制到Arduino库的安装目录下
  • 安装JPEGDecoder库,LIBRARY MANAGER -> 搜索JPEGDecoder-> INSTALL


  • 可将pic中照片存入SD卡中,或者存入自己的照片,将图片尺寸修改成240×135,显示效果最佳


  • 这部分注释去除,可播放Waveshare开机动画



LCD


01-LCD_Button

该例程可使用ESP32-S3-GEEK的boot按键实现短按点亮LCD并切换下一张图片,长按熄灭LCD
  • 安装OneButton库,LIBRARY MANAGER -> 搜索OneButton-> INSTALL



02-LCD_Time

该例程可使用ESP32-S3-GEEK连接WIFI获取当前时间并且把时间日期显示在LCD与串口调试助手上
  • 将ssid和password修改成我们要连接的WIFI名称与密码(ESP32-S3-GEEK连接的Wi-Fi需要有2.4GHz 频带的,如果没有2.4GHz 频带,可以使用PC打开热点,网络频带选择“任何可用频率”),utcOffsetInSeconds为我们需要获取时间的时区,例如:北京,东八区,则为8*60*60=28800


  • 烧录代码后,可以看到LCD显示实时时间与日期,ESP32-S3-GEEK使用USB转UART连接PC,打开串口调试助手,可以看到获取的时间和日期打印在串口调试助手上


Button

01-OneButton

该例程可使用ESP32-S3-GEEK的boot按键变成一个多功能按键,可进行单击、双击或者长按以执行不同的操作
  • 安装OneButton库,LIBRARY MANAGER -> 搜索OneButton-> INSTALL


一旦检测到单击,就会触发:void Click(void *oneButton)
一旦检测到双击,就会触发:void DoubleClick(void *oneButton)
一旦检测到长按,就会触发:void LongPressStart(void *oneButton)


UART

01-UART0

该例程可使用ESP32-S3-GEEK打开串口UART0,打开串口调试助手,可以进行串口通信

IIC

01-IIC_BME68X_Sensor

该例程可使用ESP32-S3-GEEK的IIC硬件接口驱动IIC模块

ADC

01-ADC_Read

该例程可使用ESP32-S3-GEEK的GPIO接口,进行ADC采样,读取3.3V范围内的电压,使用时注意共地与不可超出测量范围

Micropython示例程序

注意:在使用Micropython例程前,请先检查Micropython环境与下载设置是否正确配置,具体操作可查看Micropython环境配置

LCD

该例程可使用ESP32-S3-GEEK打开LCD屏幕,显示文字信息与显示bmp图片
  • 将MPY文件夹中的LCD文件夹上传至ESP32-S3-GEEK


  • 进入ESP32-S3-GEEK中的lcd_example.py,点击运行按键,观察LCD屏幕显示变化



SD

该例程可读取ESP32-S3-GEEK的SD卡槽,直接打开ESP32-S3-GEEK的sd文件夹可浏览SD卡中的文件,使用前需要先将SD卡插入卡槽中
  • 把两个文件上传至ESP32-S3-GEEK中
  • 上传成功后,点击STOP


  • 可以看见ESP32-S3-GEEK出现了sd文件夹



WIFI

01-WIFI_AP

该例程可使用ESP32-S3-GEEK打开WIFI的AP模式,PC可以连接其WIFI
  • essid是ESP32-S3-GEEK创建的AP名称(ESP32-S3-GEEK),password则是连接AP的密码(Waveshare)
  • 上传程序至ESP32-S3-GEEK后点击运行
  • 打开PC的WIFI进行连接,输入密码Waveshare

02-WIFI_STA

该例程可使用ESP32-S3-GEEK打开WIFI的STA模式,其可以连接其他WIFI或者PC打开的热点
  • ESP32-S3-GEEK在STA模式下会连接ssid为ESP32-S3-GEEK,密码为Waveshare的WIFI
  • PC打开ssid为ESP32-S3-GEEK,密码为Waveshare的热点(ESP32-S3-GEEK连接的WIFI需要有2.4GHz 频带的,如果没有2.4GHz 频带,可以使用PC打开热点,网络频带选择“任何可用频率”),记得将ssid与password修改成要连接的WIFI名称和密码,上传程序至ESP32-S3-GEEK后点击运行



BLE

该例程可打开ESP32-S3-GEEK的蓝牙,使用蓝牙与手机蓝牙调试助手进行通讯
  • ESP32-S3-GEEK为创建的蓝牙名称
  • 点击运行按键,成功打开蓝牙会打印蓝牙名称
  • 使用手机蓝牙调试助手进行连接


  • 使用手机蓝牙调试助手发送消息,ESP32收到消息并且打印出来


UART

该例程可使用ESP32-S3-GEEK打开串口UART0,打开串口调试助手,可以进行串口通信

ESP-IDF示例程序

注意:在使用ESP-IDF例程前,请先检查ESP-IDF环境与下载设置是否正确配置,具体操作可查看ESP-IDF环境配置

ESP-IDF官方例程

可在ESP-IDF中使用官方例程进行编程,仅提供官方例程的查找使用方法,具体开发需要用户自行学习与编程
  • 官方例程的使用方法可参见例程使用方法,我们使用时需要注意查看设备COM口,芯片选择与烧录方式是否正确。



Wireless_USB_flash_drive

该例程可将ESP32-S3-GEEK用作具有无线访问功能的 USB 磁盘,配合SD卡存储可变成一个大容量的无线存储器,同时还可以连接ESP32-S3-GEEK的热点,进行HTTP 文件服务器的上传和下载,极大程度的方便了用户的使用
  • 烧录代码前,请先插入SD卡进SD卡槽中,检查烧录芯片是否为esp32s3,COM口是否对应,烧录方式选择UART


  • 烧录成功后,重新插拔ESP32-S3-GEEK,发现识别出一个新的U盘设备
  • 打开U盘,可以浏览SD卡中的文件,并且可将进行增删改查
  • 打开电脑WIFI,连接ESP32-S3-GEEK的AP,输入密码Waveshare
  • 连接成功后,打开浏览器,登录IP:192.168.4.1
  • 登录成功后,即可进行无线上传和下载文件


调试工具

数据手册

ESP32官方文档

MicroPython官方文档

FAQ

问题:ESP32-S3-GEEK烧录失败?

①烧录时可长按Boot按键插入USB后再松开按键,ESP32-S3-GEEK进去Download mode才开始烧录, 烧录完重新插拔USB则可以进入SPI_FAST_FLASH_BOOT mode,运行程序。
②可尝试关闭PC的蓝牙开关,直接烧录运行(说明蓝牙驱动与ESP32-S3-GEEK的COM驱动有冲突导致)


问题:ESP32-S3-GEEK与微雪云连接成功,为什么无法收发MQTT消息?

请检查Pub Topic、Sub Topic是否正确填入,设备在微雪云中是否为在线状态


问题:ESP32-S3-GEEK插卡,电脑能直接当U盘吗?插上sd卡以后,插电脑上能直接用win资源管理器查看sd卡的文件吗?

可以的,需要烧录无线U盘程序,SD卡映像中 SPIFS只支持32GB以下。


问题:ESP32-S3-GEEK的LCD驱动芯片型号?

1.14LCD的驱动芯片为ST7789P3。


问题:ESP32-S3-GEEK烧录了Wireless_USB_flash_drive例程,,SD卡槽插的是16G MicroSD卡,但是显示内存只有1.4M?

查看使用外部SD卡教程,进行使用SD卡。


技术支持

周一-周五(9:30-6:30)周六(9:30-5:30)

手机:13434470212

邮箱:services04@spotpear.cn

QQ:202004841