دسته‌بندی نشده

هوش مصنوعی روی ESP32؛ چطور بدون اینترنت به بردمان قدرت تصمیم‌گیری بدهیم؟

M98 MAKATRONIC98 • EDGE AI LAB
ESP32 + TinyML • سطح مقدماتی تا پروژه

هوش مصنوعی روی ESP32 اجرای AI بدون اینترنت؛ از TinyML تا تشخیص صدا و تصویر روی خود برد

برای اجرای هوش مصنوعی همیشه به سرور، اینترنت یا کارت گرافیک قدرتمند نیاز نداریم. مدل‌های کوچک و بهینه‌شده می‌توانند مستقیماً روی میکروکنترلرهایی مثل ESP32 اجرا شوند؛ یعنی سنسور اطلاعات را می‌گیرد، مدل تصمیم می‌گیرد و خروجی همان‌جا، بدون ارسال داده به اینترنت تولید می‌شود.

Edge AI TinyML ESP32-S3 Offline AI ESP-DL
نوع AIOn-device / Edge
برد پیشنهادیESP32-S3 + PSRAM
اینترنت هنگام اجرالازم نیست
پروژه پیشنهادیفرمان صوتی آفلاین
AI
واقعیت در یک جمله

ESP32 قرار نیست ChatGPT را داخل خودش اجرا کند؛ اما برای مدل‌های کوچک تشخیص، دسته‌بندی، فرمان صوتی، بینایی ماشین سبک و تحلیل سنسورها می‌تواند یک سیستم AI کاملاً آفلاین بسازد.

01جمع‌آوری داده
02آموزش مدل
03Quantization
04قرار دادن روی ESP32
05Inference آفلاین

هوش مصنوعی روی ESP32 یعنی چه؟

وقتی درباره AI روی ESP32 صحبت می‌کنیم، معمولاً منظور اجرای یک مدل یادگیری ماشین کوچک روی خود میکروکنترلر است. این حوزه اغلب با نام‌های Edge AI یا TinyML شناخته می‌شود.

مثلاً یک میکروفون به ESP32 متصل است. به‌جای اینکه صدا برای یک سرور اینترنتی فرستاده شود، داده صوتی داخل خود برد پردازش می‌شود و مدل تشخیص می‌دهد کاربر گفته است: «روشن» یا «خاموش». بعد ESP32 همان لحظه رله یا LED را کنترل می‌کند.

Edge AI یعنی تصمیم نزدیک به محل تولید داده. سنسور، پردازش و تصمیم‌گیری در همان دستگاه یا نزدیک آن انجام می‌شود؛ بنابراین وابستگی به Cloud کمتر می‌شود.

AI بدون اینترنت دقیقاً چطور امکان‌پذیر است؟

برای اجرای آفلاین، مدل از قبل داخل Flash یا حافظه دستگاه قرار می‌گیرد. ESP32 ورودی را از میکروفون، دوربین یا سنسور دریافت می‌کند، داده را به فرم موردنیاز مدل تبدیل و سپس عملیات Inference را اجرا می‌کند.

1Sensorصدا، تصویر، حرکت، لرزش…
2Preprocessآماده‌سازی داده
3AI ModelInference
4Decisionفرمان خروجی

بعد از اینکه Firmware و مدل روی برد قرار گرفتند، برای خود فرآیند تصمیم‌گیری لزوماً اینترنتی نیاز نیست. البته پروژه می‌تواند در کنار AI آفلاین، در صورت نیاز از Wi-Fi برای ارسال نتیجه یا به‌روزرسانی استفاده کند.

تفاوت Training و Inference؛ مهم‌ترین نکته مقاله

TRAINING

آموزش مدل

مدل با تعداد زیادی نمونه یاد می‌گیرد. این مرحله معمولاً روی کامپیوتر، GPU یا محیط‌های قدرتمندتر انجام می‌شود.

  • پردازش سنگین
  • نیاز به Dataset
  • زمان‌برتر
  • معمولاً خارج از ESP32
INFERENCE

اجرای مدل

مدل آموزش‌دیده یک ورودی جدید می‌گیرد و نتیجه تولید می‌کند. این همان قسمتی است که روی ESP32 اجرا می‌کنیم.

  • سبک‌تر از Training
  • قابل اجرای آفلاین
  • مناسب Edge Device
  • هدف اصلی TinyML
پس ESP32 معمولاً «مدل را یاد نمی‌گیرد»؛ مدل جای دیگری آموزش داده می‌شود و نسخه کوچک و بهینه‌شده آن برای تصمیم‌گیری روی ESP32 قرار می‌گیرد.

کدام ESP32 برای هوش مصنوعی بهتر است؟

تقریباً می‌توان مدل‌های بسیار کوچک را روی چند عضو خانواده ESP32 اجرا کرد، اما برای شروع پروژه‌های جدی‌تر AI، ESP32-S3 انتخاب جذاب‌تری است.

قابل استفاده ESP32 کلاسیک

برای مدل‌های سبک امکان‌پذیر است، اما سرعت و حافظه محدودتر از S3 است.

پروژه‌های کوچک ESP32-C3

برای بعضی مدل‌های ساده سنسوری مناسب است، ولی منابع سخت‌افزاری محدودتری دارد.

در پیاده‌سازی رسمی TensorFlow Lite Micro شرکت Espressif، مثال Person Detection با بهینه‌سازی ESP-NN روی ESP32-S3 بسیار سریع‌تر از ESP32 کلاسیک اجرا شده است. این مثال نشان می‌دهد انتخاب چیپ و استفاده از Kernelهای بهینه برای AI اهمیت زیادی دارد.

54 msESP32-S3 + ESP-NN
380 msESP32 + ESP-NN
نمونه Benchmark رسمی Person Detection؛ زمان invoke و وابسته به همان مدل/تنظیمات مرجع.

PSRAM چرا مهم است؟

مدل، Tensorها، Frame دوربین و Bufferهای صوتی همگی حافظه مصرف می‌کنند. به همین دلیل برای پروژه‌های تصویری یا مدل‌های بزرگ‌تر، برد ESP32-S3 دارای PSRAM معمولاً انتخاب بسیار راحت‌تری است.

چه ابزارهایی برای اجرای AI روی ESP32 داریم؟

01ESP-DL

فریم‌ورک سبک Espressif برای اجرای Neural Network روی تراشه‌های ESP است.

مناسب: Vision، Classification، Detection و مدل‌های بهینه‌شده ESP-DL
02TensorFlow Lite Micro

نسخه مخصوص میکروکنترلرها برای اجرای مدل‌های بسیار کوچک TensorFlow Lite.

مناسب: TinyML، صوت، سنسور و مدل‌های آموزشی
03ESP-SR

راهکار رسمی Espressif برای Wake Word، تشخیص فرمان صوتی و پردازش Front-end صدا.

مناسب: کنترل صوتی آفلاین
04ESP-NN

Kernelهای بهینه برای عملیات شبکه عصبی که می‌توانند سرعت اجرای TFLite Micro را بالا ببرند.

مناسب: بهبود Performance

ESP-DL چیست؟

ESP-DL فریم‌ورک رسمی Espressif برای Inference شبکه‌های عصبی روی چیپ‌های ESP است. ابزارهای جدید آن امکان Quantize کردن مدل‌های ساخته‌شده در اکوسیستم‌هایی مانند ONNX، PyTorch و TensorFlow و تبدیل آن‌ها به فرمت بهینه ESP-DL را فراهم می‌کنند.

TensorFlow Lite Micro چیست؟

TensorFlow Lite Micro برای میکروکنترلرهایی ساخته شده که سیستم‌عامل کامل، RAM زیاد یا GPU ندارند. Espressif یک Component رسمی برای ESP-IDF و مثال‌هایی مانند Hello World، Micro Speech و Person Detection ارائه می‌کند.

ESP-SR چیست؟

ESP-SR مجموعه الگوریتم‌های صوتی Espressif است. این مجموعه شامل بخش‌هایی مانند Audio Front End، WakeNet و MultiNet است و می‌تواند برای ساخت رابط صوتی آفلاین استفاده شود.

چه نوع هوش مصنوعی را واقعاً می‌توان روی ESP32 اجرا کرد؟

🎙️

فرمان صوتی

تشخیص Wake Word و فرمان‌هایی مثل روشن/خاموش بدون ارسال صدا به اینترنت.

بسیار مناسب
👁️

تشخیص تصویر

Classification، تشخیص انسان/چهره و بعضی Object Detectorهای کوچک و بهینه.

مناسب با محدودیت
📈

تحلیل سنسور

تشخیص الگو در لرزش، شتاب‌سنج، حرکت، وضعیت ماشین یا داده‌های محیطی.

بسیار مناسب
🤸

Gesture Recognition

تشخیص حرکت دست یا بدن از داده شتاب‌سنج و ژیروسکوپ.

مناسب
⚙️

Anomaly Detection

تشخیص رفتار غیرعادی موتور یا دستگاه بر اساس صوت، لرزش یا جریان.

کاربرد صنعتی عالی
💬

LLM بزرگ

مدل‌هایی در سطح ChatGPT به حافظه و پردازش بسیار بیشتری نیاز دارند.

برای ESP32 معمولی نیست

چرا AI آفلاین جذاب است؟

⚡ تأخیر کمتر

برای تصمیم نیازی نیست داده رفت‌وبرگشت اینترنتی داشته باشد.

📴 بدون اینترنت

دستگاه در کارخانه، مزرعه یا محل فاقد شبکه هم می‌تواند تصمیم بگیرد.

🔒 حریم خصوصی بهتر

در پروژه درست طراحی‌شده، داده حساس لازم نیست برای Inference از دستگاه خارج شود.

💸 هزینه Cloud کمتر

هزاران تصمیم محلی لزوماً درخواست API و سرور ایجاد نمی‌کنند.

مسیر واقعی ساخت یک پروژه AI با ESP32

  1. مسئله را تعریف کنید. مثلاً تشخیص صدای روشن/خاموش یا خرابی موتور.
  2. داده جمع کنید. داده واقعی و متنوع مهم‌تر از پیچیده کردن مدل است.
  3. مدل کوچک آموزش دهید. Training معمولاً روی PC انجام می‌شود.
  4. مدل را Quantize کنید. مثلاً تبدیل Weightها و Activationها به INT8.
  5. مدل را روی ESP32 Deploy کنید. با ESP-DL یا TFLite Micro.
  6. Inference را Benchmark کنید. RAM، سرعت و دقت را بررسی کنید.
  7. سیستم واقعی بسازید. خروجی AI باید به منطق کنترل پروژه وصل شود.

Quantization؛ راز کوچک کردن مدل برای میکروکنترلر

مدل‌های معمول Machine Learning ممکن است از اعداد Floating Point با دقت بالا استفاده کنند. یکی از روش‌های مهم برای Embedded AI، تبدیل مدل به نمایش عددی سبک‌تر مانند INT8 است.

قبل Float Model حافظه و محاسبه بیشتر
بعد INT8 Quantized کوچک‌تر و مناسب‌تر برای MCU

Quantization باید با دقت انجام شود، چون کوچک‌تر شدن مدل ممکن است روی Accuracy اثر بگذارد. هدف این است که بهترین تعادل بین اندازه، سرعت و دقت پیدا شود.

پروژه پیشنهادی: کنترل صوتی کاملاً آفلاین با ESP32-S3

EDGE AI PROJECT 01

Offline Voice Command Controller

بردESP32-S3 دارای PSRAM
ورودیI2S Microphone
AIESP-SR / MultiNet
اینترنتپس از Flash لازم نیست

ایده پروژه این است که ESP32-S3 منتظر یک Wake Word بماند و بعد یکی از فرمان‌های تعریف‌شده را تشخیص دهد. نتیجه تشخیص می‌تواند LED، رله یا هر قسمت دیگری از پروژه را کنترل کند.

در مستندات رسمی ESP-SR، MultiNet به‌عنوان مدل سبک تشخیص فرمان صوتی آفلاین معرفی شده است. نسخه فعلی مستندات برای ESP32-S3 فرمان‌های انگلیسی و چینی را پوشش می‌دهد؛ بنابراین برای زبان فارسی نباید بدون مدل و زنجیره آموزشی جداگانه انتظار پشتیبانی آماده داشته باشیم.

روش ساده شروع با مثال رسمی

برای شروع حرفه‌ای‌تر پیشنهاد می‌کنم از ESP-IDF و مثال رسمی ESP-Skainet استفاده کنید. مثال رسمی تشخیص فرمان انگلیسی در مسیر examples/en_speech_commands_recognition قرار دارد.

Terminalآماده‌سازی پروژه ESP-SR
git clone --recursive https://github.com/espressif/esp-skainet.git
cd esp-skainet/examples/en_speech_commands_recognition

idf.py set-target esp32s3
idf.py menuconfig
idf.py build
idf.py flash monitor
این مثال Plug & Play روی هر DevKit ساده نیست. باید سخت‌افزار صوتی/میکروفون و Board Configuration متناسب با پروژه انتخاب شود. هدف این بخش نشان دادن مسیر رسمی شروع است، نه ادعای اینکه هر ESP32-S3 بدون میکروفون آماده اجراست.

داخل پروژه چه اتفاقی می‌افتد؟

MicPCM Audio
AFEVAD / Noise / Wake
WakeNetWake Word
MultiNetCommand
GPIOAction

اگر بخواهیم TensorFlow Lite Micro را امتحان کنیم چه؟

Espressif برای ESP-IDF یک Component رسمی TensorFlow Lite Micro دارد. می‌توان Component را به پروژه اضافه کرد یا یک Example رسمی ایجاد کرد.

ESP-IDFاضافه کردن TFLite Micro
idf.py add-dependency "esp-tflite-micro"
ESP-IDFساخت Example رسمی
idf.py create-project-from-example "esp-tflite-micro:hello_world"

# سپس در پوشه پروژه:
idf.py set-target esp32s3
idf.py build
idf.py flash monitor

بعد از Hello World می‌توان سراغ مثال‌هایی مثل micro_speech یا person_detection رفت. در پروژه واقعی، مدل خودتان جای مدل Example قرار می‌گیرد.

هوش مصنوعی تصویری روی ESP32

اگر دوربین به ESP32-S3 متصل کنیم، می‌توان پروژه‌هایی مثل تشخیص حضور انسان، تشخیص چهره، Classification ساده یا Object Detection سبک ساخت.

دوربین + ESP32-S3

Frame کوچک‌تر → Preprocess → مدل Quantized → نتیجه Detection

PersonFaceObjectClassification

ESP-DL اکنون Model Zoo و مدل‌های بهینه‌شده‌ای برای خانواده ESP دارد؛ اما این موضوع نباید با اجرای مدل‌های Desktop در همان رزولوشن و سرعت اشتباه گرفته شود. در MCU معمولاً ورودی کوچک‌تر، مدل سبک‌تر و Quantization بخش مهم طراحی هستند.

AI سنسوری؛ جایی که ESP32 واقعاً می‌درخشد

همیشه AI به معنی دوربین نیست. یکی از بهترین کاربردهای TinyML روی ESP32، تحلیل داده‌هایی است که حجم بسیار کمی دارند.

Accelerometerتشخیص حرکت / Gesture
Microphoneصدای موتور / فرمان صوتی
Current Sensorتشخیص رفتار غیرعادی بار
VibrationPredictive Maintenance
EnvironmentalClassification وضعیت محیط
Touch / Proximityتشخیص تعامل کاربر

ESP32 چه محدودیت‌هایی برای AI دارد؟

01

RAM محدود است

Tensor Arena، Frame دوربین و Bufferهای ورودی باید داخل حافظه محدود جا شوند.

02

مدل باید کوچک باشد

مدل چندصد مگابایتی مناسب MCU نیست. معماری و Quantization باید برای Edge انتخاب شوند.

03

GPU دسکتاپ نداریم

ESP32 برای AI سبک ساخته می‌شود؛ نه پردازش مدل‌های مولد بسیار بزرگ.

04

رزولوشن و FPS محدود می‌شوند

در Vision معمولاً باید ورودی و مدل را متناسب با توان سخت‌افزار انتخاب کرد.

05

دقت تنها معیار نیست

یک مدل 99٪ دقیق ولی بسیار کند، برای کنترل بلادرنگ ممکن است انتخاب بدی باشد.

چطور مدل AI را برای ESP32 بهتر کنیم؟

01مدل کوچک‌تر

معماری سبک انتخاب کنید.

02Quantization

در صورت مناسب بودن از INT8 استفاده کنید.

03Input کوچک‌تر

رزولوشن یا طول Window را کاهش دهید.

04PSRAM

برای Bufferها و پروژه‌های سنگین‌تر کمک‌کننده است.

05Kernel بهینه

از ESP-NN / ESP-DL optimizations استفاده کنید.

06Benchmark

RAM، Latency و Accuracy را روی برد واقعی اندازه بگیرید.

آیا AI روی ESP32 واقعاً کاربرد صنعتی دارد؟

بله، مخصوصاً زمانی که مسئله کوچک و مشخص باشد. یک دستگاه صنعتی ممکن است فقط لازم داشته باشد بفهمد «لرزش موتور عادی است یا غیرعادی». در چنین سناریویی لازم نیست یک LLM بزرگ داشته باشیم.

یک مدل TinyML مناسب می‌تواند نزدیک به سنسور کار کند و فقط وقتی اتفاق غیرعادی رخ داد، پیام ارسال کند. این طراحی هم ترافیک شبکه را کم می‌کند و هم امکان عملکرد مستقل را افزایش می‌دهد.

مثال صنعتی Motor Health Monitor

شتاب‌سنج → پنجره لرزش → مدل TinyML → NORMAL / FAULT → ارسال هشدار فقط در صورت خرابی

سه تصور اشتباه درباره AI روی ESP32

«اگر AI است، پس باید ChatGPT روی برد اجرا شود»

خیر. AI طیف بزرگی از الگوریتم‌هاست. Classification کوچک یا Keyword Spotting نیز یک کاربرد Machine Learning است.

«برای AI همیشه اینترنت لازم است»

خیر. اگر مدل و Runtime روی دستگاه باشند، Inference می‌تواند کاملاً آفلاین انجام شود.

«هر مدل TensorFlow را می‌توان مستقیم روی ESP32 ریخت»

خیر. Operatorها، حافظه، ابعاد Tensorها، فرمت مدل و قدرت سخت‌افزار باید با Runtime و MCU سازگار باشند.

برای شروع چه سخت‌افزاری پیشنهاد می‌کنیم؟

کیت پیشنهادی Edge AI:
  • برد ESP32-S3 دارای PSRAM
  • کابل USB Type-C دیتا
  • برای Voice AI: میکروفون I2S مناسب
  • برای Vision: برد/ماژول دوربین سازگار
  • برای Sensor AI: شتاب‌سنج یا سنسور لرزش
  • LED یا رله برای مشاهده نتیجه AI

سؤالات متداول

آیا ESP32 بدون اینترنت می‌تواند هوش مصنوعی اجرا کند؟

بله. اگر مدل و Runtime روی خود دستگاه قرار داشته باشند، Inference می‌تواند بدون اتصال اینترنت انجام شود.

بهترین ESP32 برای AI کدام است؟

برای بسیاری از پروژه‌های آموزشی و Edge AI، ESP32-S3 دارای PSRAM انتخاب بسیار خوبی است؛ مخصوصاً برای صدا و تصویر.

آیا می‌توان ChatGPT را روی ESP32 اجرا کرد؟

مدل‌های زبانی بزرگ در اندازه ChatGPT برای منابع ESP32 مناسب نیستند. پروژه ESP32 می‌تواند به یک LLM آنلاین متصل شود، اما این با اجرای خود مدل روی برد متفاوت است.

برای AI روی ESP32 باید Python بلد باشیم؟

برای آموزش و آماده‌سازی مدل، Python بسیار مفید است. بخش Firmware و Inference روی ESP32 معمولاً با C/C++ و ESP-IDF یا Arduino نوشته می‌شود.

آیا تشخیص صدا روی ESP32 آفلاین است؟

بله. ESP-SR برای سناریوهایی مانند Wake Word و Command Recognition روی ESP32/ESP32-S3 طراحی شده و Inference می‌تواند روی خود دستگاه انجام شود.

جمع‌بندی؛ هوش مصنوعی کوچک، کاربرد واقعی

مهم‌ترین نکته این مقاله این است که برای ساخت یک محصول «هوشمند» همیشه به مدل عظیم نیاز نداریم. اگر مسئله دقیق تعریف شود، یک مدل بسیار کوچک می‌تواند کاری را که لازم داریم سریع، محلی و بدون اینترنت انجام دهد.

ESP32-S3 پلی جذاب بین دنیای میکروکنترلرها و Machine Learning است. از فرمان صوتی و تشخیص تصویر گرفته تا تحلیل لرزش موتور و Gesture Recognition، TinyML می‌تواند پروژه‌ای که قبلاً فقط «برنامه‌ریزی‌شده» بود را به سیستمی تبدیل کند که از داده الگو تشخیص می‌دهد.

TensorFlow Lite Micro روی ESP32-S3 تشخیص فرمان صوتی آفلاین با ESP-SR تشخیص تصویر با ESP32-S3 و دوربین آموزش Quantization برای TinyML Edge Impulse و ESP32 از صفر تشخیص خرابی موتور با سنسور لرزش

منابع فنی

مطالب فنی مقاله با مستندات و پروژه‌های رسمی Espressif تطبیق داده شده و متن با نگارش مستقل برای MAKATRONIC98 تدوین شده است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *