مقدمه
آنچه در این آموزش یاد میگیرید
- آشنایی با ESP32 و کاربردهای آن
- نصب ESP32 روی Arduino IDE
ESP32 چیست؟
قابلیت ها
Working Voltage | 2.2 to 3.6 volts |
---|---|
Average Current | Around 80 mA |
Maximum Current | 500 mA |
Input/Output Pins | 32(The ESP32 chip has 48 I/O pin,s. But the module has only 28 accessible pins.) |
ADC(Analog to Digital Converter) | 18 channels of 12 bits |
DAC(Digital to Analog Converter) | 2 channels of 8 bits |
UART(Serial Communication) | 3 |
PWM | 32 |
SPI Interface | 4 |
I2C Interface | 2 |
I2S Interface (to connect audio devices) | 2 |
Capacitance TouchPads Pins | 10 |
Memory Card Interface | 1 |
CAN Interface | 1 |
Temperature Sensor | 1 |
نکته
در ماژول های مختلف، ممکن است به برخی از پایه های تراشه ی ESP32 دسترسی نداشته باشید.
معرفی پایه های ماژول ESP32
اخطار
ولتاژ منطقی پایه های ESP32، 3.3 ولت است. اگر می خواهید ESP32 را به وسایل دیگری که با ولتاژ منطقی 5 ولت کار می کنند، متصل کنید، حتما باید از یک مدار تبدیل سطح ولتاژ (level shifter) استفاده کنید.
پایه های تغذیه
در این ماژول دو پایه ی 5 ولت و 3.3 ولت برای تغذیه در نظر گرفته شده است. می توانید این دو پایه را برای تغذیه ی دستگاه ها و ماژول های دیگر استفاده کنید.
زمین (GND
در این ماژول 3 پایه ی GND وجود دارد.
فعال ساز (EN
این پایه برای فعال و غیر فعال کردن ماژول استفاده می شود. برای فعال کردن ماژول، این پایه باید HIGH و برای غیر فعال کردن آن، باید LOW باشد.
پایه های ورودی-خروجی (GPIO)
از 32 پایه ی GPIO این ماژول می توانید برای ارتباط با ال ای دی، سوئیچ و دیگر وسایل ورودی-خروجی استفاده کنید.
به صورت داخلی می توانید این پایه ها را Pull-up یا Pull-down کنید.
نکته
پدهای لمسی خازنی
ارتباط سریال
دو رابط سریال UART در این ماژول وجود دارد. با این پایه ها می توانید اطلاعات را تا سرعت 5Mbps بین دو دستگاه جابجا کنید. UART0 دارای پایه های CTS و RTS نیز هست.
حالتهای ماژول ESP32
تراشه ی ESP32 دارای 5 حالت کاری است:
Active mode:
در این حالت تمام بخش های فرستنده و گیرنده ی وای فای و بلوتوث و … فعال است. تراشه در این حالت جریانی بین 80 تا 260 میلی آمپر مصرف می کند.
Modem-sleep mode:
وای فای و بلوتوث غیر فعال می شود ولی پردازنده فعال است. جریان مصرفی در این حالت بین 3 تا 20 میلی آمپر است.
Light-sleep mode:
پردازنده ی اصلی متوقف می شود ولی واحد RTC و پردازنده ی کمکی ULP فعال هستند. جریان مصرفی در این حالت حدود 0.8 میلی آمپر است.
Deep-sleep mode:
تنها واحد RTC فعال است. در این حالت اطلاعات اتصال وای فای و بلوتوث درحافظه ی RTC ذخیره می شوند. جریان مصرفی در این حالت بین 10 تا 150 میکرو آمپر است.
Hibernation mode:
تمام واحد ها به غیر از یک تایمر RTC که برای محسابه ی ساعت است و چند پایه ی ورودی-خروجی متصل به RTC غیر فعال می شوند. تایمر RTC و یا پین های متصل به آن می تواند تراشه را از این حالت خواب بیدار کند. جریان مصرفی در این حالت حدود 2.5 میکرو آمپر است.
برای کسب اطلاعات بیشتر می توانید به دیتاشیت مراجعه کنید.
دیتاشیت تراشه و ماژول ESP32
دیتاشیت ماژول ESP32 و تراشه آن را می توانید از لینک های زیر دانلود کنید.
https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf
https://espressif.com/sites/default/files/documentation/esp32-wroom-32_datasheet_en.pdf
مقایسه ESP32 و ESP8266
ESP8266 NodeMcu | ESP32 DEV Module | |
---|---|---|
Power | 3.3V | 3.3V |
CPU | Tensilica L106 32-bit | Xtensa® Dual-Core 32-bit LX6 |
Bluetooth | Do not have | Compliant with Bluetooth v4.2 BR/EDR and BLE specification |
GPIO | 17 | 32 |
Flash size | Up to 16MB | Up to 16MB |
ADC | 10 bit | 12 bit |
DAC | Do not have | 2 * 8bit |
UART | 2 | 2 |
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزار های مورد نیاز
نصب ESP32 روی IDE آردوینو
نکته
برای نصب ESP32 نیاز به Arduino IDE نسخه ی 1.8.5 یا بالاتر می باشد.
گام اول: دانلود فایل های مورد نیاز از گیت هاب
هسته ی آردوینو برای ESP32 (ESP32 Arduino Core) را از اکانت گیت هاب آن دانلود کنید. برای دانلود مستقیم آن ها می توانید از لینک زیر استفاده کنید.
https://github.com/espressif/arduino-esp32/archive/master.zip
گام دوم: فایل را به مسیر sketchbook آردوینو منتقل کنید
Sketchbook آردوینو به صورت پیش فرض در My Documents قرار دارد. برای یافتن مسیر دقیق sketchbook خود، از منوی File به بخش Preferences بروید.
گام سوم: get.exe را اجرا کنید
برای نصب ESP32 روی نرم افزار آردوینو، نیاز است که Xtensa GNU compiler collection را روی سیستم خود نصب کنید. برای نصب آن به مسیر esp32>tools بروید و فایل get.exe را اجرا کنید.
آپلود کردن کد روی ESP32 با IDE آردوینو
توجه
اگر تاکنون درایور مبدل USB به سریال CP2102 را روی کامپیوتر خود نصب نکردید، ابتدا باید آن را از این لینک دانلود و نصب کنید.
عیب یابی
اگر با خطای زیر مواجه شدید، نگران نباشید. در هنگام پروگرام کردن ESP32 معمولا این مشکل پیش می آید. برای رفع آن کار های زیر را انجام دهید.
- مطمئن شوید که سرعت آپلود کد درست تنظیم شده باشد. معمولا این سرعت باید 115200 باشد.
2. کلید Boot را روی برد خود نگه دارید.
3. روی گزینه ی آپلود کلیک کنید.
4. بعد از نمایش پیام Writing at 0x00001000…(100%) انگشت خود را از روی کلید Boot بردارید.
یک گام جلوتر
- یک صفحه ی HTTP بسازید و ال ای دی را از طریق یک صفحه وب کنترل کنید.
- ال ای دی را با استفاده از بلوتوث کنترل کنید. (برای این کار می توانید از ترمینال های بلوتوث استفاده کنید)
Comments (37)
تصویر شماتیک پین هایی که گذاشتید مربوط به ESP32 نیست !!! دقت کنید
ممنون از دقتتون.
تصویر اصلاح شد
مدلی که برای نصب Esp32 در arduino ide پیشنهاد دادید بیش از حد برای کابر پیچیدس
می تونید تنها با اضافه کردن json زیر در بخش additional board manager و نصب از طریق کتابخونه های بورد در تب tools اثدام به نصب بورد کنید. که دو تا ویژگی داره
1- کتابخونه استاندارد
2- کتابخونه dev
که بر حسب کاربر قابل انتخاب خواهند بود.
نکته: توی نسخه 1.8.9 arduino ide بورد های esp به کل با esptool به صورت پایه پروگرم میشن
Stable release link: https://dl.espressif.com/dl/package_esp32_index.json
Development release link: https://dl.espressif.com/dl/package_esp32_dev_index.json
افرین
سلام
من یک دونه خریدم ۲۴ ساعت باهاش ور رفتم همش ارور میده اعصابم خرد کرده اصلا راضی نیستم
Fatal error
Md5
برد و کدی که براش استفاده میکنید چین؟ و چه اروری دریافت میکنید؟
نگفتید چجور پایه های 3.3v و 5v رو خروجی یا ورودی بدیم و ایا میشه یک ال ای دی رو فقط با اتصال به پایه 3.3 و d1 میشه خاموش روشن کرد؟
زمانی که برد از طریق usb به رایانه یا هر نوع منبع تغذیه متصل است ولتاژی مابین 4.5 الی 4.8 ولت دریافت کنید. توجه داشته باشید که این کار تا حداکثر جریان کشی 500mA می تواند انجام دهید و بیشتر از آن منجر به سوختن دیود ورودی می شود
از پایه 3.3 هم نیز میتواند در صورت اتصال پایه vin یا usb به منبع تغذیه تا حداکثر 500mA جریان کشی کنید و بیشتر از آن در صورت قرار دادن خنک کننده بر روی تنظیم کننده ولتاژ ( رگولاتور با کد ams1117) تا 1A خروجی بگیرید
جهت خاموش رو روشن کردن مابین پین d1 و 3.3 باید پایه آند LED را به 3.3 و پایه کاتد را به d1 وصل کنید تا بتوانید کنترل کنید
توجه داشته باشید به دلیل جریان کشی LED ها پیشنهاد می شود در مسیر از یک مقاومت بین 100 الی 330 اهمی در مسیر استفاده کنید. مهم نیست که به کدام طرف وصل کنید.
لطفا این روش رو به صورت گام به گام توضیح بدهید
آموزش گام به گام هست
سلام. خسته نباشید . اگه میشه یه اموزش کوچیک درباره راه اندازی ارتباط UART این برد هم بگید. چون من می خواستم با این ماژول به برد sim800l متصل بشم. که نتونستم
تمامی برد های سیمکارتی در صورت نداشتن رگولاتور نیازمند رگولاتور جدا می باشند. به این دلیل که این برد ها در ولتاژ 4.2 ولت کار میکنند و نیازمند جریان 2A می باشند.
برد sim800l از آن نوع برد هایی هست که نیازمند منبع جدا است. که میتواند از لینک زیر تهیه کنید
http://thecaferobot.com/store/dc-dc-xl4015-adjustable-buck-module-4-38v-5a
برد های سیمکارتی با دستورات AT Command کار میکنند. برای شروع کار بهتر است بین پایه res و gnd را با یک سیم به هم وصل کنید. سپس پایه های rx , tx را با نام های مشابه به برد sim800l متصل کنید.
در این مرحله نرم افزار Arduino IDE را باز کرده و پورت برد خود را مشخص کنید و کلید ترکیبی Ctrl+Shift+M را بزنید و در فرکانس 9600 قرار دهید. سپس دستور AT را بزنید. درصورت دریافت کد OK متوجه می شود که برد شما سالم است
تمامی دستورات AT Command در فایل زیر وجود دارد.
https://www.elecrow.com/wiki/images/2/20/SIM800_Series_AT_Command_Manual_V1.09.pdf
ازاین برد میشه برای پردازش تصویر وبرنامه نویسی پایتون استفاده کرد یعنی از لحاظ حافظه ذخیر اژلاعات جواب گو پردازش تصویر هست ؟
باسلام. بستگی به کاربرد شما دارد. برای کاربردهای بسیار ابتدایی پردازش تصویر، می توانید از پردازنده های ESP32 استفاده کتید، ولی به صورت کلی پیشنهاد می شود برای پردازش تصاویر و فیلم ها از پردازنده های قدرتمند تری (مثل بردهای رزبری پای) استفاده کنید.
سلام
برای من اون فایل اگزه کلا فایل هایی را که باید استخراج نمی کند و عملا نمیتوانم از ماژول استفاده کنم
از چشمک زدن چراغ های مودم فهمیدم که فایل اینترنت مصرف می کند اما عملا هیچ فایلی را ذخیره نمی کند
لطفا پیگیری کنید
ممنون
به همین دلیل در آردیونو ارور کامپایل دریافت می کنم!!!
سلام. یعنی فایلهای جدیدی در پوشه Tools تشکیل نمیشه؟ یک بار دیگه مراحل رو به شکلی که در آموزش آورده شده طی کنید و هنگام اجرای فایل get.exe حواستون رو جمع کنید که آیا فایلهای جدید در پوشه tools به وجود میآیند یا خیر. اگر فایلها تشکیل شده و همچنان ارور دارید احتمالا تصب به درستی انجام شده و مشکل در جای دیگهست.
با برد esp32 میشه یه کیبورد بلوتوثی طراحی کرد
سلام.
بله امکانش هست. شما میتونید با استفاده از 2 تا برد esp32 این کار رو انجام بدید. یکی برای اتصال به کیبورد برای خواندن اطلاعات و ارسال آنها از طریق بلوتوث. و دیگری برای اتصال به سیستم برای دریافت اطلاعات ارسال شده. میتونید به این صورت کیبورد بلوتوثی رو طراحی کنید.
سلام. یک سوال داشتم، آیا ماژول esp32 لایه Physical Layer شبکه Ethernet را به طور کامل پشتیبانی می کند؟
سلام، خیلی ممنونم بابت مطالب مفید و کاملتون. من برای پروگرم کردن esp32 مشکل دارم، از Arduinodroid استفاده میکنم (نرم افزار اندروید آردوینو) مشکلم اینه که وقتی میخوام کد رو کامپایل کنم یک ارور میده که میگه (دستگاه شما پشتیبانی نمیشود، cpu ۶۴ بیت لازم است) چطور میتونم این مشکل رو حل کنم؟
سلام به کمک یک نفر برای تست esp32 نیاز دارم اگر ممکنه راهنمایی کنید. ممنون
سلام
لطفا میفرمایید دقیقا مشکلتون چیه؟
سلام
ممنون از آموزشی که قرار دادید آیا آموزش شما به روز رسانی می شود؟
با توجه به قیمت و اینکه دو هسته ای است و سرعت پردازش بالایی دارد خیلی مقرون به صرفه است.
یک سوال دارم:
برای کسی مثل من که دانشی از مفاهیم شبکه ندارد چطور و از کجا میتونه با بلوتوث این ماژول کار کنه؟
سلام.
ممنون از توجه شما،آموزش های متعدد در حوزه های مختلف با همین ماژول بارگذاری شده، اگر آموزش نیاز به تکمیل داشته باشد بله بروز رسانی هم میشود.
برای کار کردن با بلوتوث esp32 همینطور که میدونید سورسهای خیلی زیادی به صورت آماده جهت راه اندازی وجود دارد که شما فقط نیاز داره که پروگرام کنید اما اگر خودتون میخوایید فانکش یا الگوریتم خاصی پیاده سازی کنید قطعا نیاز دارید که در مورد بلوتوث اطلاعات داشته باشید
سلام
من یک ESP32CAM با شیلد پروگرامر مخصوص اون از یک سایت دیگر خریده ام و می خواهم برنامه CameraWebServer رو آن آپلود کنم.
1_ از کجا نوع آن ( wrover یا al thinker یا … ) را پیدا کنم؟ چون هر نوعی را در برنامه انتخاب کرده ام پیغام خطا میدهد که حجم برنامه از حافظه esp32cam بیشتر است. هر نوع برنامه ای حتی پروژه سایت شما را پس از کامپایل شدن در هنگام آپلود وقتی به connecting میرسد پس از چند ثانیه خطا می دهد که
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
Failed uploading: uploading error: exit status 2
یعنی اینکه ( یک خطای بزرگ روی داد: اتصال به ESP32 انجام نشد: زمان انتظار برای سرصفحه بسته تمام شد
آپلود ناموفق: خطای آپلود: وضعیت خروج 2 )
2_برای اتصال ESP32CAM به FTDI در بعضی از سایتها از 3.3V استفاده شده و بعضی دیگر 5V استفاده شده چرا اینگونه است؟
3_ در این شیلد پروگرامر مخصوص ESP32CAM از 5V استفاده شده.
در بعضی از سایتهای خارجی گفته شده از یک خازن پلاریته 10uf تا 100uf که باید به en وصل شود استفاده کنیم. پایه en در esp32cam کدام است؟ چون در روی آن چنین چیزی نوشته نشده.
با سلام
از بخش tools آردوینو گزینه Partition Schema را انتخاب کنید سپس گزینه No OTA (2MB App/2MB SPIFFS) را انتخاب کنید.
حال می توانید پروژه را آپلود کنید.
سلام
از طریق آردوینو uno تنوستم آپلود کنم ولی هر کاری می کنم ip را نمی دهد و کد خطای 0x00024 را می دهد.
سلام و خسته نبشید از این برد برای باز و بسته کردن درب ماشین و یا خاموش و روشن کردن ماشین میشه استفاده کرد از طریق بلوتوث یا وای فای از طریق گوشی موبایل
ممنون میشم اگه راهنمایی کنید با تشکر
با سلام
بله می توانید استفاده کنید، فقط باید کد مربوط به کاری که میخواهید انجام بدهید را بنویسید و برای باز و بستن درب ماشین می توانید از پروتکل CAN که بر روی خودرو شما می باشد (یعنی صحبت کردن مستقیم با ECU خودرو شما) استفاده کنید.
سلام من یه بورد esp32 wroom 32u تهیه کردم ولی از برنامه آردوینو قسمت تولز بعد از نصب بورد esp32 dv module و اتصال بورد به یو اس بی لپ تاپ , هیچ پورتی رو نشون نمیده. (ضمنا چراغ بورد روشنه) در صورتیکه با اتصال بورد اصلی آردوینو اونو و نصب بورد در برنامه آردوینو , پورت رو نشون میده. ممکنه راهنمایی کنید که چطور این مشکل رو حل کنم؟ با تشکر
با سلام
از دیوایس منیجر بررسی کنید که در زمان اتصال به سیستم چیزی به لیست دیوایس های شما اضافه می شود یا خیر؟
همچنین درایور Cp2102 را حتما بر روی سیستم خود نصب داشته باشید تا این ماژول را شناسایی بکند.
سلام خدمت شما . من یک برد ESP32WROOM32 تهیه کردم ولی از هر راهی سعی میکنم برنامه ساده ای مثل کد چشمک رو روش آپلود کنم ارورFailed uploading: uploading error: exit status 2 رو میده .
من درایور CP2102 رو هم نصب کردم و پورت رو هم پیدا و انتخاب کردم ولی بازم ارور میده.
با سلام
در زمانی که متن connecting نمایش داده می شود دکم Flash/Boot را نگه داشته.
خود برد وارد مرحله پروگرام می شود، وقتی پروگرام شروع شد می توانید دکمه را رها کنید.
همچنین می توانید این آموزش را در این رابطه مطالعه کنید. رفع خطای Failed to connect to ESP32: Timed out waiting for packet header
سلام خسته نباشید
ببخشید من همین برد رو تهیه کردم اما وقتی با کابل به لپتاپ وصل میکنم تو قسمت دیوایس منیجر پورت را همراه با یه مثلث خطر زرد نشون میده و توی آردینو IDE وصل شدن بر رو تشخیص نمیده ،هر کاری مثل آپدیت و حذف و نصب پورت هم توی دیوایس منیجر انجام دادم نشد.ممنون میشم راهنمایی کنید
باتشکر از سایت خوبتون
با سلام
لطف می کنید عکس از دیوایس منیجر زمانی که برد به سیستم وصل می باشد را به همراه عکس از خود برد را گرفته و به عنوان یک سوال در انجمن مطرح کنید تا بتوانیم بررسی کنیم مشکل از کجا می باشد.
با سلام
راه حل پیغام خطای 64 بیتی esp32 با مبدل ch9102 برای ویندوز 7 32بیتی
ابتدا درایور ch9102 رو دانلود ونصب کنید. بعد فایل .arduino-esp32-v1.0.6-wt-master.zip رو دانلود کنید و در مسیر پوشه esp32 که در بالا گفته شد اکسترکت کنید.بعد وارد برنامه آردینو بشید و درقسمت بورد نام esp32 رو سرچ کنید و در قسمت ورژن حتما 1.0.6 رو نصب کنید.بعدش درقسمت tools نام برد رو روی ESP32 Wrover Module انتخاب کنید بعد پورتی که esp32 بهش وصل هست رو انتخاب کنید.
در برنامه چراغ چشمک زن حتما پایه 2 رو خروجی کنید چون ال ای دی این برد به پایه 2 وصل هست درحالی که درمثال چراغ چشمک زن آردینو پایه 13 خروجی هست و تمام