W55MH32和小智聊天机器人


背景
随着AI技术持续快速发展,将智能模型集成到低级硬件架构上变得比以往任何时候都更加重要。在WIZnet,我们确保我们的产品能够跟上当前的技术发展,为客户提供更好的体验。
受小智-ESP32项目的启发,我们开发了由W55MH32Q/L-EVB开发板驱动的MCP聊天机器人。
小智-ESP32是发展最快的AI项目之一,它允许你通过硬件与大语言模型(LLM)进行通信,以实现通过语音命令进行硬件控制等功能。自开发以来,它获得了广泛的欢迎,特别是在物联网市场。
MicroPython也是一种非常著名的语言,它允许开发者在嵌入式系统开发中使用Python。这使得新手开发者可以跳过传统的C++学习曲线来学习嵌入式系统,并借助网络上数千个可用的MicroPython库和支持轻松开启自己的裸机开发之旅。
我们相信,通过将这些强大的技术整合为一体,拥有自己定制的AI助手将不再只是梦想。
项目概述
以下是W55MH32L_EVB MCP聊天机器人的连接图。


如上图所示,扬声器和麦克风共用同一连接。因此,默认情况下,开发板使用扬声器模式,但当按住录音按钮时,开发板处于麦克风模式。
你还需要接入互联网并运行脚本,才能连接到AI服务器。将路由器的以太网电缆连接到开发板,并将开发板的USB端口连接到你的PC。
当你启动脚本时,程序会提示你按下开始按钮来启动连接。按下按钮后,将启动与服务器的连接,现在你应该能够与小智 AI 进行通信。当终端要求你输入消息时,你现在也可以访问麦克风模式与智能体交谈。


硬件组件与连接
本节将讨论聊天机器人所需的组件以及如何将它们连接在一起。
主板及外设
对于所需的组件,您将需要以下这些。
• W55MH32Q_EVB(购买链接)/ W55MH32L_EVB(购买链接)
• I2S MAX98357A放大器和扬声器
• INMP441麦克风
• 一个10K电阻
• 两个按钮
在未来,您可以在我们的官方网站上购买完整的组件套装。
布线指南
让我们从连接I2S组件开始。



此外,将扬声器连接到I2S放大器的另一端。

接下来,对于按钮和MCU,你可以连接到任何可以使用GPIO的引脚,因为它们的用途如下:
1.
正在启动连接
2.
开始录制
在我的实现中,我使用引脚PB9作为开始按钮,使用引脚PB8作为录制按钮。

最后,将您的开发板连接到PC,并将开发板直接连接到路由器。

如果您使用的是W55MH32L_EVB,请将右侧的端口连接到您的PC。

软件配置与定制
安装
首先,在W55MH32 MicroPython文档网站上安装最新的固件,并确保已打开Thonny IDE。
然后,访问我们的GitHub仓库页面并将其克隆到您的个人电脑上。
git clone https://github.com/wiznethk-git/w55mh32_xiaozhi_mcp_chat_bot.git

打开项目下载所在的文件夹,使用 Thonny IDE 或任何兼容 Micropython 的 IDE 将除 default_conf.py 之外的所有文件上传到 MCU 中。

配置
从 default_config.py 中,按以下内容编辑配置。完成后,将文件保存为 config.py 并上传到 MCU。
import uuid
client_id = uuid.uuid4()
secret = {
'Client-Id':client_id
}
config = {
# General
'is_secure': False,
'async_timeout': 10,
# I2S
'I2S_ENABLED': True,
# Websocket Specific
'ws_delay_ms': 0,
# MCP
'mcp_enabled': True,
# OTA Specific
'board_type':'YOUR_BOARD_TYPE',
# MQTT
'MQTT_USERNAME': 'MQTT_USERNAME',
'MQTT_PASSWORD': 'MQTT_PASSWORD',
'MQTT_IP':'MQTT_HOST',
'MQTT_ENABLED':True,
# Button Pins
'START_BUTTON':'PB9',
'RECORD_BUTTON':'PB8',
}
你可以根据设备的需求将I2S、MCP和MQTT设置为True或False,但我建议将MCP和MQTT保持为True,以获得更全面的体验。如果你需要听到服务器返回的内容,那么可以启用I2S。
以太网连接
默认使用DHCP。如果将开发板连接到路由器,它应该会自动连接到互联网。但是,如果连接失败,您可以通过ipconfig访问网络详细信息,然后在setup.py文件顶部修改配置,改用静态IP。
请访问我们的参考脚本页面,了解静态 IP 配置。
MCP
若要添加/移除任何调用到您的板卡的MCP工具,您需要以下内容:
1.为您的MCP工具创建一个带有参数的函数:
def func_name(self, device, args): ...
2.在mcp.py下的init.py中注册一个MCPTool对象。你可以参考这份关于MCP协议如何工作的文档。

MQTT
若要在我们的服务器上使用MQTT,您需要以下内容:
1.在我们的AIOT网站上注册一个数据源。MQTT子目录将是您的{账户名称} / {数据源标题}。
2.打开mqttHandler。将你的子目录添加到装饰器中,并创建一个在接收到此主题的任何更新后运行的函数。

杂项
若要向W55MH32EVB开发板添加自定义功能,可能需要在conf.py中禁用MQTT_ENABLED或MCP_ENABLED,以避免内存错误。
如果您对MCU和服务器之间的通信方式感兴趣,请访问78/xiaozhi-esp32:基于MCP的聊天机器人上的文档目录,或访问小智AI聊天机器人大百科了解小智服务器与机器人之间的工作原理。
网站配置

在开始使用您的第一个AI助手之前,您需要在我们的网站上注册您的设备。
首先,在侧边准备好您的面板,然后登录我们的官方网站。

接下来,点击“添加代理”标签创建您自己的代理。现在您应该会在“添加代理”标签下看到您指定名称的代理。

之后,转到配置角色选项卡。在左侧,您可以更改您的代理如何介绍自己,并为您的 AI 提供上下文。

在右侧,您可以看到支持小智AI的功能,例如使用何种语音识别应用程序以及使用何种模型来处理用户输入。
右侧的大多数参数都采用默认设置,因此您无需在此处进行任何更改。您可以在“选择语言”选项卡下设置自己选择的语言。完成代理设置后,请保存配置。


现在,让我们先将设备绑定到这个代理上。
返回首页,点击代理模块下的设备标签。在该标签内,点击手动添加,你应该会看到一个窗口,要求你输入固件、设备类型和设备的MAC地址。

在设备连接到网络后,在您的主板上设置 NIC 接口。在终端上运行这些命令,然后从终端复制 MAC 地址。
从设置导入
nic = SetUpWiznetChip()
print(':'.join(['%02x' % b for b in nic.config('mac')]))`
输入 MAC 地址、设备类型,并使用固件版本 0.0.1 将您的设备添加到代理。
在将设备注册到代理后,您应该会在“设备”选项卡上看到一个条目。现在您可以开始创建自己的个人 AI 助手之旅了。祝您玩得开心!
参考资料
• XiaoZhi ESP32 : 78/xiaozhi-esp32
• 小智 ESP32 服务器 : xinnan-tech/xiaozhi-esp32-server
• XiaoZhi Wiki: 小智 AI 聊天机器人百科全书 - Feishu Docs
• W55MH32 介绍及文件下载:W55MH32
• MicroPython 库:micropython-lib
使用的库:
• urequest.py、umqttsimple.py(来自 micropython-lib)
• ws.py 来自 micropython_async_websocket_client
项目仓库:W55MH32 MCP 聊天机器人

随着AI技术持续快速发展,将智能模型集成到低级硬件架构上变得比以往任何时候都更加重要。在WIZnet,我们确保我们的产品能够跟上当前的技术发展,为客户提供更好的体验。
受小智-ESP32项目的启发,我们开发了由W55MH32Q/L-EVB开发板驱动的MCP聊天机器人。
浙公网安备 33010602011771号