ESP32-S3-GEEK
来自Waveshare Wiki
说明
| ||||||||||||||||||||||
| ||||||||||||||||||||||
产品概述
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
- 打开VSCode官网的下载页面,选择对应系统和系统位数进行下载
- 运行安装包后,其余均可以默认安装,但这里为了后续的体验建议,建议在此处勾选框中的1、2、3项
- 第一二项开启后,可以直接通过鼠标右键文件或者目录打开VSCode,可以提高后续的使用体验.
- 第三项开启后,选择打开方式时,可以直接选择VSCode
安装Espressif IDF插件
- 注:当前插件最新版本为V1.6.0,为体验一致,用户可以选择与我们一样的版本
- 打开VSCode,使用快捷键Shift+Ctrl+X,进入插件管理器
- 在搜索栏中,输入Espressif IDF,选择对应的插件点击 install即可
- 使用快捷键F1,输入
esp-idf: configure esp-idf extension
- 选择express(此教程针对第一次安装的用户,故只讲述初次的通用安装教程)
- 打开后显示该界面
- 选择下载服务器,我们推荐国内用户使用Espressif作为你的下载服务器
- 选择想要现在的ESP-IDF版本,我们选择最新的V5.0.1(注意ESP-IDF从V4.4版本后才开始支持ESP32-S3)
- 下面两个分别为ESP-IDF容器安装地址和ESP-IDF所需的工具安装地址,
- 注意:如果之前有安装过ESP-IDF,或者失败过的,请务必彻底删除文件或者创建全新的无中文路径
- 配置完成后,点击 install 进行下载
- 进入下载页面,其会自动安装对应工具与环境,稍等片刻即可
- 安装完成后,会进入以下界面,说明安装完成
使用官方例程
创建例程
- 使用快捷键F1,输入
esp-idf:show examples projects
- 选择你当前的IDF版本
- 以Hello world例程为例
- ①选择对应例程
- ②其readme会说明该例程适用于什么芯片(下文有介绍例程怎么使用与文件结构,这里略)
- ③点击创建例程
- 选择放置例程的路径,要求无例程同名文件夹
修改COM口
修改驱动对象
- 此处显示的是使用的驱动对象,点击可以修改对应驱动对象
- 选择使用的工程或者例程
- 点击后需要稍等片刻
- 选择我们需要驱动的对象,也就是我们的主芯片为ESP32S3
- 选择openocd的路径,这里对我们没有影响,所以我们随便选择一个即可
其余状态栏简介
- ①SDK 配置编辑器,ESP-IDF很多功能与配置可以在其内修改
- ②全部清理,清空所有编译文件,
- ③编译
- ④当前下载方式,默认为UART
- ⑤烧录当前固件,请在编译后进行
- ⑥打开串口监视器,用于查看串口信息
- ⑦编译,烧录,打开串口监视器 一体按键(调试时最常用)
编译、烧录、串口监视
Arduino
安装Arduino IDE
- 打开官网软件下载页面,选择对应的系统和系统位数下载
- 可以选择直接下载,也可以选择捐赠并下载
- 运行安装程序,全部默认安装即可
在线安装arduino-esp32
- 打开首选项
- 添加对应的板管理链接,点击该按键
- 在第一个空白处,添加下文
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- 保存设置
- 打开板管理器并搜索输入ESP32
- 等待下载
- arduino-esp32下载完成
离线安装arduino-esp32(国内推荐)
- 离线包(提取码:1r4i)
- 提取码:1r4i
- 将压缩包解压缩
- 将解压文件放在对应用户的arduino器件包目录
C:\Users\{用户名}\AppData\Local\Arduino15\packages\
以用户名为waveshare为例C:\Users\waveshare\AppData\Local\Arduino15\packages\
- 关闭全部arduino窗口,确保arduino关闭
- 打开arduino,并打开板管理器,看到esp32-arduino已经安装即可
使用Arduino例程
MicroPython
烧录固件
- 下载MicroPython固件:烧录器与固件或 micropython官网固件
- 将刚刚下载的解压包解压并进入
- 长按ESP32-S3-GEEK按键连接电脑USB后,再松开boot按键
- 进入flash_download_tool_3.9.4文件夹,打开flash_download_tool_3.9.4.exe
- 选择对应的芯片,这里选择ESP32-S3、USB
- 选择对应的COM口,我们已经为你配置好其他信息,点击Start开始下载即可
- 等待烧录完成
安装Thonny
- 打开Thonny官网
- 选择对应的系统和版本,这里我选择windows,鼠标要移动到windows处,才会显示对应的信息
- 一路默认安装即可
- 安装完成
获取例程
- 点击此处下载例程
- 解压例程压缩包
运行例程
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
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
- 可在以下的代码中修改不同操作的处理函数,更多操作与具体说明可查看:https://github.com/mathertel/OneButton
一旦检测到单击,就会触发: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模块
- 例程使用BME680环境传感器进行演示,具体操作与实现效果可看教程
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
- 登录成功后,即可进行无线上传和下载文件
资料
原理图
程序
软件
Arduino
Micropython
图文取模
调试工具
数据手册
- ESP32-S3数据手册(中文)
- ESP32-S3技术参考手册(中文)
- ESP32-S3-WROOM-1数据手册(中文)
- ESP32-S3数据手册(英文)
- ESP32-S3技术参考手册(英文)
- ESP32-S3-WROOM-1数据手册(英文)
ESP32官方文档
MicroPython官方文档
FAQ
①烧录时可长按Boot按键插入USB后再松开按键,ESP32-S3-GEEK进去Download mode才开始烧录,
烧录完重新插拔USB则可以进入SPI_FAST_FLASH_BOOT mode,运行程序。
②可尝试关闭PC的蓝牙开关,直接烧录运行(说明蓝牙驱动与ESP32-S3-GEEK的COM驱动有冲突导致)
请检查Pub Topic、Sub Topic是否正确填入,设备在微雪云中是否为在线状态
可以的,需要烧录无线U盘程序,SD卡映像中 SPIFS只支持32GB以下。
1.14LCD的驱动芯片为ST7789P3。