
Mon3tr 表情电子吊坠项目基于 ESP32-C3-MINI-1U(ESP32-2424S012)(触摸屏版/无触摸版) 开发板 和 Android 应用,通过 BLE(蓝牙低功耗)实现无线传输和控制,支持 Android APP 上传、管理并切换显示表情,滑动手势切换表情,目前支持上传JPEG/GIF格式。
Mon3tr_ESP32_Pendant/ —— ESP32-C3 固件源码(C/C++)M3/ —— Android 应用源码(Java)Images/ —— 项目图库Mon3tr_ESP32_Pendant/Mon3tr_ESP32_Pendant.inobash
git clone https://github.com/RoyZ-iwnl/Mon3tr-Emoji.git
cd Mon3tr_ESP32_Pendant/https://espressif.github.io/arduino-esp32/package_esp32_index.jsonesp32 by Espressif Systems 2.0.13TFT_eSPI by Bodmer 2.5.43
TJpg_Decoder by Bodmer 1.1.0
AnimatedGIF by Larry 2.2.0编辑 libraries/TFT_eSPI/User_Setup.h
备份原文件,用以下内容覆盖(仅适配 ESP32-2424S012 + GC9A01 屏):
cpp
#define TFT_RGB_ORDER TFT_BGR
#define TFT_WIDTH 240
#define TFT_HEIGHT 240
#define TFT_BACKLIGHT_ON HIGH
#define LOAD_GLCD
#define LOAD_FONT2
#define SMOOTH_FONT
#define USER_SETUP_INFO "User_Setup"
#define GC9A01_DRIVER
#define COLOR_DEPTH 16
#define TFT_MISO -1
#define TFT_MOSI 7
#define TFT_SCLK 6
#define TFT_CS 10
#define TFT_DC 2
#define TFT_RST -1
#define TFT_BL 3
#define SPI_FREQUENCY 40000000
#define SPI_READ_FREQUENCY 20000000
#define SPI_TOUCH_FREQUENCY 2500000
⚠️ 如使用其他 GC9A01 屏/板,请根据实际引脚调整
连接开发板,IDE 内选择对应端口,点击上传即可。
⚠️ 注意:Arduino IDE 2.3.6 的 SD 库与
esp32 by Espressif Systems 2.0.13自带 SD 库冲突。请在编译前移走%LOCALAPPDATA%\Arduino15\libraries\SD文件夹,需要时再放回。
M3/4fafc201-1fb5-459e-8fcc-c5c9c331914bbeb5483e-36e1-4688-b7f5-ea07361b26a8beb5483e-36e1-4688-b7f5-ea07361b26a9[命令ID(1字节), 负载长度(1字节), 负载数据(变长)]
[命令ID(1字节), 状态码(1字节), 负载长度(1字节), 负载数据(变长)]
| 命令ID | 名称 | 描述 | 负载格式 |
|---|---|---|---|
| 0x01 | 开始传输 | 开始图片传输 | [图片索引(1字节)] |
| 0x02 | 图片数据 | 图片数据分片 | [图片数据(变长)] |
| 0x03 | 结束传输 | 结束图片传输 | 无 |
| 0x04 | 删除图片 | 删除指定图片 | [图片索引(1字节)] |
| 0x05 | 重排图片 | 重新排序图片 | [新顺序索引数组] |
| 0x06 | 获取列表 | 获取图片列表 | 无 |
| 0x07 | 设置显示 | 设置当前显示图片 | [图片索引(1字节)] |
| 0x08 | 获取状态 | 获取设备状态 | 无 |
| 状态码 | 名称 | 描述 |
|---|---|---|
| 0x00 | 成功 | 命令执行成功 |
| 0x01 | 一般错误 | 通用错误 |
| 0x02 | 文件系统 | 文件操作失败 |
| 0x03 | 传输错误 | 数据传输出错 |
| 0x04 | 参数错误 | 命令参数无效 |
图片上传流程
[图片索引]获取图片列表
[图片数量, {位置索引, 文件索引, 大小(4字节)}*n]获取设备状态
[开机时长(4字节), 存储用量(4字节), 当前显示索引] 开机时长单位:秒,小端序
设置显示图片
发送设置显示(0x07),负载 [图片索引]
删除图片
发送删除图片(0x04),负载 [图片索引]
重排图片
发送重排图片(0x05),负载 [索引1, 索引2, ...]
ble_handler.hble_handler.cpp 的 setupBLE 函数CST816D.h和CST816D.cpp的双击手势可能不良,其他开发板I2C引脚请根据实际编辑如有建议欢迎 issue 或 PR!
$ claude mcp add Mon3tr-Emoji \
-- python -m otcore.mcp_server <graph>