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

هوش مصنوعی روی ESP32 اجرای AI بدون اینترنت؛ از TinyML تا تشخیص صدا و تصویر روی خود برد
برای اجرای هوش مصنوعی همیشه به سرور، اینترنت یا کارت گرافیک قدرتمند نیاز نداریم. مدلهای کوچک و بهینهشده میتوانند مستقیماً روی میکروکنترلرهایی مثل ESP32 اجرا شوند؛ یعنی سنسور اطلاعات را میگیرد، مدل تصمیم میگیرد و خروجی همانجا، بدون ارسال داده به اینترنت تولید میشود.
ESP32 قرار نیست ChatGPT را داخل خودش اجرا کند؛ اما برای مدلهای کوچک تشخیص، دستهبندی، فرمان صوتی، بینایی ماشین سبک و تحلیل سنسورها میتواند یک سیستم AI کاملاً آفلاین بسازد.
هوش مصنوعی روی ESP32 یعنی چه؟
وقتی درباره AI روی ESP32 صحبت میکنیم، معمولاً منظور اجرای یک مدل یادگیری ماشین کوچک روی خود میکروکنترلر است. این حوزه اغلب با نامهای Edge AI یا TinyML شناخته میشود.
مثلاً یک میکروفون به ESP32 متصل است. بهجای اینکه صدا برای یک سرور اینترنتی فرستاده شود، داده صوتی داخل خود برد پردازش میشود و مدل تشخیص میدهد کاربر گفته است: «روشن» یا «خاموش». بعد ESP32 همان لحظه رله یا LED را کنترل میکند.
AI بدون اینترنت دقیقاً چطور امکانپذیر است؟
برای اجرای آفلاین، مدل از قبل داخل Flash یا حافظه دستگاه قرار میگیرد. ESP32 ورودی را از میکروفون، دوربین یا سنسور دریافت میکند، داده را به فرم موردنیاز مدل تبدیل و سپس عملیات Inference را اجرا میکند.
بعد از اینکه Firmware و مدل روی برد قرار گرفتند، برای خود فرآیند تصمیمگیری لزوماً اینترنتی نیاز نیست. البته پروژه میتواند در کنار AI آفلاین، در صورت نیاز از Wi-Fi برای ارسال نتیجه یا بهروزرسانی استفاده کند.
تفاوت Training و Inference؛ مهمترین نکته مقاله
آموزش مدل
مدل با تعداد زیادی نمونه یاد میگیرد. این مرحله معمولاً روی کامپیوتر، GPU یا محیطهای قدرتمندتر انجام میشود.
- پردازش سنگین
- نیاز به Dataset
- زمانبرتر
- معمولاً خارج از ESP32
اجرای مدل
مدل آموزشدیده یک ورودی جدید میگیرد و نتیجه تولید میکند. این همان قسمتی است که روی ESP32 اجرا میکنیم.
- سبکتر از Training
- قابل اجرای آفلاین
- مناسب Edge Device
- هدف اصلی TinyML
کدام ESP32 برای هوش مصنوعی بهتر است؟
تقریباً میتوان مدلهای بسیار کوچک را روی چند عضو خانواده ESP32 اجرا کرد، اما برای شروع پروژههای جدیتر AI، ESP32-S3 انتخاب جذابتری است.
برای صدا، دوربین، مدلهای TinyML و پروژههای AI گزینه مناسبتر و منعطفتر.
برای مدلهای سبک امکانپذیر است، اما سرعت و حافظه محدودتر از S3 است.
برای بعضی مدلهای ساده سنسوری مناسب است، ولی منابع سختافزاری محدودتری دارد.
در پیادهسازی رسمی TensorFlow Lite Micro شرکت Espressif، مثال Person Detection با بهینهسازی ESP-NN روی ESP32-S3 بسیار سریعتر از ESP32 کلاسیک اجرا شده است. این مثال نشان میدهد انتخاب چیپ و استفاده از Kernelهای بهینه برای AI اهمیت زیادی دارد.
PSRAM چرا مهم است؟
مدل، Tensorها، Frame دوربین و Bufferهای صوتی همگی حافظه مصرف میکنند. به همین دلیل برای پروژههای تصویری یا مدلهای بزرگتر، برد ESP32-S3 دارای PSRAM معمولاً انتخاب بسیار راحتتری است.
چه ابزارهایی برای اجرای AI روی ESP32 داریم؟
فریمورک سبک Espressif برای اجرای Neural Network روی تراشههای ESP است.
مناسب: Vision، Classification، Detection و مدلهای بهینهشده ESP-DLنسخه مخصوص میکروکنترلرها برای اجرای مدلهای بسیار کوچک TensorFlow Lite.
مناسب: TinyML، صوت، سنسور و مدلهای آموزشیراهکار رسمی Espressif برای Wake Word، تشخیص فرمان صوتی و پردازش Front-end صدا.
مناسب: کنترل صوتی آفلاینKernelهای بهینه برای عملیات شبکه عصبی که میتوانند سرعت اجرای TFLite Micro را بالا ببرند.
مناسب: بهبود PerformanceESP-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
- مسئله را تعریف کنید. مثلاً تشخیص صدای روشن/خاموش یا خرابی موتور.
- داده جمع کنید. داده واقعی و متنوع مهمتر از پیچیده کردن مدل است.
- مدل کوچک آموزش دهید. Training معمولاً روی PC انجام میشود.
- مدل را Quantize کنید. مثلاً تبدیل Weightها و Activationها به INT8.
- مدل را روی ESP32 Deploy کنید. با ESP-DL یا TFLite Micro.
- Inference را Benchmark کنید. RAM، سرعت و دقت را بررسی کنید.
- سیستم واقعی بسازید. خروجی AI باید به منطق کنترل پروژه وصل شود.
Quantization؛ راز کوچک کردن مدل برای میکروکنترلر
مدلهای معمول Machine Learning ممکن است از اعداد Floating Point با دقت بالا استفاده کنند. یکی از روشهای مهم برای Embedded AI، تبدیل مدل به نمایش عددی سبکتر مانند INT8 است.
Quantization باید با دقت انجام شود، چون کوچکتر شدن مدل ممکن است روی Accuracy اثر بگذارد. هدف این است که بهترین تعادل بین اندازه، سرعت و دقت پیدا شود.
پروژه پیشنهادی: کنترل صوتی کاملاً آفلاین با ESP32-S3
Offline Voice Command Controller
ایده پروژه این است که ESP32-S3 منتظر یک Wake Word بماند و بعد یکی از فرمانهای تعریفشده را تشخیص دهد. نتیجه تشخیص میتواند LED، رله یا هر قسمت دیگری از پروژه را کنترل کند.
در مستندات رسمی ESP-SR، MultiNet بهعنوان مدل سبک تشخیص فرمان صوتی آفلاین معرفی شده است. نسخه فعلی مستندات برای ESP32-S3 فرمانهای انگلیسی و چینی را پوشش میدهد؛ بنابراین برای زبان فارسی نباید بدون مدل و زنجیره آموزشی جداگانه انتظار پشتیبانی آماده داشته باشیم.
روش ساده شروع با مثال رسمی
برای شروع حرفهایتر پیشنهاد میکنم از ESP-IDF و مثال رسمی ESP-Skainet استفاده کنید.
مثال رسمی تشخیص فرمان انگلیسی در مسیر examples/en_speech_commands_recognition قرار دارد.
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داخل پروژه چه اتفاقی میافتد؟
اگر بخواهیم TensorFlow Lite Micro را امتحان کنیم چه؟
Espressif برای ESP-IDF یک Component رسمی TensorFlow Lite Micro دارد. میتوان Component را به پروژه اضافه کرد یا یک Example رسمی ایجاد کرد.
idf.py add-dependency "esp-tflite-micro"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 سبک ساخت.
Frame کوچکتر → Preprocess → مدل Quantized → نتیجه Detection
ESP-DL اکنون Model Zoo و مدلهای بهینهشدهای برای خانواده ESP دارد؛ اما این موضوع نباید با اجرای مدلهای Desktop در همان رزولوشن و سرعت اشتباه گرفته شود. در MCU معمولاً ورودی کوچکتر، مدل سبکتر و Quantization بخش مهم طراحی هستند.
AI سنسوری؛ جایی که ESP32 واقعاً میدرخشد
همیشه AI به معنی دوربین نیست. یکی از بهترین کاربردهای TinyML روی ESP32، تحلیل دادههایی است که حجم بسیار کمی دارند.
ESP32 چه محدودیتهایی برای AI دارد؟
RAM محدود است
Tensor Arena، Frame دوربین و Bufferهای ورودی باید داخل حافظه محدود جا شوند.
مدل باید کوچک باشد
مدل چندصد مگابایتی مناسب MCU نیست. معماری و Quantization باید برای Edge انتخاب شوند.
GPU دسکتاپ نداریم
ESP32 برای AI سبک ساخته میشود؛ نه پردازش مدلهای مولد بسیار بزرگ.
رزولوشن و FPS محدود میشوند
در Vision معمولاً باید ورودی و مدل را متناسب با توان سختافزار انتخاب کرد.
دقت تنها معیار نیست
یک مدل 99٪ دقیق ولی بسیار کند، برای کنترل بلادرنگ ممکن است انتخاب بدی باشد.
چطور مدل AI را برای ESP32 بهتر کنیم؟
معماری سبک انتخاب کنید.
در صورت مناسب بودن از INT8 استفاده کنید.
رزولوشن یا طول Window را کاهش دهید.
برای Bufferها و پروژههای سنگینتر کمککننده است.
از ESP-NN / ESP-DL optimizations استفاده کنید.
RAM، Latency و Accuracy را روی برد واقعی اندازه بگیرید.
آیا AI روی ESP32 واقعاً کاربرد صنعتی دارد؟
بله، مخصوصاً زمانی که مسئله کوچک و مشخص باشد. یک دستگاه صنعتی ممکن است فقط لازم داشته باشد بفهمد «لرزش موتور عادی است یا غیرعادی». در چنین سناریویی لازم نیست یک LLM بزرگ داشته باشیم.
یک مدل TinyML مناسب میتواند نزدیک به سنسور کار کند و فقط وقتی اتفاق غیرعادی رخ داد، پیام ارسال کند. این طراحی هم ترافیک شبکه را کم میکند و هم امکان عملکرد مستقل را افزایش میدهد.
شتابسنج → پنجره لرزش → مدل TinyML → NORMAL / FAULT → ارسال هشدار فقط در صورت خرابی
سه تصور اشتباه درباره AI روی ESP32
«اگر AI است، پس باید ChatGPT روی برد اجرا شود»
خیر. AI طیف بزرگی از الگوریتمهاست. Classification کوچک یا Keyword Spotting نیز یک کاربرد Machine Learning است.
«برای AI همیشه اینترنت لازم است»
خیر. اگر مدل و Runtime روی دستگاه باشند، Inference میتواند کاملاً آفلاین انجام شود.
«هر مدل TensorFlow را میتوان مستقیم روی ESP32 ریخت»
خیر. Operatorها، حافظه، ابعاد Tensorها، فرمت مدل و قدرت سختافزار باید با Runtime و MCU سازگار باشند.
برای شروع چه سختافزاری پیشنهاد میکنیم؟
- برد 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 میتواند پروژهای که قبلاً فقط «برنامهریزیشده» بود را به سیستمی تبدیل کند که از داده الگو تشخیص میدهد.
منابع فنی
مطالب فنی مقاله با مستندات و پروژههای رسمی Espressif تطبیق داده شده و متن با نگارش مستقل برای MAKATRONIC98 تدوین شده است.