通信协议与扩展功能

旧BLE GATT命令、Web服务、SD电子书、RGB、按键与Python工具链记录。

版本与验证范围

2026年7月历史项目记录;未在本轮重新编译、烧录或硬件测量,芯片/引脚/时序/功耗不能代替当前工程。

日期:2026-07-15

BLE GATT 协议

架构

text
手机/电脑 (Browser/App)
    ↕ Web Bluetooth / BLE 客户端
ESP32-S3 (NimBLE GATT Server)
    ↕ JSON 命令
主逻辑 (ble_cmd_handle)

命令列表

命令 功能
switch_page 切换页面
memo_update 更新备忘录
news_list 获取新闻列表
get_status 获取设备状态
settings_update 更新设置
refresh_news 强制刷新新闻
reboot 重启设备
set_vcom 运行时调节 VCOM
get_vcom 获取当前 VCOM
save_vcom 持久化 VCOM 到 NVS
vcom_scan VCOM 扫描(start-end-step)
image_upload 分块上传图片到 SPIFFS

返回通知

通知 内容
state 设备当前状态
ui_state UI 状态
status get_status 的响应
news_list_resp 新闻列表

MTU 优化

  • dirty flag 机制:BLE 消息只更新内存变量,主循环统一写 NVS(避免每条消息写闪存 →200ms 导致丢包)
  • 图片上传:分块 340 字节 → base64 → JSON 包装 ~495 字节 < 512

Web Server

  • WiFi 局域网内提供管理界面
  • web_server_start() / web_server_stop()

SD 卡电子书

  • 支持 .txt 文件,最多 50 本
  • 文件浏览器 + 阅读器双状态
  • 分页阅读(g_ebook_page / g_ebook_page_total)

其他硬件

麦克风

  • GPIO15 (ADC2 CH4)
  • mic_sample(ms, &min, &max, &avg) — 环境音量采样

RGB LED

  • GPIO9
  • rgb_led_set(r, g, b) — 静态颜色
  • rgb_led_blink(r, g, b, times, ms) — 闪烁

物理按键

  • LEFT=GPIO2, RIGHT=GPIO1, OK=GPIO5
  • 短按翻页/选择, 长按进入/退出

Python 工具链

脚本 功能
gen_font.py 生成中文字库
gen_large_font.py 生成 32/48/64px 大字库
gen_weather_icons.py 天气图标 PNG→C 数组
build_icons.py 图标编译
vision.py 阿里千问 VL 识图(读图片描述)
upload_font.py 字体上传到 SPIFFS

关键词

#BLE #GATT #JSON协议 #SD卡 #电子书 #WebServer #工具链

相关

项目总览 墨水屏网页控制台


所属索引 待补充 · 主页 待补充

归档索引 待补充

来源与关联索引
来源
个人知识库
原笔记
05-历史归档/旧项目/墨水屏原始记录/通信与扩展.md
资料性质
历史记录。原文的版本、来源与验证边界继续保留。
关联笔记 4
返回资料归档

想去哪里?

22 个入口

首页作品作品展厅全部项目文章总览文件夹标签资料归档关于认识 Lan探索路线工具与工作台最近在做InkFeed · 4.2 英寸电子纸信息终端VIBRATION · 柔性振动检测与采集链路TRACE · 航向保持与灰度循迹小车STRIDE · 八自由度四足机器人SCOPE · 固件日志浏览器温度为什么被 AI 改了?FIFO 有半帧,就一定是故障吗?直线守航向,弧线再看黑线。

Tab 选择入口 · Enter 打开 · Esc 关闭