ESP32利用大模型做聊天机器人

embedded/2024/9/24 11:27:44/

ESP32功能十分强大,不仅有强大的数据处理能力,还支持海量的传感器,还自带蓝牙和wifi。

利用手边有的esp32,复刻了别人的项目,还没来得及二次开发,感觉做作者还是很用心的,功能nice,带屏幕,带麦克风,带喇叭,对接迅飞语音识别和大模型,可以直接语音对话,也可以在线播放mp3,音质一般,可能和喇叭有关,初次研究esp32语音图像处理,对硬件还不是很了解。可以唤醒和设置命令,感觉可以替代语音模块。

硬件列表,ESP-WROOM-32、INMP441全向麦克风、MAX98357 I2S音频放大器模块、喇叭、1.8寸(128x160)RGB_TFT屏幕,一共大概三十多块,ESP32和屏幕是大头一共要二十多块,其他小部件几块一个。没壳,如果能找个打印的壳,出门手机开个热点就能带着聊天了。esp32如果有就能直接使用,不需要刻意买。要语音对话,麦克风是必需的,要让设置说话,MAX98357 I2S音频放大器模块、喇叭也是必须的,tft屏幕不要也可以,省十几块,就是调试和使用没屏幕显示错误,初次接触的出问题只能打串口看log。

代码挺完善,本地开发使用vscode配个esp-idf就可以了,下载使用pio-home,都是vscode可以直接配置的插件,配置好环境,自己申请讯飞的免费API,开通大模型和语音识别功能,把获得的appid,APISecret,APIKEY等三个参数配置到代码里,编译下载一气呵成。

软件代码:GitHub - Explorerlowi/ESP32_AI_LLM: 本项目使用esp32接入讯飞星火大模型(现已支持豆包、通义千问大模型(流式调用))实现语音对话聊天功能,支持语音唤醒、连续对话、音乐播放等功能,同时外接了一块显示屏实时显示对话的内容。

WIFI配置使用网页模式,也可以改代码把家里的wifi直接写进去。不修改代码esp32系统启动后会开启一个默认的热点,热点:ESP32-Setup,初始密码为:12345678,手机或者电脑加入热点,然后访问本地网址:http://192.168.4.1,这是esp32开启的一个本地服务,用来添加mp3和添加家里的wifi,完成退出esp32就使用家里的wifi上网了。

硬件接线:

麦克风:

  • VDD -> 3.3v
  • GND -> GND
  • SD -> GPIO22
  • WS -> GPIO15
  • SCK -> GPIO4

音频放大模块

  • Vin -> VIN
  • GND -> GND
  • LRC -> GPIO27
  • BCLK -> GPIO26
  • DIN -> GPIO25

1.8寸OLED屏幕:

  • VDD -> VIN
  • GND -> GND
  • SCL -> GPIO18
  • SDA -> GPIO23
  • RST -> GPIO12
  • DC -> GPIO32
  • CS -> GPIO5

我新手,用了一块esp32拓板,原来的大佬用的面包板,效果还是很赞的,可以和对话机器人结合,值得研究一下,喜欢的朋友可以试试,有屏幕能显示开机过程。


http://www.ppmy.cn/embedded/103876.html

相关文章

解决npm run dev无法被同局域网访问的问题

解决npm run dev无法被同局域网访问的问题 解决npm run dev无法被同局域网访问的问题引言问题分析解决方案1. 使用 0.0.0.0 作为监听地址a. 对于基于 Node.js 的服务器:b. 对于 Vue CLI 项目: 2. 使用 ngrok 内网穿透3. 配置防火墙4. 使用 Docker 结语 解…

Shader笔记:光照与阴影1

引:旋转动画(三角函数) float3 rotationY(float3 vertex){float c cos(_Time.y*_Speed);float s sin(_Time.y*_Speed);float3x3 m {c,0,s,0,1,0,-s,0,c};return mul(m,vertex); } v2f vert (a2v v) {v2f o;o.pos UnityObjectToClipPos(r…

2024.08.28 C++初学

提示并输入一个字符串&#xff0c;统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数 要求使用C风格字符串完成 #include <iostream>using namespace std;int main() {string arr;int a 0,b0,c0,d0,e0; //a 大写 b 小写 c 数字 d空格 e其他cout &…

自动驾驶-机器人-slam-定位面经和面试知识系列10之高频面试题(04)

这个博客系列会分为C STL-面经、常考公式推导和SLAM面经面试题等三个系列进行更新&#xff0c;基本涵盖了自己秋招历程被问过的面试内容&#xff08;除了实习和学校项目相关的具体细节&#xff09;。在知乎和牛客也会同步更新&#xff0c;全网同号&#xff08;lonely-stone或者…

数据分析中的上钻、下钻、切片和切块

“上钻”、“下钻”、“切片”、“切块”是数据分析和数据展示中的常见概念,尤其是在处理多维数据或数据仓库时。以下是每个术语的解释: 上钻(Drill Up): 这是指从数据的更详细层级上升到更概括的层级。比如,假设你有一个按时间划分的销售数据,当前在查看按月的销售情况…

探索JSON Schema的世界

在职场中&#xff0c;若你频繁与JSON数据打交道&#xff0c;并致力于保障数据准确性与统一性&#xff0c;那么你不妨探究一下这款工具。 JSON Schema是一种描述JSON数据结构的格式。就像你填写表格时&#xff0c;表格上会告诉你每个空格应该填什么类型的信息&#xff0c;比如姓…

【电力电子】单相并网逆变器

摘要 单相并网逆变器是一种将直流电转换为单相交流电&#xff0c;并与电网同步输出的装置。它广泛应用于小型可再生能源系统&#xff0c;如光伏发电&#xff0c;确保产生的电能能够高效、安全地并入电网。本文探讨了单相并网逆变器的设计理论、控制策略以及其在不同负载条件下…

Metasploit漏洞利用系列(十):MSF渗透测试 - 震网三代(远程快捷方式漏洞)实战

在本系列的第十篇中&#xff0c;我们将深入探讨如何利用Metasploit Framework (MSF) 来利用著名的震网三代&#xff08;Stuxnet三代&#xff09;中的一个远程快捷方式漏洞&#xff08;LNK漏洞&#xff09;。虽然“震网三代”并非官方术语&#xff0c;而是为了描述一个类似震网蠕…