คนส่วนใหญ่ยังคงปฏิบัติกับ AI ภายในเครื่อง (Local AI) เหมือนกับของฟุ่มเฟือยสุดหรู
พวกเขาซื้อ NVIDIA DGX Spark ราคา $3,000 หรือกอง Mac Mini ราคา $800 โดยคิดว่าปัญญาประดิษฐ์แบบอัตโนมัติจำเป็นต้องใช้ฮาร์ดแวร์ขนาดใหญ่และรวมศูนย์

แต่วิศวกรที่กำลังปรับใช้ AI ทางกายภาพในระดับจริงกำลังสร้างสิ่งที่ถูกกว่ามาก: ฝูงบินแบบกระจายศูนย์ (Distributed Swarm)
- ชิปราคา $8 หนึ่งตัวฟังเสียงในห้อง
- ชิปราคา $8 อีกตัวประมวลผลความตั้งใจในเครื่อง
- สคริปต์แบบกำหนดตายตัว (Deterministic Script) กรองเสียงรบกวนพื้นหลังออก
- ชิปตัวที่สามดำเนินการคำสั่ง Bluetooth
- เครือข่ายทั้งหมดทำงานด้วยพลังงานของ LED เพียงดวงเดียว
นั่นคือ สถาปัตยกรรมฝูงบินทางกายภาพ (Physical Swarm Architecture)
ก่อนที่คุณจะอ่านต่อ:
บุ๊กมาร์กคำแนะนำนี้ไว้ เพื่อที่คุณจะได้กลับมาดูคำแนะนำการประกอบตอนท้ายเมื่ออะไหล่ของคุณมาถึง และติดตาม
@ardchain — ฉันจะแยกย่อยเอเจนต์อัตโนมัติ, ไพพ์ไลน์ AI ในเครื่อง, และระบบที่เปลี่ยนทั้งโค้ดและฮาร์ดแวร์ราคาถูกให้เป็นธุรกิจอัตโนมัติที่ปรับขนาดได้
(หมายเหตุ: ฉันได้รวมคู่มือฮาร์ดแวร์และการแฟลชแบบทีละขั้นตอนที่สมบูรณ์ไว้ที่ส่วนท้ายสุดของโพสต์นี้ แต่ก่อนที่คุณจะเริ่มสั่งซื้ออะไหล่ คุณต้องเข้าใจว่าสถาปัตยกรรมทำงานอย่างไรจริงๆ)
ฉันใช้เวลาหลายสัปดาห์ในการแยกส่วนคลังเก็บ GitHub slvDev/esp32-ai และรูปแบบ IoT ในการผลิต เพื่อสร้างระบบปัญญาประดิษฐ์ในเครื่องขึ้นมาใหม่เป็นคู่มือปฏิบัติเล่มเดียว
แทนที่จะซื้อสมองขนาดใหญ่ที่รวมศูนย์ คุณกระจายความฉลาดไปทั่วสภาพแวดล้อม:
ฟัง (Listen) → แยกวิเคราะห์ (Parse) → กำหนดเส้นทาง (Route) → ดำเนินการ (Execute)

ไมโครคอนโทรลเลอร์แต่ละตัวกลายเป็นโหนดที่มีหน้าที่จำกัด ชิปแต่ละตัวมีโมเดลเฉพาะ การอนุมานแบบออฟไลน์ (Offline Inference) จะตัดสินใจว่าควรดำเนินการใด การเปลี่ยนแปลงที่สำคัญคือบ้านอัจฉริยะของคุณไม่จำเป็นต้องส่งคำสั่งเสียงทุกคำสั่งผ่าน API ที่มีราคาแพงหรือเวิร์กสเตชันที่มีเสียงดังอีกต่อไป
มันสามารถรัน LLM ที่มีพารามิเตอร์ 28.9 ล้านค่า แบบออฟไลน์โดยสมบูรณ์ บน ชิป ESP32-S3 ราคา $8 โดยไม่ใช้แบนด์วิดท์คลาวด์เลยแม้แต่น้อย
รูปแบบพื้นฐานไม่ใช่ของใหม่ วิศวกรฮาร์ดแวร์ใช้ไมโครคอนโทรลเลอร์, บัส I2S, และเมช BLE มาหลายทศวรรษแล้ว สิ่งที่เปลี่ยนแปลงไปคือสิ่งที่อยู่ภายในแต่ละโหนดในตอนนี้ โหนดสามารถประมวลผลภาษาธรรมชาติ, แยกวิเคราะห์คำสั่งเสียงที่ยุ่งเหยิง, จับคู่กับ API ที่ตายตัว, หรือสังเคราะห์ข้อมูลจากเซนเซอร์เป็นการตัดสินใจ
คำแนะนำนี้จะแยกย่อยระบบทั้งหมด ตั้งแต่คอขวดของฮาร์ดแวร์ไปจนถึงการแมปหน่วยความจำ, การจับเสียง I2S, การดำเนินการ BLE, และฝูงบินแบบไดนามิกที่สร้างขึ้นบนซิลิคอนโดยตรง
เมื่ออ่านจบ คุณจะสามารถมองงานทางกายภาพและหยุดถามว่า:
"ฉันควรเรียก API ไหน?"
1. AI ทางกายภาพเริ่มต้นที่คอขวดของหน่วยความจำ
การทำการตลาดฮาร์ดแวร์มักถูกนำเสนอเป็นเหตุผลให้ซื้อ VRAM เพิ่ม มุมมองนั้นพลาดความก้าวหน้าทางวิศวกรรมที่แท้จริง
คุณสามารถซื้อ RTX 5090 เพื่อรันโมเดล 70B แค่เปิดไฟของคุณ และคุณจะจ่ายด้วยความร้อน, ค่าไฟฟ้า, และบิลค่าฮาร์ดแวร์มหาศาล โหนดที่มีประโยชน์จะควบคุมว่าหน่วยความจำถูกเก็บไว้ที่ไหน, คอมโพเนนต์ใดจัดการการตัดสินใจแต่ละอย่าง, และข้อมูลเคลื่อนที่ผ่านซิลิคอนอย่างไร
ลองนึกภาพการขอให้ไมโครคอนโทรลเลอร์ ESP32-S3 ราคา $8 รันโมเดลภาษา ภูมิปัญญาดั้งเดิมบอกว่ามันจะล้มเหลว ชิปมีเพียง SRAM แบบเร็ว 512KB และ Flash ขนาด 16MB โมเดลจะไม่พอดี ภายในเฟรมเวิร์กมาตรฐาน นี่กลายเป็นงานที่เป็นไปไม่ได้ ตาราง embedding เพียงอย่างเดียวก็ทำให้หน่วยความจำทำงานพัง
วิศวกรรมฝูงบินเปิดคอขวดนั้นและทำให้ทุกพารามิเตอร์มีตำแหน่งที่มองเห็นได้
ความก้าวหน้าอยู่ที่สถาปัตยกรรม ส่วนใหญ่ของตาราง embedding (ประมาณ 25 ล้านพารามิเตอร์) ถูกแมปหน่วยความจำลงใน Flash โดยตรง หน่วยความจำทำงานที่ใช้งานอยู่จะอยู่ใน SRAM แบบเร็ว

ผลลัพธ์คือเวิร์กโฟลว์ที่ชิปต้องการดึงข้อมูลเพียงประมาณ 450 ไบต์ต่อโทเค็น
โหนดควรทำการตัดสินใจเพียงครั้งเดียว
โหนดทางกายภาพที่มีประโยชน์มีหน้าที่รับผิดชอบที่จำกัด:
- ค้นหาคำปลุก
- จำแนกความตั้งใจเป็นความเชื่อมั่นต่ำ, ปานกลาง, หรือสูง
- ดำเนินการแมโคร Bluetooth
แต่ละโหนดต้องการอินพุตที่ชัดเจน, เอาต์พุตที่กำหนดไว้, และพื้นที่ฮาร์ดแวร์ที่จำกัด Mac Mini ส่วนกลางที่จับเสียง, ประมาณความตั้งใจ, ออกแบบการตอบสนอง, และส่งสัญญาณ มีจุดล้มเหลวหลายจุด การแก้ไขข้อบกพร่องยังคงยากเพราะทั้งบ้าน依赖于เครื่องเดียว
ขอบเขตทางกายภาพที่เล็กลงเผยให้เห็นว่าเซนเซอร์ตัวไหนล้มเหลวอย่างแม่นยำ
ขอบ (Edge) ควรส่งต่อความตั้งใจ
ขอบแสดงถึงข้อมูลที่จำเป็นสำหรับการดำเนินการทางกายภาพครั้งต่อไป โหนดเสียงสามารถคืนวัตถุ JSON ที่คาดเดาได้:
1{2 "sensor": "mic-living-room",3 "confidence": 0.98,4 "intent": "open_chrome_20_tabs",5 "execution_node": "ble-host-1"6}
สคีมาช่วยลดความคลาดเคลื่อนในการตีความระหว่างชิป สตรีมเสียงแบบอิสระบังคับให้ทุกโหนดปลายน้ำต้องสร้างความหมายของโหนดก่อนหน้าขึ้นมาใหม่
บางโหนดก็เป็นโค้ดธรรมดา
เวิร์กโฟลว์จำเป็นต้องลบคำสั่งซ้ำ, สัญญาณดีบounce, และแมปความตั้งใจไปยังการกระทำที่ถูกเขียนไว้ตายตัว การดำเนินการเหล่านี้มีคำตอบที่แน่นอน
นี่คือลักษณะของลูปการดำเนินการในทางปฏิบัติ ไมโครโฟน I2S จับเสียง, LLM แยกวิเคราะห์ความตั้งใจจากหน่วยความจำแฟลช, และโค้ด C++ ยิงคำสั่ง Bluetooth:
1// 1. เริ่มต้นโมเดล 28M พารามิเตอร์จาก Flash ที่แมปไว้2LLM model = LLM_Init(FLASH_MAPPED_EMBEDDINGS);34void loop() {5 // 2. จับเสียงสิ่งแวดล้อมผ่าน I2S6 String audio = I2S_Record_Voice();78 if (Detect_Wake_Word(audio)) {9 // 3. การอนุมาน (ประมาณ 9.5 โทเค็น/วินาที)10 String intent = model.generate(audio);1112 // 4. การดำเนินการแบบกำหนดตายตัว13 if (intent.indexOf("open_chrome") > -1) {14 BLE_Send_Macro(MAC_ADDRESS, CMD_OPEN_CHROME);15 }16 }17}
การแปลง C++ ง่ายๆ นี้จัดการเวิร์กโฟลว์ได้ทันทีและให้ผลลัพธ์เดียวกันทุกครั้งที่รัน การส่งงานเดียวกันไปยังโมเดลอื่นจะเพิ่มความหน่วงและสร้างจุดล้มเหลว โหนดโมเดลควรอยู่รอบๆ การแยกวิเคราะห์ภาษาธรรมชาติและตรรกะคลุมเครือ โค้ดจัดการการดำเนินการ BLE, การดีบounce, และกฎการกำหนดเส้นทางที่ชัดเจน
2. ฝูงบิน: โหนดกระจายศูนย์เคลื่อนย้ายงานอย่างไร
กราฟ AI ทางกายภาพที่จริงจังส่วนใหญ่ในที่สุดก็มีรูปร่างเดียวกัน งานเริ่มต้นในสภาพแวดล้อม, แตกออกไปยังเซนเซอร์อิสระหลายตัว, บีบอัดหลักฐานทางกายภาพ, และส่งผลลัพธ์ไปยังการดำเนินการฮาร์ดแวร์ขั้นสุดท้าย
รูปร่างนั้นคือฝูงบิน (Swarm)
- กระจายออก (Fan-out): การจับภาพสิ่งแวดล้อม (ไมค์ I2S)
- สิ่งกีดขวาง (Barrier): LLM ออฟไลน์ (การแยกวิเคราะห์ความตั้งใจ)
- รวมเข้าหา (Fan-in): การดำเนินการทางกายภาพ (แมโคร BLE)
รูปแบบนี้ปรากฏขึ้นทุกที่เมื่องานซับซ้อนเกินกว่ากฎแบบ "ถ้า-นี่-แล้ว-นั่น" ที่ตายตัว
การจับภาพควรสร้างอินพุตอิสระ
เซนเซอร์อยู่ในขั้นตอนการจับภาพเมื่อ它可以ฟังสิ่งแวดล้อมและสร้างผลลัพธ์ที่มีประโยชน์โดยไม่ต้องปลุกสมองหลัก
ESP32 สามารถฟังคำปลุกอย่างต่อเนื่องโดยใช้พลังงานเกือบเป็นศูนย์ เมื่อถูกกระตุ้น การจัดประสานงานจะอยู่บนซิลิคอน ชิปบันทึกเสียง, รันโมเดล, และคืนความตั้งใจที่ผ่านการตรวจสอบแล้ว
ลดขนาดก่อนดำเนินการ
หลังจากจับภาพเสียง, โหนดอาจมีความหมายที่ขัดแย้งกันหลายประการ การส่งเสียงดิบโดยตรงไปยังเลเยอร์การดำเนินการจะสร้างความสับสนวุ่นวาย ขั้นตอนการลดขนาดเตรียมคำสั่ง
การลดขนาดบางส่วนเกิดขึ้นผ่านการควอนไทซ์ (โมเดล 4-bit ที่พอดีกับแฟลช 16MB) โหนดการดำเนินการได้รับคำสั่งที่เข้มงวดโดยไม่สูญเสียการตรวจสอบย้อนกลับ
3. การกระจายศูนย์เป็นส่วนหนึ่งของสถาปัตยกรรม
โหนดสามารถอนุมานเสร็จเร็วและยังคงกระตุ้นการกระทำผิด ระบบต้องการกฎสำหรับการตัดสินใจว่าคำสั่งใดควรดำเนินการ
กำหนดเส้นทางโดยขีดจำกัดฮาร์ดแวร์
เราเตอร์อ่านเอาต์พุตที่มีโครงสร้างและเลือกสาขาทางกายภาพถัดไป สิ่งนี้ทำให้การประมวลผลที่มีราคาแพงกระจุกตัวอยู่รอบๆ โหนดที่มีผลกระทบที่มีความหมาย
จับคู่ฮาร์ดแวร์กับโหนด
ทุกห้องไม่จำเป็นต้องมีชิป Apple M4 การสกัด, การจำแนกความตั้งใจพื้นฐาน, และการค้นหาเสียงแคบๆ สามารถรันบน ESP32 ราคา $8 ได้ การประมวลผลวิดีโอหนัก, การให้เหตุผลที่ซับซ้อน, และการสังเคราะห์โดยรวมอาจต้องใช้เซิร์ฟเวอร์กลางที่แข็งแกร่งกว่า
การแบ่งระดับฮาร์ดแวร์กลายเป็นคุณสมบัติอีกอย่างของฝูงบิน
รู้ว่าเมื่อใดควรหยุดรวมศูนย์
ค่าโสหุ้ยกราฟรวมถึงการจัดประสานงาน, ความหน่วงของ Wi-Fi, การกำหนดค่าเราเตอร์, และสถานะเครือข่ายมากขึ้นที่ต้องแก้ไขข้อบกพร่อง Mac Mini แบบรวมศูนย์มักจะเพียงพอเมื่อคุณมีโต๊ะทำงานเพียงตัวเดียว
วิศวกรรมฝูงบินมีประโยชน์เมื่อสภาพแวดล้อมมีหลายห้อง, ค่าใช้จ่าย API ที่แพง, อาร์เรย์เซนเซอร์ขนาดใหญ่, หรือความจำเป็นในการรักษาความเป็นส่วนตัวแบบออฟไลน์โดยสมบูรณ์
4. คำแนะนำการประกอบที่สมบูรณ์
ทฤษฎีไม่มีประโยชน์ถ้าคุณไม่รู้ว่าจะต้องบัดกรีและแฟลชอะไรอย่างแน่นอน ถ้าคุณต้องการสร้างโหนด AI ในเครื่องภายในสุดสัปดาห์นี้ นี่คือคำแนะนำทางเทคนิคแบบทีละขั้นตอนที่ตรงไปตรงมา
ขั้นตอนที่ 1: ฮาร์ดแวร์และการเดินสายไฟ
คุณต้องการสองส่วนประกอบเท่านั้น:
- บอร์ดพัฒนา ESP32-S3 (ต้องเป็นรุ่นที่มี Flash 16MB และ PSRAM 8MB เพื่อให้การแมปหน่วยความจำโมเดลทำงานได้)
- โมดูลไมโครโฟน I2S INMP441

นี่คือ AI ทางกายภาพ ดังนั้นคุณต้องเดินสายไฟ INMP441 ใช้บัส I2S บัดกรีการเชื่อมต่อให้ตรงตามนี้:
- VDD \rightarrow 3.3V
- GND \rightarrow GND
- L/R \rightarrow GND (ดึงไมค์ไปที่ช่องซ้าย)
- WS \rightarrow GPIO 4 (Word Select / Frame Sync)
- SCK \rightarrow GPIO 5 (Serial Clock)
- SD \rightarrow GPIO 6 (Serial Data)

ขั้นตอนที่ 2: โมเดลและกระบวนการแฟลช
คุณไม่ได้โหลด ChatGPT คุณกำลังโหลด โมเดลกลั่นที่มีพารามิเตอร์ 28.9 ล้านค่า ซึ่งปรับให้เหมาะสมสำหรับการจำแนกความตั้งใจและเอาต์พุต JSON ที่มีโครงสร้างเท่านั้น
คุณไม่จำเป็นต้องต่อสู้กับชุดเครื่องมือ ESP-IDF คุณสามารถแฟลชไบนารีที่คอมไพล์ไว้ล่วงหน้าและน้ำหนักโมเดลโดยตรงโดยใช้ esptool.py
- ใส่บอร์ดของคุณในโหมด Bootloader (กด BOOT ค้างไว้, กด RST, ปล่อย BOOT)
- รันคำสั่งแฟลชที่แน่นอนโดยแมปโมเดลลงในพาร์ติชั่น Flash ขนาด 16MB โดยตรง:
1esptool.py --chip esp32s3 --baud 921600 \2 --before default_reset --after hard_reset write_flash -z \3 --flash_mode dio --flash_freq 80m --flash_size 16MB \4 0x10000 build/firmware.bin \5 0x400000 models/intent_classifier_28M_q4.bin

ขั้นตอนที่ 3: ตัวรับ (Home Assistant)
เมื่อแฟลชแล้ว ESP32 ไม่จำเป็นต้องใช้ Wi-Fi หรือ API คลาวด์ เมื่อตรวจพบความตั้งใจ มันจะกระจาย เพย์โหลด BLE ที่เข้ากันได้กับ BTHome มาตรฐาน
เพื่อจับสัญญาณนี้และเปิดไฟของคุณจริงๆ:
- รัน Home Assistant ด้วยการรวม Bluetooth (หรือ BLE Proxy ของ ESP32)
- โหนดจะค้นพบตัวเองโดยอัตโนมัติเป็นเซนเซอร์ BTHome
- ความตั้งใจ (เช่น open_chrome, lights_off) จะปรากฏเป็นการเปลี่ยนแปลงสถานะเซนเซอร์ แมปสถานะนี้กับระบบอัตโนมัติที่มีอยู่ของคุณโดยตรง
คุณค่ามาจากการทำให้การคำนวณมองไม่เห็น
ทุกโหนดมีหน้าที่รับผิดชอบทางกายภาพที่จำกัด ทุกชิปมีความตั้งใจที่มีโครงสร้าง ทุกห้องมีเหตุผลในการดำรงอยู่ ทุกคำสั่งเสียงยังคงออฟไลน์
ณ จุดนั้น บ้านของคุณไม่ได้ทำงานบน API ที่มีราคาแพงอีกต่อไป
มันกำลังดำเนินการฝูงบินที่ออกแบบทางวิศวกรรม





