این مقاله راهنمای پین های ESP8266 دیاگرام پین ها، عملکرد آنها و نحوه استفاده از آنها میباشد.
ماژول ESP8266 12-E دارای 17 پین GPIO است. همه GPIO ها در همه بردهای توسعه ESP8266 در قسمت خروجی برد قرار نمی گیرند، برخی از GPIO ها برای استفاده توصیه نمی شوند و برخی دیگر عملکردهای بسیار خاصی دارند.
با این راهنما، نحوه استفاده صحیح از پین های ESP8266 و جلوگیری از ساعت ها زمان عیب یابی را با استفاده از مناسب ترین پین ها برای پروژه های خود خواهید آموخت.
پین های ESP8266 12E بدون برد راه انداز
شکل زیر پایه تراشه ESP8266 12-E را نشان می دهد. اگر از ماژول ESP8266 بدون برد راه انداز در پروژه های خود استفاده می کنید از این دیاگرام استفاده کنید.

در حال حاضر، طیف گسترده ای از بردهای توسعه با تراشه ESP8266 وجود دارد که از نظر تعداد GPIO های قابل دسترس، اندازه و غیره با هم تفاوت دارند.
پرکاربردترین بردهای این ماژول ESP8266 ESP-01، ESP8266-12E NodeMCU Kit و Wemos D1 Mini هستند.
پین های ESP8266-01
اگر از برد ESP8266-01 استفاده می کنید، می توانید از دیاگرام GPIO زیر به عنوان مرجع استفاده کنید.

پین های برد راه انداز ESP8266 12-E NodeMCU
دیاگرام پین های خروجی برد ESP8266 12-E NodeMCU در زیر نشان داده شده است.

پین های Wemos D1 Mini
شکل زیر پین های خروجی WeMos D1 Mini را نشان می دهد.

پریفرال های ESP8266
پریفرال های ESP8266 شامل موارد زیر هستند:
- 17 GPIOs
- SPI
- I2C (نرم افزاری)
- I2S interfaces with DMA
- UART
- ADC 10bit
پین های قابل استفاده در ESP8266
یک نکته مهم در مورد ESP8266 این است که شماره GPIO با شماره چاپ شده روی برد راه انداز مطابقت ندارد. به عنوان مثال، D0 مربوط به GPIO16 و D1 مربوط به GPIO5 است.
جدول زیر مطابقت بین شماره پین روی برد راه انداز و شماره GPIO را نشان میدهد و همچنین نشان میدهد که کدام پینها برای پروژههای شما بهترین هستند و در استفاده از کدام یک باید محتاط باشید.
پین هایی که با رنگ سبز مشخص شده اند برای استفاده مناسب هستند. مواردی که با رنگ زرد مشخص شدهاند برای استفاده مناسب هستند، اما باید توجه کنید زیرا ممکن است در هنگام بوت رفتار غیرمنتظرهای داشته باشند. پین هایی که با رنگ قرمز مشخص شده اند برای استفاده به عنوان ورودی یا خروجی توصیه نمی شوند.
لیبل روی برد | GPIO | حالت ورودی | حالت خروجی | نکات استفاده |
D0 | GPIO16 | بدون وقفه | بدون pwm یا i2c | مقدار high در زمان بوت قابل استفاده برای wakeup در زمان deepsleep |
D1 | GPIO5 | قابل استفاده | قابل استفاده | قابل استفاده برای SCL (I2C) |
D2 | GPIO4 | قابل استفاده | قابل استفاده | قابل استفاده برای SDA (I2C) |
D3 | GPIO0 | پول آپ شود | قابل استفاده | به دکمه flash متصل شده در صورت پول داون شدن ماژول بوت نخواهد شد |
D4 | GPIO2 | پول آپ شود | قابل استفاده | مقدار high در زمان بوت به ال ای دی روی برد متصل شده در صورت low بودن ماژول بوت نخواهد شد |
D5 | GPIO14 | قابل استفاده | قابل استفاده | SPI (SCLK) |
D6 | GPIO12 | قابل استفاده | قابل استفاده | SPI (MISO) |
D7 | GPIO13 | قابل استفاده | قابل استفاده | SPI (MOSI) |
D8 | GPIO15 | پول داون شود | قابل استفاده | SPI (CS) در صورت high بودن ماژول بوت نمیشود |
RX | GPIO3 | قابل استفاده | RX pin | مقدار high در زمان بوت |
TX | GPIO1 | TX pin | قابل استفاده | مقدار high در زمان بوت خروجی دیباگ در زمان بوت. در صورت low بودن ماژول بوت نمیشود. |
A0 | ADC0 | Analog Input | X |
GPIO های متصل به تراشه فلش داخلی
GPIO6 تا GPIO11 معمولاً به تراشه فلش در بردهای ESP8266 متصل می شوند. بنابراین، استفاده از این پین ها توصیه نمی شود.
پین های استفاده شده در هنگام بوت
اگر برخی از پین ها esp8266 اگر پول آپ یا پول داون شوند، می توانند از بوت شدن ESP8266 جلوگیری کنند. لیست زیر وضعیت پین های زیر را در BOOT نشان می دهد:
همچنین جهت اطلاعات بیشتر میتوانید به این لینک مراجعه نمایید.
- GPIO16: مقدار 1 در زمان بوت
- GPIO0: درصورت پول داون بودن ماژول بوت نمیشود
- GPIO2: مقدار 1 در زمان بوت, درصورت پول داون بودن ماژول بوت نمیشود
- GPIO15: درصورت پول آپ بودن ماژول بوت نمیشود
- GPIO3: high در زمان بوت
- GPIO1: مقدار 1 در زمان بوت. درصورت پول داون بودن ماژول بوت نمیشود
- GPIO10: مقدار 1 در زمان بوت
- GPIO9: مقدار 1 در زمان بوت
پین های high در زمان بوت
زمانی که ESP8266 بوت می شود، پین های خاصی وجود دارند که سیگنال 3.3 ولتی را در خروجی خود می دهند. اگر رلهها یا سایر دستگاههای جانبی به آن GPIO متصل هستند، ممکن است مشکل ساز باشد. GPIO های زیر یک سیگنال HIGH در هنگام بوت می دهند:
- GPIO16
- GPIO3
- GPIO1
- GPIO10
- GPIO9
بعلاوه، سایر GPIO ها، به جز GPIO5 و GPIO4، می توانند سیگنال ولتاژ پایین را در هنگام بوت ارسال کنند، که اگر به ترانزیستورها یا رله ها متصل شوند، می تواند مشکل ساز شود.
ورودی آنالوگ
ESP8266 فقط از یک پین برای خواندن مقادیر آنالوگ پشتیبانی می کند که GPIO ADC0 نامیده می شود و معمولاً روی برد ماژول با علامت A0 مشخص می شود.
اگر از تراشه ESP8266 بدون برد راه انداز استفاده می کنید، حداکثر ولتاژ ورودی پایه ADC0 مقدار 0 تا 1 ولت است. اگر از یک برد توسعه مانند کیت ESP8266 12-E NodeMCU استفاده می کنید، محدوده ولتاژ ورودی 0 تا 3.3 ولت است زیرا این بردها دارای یک تقسیم کننده ولتاژ داخلی هستند.
LED روی برد
اکثر بردهای توسعه ESP8266 دارای LED داخلی هستند. این LED معمولا به GPIO2 متصل می شود.

این LED با منطق معکوس کار می کند. برای خاموش کردن آن یک سیگنال HIGH و برای روشن کردن آن یک سیگنال LOW ارسال کنید.
پین RST
وقتی پین RST صفر می شود، ESP8266 ریست می شود. این همان وضعیت فشار دادن دکمه RESET روی برد است.

پین GPIO0 FLASH/BOOT
هنگامی که GPIO0 صفر می شود، ESP8266 را در حالت بوت لودر قرار می دهد. این همان وضعیت فشار دادن دکمه FLASH/BOOT روی برد است.

پین GPIO16
GPIO16 می تواند برای بیدار کردن ESP8266 از وضعیت خواب عمیق استفاده شود. برای بیدار کردن ESP8266 از وضعیت خواب عمیق، GPIO16 باید به پین RST متصل شود.
I2C
ESP8266 پین سخت افزاری I2C ندارد، اما می توان آن را در نرم افزار پیاده سازی کرد. بنابراین می توانید از هر GPIO به عنوان I2C استفاده کنید. معمولاً از GPIO های زیر به عنوان پین I2C استفاده می شود:
- GPIO5: SCL
- GPIO4: SDA
SPI
پین های استفاده شده به عنوان SPI در ESP8266 عبارتند از:
- GPIO12: MISO
- GPIO13: MOSI
- GPIO14: SCLK
- GPIO15: CS
پین های PWM
ESP8266 دارای PWM نرم افزاری این اجازه را می دهد تا در تمام پین های ورودی/خروجی: GPIO0 تا GPIO15. سیگنال های PWM در ESP8266 دارای وضوح 10 بیتی داشته باشید.
پین های وقفه
ESP8266 از وقفه در هر GPIO پشتیبانی می کند، به جز GPIO16.
جمع بندی
امیدواریم این مقاله برای راهنمای استفاده از پین های ESP8266 مفید واقع شده باشد. اگر نکاتی در مورد نحوه استفاده صحیح از GPIO های ESP8266 دارید، می توانید کامنت کنید.
جهت اشنایی با کاربردهای ESP8266 میتوانید به این مقاله مراجعه کنید.