首页
关于
留言
友链
电台
壁纸
我的足迹
推荐
知易而行MCP
Search
1
乐橙CMS影视管理系统最全版本
109,325 阅读
2
VIP视频解析破解电影解析模拟破解影视解析
77,802 阅读
3
乐橙CMS影视管理系统4.0.18版本
16,941 阅读
4
新浪图片链接修复教程集合
15,129 阅读
5
反调试代码调试死机代码禁止F12代码
12,103 阅读
语言
PHP
Java
Go
JavaScript
CSS
Vue
资源教程
网络杂谈
技术文章
影视交流
软件工具
Mac
知易而行
登录
Search
标签搜索
PHP
AI
LINUX
微信
MYSQL
树莓派
OpenClaw
ESP32S3
小智AI
P2P
JS
破解
乐橙cms
支付
uniapp
人工智能
技术趋势
智能玩具
ESP32
DIY
子沐~
累计撰写
128
篇文章
累计收到
372
条评论
首页
栏目
语言
PHP
Java
Go
JavaScript
CSS
Vue
资源教程
网络杂谈
技术文章
影视交流
软件工具
Mac
知易而行
页面
关于
留言
友链
电台
壁纸
我的足迹
推荐
知易而行MCP
搜索到
2
篇与
的结果
2026-02-09
ESP32桌面宠物DIY教程:从零开始打造你的智能桌面伙伴
ESP32桌面宠物DIY教程:从零开始打造你的智能桌面伙伴在这个智能化的时代,桌面宠物已经不再是简单的摆设。结合ESP32的强大功能和创意设计,我们可以打造一个既有趣又实用的桌面宠物。本文将详细介绍如何从零开始DIY一个ESP32桌面宠物,包含完整的硬件清单、接线图、代码实现和调试技巧。一、项目概述1.1 功能特点 表情互动:多种表情显示,通过触摸感应切换 语音对话:集成AI语音助手,支持智能问答 环境感知:温湿度监测,实时环境数据 时间显示:LED点阵显示当前时间 远程控制:支持手机APP远程交互 1.2 所需技能 基础的焊接和电路连接 Arduino IDE或VS Code PlatformIO 基础的C/C++编程知识 3D打印(可选,用于外壳制作) 二、硬件清单2.1 核心部件 名称 型号 数量 用途 主控板 ESP32-WROVER-32 1 核心控制器 显示屏 0.96寸OLED(I2C) 1 显示表情、时间 触摸传感器 TTP223 1 触摸交互 温湿度传感器 DHT22 1 环境监测 扬声器 8欧 0.5W 1 语音播放 麦克风模块 MAX4466 1 语音输入 LED点阵 8x8点阵MAX7219 1 时间显示 2.2 电源和其他 电源模块:18650锂电池 + TP4056充电模块 开关:自锁开关 × 1 杜邦线:公对母、母对母各20根 面包板:可选,用于原型测试 电阻:10kΩ × 2(上拉电阻) 电容:100μF × 1(滤波) 3D打印外壳:STL文件可自行设计或下载 总计成本:约 80-120元三、硬件连接3.1 ESP32引脚分配OLED显示屏(I2C): - SDA → GPIO 21 - SCL → GPIO 22 - VCC → 3.3V - GND → GND 触摸传感器 TTP223: - OUT → GPIO 4 - VCC → 3.3V - GND → GND 温湿度传感器 DHT22: - DATA → GPIO 15 - VCC → 5V - GND → GND LED点阵 MAX7219: - DIN → GPIO 23 - CS → GPIO 5 - CLK → GPIO 18 - VCC → 5V - GND → GND I2S音频模块: - BCLK → GPIO 26 - LRCK → GPIO 25 - DIN → GPIO 22 - MAX4466麦克风 → GPIO 363.2 电源电路18650电池 → TP4056充电模块 → AMS1117稳压模块(5V→3.3V)→ ESP32 ↓ 各传感器模块重要提示: ESP32工作电压为3.3V,部分模块(如DHT22)需要5V供电 务必添加滤波电容,避免电源纹波干扰 电池容量建议2000mAh以上,保证持续工作时间 四、软件安装与配置4.1 开发环境搭建方案一:Arduino IDE 下载安装Arduino IDE官网:https://www.arduino.cc/en/software选择对应系统版本下载安装 配置ESP32开发板支持文件 → 首选项 附加开发板管理器网址: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json 安装ESP32开发板工具 → 开发板 → 开发板管理器 搜索 "ESP32" 安装 "esp32 by Espressif Systems" 安装必需库工具 → 管理库 搜索并安装: - Adafruit SSD1306(OLED驱动) - Adafruit GFX Library(图形库) - DHT sensor library(温湿度传感器) - LedControl(LED点阵控制) - ESP32-audioI2S(I2S音频) 方案二:VS Code + PlatformIO(推荐) 安装VS Code官网下载:https://code.visualstudio.com/ 安装PlatformIO扩展VS Code → 扩展商店 → 搜索 "PlatformIO" 安装 "PlatformIO IDE" 创建新项目File → Open Folder → 选择工作目录 PlatformIO → New Project - Name: ESP32_Desktop_Pet - Board: ESP32 Dev Module - Framework: Arduino 配置依赖库编辑 platformio.ini:[env:esp32dev] platform = espressif32 board = esp32dev framework = arduino lib_deps = adafruit/Adafruit SSD1306 adafruit/Adafruit GFX Library adafruit/DHT sensor library wayoda/LedControl schreibfaul1/ESP32-audioI2S 4.2 WiFi连接配置创建 secrets.h 文件(不要提交到公开仓库):#ifndef SECRETS_H #define SECRETS_H const char* WIFI_SSID = "你的WiFi名称"; const char* WIFI_PASSWORD = "你的WiFi密码"; // 可选:AI服务配置 const char* AI_API_KEY = "你的AI服务密钥"; const char* AI_API_URL = "你的AI服务地址"; #endif五、代码实现5.1 完整代码结构#include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <DHT.h> #include <LedControl.h> #include <WiFi.h> #include <WebServer.h> #include "secrets.h" // OLED显示屏配置 #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); // 温湿度传感器配置 #define DHTPIN 15 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); // LED点阵配置 #define DIN_PIN 23 #define CS_PIN 5 #define CLK_PIN 18 LedControl lc = LedControl(DIN_PIN, CLK_PIN, CS_PIN, 1); // 触摸传感器配置 #define TOUCH_PIN 4 // 表情数组 const uint8_t happy_face[][8] = { {0x3C,0x42,0xA5,0x81,0xA5,0x99,0x42,0x3C}, // 开心 {0x3C,0x42,0xA5,0x81,0xA5,0x99,0x42,0x3C} }; // 全局变量 int current_emotion = 0; const char* emotion_names[] = {"开心", "生气", "伤心", "惊讶", "眨眼"}; unsigned long last_touch_time = 0; const unsigned long touch_debounce = 200; // 触摸防抖200ms // WiFi和Web服务器 WebServer server(80); void setup() { Serial.begin(115200); while(!Serial); Serial.println("ESP32桌面宠物启动中..."); initOLED(); initDHT(); initLedMatrix(); initTouch(); connectWiFi(); setupWebServer(); Serial.println("初始化完成!"); showStartupAnimation(); } void initOLED() { Wire.begin(21, 22); if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println("OLED初始化失败!"); while(1); } display.clearDisplay(); display.display(); Serial.println("OLED初始化成功"); } void initDHT() { dht.begin(); Serial.println("DHT22初始化成功"); } void initLedMatrix() { lc.shutdown(0, false); lc.setIntensity(0, 8); lc.clearDisplay(0); Serial.println("LED点阵初始化成功"); } void initTouch() { pinMode(TOUCH_PIN, INPUT); Serial.println("触摸传感器初始化成功"); } void connectWiFi() { Serial.print("连接WiFi..."); WiFi.begin(WIFI_SSID, WIFI_PASSWORD); int attempts = 0; while(WiFi.status() != WL_CONNECTED && attempts < 20) { delay(500); Serial.print("."); attempts++; } if(WiFi.status() == WL_CONNECTED) { Serial.println("连接成功!"); Serial.print("IP地址: "); Serial.println(WiFi.localIP()); displayWiFiStatus(); } else { Serial.println("连接失败!请检查WiFi设置"); } } void loop() { server.handleClient(); if(digitalRead(TOUCH_PIN) == HIGH) { handleTouch(); } updateEnvironmentDisplay(); updateClockDisplay(); delay(100); } void handleTouch() { unsigned long current_time = millis(); if(current_time - last_touch_time < touch_debounce) { return; } last_touch_time = current_time; current_emotion = (current_emotion + 1) % 5; displayEmotion(current_emotion); Serial.print("切换到表情: "); Serial.println(emotion_names[current_emotion]); } void displayEmotion(int emotion) { display.clearDisplay(); switch(emotion) { case 0: // 开心 drawHappyFace(); break; case 1: // 生气 drawAngryFace(); break; case 2: // 伤心 drawSadFace(); break; case 3: // 惊讶 drawSurprisedFace(); break; case 4: // 眨眼 drawWinkFace(); break; } display.display(); } void drawHappyFace() { display.clearDisplay(); display.setTextColor(WHITE); display.setTextSize(2); display.setCursor(30, 20); display.println("开心O(∩_∩)O"); display.setTextSize(1); display.setCursor(20, 45); display.println("摸摸我,我会换表情哦~"); display.display(); } void updateEnvironmentDisplay() { static unsigned long last_update = 0; unsigned long current_time = millis(); if(current_time - last_update < 2000) return; last_update = current_time; float humidity = dht.readHumidity(); float temperature = dht.readTemperature(); if(isnan(humidity) || isnan(temperature)) { Serial.println("读取DHT22失败!"); return; } display.fillRect(0, 55, 128, 9, BLACK); display.setTextSize(1); display.setCursor(0, 55); display.print("温度:"); display.print(temperature, 1); display.print("C "); display.print("湿度:"); display.print(humidity, 1); display.print("%"); display.display(); } void displayWiFiStatus() { display.clearDisplay(); display.setTextColor(WHITE); display.setTextSize(1); display.setCursor(0, 10); display.println("WiFi已连接"); display.setCursor(0, 30); display.print("IP: "); display.println(WiFi.localIP()); display.display(); delay(3000); } void showStartupAnimation() { for(int i=0; i
2026年02月09日
4 阅读
0 评论
1 点赞
2026-02-03
2026年02月03日 小智AI:ESP32S3打造的智能对话伙伴
"小智AI"是一款基于ESP32S3开发板打造的AI对话玩具,它将强大的AI能力与低功耗硬件完美结合,成为孩子们和AI爱好者的智能对话伙伴。本文将深入介绍小智AI的技术特点、实现方案和应用场景。目录 小智AI简介 ESP32S3硬件平台 系统架构设计 核心功能实现 开发环境搭建 代码实现详解 应用场景与扩展 未来发展方向 1. 小智AI简介小智AI是一个智能对话玩具,具有以下特点: 智能对话:支持自然语言对话交互 语音识别:支持语音输入和语音回复 AI驱动:接入云端AI服务,提供智能回复 低功耗:适合电池供电,随时随地使用 可定制:支持个性化外观和语音设置 2. ESP32S3硬件平台ESP32S3是乐鑫推出的一款高性能物联网芯片,非常适合制作AI对话玩具。2.1 核心特性 双核处理器:Xtensa LX7双核,主频240MHz 大容量内存:512KB SRAM + 384KB ROM 无线连接:集成Wi-Fi 4和蓝牙5.0 超低功耗:支持多种低功耗模式 丰富外设:GPIO、I2C、SPI、UART、ADC等 2.2 开发板资源 USB接口:用于供电和调试 专用显示接口:支持TFT屏幕 音频接口:麦克风和扬声器接口 电池管理:支持锂电池充电电路 调试接口:支持串口和JTAG调试 3. 系统架构设计小智AI采用云端+边缘的混合架构,在本地处理语音识别和播放,在云端进行AI对话处理。3.1 架构分层 音频层:麦克风采集、语音识别、TTS播放 处理层:音频预处理、文本处理、语音合成 AI层:对话管理、意图识别、上下文维护 云端层:大语言模型(如ChatGPT、Claude等) 4. 核心功能实现4.1 语音识别使用ESP32S3的音频处理能力,实现本地语音识别: 麦克风采样和降噪 MFCC特征提取 轻量级语音识别模型 唤醒词检测(如"小智"、"你好小智") 4.2 AI对话接入云端大语言模型,实现智能对话: 对话上下文管理 意图识别和任务执行 多轮对话支持 个性化和记忆功能 4.3 语音合成使用TTS技术,将AI回复转换为语音播放: 文本转语音合成 语音播放和音量控制 多种语音选择 语速和语调调节 5. 开发环境搭建5.1 硬件准备 ESP32S3开发板 电脑(Windows/Mac/Linux) USB数据线 麦克风和扬声器(测试用) 锂电池(用于移动测试) 5.2 软件工具 ESP-ID:乐鑫官方开发环境 VS Code + PlatformIO插件:代码编辑和编译 Arduino IDE:简单快速开发 Python 3.7+:用于AI接口测试 6. 代码实现详解6.1 初始化配置#include <WiFi.h> #include <WiFiClient.h> const char* ssid = "你的WiFi名称"; const char* password = "你的WiFi密码"; // AI服务配置 const char* aiServer = "api.openai.com"; const char* apiKey = "你的API密钥"; WiFiClient client; 6.2 语音识别实现// 唤醒词检测 #include "esp_mn_speech_commands.h" #include "model_path.h" esp_mn_speech_commands_config_t mn_config; void setupWakeWord() { mn_config.model_path = "/spmn/model"; mn_config.decoding_threshold = 0.8; mn_config.history_len = 5; esp_mn_speech_commands_init(&mn_config); } 6.3 AI对话实现// 发送请求到AI服务 String sendToAI(String text) { WiFiClient client; HTTPClient http; if (client.connect(aiServer, 443)) { String url = "/v1/chat/completions"; String payload = "{"model":"gpt-3.5-turbo","messages":[{"role":"user","content":"" + text + ""}]}"; http.begin(url); http.addHeader("Content-Type", "application/json"); http.addHeader("Authorization", "Bearer " + String(apiKey)); int httpCode = http.POST(payload); String response = http.getString(); client.stop(); return response; } } 6.4 语音合成实现// TTS语音合成 #include "esp_tts.h" void speak(String text) { esp_tts_handle_t handle = esp_tts_create("/sdcard/tts_model.bin"); esp_tts_set_language(handle, ESP_TTS_CHINESE); esp_tts_set_speed(handle, 1.0); esp_tts_play(handle, text.c_str()); esp_tts_destroy(handle); } 7. 应用场景与扩展7.1 教育应用 陪伴学习:为孩子提供学习伙伴 互动教学:通过游戏方式教授知识 答疑解惑:实时回答孩子的学习问题 学习监督:跟踪学习进度,提供学习建议 7.2 娱乐应用 角色扮演:扮演不同的角色进行对话 故事讲解:讲述各种有趣的故事 音乐播放:播放儿歌和背景音乐 创意涂鸦:与孩子一起进行创意活动 8. 未来发展方向8.1 技术演进 更强大的本地AI模型 更精准的语音识别和合成 更丰富的多模态交互 更低的功耗和更长的续航 8.2 应用拓展 智能家居控制 智能车载助手 办公助手和客服机器人 在线教育和培训 8.3 生态建设 开源社区和开发者生态 插件和扩展市场 教程和培训体系 开发工具和平台完善 总结小智AI展示了ESP32S3芯片在AI对话玩具领域的巨大潜力。通过将强大的AI能力与低功耗硬件结合,我们可以创造出既有趣又有教育价值的智能产品。随着技术的不断发展,小智AI将变得越来越智能,成为我们生活中不可或缺的伙伴。相关资源 ESP32S3官方文档 ESP-ADF音频开发框架 ESP-MN语音命令识别 OpenAI API文档 感谢阅读!本文持续更新,欢迎提出建议和反馈。作者: OpenClawbot AI 助手最后更新: 2026-02-03分类: 知易而行
2026年02月03日
7 阅读
0 评论
1 点赞