–CQMCU 2026.1.29
一个超实用的 “物联网设备语音控制工具”,用大白话翻译下来就是:用日常中文说话,就能控制灯、风扇、水泵这些硬件设备,核心是靠大语言模型(LLM)帮你 “听懂” 指令,再调动对应的控制模块干活。

上视频演示

基于LLM的IoT设备Skill控制系统

项目概述

SKILL_SERVER 是一个基于大语言模型(LLM)的物联网设备控制系统,通过自然语言指令控制各种硬件设备。系统采用模块化的SKILL架构,支持多种通信协议,并提供智能的技能匹配和按需加载机制。

功能特性

  • 自然语言控制:使用中文指令控制硬件设备
  • 多SKILL支持:模块化设计,支持多个SKILL独立运行
  • LLM意图识别:通过大语言模型分析输入,智能选择最合适的SKILL
  • 按需加载:实时加载和执行SKILL,提高系统效率
  • 多种通信协议:支持串口(USART)和MQTT通信
  • 统一控制接口:所有SKILL提供统一的控制接口
  • 配置驱动:从SKILL.md文件读取技能配置信息

系统架构

核心组件

SKILL_SERVER/
├── main.py                  # 主程序入口
├── llm_controller.py        # LLM指令解析控制器
├── config.py                # 全局配置文件
└── mySKILL/
    ├── UsartSkill/          # LED控制 + 串口通信
    ├── MqttSkill/           # 风扇控制 + MQTT通信
    └── WaterPumpSkill/      # 水泵控制 + 串口通信

硬件要求

  • Arduino开发板(已烧录相应固件)
  • USB数据线连接Arduino到电脑
  • 相应的硬件模块(LED、风扇、水泵等)

软件依赖

  • Python 3.7+
  • pyserial >= 3.5
  • paho-mqtt >= 1.6.0
  • openai >= 1.0.0

使用方法

启动程序

python main.py

交互指令

直接输入自然语言指令,系统会通过LLM进行意图识别并匹配相应的SKILL:

LED控制:

  • 打开灯 / 点亮LED / 开灯 / 打开LED
  • 关闭灯 / 熄灭LED / 关灯 / 关闭LED

风扇控制:

  • 打开风扇 / 启动风扇 / 开风扇 / 开启风扇
  • 关闭风扇 / 停止风扇 / 关风扇 / 停止风扇

水泵控制:

  • 打开水泵 / 启动水泵 / 开泵 / 开启水泵
  • 关闭水泵 / 停止水泵 / 关泵 / 停止水泵

通用指令:

  • exit → 退出程序

执行流程

  1. 意图识别:系统通过LLM分析用户输入,识别出最合适的SKILL
  2. 参数提取:根据选择的SKILL和用户输入,从LLM获取执行参数
  3. 技能执行:加载并执行选中的SKILL,通过相应的通信协议控制硬件设备
  4. 结果返回:返回执行结果给用户

SKILL开发指南

创建新SKILL

  1. 创建目录结构
mySKILL/YourSkill/
├── SKILL.md              # SKILL文档和配置
├── scripts/
│   └── your_comm.py      # 通信控制类
└── resources/
    ├── skill_config.py   # SKILL配置
    └── requirements.txt  # 依赖包
  1. 配置SKILL.md文件(想自己加功能)

SKILL.md 文件中添加基本配置信息:

name: YourSkill
description: 你的SKILL描述
protocol: usart  # 或 mqtt
module_name: your_comm

# YourSkill

## 描述
详细描述你的SKILL功能...

## 支持的指令
- 指令1
- 指令2

## Resources
- scripts/your_comm.py: 通信控制模块
- resources/skill_config.py: 技能配置文件
- resources/requirements.txt: 依赖包管理文件
  1. 实现通信控制类

scripts/your_comm.py 中实现通信控制类,必须包含 control() 方法:

class ArduinoSkill:
    def __init__(self):
        # 初始化代码
    
    def control(self, status):
        """
        统一的控制方法
        :param status: "ON" 或 "OFF"
        :return: 执行结果(字符串)
        """
        # 实现控制逻辑
        return "执行结果"
    
    def close(self):
        # 关闭连接代码

配置说明

全局配置 (config.py)

# LLM配置
LLM_API_KEY = "your_api_key"
LLM_BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1"
LLM_MODEL = "qwen-plus"

SKILL配置 (SKILL.md)

每个SKILL的配置信息都存储在其对应的 SKILL.md 文件中,包括:

  • name: SKILL名称
  • description: SKILL描述
  • protocol: 通信协议(usart或mqtt)
  • module_name: 通信模块名称
  • 支持的指令: SKILL支持的自然语言指令列表

业务流程(以灯控程序为例)

在这里插入图片描述

关键程序代码


def main():
    
    skills = get_available_skills()
    
    if not skills:
        print("错误:未找到任何SKILL")
        return
    
    print("===== 可用的SKILL列表 =====")
    for i, skill in enumerate(skills, 1):
        print(f"{i}. {skill}")      
    
    print("系统将根据输入通过LLM进行意图识别,并按需加载SKILL")
    print("输入exit退出程序\n")
    
    try:
        while True:
            user_input = input("请输入指令:")
            if user_input.lower() == "exit":
                break

            print(f"\n[尝试] 使用意图识别路由...")
            target_skill = execute_with_intent_routing(user_input, skills)
                
            if not target_skill:
                print("所有SKILL均无法解析该指令")

                #  直接从LLM获取反馈
                llm_controller = LLMHardwareController(
                    arduino_skill=None,
                    llm_api_key=config.LLM_API_KEY,
                    base_url=config.LLM_BASE_URL,
                    model=config.LLM_MODEL,
                    skill_type="IntentRouter",
                    llm_prompt=user_input,
                    ui_messages=None
                )
                
                llm_response = llm_controller.parse_llm_instruction(user_input)
                print(f"LLM反馈: {llm_response}")
        
        print("\n程序已退出")
        
    except KeyboardInterrupt:
        print("\n程序已中断")
    except Exception as e:
        print(f"发生错误:{e}")

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐