【ESP32C3接入2025年冬火山大模型教程】

【ESP32C3接入2025年冬火山大模型教程】

    • 前言
    • [1. 豆包大模型](#1. 豆包大模型)
      • [1.1 方舟定位](#1.1 方舟定位)
      • [1. 极速体验](#1. 极速体验)
      • [1.3 深度思考](#1.3 深度思考)
      • [1.4 最新模型选择](#1.4 最新模型选择)
    • [2.1 环境配置](#2.1 环境配置)
    • [2.2 所需零件](#2.2 所需零件)
    • [3. 核心代码](#3. 核心代码)
      • [3.1 源码分享](#3.1 源码分享)
      • [3.2 源码解析](#3.2 源码解析)
    • [4. 上传验证](#4. 上传验证)
      • [4.1 platformio.ini](#4.1 platformio.ini)
      • [4.2 对话测试](#4.2 对话测试)
      • [4.3 错误码](#4.3 错误码)
    • [5. 总结](#5. 总结)

前言

随着国产大语言模型的发展,我们不仅可以用它来回答问题、写代码,还可以让它直接控制硬件设备,现在逐步添加最新的大模型支持。这次更新了火山适配的开源模型deepseekv3.2和Kimi2.0,这个是基于【ESP32接入国产大模型之豆包】【ESP32接入国产豆包大模型控制灯和舵机】【ESP32接入最新国产豆包大模型教程】升级的哦!😘😘😘💕💕💕

用 ESP32 接入"豆包"最新大模型,不仅实现通过自然语言控制 LED 灯亮度和舵机角度!优化指令集可查看大模型状态。🤣🤣🤣

上次是用esp32s3进行的,这次采用便宜的esp32c3,支持5种模型:

"doubao-seed-code-preview-251028" - 模型0

"doubao-seed-1-6-flash-250828" - 模型1

"doubao-seed-1-6-lite-251015" - 模型2

"deepseek-v3-2-251201" - 模型3

"kimi-k2-thinking-251104" - 模型4

首先声明没有恰饭广告,源代码已经匿名处理,制作细节非常完善,方便大家复刻才会提供快捷的相关链接跳转!!!😘😘😘

本文将重点介绍如何通过ESP32S3接入国产大模型之豆包升级版。

上一篇博客已经分享了:
【ESP32接入国产大模型之腾讯混元】
【ESP32接入国产大模型之豆包】
【ESP32接入国产大模型之星火】
【ESP32接入国产大模型之MiniMax】
【ESP32接入语言大模型之智谱清言】
【ESP32接入国产大模型之文心一言】
【ESP32接入语言大模型之通义千问】
【ESP32接入国产大模型之kimi】
【ESP32接入国产大模型之Deepseek】
【ESP32接入国产大模型之阿里Deepseek】
【ESP32接入国产大模型之豆包升级版】
【ESP32接入国产豆包大模型控制灯和舵机】

下面是不标准测评,参考而已:

模型 响应时间 内容质量 免费token次数 地址
豆包 2s 9分 50万 https://www.volcengine.com/product/doubao
讯飞星火 4s 8分 1亿 https://www.xfyun.cn/doc/spark/HTTP调用文档.html
MiniMax 3s 8分 500万 https://www.minimaxi.com/
智谱清言 7s 7分 300万 https://open.bigmodel.cn/
文心一言 10s 7分 500万 https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Nlks5zkzu
通义千问 8s 7分 800万 https://tongyi.aliyun.com/qianwen/
Kimi 2s 9分 50万 https://platform.moonshot.cn/docs/guide/start-using-kimi-api
混元 6s 8分 50万 https://cloud.tencent.com/document/product/1729/105701
Deepseek 12s 9分 50万 https://api-docs.deepseek.com/
阿里Deepseek 10s 9分 50万 https://help.aliyun.com/zh/model-studio/developer-reference/deepseek?spm=a2c4g.11186623.help-menu-search-2400256.d_1#2048aa1f92x46

这一次还是采用Platformio编程就会轻松许多开发。这样就可以把大模型装进口袋啦🤣🤣🤣


1. 豆包大模型

请大家点击豆包火山注册地址,不注册是不能完成下面的实验哦:https://t.vncps.com/5LOve

谢谢啦大家的支持💖💖💖

豆包与火山方舟、火山引擎之间的关系主要体现为技术同源、产品定位互补,三者均隶属于字节跳动旗下。具体联系如下:

🛠️ 1. 火山引擎:底层技术基座

定位:字节跳动推出的企业级云服务平台,提供云计算、大数据、AI 中台、容器服务等基础技术能力。 功能:为火山方舟提供算力支持(GPU

集群)、模型训练 / 推理框架、数据存储等基础设施。 关系:是豆包和火山方舟的技术底层支撑。

🤖 2. 豆包:AI 产品化终端应用

定位:面向公众的AI 对话助手(类似 ChatGPT),可提供问答、写作、编程等能力。 技术来源:依赖于火山引擎的算力资源及自研大模型(如

Skywork 天工、Cloud 系列模型)。 产品形态:直接向用户提供服务的 C 端应用(网页 / App),如 doubao.com

🔧 3. 火山方舟:AI 模型开发与服务平台

定位:聚焦于企业级 AI 模型的开发、部署与管理平台(类似百度文心千帆)。 核心功能:

模型接入:支持集成第三方大模型(如百川、MiniMax)。 工具链:提供模型精调(Fine-tuning)、评测、API 部署等工具。

场景方案:针对企业需求定制客服、营销等 AI 解决方案。 与豆包的联系: 技术同源:共用火山引擎的 AI 训练框架和推理加速技术。

能力互补:企业可通过火山方舟训练模型,再以 SDK/API 形式接入自身产品(如集成类似豆包的聊天功能)。

模型共享:豆包的底层模型可能通过火山方舟向企业客户开放定制。

产品简介:https://www.volcengine.com/docs/82379/1099455

1.1 方舟定位

为您提供大模型服务的开发平台,提供功能丰富、安全以及具备价格竞争力的模型调用服务,同时提供模型数据、精调、推理、评测等端到端功能,全方位保障您的 AI 应用开发落地。

1. 极速体验

您可以访问火山方舟大模型体验中心,免登录极速体验模型能力。

点击页面中心的模型切换按钮,可以切换体验Doubao或DeepSeek系列模型能力。

未登录状态下可以体验部分模型。如果您需要体验所有模型能力,建议您登录火山引擎账号,选择并开通模型

点击开启MCP服务器,可以连接使用更多火山云产品与三方工具。

您也可以尝试选择下方的图片理解任务进行尝试。

1.3 深度思考

官方文档:https://www.volcengine.com/docs/82379/1449737

您可以使用具备深度思考能力的模型,如 deepseek r1、doubao thinking 系列模型,来提升最终答案的准确性。模型在回答问题前,会对问题进行分析和拆解,并基于对问题的拆解回答问题,回答会更加全面和深入。当您向模型提问时,方舟返回模型回答问题前的问题思考逻辑(思维链内容),基于此可观察模型推导过程并使用这部分信息。

1.4 最新模型选择

地址:https://www.volcengine.com/docs/82379/1330310

方舟提供多种模型供您使用。您可依据教程或者API说明,便捷地将模型服务整合到自身业务当中。

doubao-seed-1-8-251215这个模暂时不能用

2.1 环境配置

  1. Arduino IDE:下载并安装 Arduino IDE;
  2. ESP32 开发板库:在 Arduino IDE 中添加 ESP32 支持;
    参考博客:【esp32c3配置arduino IDE教程】
    为安装过程留出一些时间,具体时间可能因您的互联网连接而异。

2.2 所需零件

要学习本教程,您需要1个 ESP32 开发板或者ESP32C3,建议使用后者,笔者发现同样的代码后者可以轻松调用,ESP32不行(可能板子坏了)

目前这是我使用的ESP32S3官方硬件👍👍👍(小小的身材有大大的力量)只需要35元加摄像头麦克风79元,后期我会整理相关专栏进行Arduino系统学习😘😘😘。有需要可以购买xiao开发板💕💕💕

  1. SeeedXIAO ESP32S3 Sense硬件购买地址:https://s.click.taobao.com/lekazrt

  2. ESP32-S3-CAM 核心开发板 N16R8 wifi蓝牙模块 OV2640摄像头硬件购买地址:https://s.click.taobao.com/1PTagos

  1. ESP32-S3 NANO开发板 虾哥小智AI 蓝牙WiFi核心板N16R8兼容立创S3

    WiFi+蓝牙模块 + OV2640/5640摄像头!!高性能S3芯片!多功能开发!创新设计!!板载天线,稳定连接!!关键是全能开发套装!!
    【下单链接】https://s.click.taobao.com/3eH0Gmq

    ESP32C3 PRO MINI开发板板载ESP32-C3FH4芯片模块wifi 蓝牙开发板
    下单地址:https://s.click.taobao.com/WUIiLto

    硬件资源参考:https://www.nologo.tech/product/esp32/esp32c3/esp32c3supermini/esp32C3SuperMini.html#产品参数

上面硬件五选一,我是第五款硬件,信号强又便宜

舵机选择,sg90舵机小型航模大扭力舵机伺服控制模块MG90S微型经典舵机云台

【下单链接】https://s.click.taobao.com/gbAzFmq

LED 引脚接 ESP32 的 GPIO8(可改),这个第五块开发板自带管脚8的LED

舵机信号线接 GPIO3(可改)

GND 公共接地

舵机电源建议单独供电(防止电流过大重启)

3. 核心代码

对话参考案例:https://www.volcengine.com/docs/82379/1449737

请求数据

bash 复制代码
curl https://ark.cn-beijing.volces.com/api/v3/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ARK_API_KEY" \
  -d '{ 
    "model": "doubao-seed-1-6-250615",
    "messages": [
        {
            "role": "user",
            "content": "我要研究深度思考模型与非深度思考模型区别的课题,怎么体现我的专业性"
        }
    ]
  }'

3.1 源码分享

cpp 复制代码
#include <Arduino.h>
#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
#include <driver/ledc.h>
#include <esp_task_wdt.h>  // 引入ESP32看门狗库

#include <ESP32Servo.h>
// 硬件配置
#define LED_PIN 8       // PWM调光引脚
#define SERVO_PIN 3      // 舵机控制引脚

Servo myservo;  // create servo object to control a servo

// 网络配置
const char *ssid = "IQOO";
const char *password = "12345678";

String apiKey = "Bearer ef0be8f7-c33c-4b86-a11bd5";
String apiUrl = "https://ark.cn-beijing.volces.com/api/v3/chat/completions";

// 模型定义 
const String models[] = {
  "doubao-seed-code-preview-251028",                 // 模型0: 豆包代码预览模型(2025年10月15日版本)
  "doubao-seed-1-6-flash-250828",           // 模型1: 豆包1.6快速模型(2025年8月28日版本)
  "doubao-seed-1-6-lite-251015",            // 模型2: 豆包1.6轻量模型(2025年10月15日版本)
  "deepseek-v3-2-251201",                   // 模型3: DeepSeek V3模型(2025年12月1日版本)
  "kimi-k2-thinking-251104"                 // 模型4: Kimi K2思维模型(2025年11月4日版本)
};
#define MODEL_COUNT (sizeof(models) / sizeof(models[0]))

String currentModel = models[0];  // 默认使用原模型
int currentModelIndex = 0;

// 预设指令模板
String pre_Text = "如果用户需要控制灯或者舵机,请参考以下格式回复硬件控制指令:1. LED控制(device:led,value:0-255);2. 舵机控制(device:servo,value:0-180);3. 其他回答:直接返回文本内容";

// 定义控制结构体
QueueHandle_t xCommandQueue;
struct Command {
  String device;
  int value;
};

// 初始化PWM
void initPWM() {
    ledcSetup(1, 50, 14); // 通道1用于舵机(50Hz, 14bit)
    ledcAttachPin(SERVO_PIN, 1);
    pinMode(LED_PIN, OUTPUT);
    analogWrite(LED_PIN, 255);
}

// 显示可用模型列表
void showModels() {
  Serial.println("\n=== 可用模型列表 ===");
  for (int i = 0; i < MODEL_COUNT; i++) {
    Serial.printf("[%d] %s", i, models[i].c_str());
    if (i == currentModelIndex) {
      Serial.print(" ← 当前使用");
    }
    Serial.println();
  }
  Serial.println("使用 'model X' 切换模型 (X=0,1,2)");
  Serial.println("使用 'current' 查看当前模型");
  Serial.println("====================\n");
}

// 切换模型函数
void switchModel(int modelIndex) {
  if (modelIndex >= 0 && modelIndex < MODEL_COUNT) {
    currentModelIndex = modelIndex;
    currentModel = models[modelIndex];
    Serial.printf("[系统] 已切换到模型: %s\n", currentModel.c_str());
  } else {
    Serial.println("[错误] 无效的模型编号,请使用 0, 1, 2");
  }
}

// 处理系统指令
bool handleSystemCommand(String input) {
  input.trim();
  input.toLowerCase();
  
  if (input == "help" || input == "?") {
    Serial.println("\n=== 系统帮助 ===");
    Serial.println("普通对话: 直接输入问题");
    Serial.println("模型切换: model 0~6");
    Serial.println("当前模型: current");
    Serial.println("模型列表: models");
    Serial.println("系统帮助: help 或 ?");
    Serial.println("===============\n");
    return true;
  }
  else if (input == "models") {
    showModels();
    return true;
  }
  else if (input == "current") {
    Serial.printf("[系统] 当前使用模型: %s (编号: %d)\n", currentModel.c_str(), currentModelIndex);
    return true;
  }
  else if (input.startsWith("model ")) {
    String modelStr = input.substring(6);
    modelStr.trim();
    int modelIndex = modelStr.toInt();
    switchModel(modelIndex);
    return true;
  }
  
  return false;
}

// 控制任务
void controlTask(void *pvParameters) {
  Command cmd;
  while (1) {
    if (xQueueReceive(xCommandQueue, &cmd, portMAX_DELAY)) {
      if (cmd.device == "led") {
        analogWrite(LED_PIN, abs(255-cmd.value));
        Serial.printf("[执行] LED亮度设置为: %d\n", cmd.value);
      }
      else if (cmd.device == "servo") {
        int pulseWidth = map(cmd.value, 0, 180, 1000, 5000);
        ledcWrite(1, pulseWidth * 8192 / 20000);
        Serial.printf("[执行] 舵机角度设置为: %d°\n", cmd.value);
      }
    }

    // 喂狗操作
    esp_task_wdt_reset();
  }
}

// 解析JSON响应并提取控制指令
void parseAndQueue(String jsonResponse) {
  DynamicJsonDocument doc(4096); // 根据响应大小调整
  DeserializationError error = deserializeJson(doc, jsonResponse);
  
  if (error) {
    Serial.printf("[错误] JSON解析失败: %s\n", error.c_str());
    Serial.println("[原始响应]: " + jsonResponse);
    return;
  }

  // 提取模型信息
  const char* model = doc["model"];
  const char* id = doc["id"];
  
  // 提取回复内容
  const char* content = doc["choices"][0]["message"]["content"];
  const char* finishReason = doc["choices"][0]["finish_reason"];
  
  // 提取使用情况
  JsonObject usage = doc["usage"];
  int totalTokens = usage["total_tokens"];
  int promptTokens = usage["prompt_tokens"];
  int completionTokens = usage["completion_tokens"];

  Serial.println("\n=== AI回复 ===");
  Serial.printf("模型: %s\n", model);
  Serial.printf("回复ID: %s\n", id);
  Serial.printf("完成状态: %s\n", finishReason);
  Serial.println("--------------");
  Serial.printf("内容: %s\n", content);
  Serial.println("--------------");
  Serial.printf("Token使用: 总计%d (输入%d + 输出%d)\n", totalTokens, promptTokens, completionTokens);
  Serial.println("==============\n");

  // 检查回复内容中是否包含硬件控制指令
  String contentStr = String(content);
  if (contentStr.indexOf("device:") != -1 && contentStr.indexOf("value:") != -1) {
    int deviceStart = contentStr.indexOf("device:") + 7;
    int deviceEnd = contentStr.indexOf(",", deviceStart);
    String device = contentStr.substring(deviceStart, deviceEnd);
    device.trim();

    int valueStart = contentStr.indexOf("value:") + 6;
    int valueEnd = contentStr.indexOf(")", valueStart);
    int value = contentStr.substring(valueStart, valueEnd).toInt();

    // 参数范围验证
    if (device == "led") value = constrain(value, 0, 255);
    if (device == "servo") value = constrain(value, 0, 180);

    Command cmd = {device, value};
    xQueueSend(xCommandQueue, &cmd, 0);
    Serial.printf("[解析] 设备: %s, 值: %d\n", device.c_str(), value);
  }
}

// 发送HTTP请求并获取API响应
String getGPTAnswer(String inputText) {
  HTTPClient http;
  http.setTimeout(15000);  // 增加超时时间以适应不同模型
  http.setReuse(false);
  
  Serial.printf("[请求] 使用模型: %s\n", currentModel.c_str());
  Serial.println("[请求] 发送中...");
  
  http.begin(apiUrl);
  http.addHeader("Content-Type", "application/json");
  http.addHeader("Authorization", apiKey);
  
  // 转义特殊字符
  inputText.replace("\"", "\\\"");
  inputText.replace("\n", "\\n");
  
  String payload = "{\"model\":\"" + currentModel + "\",\"messages\":[{\"role\": \"system\",\"content\": \"" + pre_Text + "\"},{\"role\": \"user\",\"content\": \"" + inputText + "\"}]}";
  
  int httpResponseCode = http.POST(payload);
  
  if (httpResponseCode == 200) {
    String response = http.getString();
    http.end();
    Serial.println("[请求] 响应成功");
    return response;
  } else {
    String errorResponse = http.getString();
    http.end();
    
    // 尝试解析错误响应
    DynamicJsonDocument errorDoc(1024);
    DeserializationError error = deserializeJson(errorDoc, errorResponse);
    
    if (!error && errorDoc.containsKey("error")) {
      const char* errorMessage = errorDoc["error"]["message"];
      Serial.printf("[错误] HTTP代码: %d, 错误信息: %s\n", httpResponseCode, errorMessage);
    } else {
      Serial.printf("[错误] HTTP代码: %d\n", httpResponseCode);
      Serial.println("[错误响应]: " + errorResponse);
    }
    return "<error>";
  }
}

// HTTP请求任务
void httpTask(void *pvParameters) {
  while (1) {
    if (Serial.available()) {
      String userInput = Serial.readStringUntil('\n');
      userInput.trim();

      // 检查是否是系统指令
      if (handleSystemCommand(userInput)) {
        // 系统指令已处理,跳过AI请求
        continue;
      }

      // 普通对话,发送到AI
      Serial.printf("\n[用户] %s\n", userInput.c_str());
      String response = getGPTAnswer(userInput);
      
      if (response != "<error>") {
        parseAndQueue(response);
      } else {
        Serial.println("[错误] API请求失败,请检查网络或模型配置");
      }
    }

    // 喂狗操作
    esp_task_wdt_reset();
    vTaskDelay(1000 / portTICK_PERIOD_MS);
  }
}

void setup() {
  // Initialize Serial
  Serial.begin(115200);

  // Connect to Wi-Fi network
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.print("Connecting to WiFi ..");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print('.');
    delay(1000);
  }
  Serial.println("\nConnected! IP: " + WiFi.localIP().toString());

  initPWM();
  xCommandQueue = xQueueCreate(5, sizeof(Command));

  // 初始化看门狗,设置超时时间为10秒
  esp_task_wdt_init(10, true);
  esp_task_wdt_add(NULL);  // 将当前任务添加到看门狗监控中

  // 创建任务
  xTaskCreatePinnedToCore(controlTask, "Control", 4096, NULL, 2, NULL, 0);
  xTaskCreatePinnedToCore(httpTask, "HTTP", 8192, NULL, 1, NULL, 0);

  Serial.println("\n=== 豆包大模型硬件控制系统 ===");
  Serial.println("系统初始化完成!");
  showModels();
  Serial.println("输入 'help' 查看使用说明");
  Serial.println("============================\n");
}

void loop() {
  // 主循环只负责喂狗
  esp_task_wdt_reset();
  delay(1000);
}

3.2 源码解析

  1. 导入库文件:
c 复制代码
   #include <WiFi.h>
   #include <HTTPClient.h>
   #include <ArduinoJson.h>
  1. 定义Wi-Fi网络凭证:
c 复制代码
const char *ssid = "IQOO";
const char *password = "12345678";
  1. 定义API Key:
c 复制代码
String apiKey = "Bearer ef0be8f7-c33c-4b86-a11bd5";

管理APIKEY地址:https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey?apikey=%7B%7D&projectName=default

4. 上传验证

下面给出下载配置,请严格配置

4.1 platformio.ini

bash 复制代码
[env:seeed_xiao_esp32c3]
platform = espressif32
board = seeed_xiao_esp32c3
framework = arduino
lib_deps = 
	bblanchon/ArduinoJson@^7.4.2
	madhephaestus/ESP32Servo@^3.0.8

4.2 对话测试

打开串口监视器,注意右下角选择回车符,选择115200波特率,输入你想问的问题,它就可以回答你。

  1. 测试效果
    串口输入:
bash 复制代码
把舵机转到45度

AI 响应:

bash 复制代码
(device:servo,value:45)

控制任务输出:

bash 复制代码
[执行] 舵机角度: 45°

LED 灯控制同理,例如:

bash 复制代码
灯亮度调成一半

会解析为:

bash 复制代码
(device:led,value:128)
bash 复制代码
=== 豆包大模型硬件控制系统 ===
系统初始化完成!

=== 可用模型列表 ===
[0] doubao-seed-code-preview-251028 ← 当前使用
[1] doubao-seed-1-6-flash-250828
[2] doubao-seed-1-6-lite-251015
[3] deepseek-v3-2-251201
[4] kimi-k2-thinking-251104
使用 'model X' 切换模型 (X=0,1,2)
使用 'current' 查看当前模型
====================

输入 'help' 查看使用说明
============================

---- 已发送 utf8 编码消息: "舵机100度\n" ----

[用户] 舵机100度
[请求] 使用模型: doubao-seed-code-preview-251028
[请求] 发送中...
[请求] 响应成功

=== AI回复 ===
模型: doubao-seed-code-preview-251028
回复ID: 02176650090180818757d23ae5a46643227b35b69a60fe4943773
完成状态: stop
--------------
内容: 2. 舵机控制(device:servo,value:100);
--------------
Token使用: 总计146 (输入99 + 输出47)
==============

[执行] 舵机角度设置为: 100°
[解析] 设备: servo, 值: 100
---- 已发送 utf8 编码消息: "打开灯\n" ----

[用户] 打开灯
[请求] 使用模型: doubao-seed-code-preview-251028
[请求] 发送中...
[请求] 响应成功

=== AI回复 ===
模型: doubao-seed-code-preview-251028
回复ID: 021766500998695c4dc4b915535437ad03877d2dfc54a038b6d03
完成状态: stop
--------------
内容: 1. LED控制(device:led,value:255);
--------------
Token使用: 总计177 (输入95 + 输出82)
==============

[执行] LED亮度设置为: 255
[解析] 设备: led, 值: 255
---- 已发送 utf8 编码消息: "关闭灯\n" ----

[用户] 关闭灯
[请求] 使用模型: doubao-seed-code-preview-251028
[请求] 发送中...
[请求] 响应成功

=== AI回复 ===
模型: doubao-seed-code-preview-251028
回复ID: 021766501007677f159c9ab1008a1ce873202d2470efb5c494750
完成状态: stop
--------------
内容: 1. LED控制(device:led,value:0);
--------------
Token使用: 总计136 (输入95 + 输出41)
==============

[执行] LED亮度设置为: 0
[解析] 设备: led, 值: 0
---- 已发送 utf8 编码消息: "model 2\n" ----
[系统] 已切换到模型: doubao-seed-1-6-lite-251015
---- 已发送 utf8 编码消息: "model 3\n" ----
[系统] 已切换到模型: deepseek-v3-2-251201
---- 已发送 utf8 编码消息: "介绍模型特点\n" ----

[用户] 介绍模型特点
[请求] 使用模型: deepseek-v3-2-251201
[请求] 发送中...
[请求] 响应成功

=== AI回复 ===
模型: deepseek-v3-2-251201
回复ID: 0217665010415429c33e9c339b2fbf9ef6ce2d7c2f130ab6f9159
完成状态: stop
--------------
内容: 目前没有特定的硬件控制指令需求,以下是模型特点介绍:

该模型具备以下核心特点:
1. **多任务处理能力**:支持文本生成、对话交互、代码编写、翻译等多种任务
2. **上下文理解**:能够处理长文本并保持对话连贯性
3. **知识截止时间**:基于训练时的知识库,信息更新至特定时间点
4. **安全机制**:内置内容过滤和安全响应机制
5. **可扩展性**:支持通过API集成到各种应用场景

如果您需要控制硬件设备,请明确说明具体的控制需求。
--------------
Token使用: 总计193 (输入68 + 输出125)
==============

存在舵机峰值电流过大导致重启,可额外供电。有时候会因为网络无法控制,导致指令失败,建议换一个好一点的2.4G网络,本项目演示了ESP32 + 国产大模型 + 自然语言控制硬件的完整流程,适合智能家居、机器人等场景。

后续可以优化:

  • 增加更多外设(风扇、电机、继电器等)
  • 用 WebSocket 代替 HTTP 提升响应速度
  • 在 ESP32c3上做离线指令解析以减少网络依赖

有了这个基础,你的 ESP32c3 就能听懂人话啦!

4.3 错误码

如果执行报错,请参见错误信息进行解决。

5. 总结

现在,本项目演示了ESP32c3接入2025年冬火山大模型教程+ 自然语言控制硬件的完整流程,适合智能家居、机器人等场景。从而实现对外部世界的感知,充分认识这个有机与无机的环境,后期会持续分享ESP32跑FreeRTOS实用案例,为人类社会发展贡献一点微薄之力。🙌🙌🙌

如果你有任何问题,可以通过Q Group(945348278)加入鹏鹏小分队,期待与你思维的碰撞! 😘😘😘

相关推荐
IvanCodes2 小时前
openGauss 核心体系架构深度解析
数据库·sql·postgresql·openguass
陌路202 小时前
redis主从复制
数据库·redis
五阿哥永琪2 小时前
java基础 异常(Exception和Error)
java·开发语言
工程师0072 小时前
C# 调用 Win32 API
开发语言·c#·api·win32
黑头人2 小时前
Error: JAVA_HOME is not set and Java could not be found
java·开发语言
唐装鼠2 小时前
Rust 中的 `parse` 方法详解(deepseek)
开发语言·后端·rust
双河子思2 小时前
C# 语言编程经验
开发语言·c#
@淡 定2 小时前
事务ACID特性与隔离级别详解
数据库·oracle
FuckPatience2 小时前
C# 把halcon中的任意图形HXLD在WPF中绘制出来
开发语言·c#