ESP32-S3-PhotoPainter
|
| ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
说明
各项参数
| 显示尺寸 | 160.0mm × 96.0mm |
| 外形尺寸 | 154.0mm × 214.0mm × 32.0mm |
| 屏幕像素点距 | 0.2mm × 0.2mm |
| 屏幕分辨率 | 800 × 480 |
| 显示颜色 | 黑、白、绿、蓝、红、黄 |
| 灰度等级 | 2 |
| 刷新时间 | 12s |
| 休眠电流 | ≤ 1mA |
| 充电电压/工作电压 | 5V |
- 刷新时间:刷新时间为实验测试数据,实际刷新时间会有误差,以实际效果为准。全局刷新过程中会有闪烁效果,这个是正常现象。
使用
功能介绍
- PWR按键:单击该按键可打开系统电源,长按该按键可关闭系统电源;系统电源打开的情况下,单击可进入睡眠模式。
- BOOT按键:切换图片和进入下载模式
- KEY:睡眠模式唤醒,模式切换。
- ACT指示灯:刷屏,闪烁
- PWR指示灯:可操作指示灯,亮起表示可以进行操作
产品使用
1.根据自己的方式先下载程序,解压之后,把sdcard目录下的所有文件拷贝到sdcard上
2.单击PWR按键开机,第一次开机会有一个配网的过程,语音会播报"进入配网模式",这个时候使用手机连接Xiaozhi-xxx(xxx表示不固定的)
3.配网成功之后,进入小智控制台,添加对应的设备
![]()
4.本产品有三种工作模式,分别是基础模式(模式1)、局域网服务器模式(模式2)、AI对话模式(模式3),接下来详细描述怎么去使用这三种模式
模式1
1.默认是AI对话模式(模式3),通过长按KEY按键,进入模式选择(语音会播报),然后单击KEY按键表示基础模式(模式1),再次长按KEY按键即可进入该模式
2.可以把需要显示的照片添加到sd卡06_user_Foundation_img目录下,只能接受800x480或者480x800的位深24位BMP格式的图片,图片是需要经过抖动的,具体可以查看图片制作,如果有兴趣的话,也可以查看我们提供的代码,代码里面也是具备抖动算法的,用户也可以修改加以使用,如下图:
![]()
3.单击BOOT按键即可显示06_user_Foundation_img目录下的图片,显示完图片之后自动进入睡眠模式。
4.可以通过BOOT按键唤醒和切换图片,也可以单击KEY按键实现唤醒不切图。
5.在睡眠模式的时候,有定时唤醒,可以通过06_user_Foundation_img目录下的config.txt文件设置,具体代码段和文件位置如下:
![]()

模式2
1.如果产品处于低功耗模式,需要先单击KEY按键进行唤醒,然后再长按KEY按键,进入模式选择;单击KEY按键两次,再次长按KEY即可进入该模式
2.使用手机或者电脑连接wifi:esp_network 密码:1234567890,连接成功之后,进入图片选择界面,如图:
![]()
3.点击input选择对应的图片(图片必须是24位深的800x480或者480x800的图片,而且还是经过抖动的),具体可以查看图片制作,点击Send即可发送对应的图片到相框
4.如果需要进入低功耗,可以直接断开WIFI的连接即可,产品会每隔30s唤醒一次,具体代码段如下,用户可以自行修改,连接成功WIFI之后禁止睡眠
![]()
模式3
1.通过长按KEY按键进入模式选择,单击KEY按键三次,然后再长按KEY按键即可进入该模式
2.初始化完成之后,会自动获取近4天的天气预报
3.等待屏幕显示完成即可进行对话,唤醒词是"你好,小智"
4.唤醒之后即可正常对话
5.可以通过MCP显示sd卡05_user_ai_img的图片,获取sd卡05_user_ai_img目录的图片数量,还具备图片评分,具体MCP服务对应代码如下,用户可以DIY自己的MCP服务:
![]()
6.关于AI生成图片的使用,比如可以说"帮我生成一张月球的图片",如果需要使用这个功能,需要配置火山引擎,具体的配置参考火山引擎文生图配置
7.对图片进行评分之后,间隔30分钟轮播一次图片,对应代码如下,可以语音进行重置评分
火山引擎文生图配置
1.首先需要得是获取密钥、模型名称、URL,目前使用得是测试模型,后续会停掉的,用户需要自己配置模型,相关代码段和config.txt文件里面相关配置如下:
![]()

2.先进入火山引擎控制台
![]()
3.创建对应的模型,记得模型不要选错,如图:
![]()
4.复制对应的key、model、url,如图:
![]()
5.把复制好的url、model、key粘贴到sdcard->06_user_Foundation_img目录下的config.txt文件对应键值(步骤1图2)即可(新用户可以免费领取Tokens)
图片制作
- 使用PS等工具制作散点图,请参考:使用Photoshop制作散点图
- 使用我们编写的工具转换图片,应用程序及源代码:六色抖动图片转换工具
- 该程序可将图片转换成合适的分辨率并使用抖动算法进行优化,支持绝大多数格式的图片,会识别图片的方向并自动拉伸和剪裁
- 使用方法:直接将图片拖放到“convert.exe”上面可以进行单张转换图片,或者将所有图片放到文件夹中然后双击“converterTo6color_all.cmd”进行批量转换
- 注意:该程序仅为了方便客户使用而开发并开源,不对其提供技术支持
Windows使用工具
- 单张图片转换
将图片拖到 convert.exe 上即可
- 批量转换图片
将图片、convert.exe、converterTo6color_all.cmd 放在一个文件夹里面,然后双击converterTo6color_all.cmd 即可
MAC使用工具
将图片、convert、converterTo6color_all 放在一个文件夹
打开终端,进入对应的文件夹
cd xxxx/xxx/xxx/
- 单张图片转换
输入命令,给予convert可执行权限
sudo chmod +x convert
转换图片
./convert 图片名称
- 批量转换图片
要先对 convert 文件进行权限操作给予后才行
输入命令,给予converterTo6color_all.sh可执行权限
sudo chmod +x converterTo6color_all.sh
转换图片
./converterTo6color_all.sh
开发说明
- 注意:本程序友情开源,不对其提供技术支持(有bug欢迎反馈)。
- 程序基于 ESP-IDF 的 C/C++ SDK 编写,使用 CMAKE 编译,理论支持多平台,相关环境请自行搭建。
ESP-IDF环境搭建
下载和安装 Visual Studio
- 打开VScode官网的下载页面,选择对应系统和系统位数进行下载

- 运行安装包后,其余均可以默认安装,但这里为了后续的体验建议,建议在此处勾选框中的1、2、3项
- 第一二项开启后,可以直接通过鼠标右键文件或者目录打开VSCode,可以提高后续的使用体验.
- 第三项开启后,选择打开方式时,可以直接选择VSCode
安装Espressif IDF插件
- 一般推荐“在线安装”, 若因网络因素无法在线安装,则使用“离线安装”。
- 安装Espressif IDF插件教程,详见:安装Espressif IDF插件教程
运行第一个 ESP-IDF 程序
新建项目
创建例程
- 使用快捷键 F1 ,输入esp-idf:show examples projects
- 选择你当前的IDF版本
- 以Hello world例程为例
①选择对应例程
②其readme会说明该例程适用于什么芯片(下文有介绍例程怎么使用与文件结构,这里略)
③点击创建例程
- 选择放置例程的路径,要求无例程同名文件夹
修改COM口
- 此处显示使用对应的COM口,点击可以修改对应COM口
- 请根据设备对应COM口进行选择(可通过设备管理器查看)
- 若出现下载失败的情况请点击复位按键1秒以上或进入下载模式,等待 PC 端重新识别到设备后再次下载
修改驱动对象
- 选择我们需要驱动的对象,也就是我们的主芯片为ESP32S3
- 选择openocd的路径,这里对我们没有影响,所以我们随便选择一个即可
其余状态栏简介
①.ESP-IDF开发环境版本管理器,当我们的工程需要区分开发环境版本时,可以通过安装不同版本的ESP-IDF来分别管理,当工程使用特定版本时,可以通过使用它来切换
②.设备烧录COM口,选择以将编译好的程序烧录进芯片上
③.set-target 芯片型号选择,选择对应的芯片型号,如:ESP32-P4-Nano需要选择 esp32p4 为目标芯片
④.menuconfig,点击修改sdkconfig配置文件内容,项目配置详细资料
⑤.fullclean 清理按钮,当工程编译报错或其他操作污染编译内容时,通过点击清理全部编译内容
⑥. Build 构建工程,当一个工程满足构建时,通过此按钮进行编译
⑦.当前下载方式,默认为UART
⑧.flash烧录按钮,当一个工程Build构建通过时,选择对应开发板COM口,点击此按钮可以将编译好的固件烧录至芯片
⑨.monitor开启烧录口监控,当一个工程Build-->flash后,可通过点击此按钮查看烧录、调试口输出的l0g,以便观察应用程序是否正常工作
⑩.Debug调试
⑪.Build Flash Monitor 一键按钮,用于连续执行Build-->Flash-->Monitor,常被称作小火苗
编译、烧录、串口监视
- 点击我们之前介绍的 编译,烧录,打开串口监视器按键
- 编译可能需要较长时间才能完成,尤其是在第一次编译时
- 在此过程中,ESP-IDF可能会占用大量CPU资源,因此可能会导致系统卡顿
- 若是新工程首次烧录程序,将需要选择下载方式,选择 UART
- 后续也可在 下载方式 处进行修改(点击即可弹出选项)
- 因为板载自动下载电路,无需手动操作即可自动下载
- 下载成功后,自动进入串口监视器,可以看到芯片输出对应的信息并提示10S后重启
使用IDF 示例程序
软件内部打开
- 打开 VScode 软件,选择文件夹打开示例
- 选择提供的 ESP-IDF 下的示例,点击选择文件(位于 示例程序/Demo/ESP-IDF 路径下)
软件外部打开
- 正确选择工程目录,打开工程,否则会影响后续程序编译烧录
- 连接设备后,选择好COM口和型号,点击下方编译并烧录即可实现程序控制
ESP-IDF工程项目详解
- 组件(Component):ESP-IDF中的组件是构建应用的基本模块,每个组件通常是相对独立的代码库或库,能实现特定的功能或服务,可以被应用程序或是其他组件重复使用,类似于Python开发中的库的定义。
- 组件的引用:Python开发环境中引入库只需要“import 库名或路径”即可,而ESP-IDF基于C语言基础,引入库是通过
CMakeLists.txt进行配置和定义的。 - CmakeLists.txt的作用:ESP-IDF编译时编译工具
CMake会首先通过读取工程目录的顶层CMakeLists.txt的内容来读取构建规则,识别需要编译的内容。当在CMakeLists.txt中引入了需要的组件、程序后,编译工具CMake会根据索引导入每个所需要编译的内容。编译过程如:
- 组件的引用:Python开发环境中引入库只需要“import 库名或路径”即可,而ESP-IDF基于C语言基础,引入库是通过
修改COM口
- 此处显示使用对应的COM口,点击可以修改对应COM口
- 请根据设备对应COM口进行选择(可通过设备管理器查看)
- 若出现下载失败的情况请点击复位按键1秒以上或进入下载模式,等待 PC 端重新识别到设备后再次下载
修改驱动对象
- 选择我们需要驱动的对象,下图以主芯片为ESP32S3 以例(用户根据手头实物板子的主控芯片对应设置)
- 选择openocd的路径,这里对我们没有影响,所以我们随便选择一个即可
其余状态栏简介
①.ESP-IDF开发环境版本管理器,当我们的工程需要区分开发环境版本时,可以通过安装不同版本的ESP-IDF来分别管理,当工程使用特定版本时,可以通过使用它来切换
②.设备烧录COM口,选择以将编译好的程序烧录进芯片上
③.set-target 芯片型号选择,选择对应的芯片型号,如:ESP32-P4-Nano需要选择 esp32p4 为目标芯片
④.menuconfig,点击修改sdkconfig配置文件内容,项目配置详细资料
⑤.fullclean 清理按钮,当工程编译报错或其他操作污染编译内容时,通过点击清理全部编译内容
⑥. Build 构建工程,当一个工程满足构建时,通过此按钮进行编译
⑦.当前下载方式,默认为UART
⑧.flash烧录按钮,当一个工程Build构建通过时,选择对应开发板COM口,点击此按钮可以将编译好的固件烧录至芯片
⑨.monitor开启烧录口监控,当一个工程Build-->flash后,可通过点击此按钮查看烧录、调试口输出的l0g,以便观察应用程序是否正常工作
⑩.Debug调试
⑪.Build Flash Monitor 一键按钮,用于连续执行Build-->Flash-->Monitor,常被称作小火苗
编译、烧录、串口监视
- 点击我们之前介绍的 编译,烧录,打开串口监视器按键
- 编译可能需要较长时间才能完成,尤其是在第一次编译时
- 在此过程中,ESP-IDF可能会占用大量CPU资源,因此可能会导致系统卡顿
- 若是新工程首次烧录程序,将需要选择下载方式,选择 UART
- 后续也可在 下载方式 处进行修改(点击即可弹出选项)
- 因为板载自动下载电路,无需手动操作即可自动下载
- 下载成功后,自动进入串口监视器,可以看到芯片输出对应的信息并提示10S后重启
使用IDF 示例程序
软件内部打开
- 打开 VScode 软件,选择文件夹打开示例
- 选择提供的 ESP-IDF 下的示例,点击选择文件(位于 示例程序/Demo/ESP-IDF 路径下)
软件外部打开
- 正确选择工程目录,打开工程,否则会影响后续程序编译烧录
- 连接设备后,选择好COM口和型号,点击下方编译并烧录即可实现程序控制
ESP-IDF工程项目详解
- 组件(Component):ESP-IDF中的组件是构建应用的基本模块,每个组件通常是相对独立的代码库或库,能实现特定的功能或服务,可以被应用程序或是其他组件重复使用,类似于Python开发中的库的定义。
- 组件的引用:Python开发环境中引入库只需要“import 库名或路径”即可,而ESP-IDF基于C语言基础,引入库是通过
CMakeLists.txt进行配置和定义的。 - CmakeLists.txt的作用:ESP-IDF编译时编译工具
CMake会首先通过读取工程目录的顶层CMakeLists.txt的内容来读取构建规则,识别需要编译的内容。当在CMakeLists.txt中引入了需要的组件、程序后,编译工具CMake会根据索引导入每个所需要编译的内容。编译过程如:
- 组件的引用:Python开发环境中引入库只需要“import 库名或路径”即可,而ESP-IDF基于C语言基础,引入库是通过
资料
原理图
文档
- 屏幕数据手册
- ESP32-S3 数据手册(中文)
- ESP32-S3 技术参考手册(中文)
- ESP32-S3 数据手册(英文)
- ESP32-S3 技术参考手册(英文)
- PCF85063数据手册(英)
- ES8311 数据手册(英文)
- ES8311 用户手册(英文)
- ES7210 数据手册(英文)
- SHTC3数据手册(英文)
程序
相关文件
开发资料
软件工具
Arduino
VScode
固件烧录工具
FAQ
1、为了安全起见,需要将USB断开,长按PWR(5s)关机再进行更换
是可以给锂电池供电的。
长按PWR按键(5s),然后按住BOOT按键,再单击PWR按键即可进入下载模式。



















