爱意满满的作品展示区。
qaqrzxyz

通过 ESP32-S3 让 iPhone 设备可被 AI 控制

  •  
  •   qaqrzxyz · 6 days ago · 959 views

    前几天在搞别的硬件项目,手边正好有块 ESP32-S3 ,突然冒出个想法:它能模拟 USB 鼠标,iPhone 又有辅助触控,那能不能让它当鼠标直接去点手机?

    试了一下真行。然后越做越上头:眼睛怎么办?干脆让它同时当 AirPlay 接收端,iPhone 把屏幕镜像直接推给它。这样整套就只剩一块 40 来块的板子( XIAO ESP32S3 )加手机上的一个 App ,没有 Mac 在中间,也不用 Xcode 和开发者账号了。

    流程是这样的:

    1. ESP32 开自己的 Wi-Fi 热点,当 AirPlay 接收端,收 iPhone 的屏幕镜像。
    2. 板子不解码,把 H.264 通过蓝牙原样转给手机上的 App ,App 把截图交给视觉模型(任意兼容 OpenAI 接口的都行)。
    3. 模型给出动作,App 经蓝牙发回板子,板子扮成 USB 鼠标键盘,配合辅助触控去点。

    做的过程里有几个有意思的坑:

    • 蓝牙只有几百 kbps ,视频和点击命令还共用同一条链路。所以点击和回复优先插队,视频让路;链路慢的时候只发关键帧,不让延迟越攒越多。画面也压到了 480×1040 、最多 5 帧。
    • 鼠标是相对移动,手机不告诉你指针在哪,位置只能自己记。所以每隔几次操作就把指针推到屏幕角落归零,跟 3D 打印机回原点一个思路。
    • 不同机型的鼠标移动距离和屏幕的比例不一样,所以做了自动校准,思路也像 3D 打印机的自动调平:先归零,再移动固定的鼠标距离去点一排点,App 记下每次实际点到了屏幕哪里,拟合出 X 、Y 两个方向的比例。点击没反应的话,就退回去在镜像画面里找指针。

    目前竖屏,输入以 ASCII 为主,每一步几秒。第一次刷固件和编译 App 需要一台 Mac ,之后日常使用不需要电脑。

    GitHub: https://github.com/onehumanbeing/esp32-iphone-agent

    演示视频: https://x.com/iamhenryyuan/status/2110553019763097769

    2 replies  •  2026-10-17 13:41:21 +08:00
    InDom
        1
    InDom  
       6 days ago
    这个东西是我一直想要的, 但不是用于 AI, 是遥控我妈的手机, 远程解决一些问题.
    ISVStar
        2
    ISVStar  
       5 days ago via iPhone
    ios app 开屏幕录像就可以直接获取画面,不用那么麻烦
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3484 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 11:47 · PVG 19:47 · LAX 04:47 · JFK 07:47
    ♥ Do have faith in what you're doing.