站内搜索
发作品签到
TV-Pro双固件在线大模型小电视
专业版

TV-Pro双固件在线大模型小电视

2.6w
0
0
170

简介

本项目基于立创ESP32S3R8N8开发板,可在线运行讯飞星火/小智AI等在线大模型服务。

简介:本项目基于立创ESP32S3R8N8开发板,可在线运行讯飞星火/小智AI等在线大模型服务。
复刻成本:30

开源协议

GPL 3.0

创建时间:2025-03-05 17:11:49更新时间:2025-11-19 09:41:22

描述

项目介绍
  • 本项目基于【立创开发板 ESP32S3R8N8】构建,是一个可在线运行的 AI 大模型小电视。
  • 提供双固件:支持TV-PRO固件/小智AI固件
  • 项目结构与电路设计简单,适合新手复刻焊接,大部分电路采用可拆卸模块,无需深入电路知识,模块均通过排母连接,可轻松拆卸。
  • 不含开发板的拓展板+模块套件成本为30元左右。

项目功能

本项目支持两种固件可供选择

TV-PRO固件
提供项目源码及固件
  • ✅ 原生讯飞实时语音大模型
  • ✅ 原生讯飞星火大模型
  • ✅ WebSocket流式传输
  • ✅ 万码云豆包 / cosyvoiceTTS 大模型
  • ✅ 中译英翻译功能
  • ✅ 英译中翻译功能
  • ✅ 当日天气
  • ✅ 时间显示
小智AI固件
提供移植文件及固件
  • ✅ 小智AI官方功能

开发文档及教程

嘉立创EDA-教育与开源文档中心

硬件参数

  • 基于【立创开发板 ESP32S3R8N8】,内置 WIFI,通过 HTTPS/WebSocket 完成 API 请求
  • 屏幕使用 ST7789 驱动 1.3 寸屏幕,用于显示天气、时间等信息
  • 功放模块 Max98357,通过 I2S 协议传输数据
  • 麦克风 INMP441 全向麦克风,通过 I2S 提供音频采集
  • 8R1W 喇叭,提供音频播放

硬件设计

主控电路
这里直接使用立创ESP32S3R8N8开发板,这里我们只引出了用到的几个接口,你可以根据需求引出需要的IO
    Image
屏幕电路
这里直接采用ST7789驱动的1.3寸LCD 7Pin接口屏幕模块
    Image
麦克风电路
这里直接采用INMP441全向麦克风模块,L/R引脚依照数据手册下拉选择左声道,这个可自由选择上下拉
    Image Image
功放电路
这里直接采用MAX98357功放模块,依照数据手册对GAIN下拉100K,对SD上拉10K(部分模块自带10K上拉,可留空不焊接)
    Image Image Image
按键电路
这里为所有按键配置了外部上拉(可以留空不焊接,通过软件启用内部上拉)
    Image

软件开发

本项目的软件代码比较复杂,且涉及编解码加密,通讯接口对接等整体代码较长,这里不详细展示,详细代码请到在线文档中查看,代码中并没有做过多优化,可能存在冗余,可自行优化。

开发环境
  • 软件环境:VSCode+PlatformIO
  • 开发语言:C/C++
API接入

为方便无服务器玩家开发,本项目采用无服务器接入在线API实现,但也正因如此,我们需要使用多个API服务来回调用。如果你有服务器则可以集成服务,只需要请求一个API就好,就像小智AI一样。所以总的来说小智AI的调用会更为简单和方便。

  • ASR服务:讯飞-语音听写(流式版)
  • 大语言模型服务:讯飞-星火Spark4.0 Ultra
  • TTS服务:万码云TTS-豆包
通过以下库完成本项目开发
  • ArduinoJson:解析/生成Json文件
  • ArduinoWebsockets:WebSockets通讯
  • ESP32-audioI2S:通过URL获取音频播放
  • ESPAsyncWebServer-esphome:页面配置
  • TFT_eSPI:UI界面
  • NTPClient:实时时间同步
函数定义
通过以下库完成本项目开发
  • void handleWiFiConfig():管理WiFi配置(保存/读取)
  • void loadWiFiConfig():加载WiFi配置文件
  • void fetchWeather():从API获取天气数据
  • String base64Encode(const uint8_t *data, size_t len):二进制数据Base64编码
  • String base64EncodeUserInput(const String &userInput):用户输入Base64编码
  • String getDate():获取当前系统时间
  • String hmacSHA256(const String &key, const String &data):HMAC-SHA256加密
  • String calculateDigest(const String &body):计算消息体摘要
  • String calculateSignature(...):生成API请求签名
  • String generateSpeechAuthURL():生成语音服务鉴权URL
  • String generateChatAuthURL():生成聊天服务鉴权URL
  • void sendHandshake():发送WebSocket握手请求
  • void sendAudioData(...):发送音频流数据帧
  • void startRecording():启动麦克风录音
  • void stopRecording():停止麦克风录音
  • void onSpeechMessage(...):处理语音服务响应
  • void playTTS(String textToSpeak):文本转语音播放
  • void Translation(...):执行文本翻译
  • void sendChatRequest(...):发送聊天请求
  • void onChatMessage(...):处理聊天服务响应
  • void displayTask(...):显示屏刷新任务
  • String removeNonUTF8(...):过滤非UTF8字符
  • void setup():系统初始化
  • void loop():主循环逻辑
  • processChatResult():解析聊天结果
  • processSpeechResult():解析语音结果
  • void connectWebSocket():建立WebSocket连接
  • void handleButtonPress(...):处理物理按钮事件

3D外壳结构

3D外壳由嘉立创云CAD平台构建
3D外壳工程-嘉立创云CAD

前盖
侧面1侧面2
image.pngimage.png
  • 外壳设计有螺丝孔柱,用于固定。
  • 壳体内部添加倒角加强,屏幕部分为排针焊点添加槽位,屏幕下侧添加限位槽,避免屏幕受外力下凹。
  • 壳内三角添加PCB支撑,避免PCB受力不均、凹凸不平。
  • 主体外壳采用大圆角,使得整体美观圆润。
后盖
正面背面
image.pngimage.png
  • 后壳同样采用大圆角,使得整机圆润。
  • 边角处同样采用倒角加强,并开Type-C挖孔。
  • ESP32S3芯片处添加散热孔,排出外壳内部热量。

安装结构

项目采用的是三段式结构,由前盖、主板、后盖构成


安装屏幕
首先将屏幕侧滑进前盖屏幕限位槽中
安装主板
将拼装完成的主板倒扣,主板屏幕排母对准屏幕排针插入
安装后盖
后盖倒扣插入即可
免费打样
嘉立创提供一站式产业互联智造平台,涵盖电子、机械产业一站式服务🛠️
实物图
12
20250423-190653.jpg20250423-190715.jpg
20250423-190720.jpg20250423-190711.jpg

云服务请求
9d045ed2-8320-4f1b-9dff-a45dff9b4341.jpg

拓展方向
本项目提供了一个无服务器的在线API大模型边缘AI智能硬件方案Demo,你完全可以基于本项目拓展更多功能,对此我们给出一些拓展方向,欢迎基于本项目修改。
  • USB/BLE协议的语音输入法
  • PC性能监视器
  • 电子相册
  • ......
注意事项

FAQ

为什么需要调用这么多API? 本项目是一个无服务器后端的项目,所以我们只能通过MCU完成原生API整合调用,我们在开发时也没有找到合适的能一次性完成ASR、AI、TTS的整合API。如果你自己有服务器,则可以像小智那样部署一个后端服务处理API,这样服务器和MCU之间只需要调用一个API,还可大大降低程序复杂性,腾出更多空间。
为什么主控发烫? 因为采用的是多个在线API,所以需要处理很多网络请求,这就导致需要较高功耗,产生较大热量。
为什么语音输出较慢? 因为TTS这里采用的是在线URL解析音频,对网络和内容长短有较高要求,你可以优化代码,将应答内容分段多次请求TTS然后播放,但是这必然会消耗更多的API费用。
如何配网? 开机后连接名称为TV-Pro的WIFI热点,浏览器输入192.168.4.1即可进入配网页面(部分手机会弹出WIFI无网络是否继续连接,务必点击继续。也有部分手机会直接切换到流量,导致无法配网。
无法进入配网页面? 配网页面的html保存至spiffs文件系统中,这个固件需要单独刷入,如果未刷入会导致无法加载配网页面。

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
1
TV-PRO_Bottom.stl
45
2
TV-PRO_Top.stl
37

附件

序号文件名称下载次数
1
TV-Pro项目资源包.zip
652
2
TV-Pro小智AI移植文件.zip
266
3
TV_Pro原生API接入源码.zip
485
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

底部导航