چند سال پیش، ESP8266 دنیای اینترنت اشیاء را دگرگون کرد. با کمتر از 100 هزار تومان، میتوانید یک میکروکنترلر قابل برنامهریزی و دارای WiFi را تهیه کنید که قادر به نظارت و کنترل همه چیز در هر نقطه از جهان است. اکنون Espressif (شرکت نیمه هادی پشت ESP8266) یک ارتقاء عالی با شارژدهی فوق العاده منتشر کرده است: ESP32. جانشین ESP8266؛ نه تنها از WiFi پشتیبانی می کند، بلکه دارای بلوتوث 4.0 (BLE/Bluetooth Smart) است – تقریباً برای هر پروژه IoT مناسب است.
ماژول ESP-WROOM-32
برد توسعه ماژول ESP-WROOM-32 حاوی ریزپردازنده Tensilica Xtensa® Dual-Core 32 بیتی LX6 است. این پردازنده شبیه ESP8266 است اما دارای دو هسته CPU (قابل کنترل به صورت جداگانه) است، در فرکانس کلاک قابل تنظیم 80 تا 240 مگاهرتز کار می کند و تا 600 DMIPS (میلیون دستورالعمل در ثانیه ) کار می کند.
همچنین 448 کیلوبایت رام، 520 کیلوبایت SRAM و 4 مگابایت حافظه فلش (برای ذخیره سازی برنامه و داده) کافی است تا با رشته های بزرگی که صفحات وب، داده های JSON/XML را تشکیل می دهند، و همه چیزهایی که امروزه به دستگاه های IoT پرتاب می کنیم، کنار بیایید. .
ESP32 فرستنده گیرنده وای فای 802.11b/g/n HT40 را ادغام کرده است، بنابراین نه تنها می تواند به یک شبکه وای فای متصل شود و با اینترنت تعامل داشته باشد، بلکه می تواند شبکه ای برای خود راه اندازی کند و به دستگاه های دیگر اجازه می دهد مستقیماً به آن متصل شوند. .ESP32 از WiFi Direct نیز پشتیبانی می کند که گزینه خوبی برای اتصال نظیر به نظیر بدون نیاز به نقطه دسترسی است. راه اندازی WiFi Direct آسان تر است و سرعت انتقال داده ها بسیار بهتر از بلوتوث است.
این تراشه همچنین دارای قابلیتهای بلوتوث دو حالته است، به این معنی که از بلوتوث 4.0 (BLE/Bluetooth Smart) و بلوتوث کلاسیک (BT) پشتیبانی میکند و باعث میشود که آن را حتی همه کاره کند.
Power Requirement
از آنجایی که محدوده ولتاژ کار ESP32 2.2 ولت تا 3.6 ولت است، برد دارای یک تنظیم کننده ولتاژ LDO است تا ولتاژ را در 3.3 ولت ثابت نگه دارد. می تواند تا 600 میلی آمپر را به طور قابل اعتماد تامین کندبرای زمانی که ESP32 در طول انتقال RF به 250 میلی آمپر می کشد.خروجی رگولاتور نیز به یکی از دو طرف برد خروجی و با برچسب 3V3 مشخص شده است. از این پین می توان برای تامین برق قطعات خارجی استفاده کرد.
تغذیه برد توسعه ESP32 از طریق کانکتور MicroB USB موجود در آن تامین می شود. از طرف دیگر، اگر منبع ولتاژ 5 ولتی تنظیم شده دارید، می توان از پین VIN برای تامین مستقیم ESP32 و لوازم جانبی آن استفاده کرد.همچنین جریان Sleep تراشه ESP32 کمتر از 5 µA است که آن را برای کاربردهای الکترونیکی با باتری مناسب میسازد.
هشدار:ESP32 برای برقراری ارتباط به منبع تغذیه 3.3 ولت و سطوح منطقی 3.3 ولت نیاز دارد. پین های GPIO تحمل 5 ولت ندارند! اگر می خواهید برد را با اجزای 5 ولت (یا بالاتر) متصل کنید، باید مقداری تغییر سطح انجام دهید.
لوازم جانبی و ورودی/خروجی
اگرچه ESP32 در مجموع دارای 48 پین GPIO است، اما تنها 25 عدد از آنها به هدرهای پین در دو طرف برد توسعه شکسته شده است. این پین ها را می توان به انواع وظایف جانبی اختصاص داد، از جمله:
-
15 کانال ADC : پانزده کانال ADC SAR 12 بیتی. محدوده ADC را می توان در سیستم عامل روی 0-1V، 0-1.4V، 0-2V یا 0-4V تنظیم کرد.
- دو رابط UART: یکی برای بارگذاری کد به صورت سریال استفاده می شود. آنها دارای کنترل جریان هستند و از IrDA نیز پشتیبانی می کنند!
- 25 خروجی PWM : بیست و پنج کانال پین PWM برای کاهش نور LED یا کنترل موتورها.
- 2 کانال DAC : DAC های 8 بیتی برای تولید ولتاژ آنالوگ واقعی.
- رابط SPI، I2C و I2S : سه رابط SPI و یک رابط I2C برای اتصال انواع حسگرها و تجهیزات جانبی، به علاوه دو رابط I2S وجود دارد اگر میخواهید صدا را به پروژه خود اضافه کنید.
- 9 عدد Touch Pads : دارای حسگر لمسی خازنی هستند.
به لطف ویژگی مالتی پلکس کردن پین ESP32 (چند پریفرال روی یک پایه GPIO مالتی پلکس شده اند). به این معنی که یک پین GPIO می تواند به عنوان ورودی ADC / خروجی DAC / پد لمسی عمل کند.
پین هایی که فقط ورودی هستند
پینهای D34، D35، VP و VN را نمیتوان بهعنوان خروجی پیکربندی کرد، اما میتوان از آنها به عنوان ورودی دیجیتال، ورودی آنالوگ یا سایر اهداف منحصر به فرد استفاده کرد. همچنین توجه داشته باشید که آنها مانند سایر پینهای GPIO دارای pull-up یاpull-down داخلی نیستند.
همچنین پین های GPIO VP و VN بخشی جدایی ناپذیر از پیش تقویت کننده فوق العاده کم نویز برای ADC هستند که به پیکربندی زمان نمونه برداری و نویز پیش تقویت کننده کمک می کنند.
سوئیچ های روی برد و نشانگرهای LED
برد توسعه ESP32 دارای دو دکمه است. یکی از مواردی که به عنوان EN در گوشه سمت چپ بالا قرار دارد، دکمه Reset است که البته برای تنظیم مجدد تراشه ESP32 استفاده می شود. دکمه Boot دیگر در گوشه پایین سمت چپ دکمه دانلود است که هنگام دانلود طرح/برنامه جدید استفاده می شود.
این برد همچنین دارای 2 نشانگر LED است. LED قرمز و LED آبی. LED قرمز نشان می دهد که برد روشن شده و LED آبی قابل برنامه ریزی توسط کاربر است و به پین D2 برد متصل می شود.
Serial Communication
این برد شامل CP2102 USB-to-UART Bridge Controller از شرکت Silicon Labs است که سیگنال USB را به سریال تبدیل می کند و به رایانه شما امکان برنامه ریزی و ارتباط با تراشه ESP32 را می دهد.
اگر نسخه قدیمیتری از درایور CP2102 را روی رایانه شخصی خود نصب کردهاید، توصیه میکنیم همین حالا آن را ارتقا دهید.
پین اوت برد توسعه ESP32
برای شناخت کلیه مشخصات پین های این برد به کلیک کنید.
پلتفرم های توسعه ESP32
حالا بیایید به سراغ چیزهای جالب برویم!
پلتفرم های توسعه مختلفی وجود دارد که می توانند برای برنامه ریزی ESP32 مجهز شوند. میتوانید با Espruino – JavaScript SDK و سفتافزاری که از نزدیک Node.js را شبیهسازی میکند، استفاده کنید، یا از Mongoose OS – یک سیستم عامل برای دستگاههای IoT (پلتفرم توصیهشده توسط Espressif Systems و Google Cloud IoT) استفاده کنید یا از کیت توسعه نرمافزار (SDK) ارائهشده توسط Espressif استفاده کنید. یا یکی از پلتفرم های فهرست شده در ویکی پدیا.
خوشبختانه، انجمن شگفت انگیز ESP32 اخیراً با ایجاد یک افزونه آردوینو، انتخاب IDE را یک قدم جلوتر برد. اگر به تازگی برنامه نویسی ESP32 را شروع کرده اید، این محیطی است که ما برای شروع با آن توصیه می کنیم و محیطی را که در این آموزش مستند خواهیم کرد. برای اطلاعات بیشتر، مخزن ESP32 Arduino GitHub را بررسی کنید.
نصب ESP32 Core On روی سیستم عامل ویندوز
هسته رسمی Arduino ESP32 Espressif در اینجا در GitHub میزبانی می شود. آنها هنوز یک برد منیجر آردوینو نصب نکرده اند (مانند ما در هنگام نصب هسته ESP8266 در Arduino IDE). باید به زودی در دسترس باشد. تا آن زمان باید آن را به صورت دستی نصب کنیم.
بیایید با نصب هسته Arduino ESP32 ادامه دهیم.
اولین چیز این است که آخرین Arduino IDE (Arduino 1.8.5 یا بالاتر) را روی رایانه شخصی خود نصب کنید. اگر نه، توصیه می کنیم همین الان ارتقا دهید.
در مرحله بعد، باید محتویات مخزن esp32-arduino GitHub را دانلود کنید. می توانید به GitHub مراجعه کرده و آن را به صورت دستی دانلود کنید یا به سادگی روی دکمه دانلود کلیک کنید.
اکنون به فهرست راهنمای آردوینو خود بروید. به طور پیشفرض دایرکتوری آردوینو در My Documents است مگر اینکه تغییر دیگری داده شود. با باز کردن Arduino IDE > File > Preferences > Sketchbook Location می توانید آن را تأیید کنید.
اکنون با توجه به اینکه فهرست راهنمای طراحی شما در My Documents > Arduino قرار دارد، دایرکتوری را باز کنید. باید دایرکتوری کتابخانه ها را در داخل آن ببینید.
حالا یک دایرکتوری جدید به نام سخت افزار ایجاد کنید. داخل آن دایرکتوری دیگری به نام espressif ایجاد کنید. داخل آن دایرکتوری دیگری به نام esp32 ایجاد کنید.
ساختار دایرکتوری باید مانند My Documents > Arduino > hardware > espressif > esp32 باشد
اکنون هسته ESP32 را که قبلا دانلود کرده اید در پوشه esp32 استخراج کنید.
پس از اتمام کار، بررسی کنید که «boards.txt»، «platform.txt» و پوشههای هستهها، اسناد، ابزارها و غیره در پوشههای esp32 وجود دارند.
برای کامپایل کد برای ESP32، به مجموعه کامپایلر Xtensa GNU (GCC) نیاز دارید که روی دستگاه شما نصب شده باشد. به پوشه esp32 > tools رفته و get.exe را اجرا کنید
این فایل اجرایی ابزارهای Xtensa GNU و کیت توسعه نرم افزار ESP32 (SDK) را دانلود کرده و آنها را در محل مناسب از حالت فشرده خارج می کند.
پس از اتمام، باید چند پوشه جدید را در دایرکتوری “ابزار” مشاهده کنید، از جمله “sdk” و “xtensa-esp32-elf”.
نصب ESP32 Core On بر رویMac OS
نصب ESP32 Core On بر رویDebian/Ubuntu Linux OS
مثال آردوینو: مدار چشمک زدن
برای اطمینان از اینکه هسته ESP32 Arduino و برد توسعه ESP32 به درستی راه اندازی شده اند، ساده ترین برنامه را بارگذاری می کنیم – مدار LED چشمک زن
برای این تست از LED روی برد استفاده می کنیم. همانطور که قبلاً در این آموزش ذکر شد، پین D2 برد به LED آبی روی برد متصل می شود و قابل برنامه ریزی توسط کاربر است. کامل!
قبل از اینکه به آپلود طرح و بازی با LED بپردازیم، باید مطمئن شویم که برد در Arduino IDE به درستی انتخاب شده است. Arduino IDE را باز کنید و گزینه ESP32 Dev Module را در زیر منوی Arduino IDE > Tools > Board انتخاب کنید.
اکنون برد توسعه ESP32 خود را از طریق کابل USB micro-B به رایانه خود وصل کنید. هنگامی که برد به برق وصل شد، باید یک پورت COM منحصر به فرد به آن اختصاص داده شود. در ویندوز، این چیزی شبیه COM# خواهد بود و در رایانههای Mac/Linux به شکل /dev/tty.usbserial-XXXXXX خواهد بود. این پورت سریال را در منوی Arduino IDE > Tools > Port انتخاب کنید.
همچنین سرعت آپلود به صورت پیش فرض 921600 انتخاب شده است. سعی کنید آن را به سرعت آپلود : 115200 کاهش دهید زیرا بسیاری از کاربران از دریافت خطای ناموفق espcomm_sync هنگام تلاش برای آپلود طرح با سرعت 921600 شکایت داشتند
پس از اتمام کار، نمونه طرح زیر را امتحان کنید.
console.log( 'Code is Poetry' );int ledPin = 2;
void setup()
{
pinMode(ledPin, OUTPUT);
}
void loop()
{
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
}
پس از آپلود کد، LED شروع به چشمک زدن می کند. ممکن است لازم باشد روی دکمه EN ضربه بزنید تا ESP32 شما شروع به اجرای طرح کند.
عیب یابی – راه اندازی ESP32
به خصوص هنگامی که سعی می کنید یک طرح جدید را در ESP32 خود در Arduino IDE آپلود کنید، ممکن است به برد شما متصل نشود و بگوید “خطایی رخ داد: اتصال به ESP32 انجام نشد:
‘A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header’.
این یک مشکل رایج است و به این معنی است که ESP32 شما در حالت فلش/آپلود نیست. برای رفع این مشکل می توانید مراحل زیر را دنبال کنید.
- اطمینان حاصل کنید که پورت COM مناسب را انتخاب کرده اید، سرعت آپلود را تا 115200 یا کمتر انتخاب کرده اید و به عنوان ESP32 Dev Module سوار شوید.
- دکمه BOOT را در برد ESP32 خود نگه دارید.
- دکمه Upload را در Arduino IDE فشار دهید تا یک طرح جدید آپلود شود.
- وقتی پیام” Writing at 0x00001000… (100%) “را بعد از “Connecting….” می بینید. در گزارش آردوینو IDE خود پیام دهید، انگشت را از دکمه BOOT رها کنید.
- پس از آن، باید “Done uploading”را ببینید
به طور خلاصه، قبل از زدن دکمه آپلود، باید دکمه BOOT را فشار داده و نگه دارید و تا زمانی که Arduino IDE شروع به نوشتن در ESP32 کند، آن را فشار دهید.
ESP32 شما باید برنامه جدید را اجرا کند. پس از آپلود برنامه جدید، دکمه ENABLE را فشار دهید تا ESP32 مجددا راه اندازی شود و برنامه آپلود شده جدید اجرا شود.
نکته” همچنین باید هر بار که میخواهید برنامه جدیدی را آپلود کنید، مراحل دکمهها ENABLE را تکرار کنید.
صادقانه بگوییم، ما مطمئن نیستیم که چرا این اتفاق با بردهای جدیدتر می افتد. ما هیچ برد ESP32 با این رفتار نداریم. ما فکر میکنیم که ممکن است چیزی متفاوت با برد خاص شما وجود داشته باشد یا Arduino IDE نتواند دنباله دستور مناسب را برای قرار دادن ESP32 به طور خودکار در حالت چشمک زن/آپلود ارسال کند.
آخرین دیدگاهها