☰
3 天千星项目的硬件清单:玩转 esp32-iphone-agent 到底要买什么(含预算)
2026/10/20 2:45:22 网站建设 项目流程

3 天千星项目的硬件清单:玩转 esp32-iphone-agent 到底要买什么(含预算)

【免费下载链接】esp32-iphone-agentLet an AI model use a real iPhone with a $7 ESP32: AirPlay eyes, USB HID hands, any OpenAI-compatible vision model. No Mac, no developer account, no jailbreak.项目地址: https://gitcode.com/gh_mirrors/es/esp32-iphone-agent

一个开源项目最近在技术社区刷屏了:esp32-iphone-agent让 AI 模型直接操作一部真实 iPhone——不需要 Mac、不需要 Apple 开发者账号、更不需要越狱,硬件成本只有一块约 40 多元的 ESP32-S3 开发板。仓库页面上挂着 1.5k+ star、185 个 fork,"3 天破千星"的说法就是这么来的。

原理上它走的是"人操作手机"的路径:AirPlay 屏幕镜像当"眼睛"(server/hidagent/screen.py 里的 UxPlay + GStreamer 管道),ESP32-S3 当"手"——插在 iPhone 的 USB 口上被识别成标准 USB 鼠标和键盘,任何支持图片输入、兼容 OpenAI 接口的视觉模型当"大脑"(server/hidagent/llm.py)。这条路线直接绕开了 XCTest/WebDriverAgent 那套"需要 Mac + Xcode + 签名"的重型方案。

但问题也随之而来:到底买哪块板子、要配哪些周边、预算几何?社区里那些讲 ESP32 控制 iPhone 的老教程五花八门,板子型号、接口、协议各不相同,照着买很容易踩坑。本文直接翻源码、对 README,给你一份能照着下单的清单。

一、为什么偏偏是 ESP32-S3:选型背后的硬约束

先明确一个前提:本项目里板子的全部职责是"USB HID 桥"——对 iPhone 来说它就是一个鼠标加键盘。看固件 hardware/hid_bridge/hid_bridge.ino,核心就十几行:

#include "USB.h" #include "USBHIDMouse.h" #include "USBHIDKeyboard.h" #include "tusb.h" ... USBHIDMouse mouse; USBHIDKeyboard keyboard; ... mouse.begin(); keyboard.begin(); USB.productName("HID Bridge"); USB.begin();

TinyUSB 把芯片枚举成 HID 设备,插上 iPhone 即被识别,配合 iOS 的辅助触控(AssistiveTouch),鼠标移动就变成屏幕上的指针移动:点击 = 点按,拖动 = 滑动。板子本身不含任何逻辑,只通过 Wi-Fi 接收电脑发来的行命令(move、click、type、key等),所有决策都在电脑端。

这带来两个硬性选型约束,README 里写得很直白:

  1. 必须是 ESP32-S3,而且板子的 USB-C 口必须直连 S3 的原生 USB(native USB)引脚,不能走 USB-UART 桥接芯片。原生 USB 是 TinyUSB 跑 HID 的前提。
  2. 板载 Flash 至少 8MB。刷机脚本 hardware/flash.sh 里的板型参数是硬编码的:
FQBN="esp32:esp32:esp32s3:USBMode=default,CDCOnBoot=cdc,FlashSize=8M"

FlashSize=8M意味着固件按 8MB 分区布局编译烧录,Flash 小于 8MB 的板子要么刷不进去,要么分区不够用。

这两条直接排除了市面上大量"便宜但不对路"的板子:经典 ESP32 DevKit(USB 口是 CP2102/CH340 的 UART 桥,插手机根本不会被识别为 HID)、各类 4MB 小容量 S3 模组开发板,都进不了清单。为什么不用更贵的板子?因为这个项目的设计哲学就是够用就好——仓库标语本身就是 "with a $7 ESP32"。

二、核心硬件:板子选型与『够用』『进阶』两档预算

项目实测用的板子是Seeed Studio XIAO ESP32S3 普通版(README.zh-CN.md 硬件章节)。要特别注意型号:普通版、未焊排针,不是带摄像头的 Sense 版,也不是 Plus 版。国内淘宝搜"XIAO ESP32S3"即可,约 ¥40-50,海外约 $7。这块板子的特点正好踩中全部约束:USB-C 口直连原生 USB、板载 8MB Flash、体积只有拇指大小,插在 iPhone 上几乎不占地方。

按照项目实测口径,两档预算如下:

档位硬件组成预估花费说明
『够用』档XIAO ESP32S3 普通版 + 手头已有的 USB-C 数据线约 ¥50只要板子,其他全靠现有设备。淘宝均价 ¥40-50;线用来刷固件,一般都有
『进阶』档焊排针版 XIAO(方便接杜邦线调试)或 N16R8 大容量版 + USB-C Hub(PD 充电直通)+ 备用数据线约 ¥150-300焊排针版约 ¥50-60;N16R8(16MB Flash + 8MB PSRAM)约 ¥50-70,本项目用不上这么大的内存,属于"以后想玩别的固件"的冗余投资;Hub 才是进阶档的大头,见下一节

排针要不要焊?如果只打算"插手机、连 Wi-Fi、跑任务",普通版裸板完全够用。焊排针的唯一理由是将来要用杜邦线外接传感器或手动供电调试——不是本项目的必需项。

三、周边配件:供电、网络与 iPhone 侧准备

供电:手机就是电源,但有一个"睡眠陷阱"

板子由手机 USB 口直接供电,不需要额外电源,这是 README 明确给出的设计("The phone powers the board")。但手机锁屏时 USB 会进入休眠——固件里专门做了处理(hardware/hid_bridge/hid_bridge.ino 的usbReady()):

bool usbReady() { if (tud_suspended()) { tud_remote_wakeup(); for (int i = 0; i < 50 && tud_suspended(); i++) delay(10); } return tud_mounted() && !tud_suspended(); }

先尝试远程唤醒,唤醒不了就立刻回err phone usb asleep,绝不卡死等待;服务端还有keep_awake心跳任务,空闲时每 2 秒 ping 一次、到点轻推一下指针防止手机自动锁屏(server/hidagent/device.py)。

由此引出一个实用配件:如果你希望插着板子跑任务时手机还能同时充电,需要一只支持 PD 充电直通的 USB-C 扩展坞——板子插 Hub 的 USB 口,充电器走 Hub 的 PD 口,一路进 iPhone。这是『进阶』档里唯一真正值得多花的钱(约 ¥60-150)。

网络与天线:2.4 GHz Wi-Fi,板载天线就够

板子和电脑之间走2.4 GHz Wi-Fi,不是蓝牙、不是有线。刷固件前要编辑 hardware/hid_bridge/secrets.example.h:

#define WIFI_SSID "your-wifi" #define WIFI_PASS "your-password" #define SERVER_HOST "192.168.1.10" // machine running `python -m hidagent` #define SERVER_PORT 7300

板子连电脑的 TCP 7300 端口,网页界面跑在 8890 端口。XIAO 的板载 PCB 天线完全够用,不需要额外买天线或外置模块;要做的就是让电脑和手机处于同一局域网。唯一需要注意的坑出现在 Linux 多网卡机器上:手机"屏幕镜像"列表里找不到接收端时,把 Avahi(mDNS)限制到手机所在网络的网卡(README 限制章节原文)。这属于电脑侧配置问题,零成本。

iPhone 侧:接口决定你要不要多花钱

这是周边预算里唯一可能"超支"的地方,取决于你的机型:

  • USB-C 机型(iPhone 15 及以后):直插,零额外配件;
  • Lightning 机型(iPhone 14 及以前):需要一个Lightning 转 USB 相机转换器。苹果官方件约 ¥240,第三方约 ¥40-100。这是硬需求,没有它板子插不上手机。

插上之后只需一次性设置:开启设置 → 辅助功能 → 触控 → 辅助触控,然后控制中心 → 屏幕镜像 → 连到名为"iPhone Agent"的接收端,网页里点一次校准即可。注意两个使用限制:iOS 不镜像密码输入、Apple Pay、DRM 视频等画面;Agent 运行期间要关掉自动锁定,否则锁屏会断开镜像和 USB。

电脑侧零硬件成本:macOS 用brew install uxplay,Debian/Ubuntu 用 apt 装 UxPlay 和 GStreamer 插件,剩下的就是按量付费的模型 API(gpt-4o-mini 这类轻量视觉模型即可,跑完整流程通常只是几元量级)。

四、下单避坑:社区老教程里反复出现的板子兼容性问题

社区里"ESP32 控制 iPhone"的老教程数量惊人,从 2019 年的esp32_homekit、掌控板 + Siri 语音控制,到后来的 HomeKit ADK 搭建(ESP32-S2 + MbedTLS 升级踩坑)、HomeSpan 让 ESP32 成为 HomeKit 设备……但它们大多是另一条技术路线:让 ESP32 自己实现 HomeKit 协议或跑 Siri 快捷指令,走的是 Wi-Fi + 协议栈,跟本项目"USB HID 当键鼠"完全是两码事。照着老教程的板子清单下单,最容易踩中下面几个坑:

坑现象为什么不行 / 怎么避
买了经典 ESP32 DevKit(USB-UART 桥接)插上 iPhone 毫无反应,手机不识别任何设备经典版 USB 口走 CP2102/CH340 转串口,不是原生 USB,TinyUSB 跑不起来。判别法:看 USB-C 口是否直连 S3 原生 USB
买了 ESP32-S2 板子固件编译报 FQBN 不匹配老教程(HomeKit ADK 那批)流行 S2,但本项目刷机参数硬编码esp32s3
XIAO 型号买错(Sense/Plus/焊排针版)硬件规格对不上,或买贵了用不上README 实测口径是"普通版、未焊排针";Sense 的摄像头和 Plus 的电池管理在本项目里都用不上
Flash 不足 8MB 的 S3 板子arduino-cli upload失败或分区报错FlashSize=8M硬编码,4MB 板子直接排除
照着"ESP32 蓝牙鼠标"教程买板蓝牙连接不稳定、配对麻烦相关项目表里不少方案走 BLE HID(蓝牙鼠标 + OpenCV 指针校正等),iOS 端配对、掉线、输入法兼容问题多;本项目特意选 USB HID 就是为了绕开这些
用纯充电线刷固件刷机工具找不到串口必须是有数据通道的 USB 线;Lightning 老机型没有相机转换器时板子根本插不上

买对板子之后,这套系统跑起来的效果可以参考官方示例:给 AI 一句"打开白板画一个笑脸",它会自己搜 App、打开、连续笔画画出图案,每一步模型看到什么、点了哪里,全部以截图形式留在"步骤截图墙"上,网页端还能实时点按、滑动、按键和紧急停止。

五、预算总表:从零到跑通

项目『够用』档『进阶』档备注
XIAO ESP32S3 普通版¥40-50¥40-50淘宝搜"XIAO ESP32S3",务必普通版
USB-C 数据线手头已有¥10-30需支持数据传输
USB-C Hub(PD 充电直通)不需要¥60-150边跑任务边给手机充电
Lightning 转 USB 相机转换器老机型必需:官方约 ¥240 / 第三方 ¥40-100同左USB-C 机型(iPhone 15+)免此项
电脑(macOS/Linux)已有已有跑 UxPlay + 服务端,无需购置
视觉模型按量付费 API按量付费或本地部署本地部署需 GPU 机器,成本另计
合计约 ¥50约 ¥200-350不含模型与电脑成本

一句话总结:这个项目的硬件门槛低到"够用档 50 元内、下单只买一块板子"。真正的预算大头从来不是硬件,而是你对 iPhone 接口的适配(Lightning 转接器)和对模型 API 的选择。照着"ESP32-S3 + 原生 USB + 8MB Flash"这三个关键词下单,就能避开社区老教程里九成以上的坑。

【免费下载链接】esp32-iphone-agentLet an AI model use a real iPhone with a $7 ESP32: AirPlay eyes, USB HID hands, any OpenAI-compatible vision model. No Mac, no developer account, no jailbreak.项目地址: https://gitcode.com/gh_mirrors/es/esp32-iphone-agent

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询