Asosiy kontentga o‘tish
AI qo‘llanmalari

ESP32-S3 yordamida sun’iy intellektli iPhone agentini yarating

ESP32-S3 qurilmasiga proshivka o‘rnatish, UxPlay yordamida iPhone ekranini aks ettirish, OpenAI bilan mos ko‘rish modelini ulash, ko‘rsatkich boshqaruvini kalibrlash va Xcode, dasturchi hisobi, jailbreak yoki telefonga o‘rnatilgan ilovasiz avtomatlashtirilgan vazifalarni bajarishni o‘rganing.

ESP32-S3 yordamida sun’iy intellektli iPhone agentini yarating

ESP32 iPhone Agent nima qiladi

ESP32 iPhone Agent AI modeliga haqiqiy iPhone ekranini ko‘rish va uni boshqarish imkonini beradi. U vizual ma’lumot uchun AirPlay ekran akslantirishidan, USB sichqoncha va klaviatura sifatida esa arzon ESP32-S3 platasidan foydalanadi. U ekran va ko‘rsatkich orqali ishlagani sababli Xcode, Apple dasturchi hisobi, jailbreak, Developer Mode yoki telefonga o‘rnatilgan yordamchi ilova talab qilinmaydi.

ESP32 iPhone Agent interfeysi va ulangan iPhone

Kompyuter macOS yoki Linux tizimida ishlashi mumkin. Unda UxPlay, Python serveri, veb-interfeys va OpenAI bilan mos vizual modelga ulanish ishlaydi. ESP32-S3 kompyuterga Wi-Fi orqali ulanadi va iPhone uchun oddiy USB Human Interface Device sifatida ko‘rinadi.

Tizim qanday ishlaydi

AirPlay ko‘z vazifasini bajaradi

iPhone o‘z ekranini kompyuterdagi UxPlay dasturiga akslantiradi. GStreamer pipeline bu oqimni AI agenti va brauzerda ishlaydigan jonli ko‘rish oynasi foydalanadigan JPEG kadrlariga aylantiradi.

ESP32-S3 qo‘l vazifasini bajaradi

iPhone’ga ulanganda plata USB sichqoncha va klaviaturasi kabi ishlaydi. iOS AssistiveTouch yoqilganda sichqoncha bosishlari teginishga, ko‘rsatkichni sudrashlar surishga, aylantirish g‘ildiragi interfeysni aylantirishga, klaviatura buyruqlari esa matn kiritish yoki tezkor tugmalarni bosishga aylanadi.

Firmware ataylab juda kam mantiqni o‘z ichiga oladi. Server TCP orqali move, click, scroll, type va key kabi satrli buyruqlarni yuboradi. Plata ok yoki xato xabari bilan javob beradi.

Rejalashtiruvchi va ijrochi miya vazifasini bajaradi

Rejalashtiruvchi model so‘ralgan maqsad va joriy ekran asosida qisqa reja tuzadi. Ijrochi model har bir yangi skrinshotni tekshiradi va keyingi amalni tanlaydi: teginish, surish, yo‘l chizish, yozish, tugma bosish, bosh sahifaga qaytish yoki yakunlash. Har ikki vazifa uchun bir xil vizual modeldan foydalanish mumkin.

Yopiq konturdagi tekshiruvlar ishonchlilikni oshiradi

Ko‘rsatkich harakati nisbiy bo‘lgani uchun server uning taxminiy holatini kuzatadi. Teginishdan oldin u ko‘rsatkichni biroz harakatlantirishi, uni aks ettirilgan tasvirdan topishi, xatoni tuzatishi va kalibrlashni aniqlashtirishi mumkin. Amal bajarilgandan so‘ng agent ekran o‘zgargan-o‘zgarmaganini tekshiradi. Shu tariqa bajarilmagan amallar keyingi bosqichlarga asos bo‘lib qolmasdan, aniqlanib qayta urinilishi mumkin.

Tizim takroriy amallardan keyin rejani qayta tuzishi hamda uzilgan ulanishlar yoki modelning yaroqsiz javoblaridan tiklanishi mumkin. Wi-Fi ulanishi uzilsa, plata sichqoncha tugmalarini qo‘yib yuboradi va avtomatik qayta ulanadi.

Asosiy imkoniyatlar

  • Apple dasturlash muhiti kerak emas: Xcode, dasturchi hisobi, kod imzolash, Developer Mode yoki test ilovasi talab qilinmaydi.
  • Keng ilova mosligi: agent maxsus imkoniyatlar daraxtiga bog‘lanmasdan, piksellar orqali ishlaydi, shuning uchun oddiy ilovalar va o‘yinlarda ham ishlashi mumkin.
  • Mac yoki Linux xost: server faqat macOS bilan cheklanmaydi.
  • Moslashuvchan model qo‘llovi: rasmlarni qabul qiladigan OpenAI bilan mos istalgan chat API’dan foydalanish mumkin.
  • Qo‘lda va avtonom boshqaruv: veb-interfeys bevosita teginish, surish, aylantirish, yozish, Home, Back va AI boshqaradigan vazifalarni qo‘llab-quvvatlaydi.
  • Kuzatiladigan bajarilish: interfeys telefonning jonli ekranini, rejalarni, jurnallarni, skrinshotlarni, amallarni, mantiqiy izohlarni va vaqt ma’lumotlarini ko‘rsatadi.
  • Xavfsizlik boshqaruvlari: favqulodda to‘xtatish agentni to‘xtatadi va ko‘rsatkichni bo‘shatadi.

Sizga kerak bo‘ladi

  • ESP32-S3 platasi: loyiha yalang‘och Seeed Studio XIAO ESP32S3 bilan sinovdan o‘tkazilgan. USB-C porti chipning ichki USB interfeysiga ulangan bo‘lsa, boshqa ESP32-S3 platasidan ham foydalanish mumkin.
  • iPhone: USB-C modellar bevosita ulanishi mumkin. Lightning modellariga Lightning to USB Camera Adapter kerak bo‘ladi.
  • Kompyuter: iPhone bilan bir tarmoqdagi macOS yoki Linux kompyuteri.
  • Wi-Fi: plata sozlamalari 2.4 GHz tarmoq nomi va parolini talab qiladi.
  • Vizual model: rasm ma’lumotlarini qabul qiladigan bulutdagi yoki mahalliy OpenAI bilan mos endpoint.

Plata iPhone tomonidan quvvatlanadi. Telefon bir vaqtning o‘zida quvvatlanishi kerak bo‘lsa, quvvat uzatishni qo‘llab-quvvatlaydigan USB-C hub’dan foydalaning.

Agentni o‘rnatish va sozlash

1. Repozitoriy klonlanadi

git clone https://github.com/onehumanbeing/esp32-iphone-agent.git
cd esp32-iphone-agent

2. ESP32-S3 tayyorlanadi va firmware yoziladi

arduino-cli va ESP32 core’ning 3.x versiyasini o‘rnating. ESP32-S3’ni USB orqali kompyuterga ulang, maxfiy ma’lumotlar namunasi faylidan nusxa oling va yangi faylni tahrirlang.

cp hardware/hid_bridge/secrets.example.h hardware/hid_bridge/secrets.h

hardware/hid_bridge/secrets.h faylida 2.4 GHz Wi-Fi tarmog‘i nomi, Wi-Fi paroli va serverni ishga tushiradigan kompyuterning IP manzilini kiriting. So‘ng plataga firmware yozing:

hardware/flash.sh

Flash skripti ixtiyoriy ravishda ketma-ket port va --debug bayrog‘ini qabul qiladi. Debug firmware buyruqlar va ularning davomiyligini USB ketma-ket porti orqali qaytarib chiqaradi.

3. UxPlay o‘rnatiladi

macOS tizimida UxPlay’ni Homebrew orqali o‘rnating:

brew install uxplay

Debian yoki Ubuntu tizimida UxPlay va kerakli GStreamer paketlarini o‘rnating:

sudo apt install uxplay gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav

4. Python muhiti yaratiladi

Server katalogiga kiring, virtual muhit yarating va loyihani o‘rnating:

cd server
python3 -m venv .venv
.venv/bin/pip install -e .

Python 3.10 yoki undan yangiroq versiyasi talab qilinadi.

5. Modelni sozlash

Muhit shablonidan nusxa oling:

cp .env.example .env

server/.env faylini tahrirlang va kamida OpenAI bilan mos keluvchi endpoint, model nomi hamda API kalitini belgilang:

LLM_BASE_URL=https://your-endpoint.example/v1
LLM_MODEL=your-vision-model
LLM_API_KEY=your-api-key

Tanlangan model tasvirlarni qo‘llab-quvvatlashi kerak. Bulutli API yetarli; lokal modelni ishga tushirish ixtiyoriy.

6. Serverni ishga tushirish

set -a && . ./.env && set +a && .venv/bin/python -m hidagent

Brauzerda http://<computer-ip>:8890 manzilini oching. Kompyuter IP manzili plata ishlatilayotgan tarmoqdan foydalanish mumkin bo‘lgan manzil bo‘lishi kerak.

iPhone’ni sozlash

Quyidagi telefon sozlamalari odatda faqat bir marta amalga oshiriladi:

  1. Sozlamalarni oching, so‘ng Maxsus imkoniyatlar, Tegish va AssistiveTouch bo‘limlariga o‘ting.
  2. AssistiveTouch’ni yoqing.
  3. Flashlangan platani kompyuterdan uzing va iPhone’ga ulang.
  4. Dumaloq ko‘rsatkich paydo bo‘lganini va veb-sahifada kontroller ulangan deb ko‘rsatilayotganini tasdiqlang.
  5. iPhone’da Boshqaruv markazini oching va Ekranni aks ettirishni tanlang.
  6. iPhone Agentni tanlang. Telefonning jonli tasviri veb-interfeysda paydo bo‘lishi kerak.
  7. Veb-interfeysda Qo‘lda boshqarishni oching va Kalibrlashni tanlang.
  8. Jonli ekrandagi ko‘rinib turgan ko‘rsatkichni aniq bosing.

AssistiveTouch kuzatuv tezligini keyinroq o‘zgartirsangiz, qayta kalibrlang.

Birinchi vazifangizni ishga tushirish

Veb-interfeysda maqsadni kiriting va Boshlashni bosing. Masalan:

Open Settings and go to Wi-Fi

Rejalashtiruvchi qisqa reja tuzadi, aktyor esa joriy skrinshotni qayta-qayta tekshiradi va amalni tanlaydi. Vazifa bajarilayotganda telefonning jonli ko‘rinishi va jurnalni kuzating.

Qadamlar lentasida har bir qaror uchun foydalanilgan skrinshot qayd etiladi. Shuningdek, u tanlangan bosish yoki surishni tasvir ustiga chizadi hamda modelning mulohazasi va vaqtini ko‘rsatadi. Qadam kartasini tanlasangiz, kattaroq ko‘rinish ochiladi.

Qo‘lda boshqarish vositalaridan foydalanish

  • Shu joyga bosish uchun telefonning jonli tasvirini bosing.
  • Surish amalini bajarish uchun tasvir bo‘ylab torting.
  • Telefonni aylantirish uchun aylantirish kiritishidan foydalaning.
  • Bosh sahifa, Orqaga, matn kiritish va tugmalar uchun taqdim etilgan boshqaruvlardan foydalaning.

Agent kutilmagan tarzda ishlasa, Favqulodda to‘xtatishni yoqing yoki Esc tugmasini bosing. Bu ishga tushirishni to‘xtatadi va ko‘rsatkichni bo‘shatadi. Interfeysda bajarilish tarixini tozalash boshqaruvi ham mavjud.

Muhim konfiguratsiya parametrlari

  • LLM_BASE_URL: OpenAI bilan mos keluvchi endpoint. Standart qiymat: http://localhost:8000/v1.
  • LLM_MODEL va LLM_API_KEY: model nomi va API hisob ma’lumotlari.
  • LLM_EXTRA_BODY: har bir model so‘roviga birlashtiriladigan JSON, masalan, modelning fikrlash rejimini o‘chiradigan sozlamalar.
  • ACTOR_* va PLANNER_*: mos keluvchi LLM_* sozlamalari uchun rolga xos almashtirishlar.
  • AIRPLAY_NAME: iPhone’dagi Ekranni aks ettirish ro‘yxatida ko‘rsatiladigan qabul qiluvchi nomi. Standart qiymat: iPhone Agent.
  • PORT: veb-interfeys porti, standart qiymati 8890.
  • DEVICE_PORT: ESP32-S3 foydalanadigan port, standart qiymati 7300.
  • HIDAGENT_DATA: kalibrlash va izlar katalogi, standart qiymati ~/.hidagent.
  • HIDAGENT_DEBUG: 1 qiymatiga o‘rnatilganda server tomonidagi nosozliklarni tuzatish jurnalini yoqadi.

Ilg‘or foydalanish va muammolarni bartaraf etish

Rejalashtiruvchi va aktyor uchun alohida modellarni belgilash

Rejalashtiruvchi va aktyor bir xil modeldan foydalanishi mumkin, ammo rolga xos muhit o‘zgaruvchilari model sozlamalarini mustaqil ravishda almashtirish imkonini beradi. Alohida endpointlar yoki modellar kerak bo‘lganda tegishli LLM_* o‘zgaruvchilarining PLANNER_* va ACTOR_* ko‘rinishlaridan foydalaning.

Lokal model serverini ulash

Ko‘rish modeliga ega har qanday OpenAI bilan mos keluvchi serverni xuddi shu tarzda sozlash mumkin, jumladan vLLM, SGLang, llama.cpp va Ollama. Loyiha tensor parallelizatsiyasidan foydalangan holda ikkita NVIDIA DGX Spark qurilmasida ishlatilgan NVIDIA Qwen3.8-Flash-Next-NVFP4 bilan ishlab chiqilgan va sinovdan o‘tkazilgan.

Ushbu sozlama uchun namunaviy konfiguratsiya:

LLM_BASE_URL=http://<dgx-spark-ip>:8888/v1
LLM_MODEL=Qwen3.8-Flash-Next
LLM_EXTRA_BODY='{"chat_template_kwargs": {"enable_thinking": false}}'

Xabar qilingan ishlab chiqish sozlamasida fikrlash rejimi o‘chirilganda har bir amal uchun taxminan 1.3 soniya va har bir reja uchun 2 soniyaga erishilgan. Bu ko‘rsatkichlar boshqa joylashtirishlar uchun kafolatlangan tezlikni emas, aynan shu uskuna va model konfiguratsiyasini tavsiflaydi.

Izlarni yig‘ishni yoqish

server/.env faylida quyidagi qiymatni belgilang:

HIDAGENT_DEBUG=1

Nosozliklarni tuzatish rejimi har bir plata buyrug‘i va uning kechikishini qayd etadi. Shuningdek, ~/.hidagent/traces/ ichida har bir agent ishga tushirilishi uchun bittadan katalog yaratadi. Katalogda model so‘rovlari, xom javoblar, kechikish o‘lchovlari va amallarni o‘z ichiga olgan steps.jsonl, shuningdek model chaqiruvlari ko‘rgan skrinshotlar mavjud bo‘ladi.

Plata protokolini tushunish

  • ping sog‘liq holatini tekshiradi.
  • home ma’lum boshlang‘ich holatni o‘rnatish uchun ko‘rsatkichni yuqori chap burchakka olib boradi.
  • move <dx> <dy> ko‘rsatkichni doimiy tezlikda nisbiy ravishda harakatlantiradi.
  • press, release va click sichqonchaning chap tugmasini boshqaradi.
  • scroll <v> <h> vertikal va gorizontal aylantirish g‘ildiragi kiritmalarini yuboradi.
  • type <text> ASCII matnini kiritadi.
  • key <combo> enter, cmd+h yoki cmd+space kabi tugmalar yoki tugmalar birikmalarini yuboradi.

Linux’da AirPlay qurilmasini aniqlash muammolarini hal qilish

Agar kompyuterda bir nechta tarmoq interfeysi bo‘lsa va iPhone qabul qilgichni ro‘yxatda ko‘rsatmasa, Avahi mDNS e’lonlarini telefon tarmog‘iga ulangan interfeys bilan cheklang.

Ma’lum cheklovlar

  • iOS parol kiritilishini, Apple Pay’ni, DRM bilan himoyalangan videolarni va ayrim boshqa himoyalangan ekranlarni aks ettirmaydi, shuning uchun agent ularni ko‘ra olmaydi.
  • Telefon qulflanganda ekran aks ettirilishi to‘xtaydi. Agent ishlayotgan paytda avtomatik qulflashni o‘chirib qo‘ying.
  • Klaviatura orqali matn kiritish ASCII bilan cheklangan.
  • AssistiveTouch kuzatuv tezligi o‘zgartirilgandan keyin ko‘rsatkich kalibrovkasini takrorlash kerak.
  • Agent plata va server o‘rtasidagi ishlaydigan tarmoq yo‘liga hamda telefon va kompyuter o‘rtasidagi mavjud AirPlay oqimiga bog‘liq.

Mas’uliyatli foydalanish

Faqat o‘zingizga tegishli yoki foydalanishga vakolatingiz bo‘lgan qurilmalar va hisoblarni avtomatlashtiring hamda tegishli ilovalardan foydalanish shartlariga rioya qiling.

Agent inson foydalanadigan kiritma turlarining o‘zi bilan harakat qila olgani sababli, faol ishga tushirishlarni nazorat qiling va favqulodda to‘xtatish imkoniyatini qo‘l yetadigan joyda saqlang.

Xulosa

ESP32 iPhone Agent AirPlay orqali aks ettirishni, arzon ESP32-S3 USB HID ko‘prigini va OpenAI bilan mos ko‘rish modelini birlashtirib, Apple’ning an’anaviy ishlab chiqish vositalarisiz jismoniy iPhone’ni avtomatlashtiradi. Mikrodastur, server, model endpointi, AssistiveTouch, aks ettirish va ko‘rsatkich kalibrovkasi sozlangach, tabiiy tildagi maqsadlarni berishingiz, har bir qarorni tekshirishingiz, qo‘lda aralashishingiz va nosozliklarni tuzatish uchun batafsil izlarni to‘plashingiz mumkin.