ESP8266 یک ماژول وای فای قدرتمند و کوچک است که برای اتصال دستگاهها به شبکههای بیسیم طراحی شده است. این برد کوچک اما قدرتمند، دارای قابلیت های بسیاری است که آن را برای کاربردهای اینترنت اشیا (IoT) بسیار مناسب می کند. ESP8266 دارای یک پردازنده قوی و حافظه مناسب است که امکان برنامه نویسی مستقیم بر روی برد را فراهم می کند.این برد با قیمت مناسب و قابلیتهای بسیار، به عنوان یکی از محبوبترین بردهای توسعه اینترنت اشیا شناخته می شود. از طریق پورت USB میتوان برنامههای توسعه داده شده را به ESP8266 ارسال کرده و توسط برنامه نویسی آنها را اجرا کرد. با استفاده از این برد، می توان تجربههای آموزشی در زمینه برنامه نویسی وای فای و اینترنت اشیا را به راحتی به دست آورد و همچنین پروژههای متنوعی را در این حوزه پیاده سازی کرد.با توجه به توانایی های بالای ESP8266 در اتصال به شبکه بی سیم و پشتیبانی از پروتکلهای مختلف مانند TCP/IP، HTTP و MQTT، این برد در اتصال دستگاههای هوشمند، کنترل خانه هوشمند، مانیتورینگ سیستمها، رصد هواشناسی و بسیاری از کاربردهای دیگر بسیار مفید است. به طور خلاصه، ESP8266 یک ابزار قدرتمند برای ایجاد دستگاههای متصل به اینترنت و ساخت پروژههای IoT است که از آن می توان به راحتی بهره برد. در ادامه این آموزش، با مرجع تخصصی ESP8266 به زبان فارسی، دیجی اسپارک، همراه باشید.
شناخت برد ESP8266
ESP8266 یک ماژول میکروکنترلر وای فای با قابلیت برنامه نویسی مستقل است که توسط شرکت Espressif Systems توسعه داده شده است. این ماژول، امکان اتصال دستگاهها به شبکههای بیسیم را فراهم میکند و از معماری کوچک و قدرتمند خود برای ایجاد برنامههای قابل اجرا بر روی خود استفاده میکند.ESP8266 دارای یک پردازنده Tensilica Xtensa LX106 با فرکانس ۸۰ مگاهرتز است که با حافظه فلش داخلی ۴ مگابایت قابل برنامهریزی است. علاوه بر این، این برد دارای چیپ Wi-Fi با استاندارد ۸۰۲٫۱۱ b/g/n است که به دستگاهها امکان اتصال به شبکههای بیسیم را میدهد.ESP8266 به طور معمول از طریق پورت USB یا پینهای دیجیتال و آنالوگ به کامپیوتر یا سایر دستگاهها متصل میشود. برنامه نویسی آن به وسیله زبان Arduino و با استفاده از محیط توسعه Arduino IDE انجام میشود.
برای برنامه نویسی پیشرفتهتر، میتوان از زبانهای برنامه نویسی مانند MicroPython و Lua نیز استفاده کرد.ESP8266 به عنوان یکی از بردهای توسعه اینترنت اشیا (IoT) بسیار محبوب است. با توجه به اندازه کوچک، هزینه مناسب و قابلیت اتصال به شبکه بیسیم، این برد در ایجاد انواع پروژههای مربوط به اینترنت اشیا، مانند کنترل خانه هوشمند، سامانههای رصد و کنترل، دستگاههای هوشمند و بسیاری از کاربردهای دیگر مورد استفاده قرار میگیرد.علاوه بر اتصال به شبکههای بیسیم، ESP8266 همچنین دارای پورتهای UART، I2C و SPI است که به کاربر امکان اتصال به سنسورها، ماژولها را میدهد. این قابلیتها، تعامل با دستگاههای خارجی را برای پروژههای مختلف بسیار آسان میکند.ESP8266 همچنین دارای امکانات امنیتی است. این برد از پروتکلهای رمزنگاری WPA/WPA2 و WEP برای اتصال امن به شبکههای بیسیم استفاده میکند و قابلیت احراز هویت و رمزگذاری را فراهم میکند.
- دارای مدهای مختلف توان مصرفی پایین
- دارای بازه ولتاژ تغذیه بین ۲٫۵۶ الی ۳٫۶ ولت DC
- قابلیت اتصال به تلفن های همراه جهت تبادل داده
- قابلیت اتصال به اینترنت جهت ارسال و دریافت داده ها
- قابلیت قرار گیری در مد STA جهت اتصال ماژول به مودم ها
- قابلیت تعریف در حالت سرور جهت دریافت و مدیریت داده های ارسالی
- دارای حافظه فلش و فرکانس کاری بالا جهت اجرای برنامه های سنگین
- قابلیت برنامه نویسی به کمک دستورات آردوینو و اجرای برنامه های آردوینو
- قابلیت برنامه نویسی با دستورات آردوینو و بدون نیاز به هیچ میکروکنترلر اضافی
- قابلیت قرار گیری در مد نقطه دسترسی AP جهت اتصال سایر دستگاه ها به ماژول
مشخصات فنی ESP8266
ESP32 یک میکروکنترلر قدرتمند و قابل برنامهریزی است که توسط شرکت Espressif Systems توسعه داده شده است. این میکروکنترلر از معماری Xtensa LX6 با فرکانس ۲۴۰ مگاهرتز استفاده میکند و دارای قابلیتهای بیسیم Wi-Fi و بلوتوث نسخه ۴٫۲ است.
- پردازنده: میکروکنترلر دو هستهای Xtensa LX6 با فرکانس ۲۴۰ مگاهرتز
- حافظه فلش: ۴ مگابایت
- حافظه SRAM: 520 کیلوبایت
- واحد برداری: فرکانس تایمر تا ۸۰ مگاهرتز
- واحد ADC: 12 بیت با ۱۸ کانال و توانایی تبدیل آنالوگ به دیجیتال با سرعت بالا
- واحد DAC: 8 بیت با ۲ کانال
- پورتهای ارتباطی: UART، SPI، I2C، I2S، CAN
- بلوتوث: پشتیبانی از بلوتوث نسخه ۴٫۲ با پروفایلهای GATT و SMP
- وای فای: پشتیبانی از استاندارد ۸۰۲٫۱۱ b/g/n و حالتهای عملیاتی STA، AP و STA+AP
- کدکهای رمزگذاری و رمزنگاری سختافزاری: AES، RSA، SHA، ECC و بیشتر
- حسگرها: حسگر دما، حسگر رطوبت، حسگر فشار، حسگر نور و غیره
- پورتهای خروجی: GPIO، PWM، DAC
- ولتاژ کاری: ۲٫۲ تا ۳٫۶ ولت
بررسی پایه های ESP8266
ESP8266 دارای پایههای مختلفی است که به شما امکان ارتباط با دستگاههای خارجی و اتصال به سایر قطعات را میدهد. در زیر پایههای اصلی ESP8266 را بررسی میکنیم:
VCC: این پایه به منبع تغذیه مثبت (۳٫۳ ولت) متصل میشود تا ESP8266 را تغذیه کند.
GND: این پایه به زمین متصل میشود و پتانسیل صفر ولت را فراهم میکند.
GPIO (General Purpose Input/Output): ESP8266 دارای یک سری پایههای GPIO است که برای ورودی و خروجی دیجیتال استفاده میشوند. این پایهها به عنوان رابط بین ESP8266 و قطعات و سنسورهای خارجی عمل میکنند.
RXD/TXD: این پایهها برای ارتباط سریال با دستگاههای خارجی استفاده میشوند. TXD برای ارسال دادهها (Transmit Data) و RXD برای دریافت دادهها (Receive Data) مورد استفاده قرار میگیرد.
ADC (Analog to Digital Converter): این پایه برای ورودی آنالوگ استفاده میشود و به شما امکان میدهد ولتاژهای آنالوگ را تبدیل به دادههای دیجیتال در ESP8266 کنید.
SPI (Serial Peripheral Interface): این پایهها برای اتصال با دستگاههایی مانند صفحه نمایش های OLED، حافظه فلش و سنسورهایی که از رابط SPI پشتیبانی میکنند، استفاده میشوند.
I2C (Inter-Integrated Circuit): این پایهها برای ارتباط با دستگاههایی مانند سنسورها و صفحهنمایشهای OLED که از رابط I2C پشتیبانی میکنند، استفاده میشوند.
RST (Reset): این پایه برای تنظیم مجدد ESP8266 به حالت اولیه است.
CH_PD (Chip Power Down): این پایه برای تغذیه و قطع تغذیه مدار ESP8266 استفاده میشود. با اتصال این پایه به منبع تغذیه مثبت (VCC)، تغذیه مدار فعال شده و ESP8266 قادر به کارکرد است.
GPIO0 و GPIO2: این پایهها در موارد مختلف استفاده میشوند. برای حالت بالاخره راهاندازی و برنامهریزی مدار، GPIO0 به طور معمول به VCC وصل میشود. اما برای حالت عادی عملیات ESP8266، این پایه به گراند (GND) متصل میشود. GPIO2 نیز در برنامههای خاص میتواند برای ورودی و خروجی دیجیتال استفاده شود.
ADC (Analog to Digital Converter) زمینههای مستقل ADC بیشتری نیز دارد که به عنوان ورودی آنالوگ مورد استفاده قرار میگیرند.
ANT (Antenna): این پایه برای اتصال آنتن به مدار ESP8266 استفاده میشود و برای بالابردن قدرت و افزایش برد ارتباط بیسیم استفاده میشود.
این پایهها بهعلاوه تعدادی پایه تغذیه و زمین دیگر (VCC, GND) و پایههای مربوط به کریستال (Crystal) نیز وجود دارند که برای عملکرد صحیح ESP8266 به موارد دیگری نیاز دارند.
EN (Enable): این پایه برای فعال کردن مدار ESP8266 استفاده میشود. با اتصال این پایه به منبع تغذیه مثبت (VCC)، ESP8266 را میتوان روشن کرد و عملکرد آن را آغاز کرد.
GPIO15: این پایه برای تعیین حالت بالاخره (boot mode) مدار استفاده میشود. با تنظیم وضعیت این پایه به گراند (GND)، ESP8266 به حالت برنامهریزی ورود میکند و میتوانید برنامهها و کدهای خود را روی آن بارگذاری کنید.
GPIO16: این پایه برای تغذیه خارجی برای اتصال به ماژولها و قطعاتی که به تغذیه اضافی نیاز دارند، مورد استفاده قرار میگیرد.
RXD0/TXD0: این پایهها برای ارتباط سریال با رابط UART0 استفاده میشوند. TXD0 برای ارسال دادهها (Transmit Data) و RXD0 برای دریافت دادهها (Receive Data) بهکار میروند.
AREF: این پایه برای تعیین ولتاژ مرجع برای تبدیلهای آنالوگ به دیجیتال استفاده میشود. با اتصال منبع ولتاژ مرجع متصل به این پایه، میتوانید دقت و تنظیمات ورودی آنالوگ را کنترل کنید.
تفاوت بردهای ESP
بردهای ESP در واقع نسخههای مختلفی از میکروکنترلر ESP8266 یا ESP32 هستند. بردهای ESP بر اساس میکروکنترلر ESP8266 یا ESP32 ساخته میشوند. ESP8266 یک میکروکنترلر با قابلیت Wi-Fi است و ESP32 دارای قابلیتهای Wi-Fi و بلوتوث است. لذا، تفاوت اولیه بین این بردها در نوع میکروکنترلر استفاده شده در آنها است. ESP32 نسبت به ESP8266 قدرت پردازش بیشتری دارد. این به این معنی است که ESP32 قادر به اجرای عملیات پیچیدهتر، محاسبات متقدم و پردازش دادههای بیشتر است.ESP32 دارای حافظه فلش و حافظه SRAM بیشتری نسبت به ESP8266 است. این به این معنی است که ESP32 قادر به ذخیره و پردازش حجم بیشتری از دادهها است. ESP32 دارای تعداد بیشتری پورت و واحد ارتباطی است که امکان اتصال به سایر ماژول ها را میدهد.
به عنوان مثال، ESP32 دارای پورت Ethernet، پورت CAN، واحد I2S و I2C اضافی است که در ESP8266 وجود ندارد.ESP32 در برخی موارد میتواند مصرف انرژی کمتری نسبت به ESP8266 داشته باشد، به خصوص در حالتهای خوابیدن و عملکرد مصرف انرژی پایین. ESP32 دارای قابلیت بلوتوث است که به شما امکان ارتباط با دستگاههای بلوتوثی را میدهد. این ویژگی برای کاربردهایی مانند اتصال به دستگاههای پرینتر بلوتوث، سنسورهای بلوتوث و دیگر دستگاههای هوشمند کاربرد دارد. هر دو ESP8266 و ESP32 دارای قابلیت اتصال به شبکه Wi-Fi هستند. اما ESP32 از ویژگیهای پیشرفتهتری مانند حالتهای آنتن داخلی و خارجی، حالت آفلاین (station + softAP) و پشتیبانی از مد روتری پیشرفته (WDS) برخوردار است.
تعداد GPIO در دسترس | سوکت آنتن خارجی | نام برد |
۲ | ندارد | ESP-01 |
۷ | ندارد | ESP-03 |
۰ | دارد | EPS-05 |
۹ | دارد | ESP-07 |
۱۵ | ندارد | ESP-12E |
۱۵ | ندارد | ESP-12F |
۹ | ندارد | WEMODE D1 MINI |
۱۵ | ندارد | NODEMCU |
- توجه۱: تعداد در جدول فوق، پایه های رابط سریال UART به عنوان GPIO حساب نشده اند.
- توجه ۲: جهت آپلود برنامه آردوینو روی ماژول های ESP، می بایست پایه GPIO0 در دسترس باشد. از این رو ماژول ESP-05 قابلیت پروگرام از طریق آردوینو را نخواهد داشت.
- توجه ۳: ماژول های ESP بر روی خود دارای آنتن از نوع PCB هستند. از طرف دیگر ماژول ESP8266 سری ۱۲E و ۱۲F عملکرد یکسانی دارند. تنها تفاوت آن ها در آنتن PCB (آنتن روی برد) است. ماژول ESP8266-12F دارای آنتن روی بردی قوی تری نسبت به مدل ۱۲E است. در برخی از سری های ماژول ESP، مطابق جدول فوق سوکت UFL جهت اتصال آنتن تعبیه شده است.
- توجه۴: پایه های GPIO تعبیه شده بر روی ماژول های ESP قابلیت تعریف به صورت ورودی/خروجی به کمک دستورات آردوینو را دارند. در قسمت های بعدی به این موضوع بیشتر می پردازیم.
زبان برنامه نویسی ESP8266
پروژه های قابل اجرا با ماژول های ESP
لوازم مورد نیاز
جمع بندی
در این آموزش به معرفی کوتاه و بررسی امکانات ماژول ESP8266 پرداختیم. در قسمت های بعدی قصد داریم تا طی یک آموزش مرحله به مرحله، به بررسی قابلیت ها و امکانات این ماژول کاربردی بپردازیم. ماژول ESP8266 دارای امکانات بسیاری در زمینه ایجاد شبکه وای فای نظیر اتصال به اینترنت، قرارگیری در حالت نقط دسترسی، قرار گیری در حالت سرور و … است. به کمک این ماژول می توانید پروژه های مبتنی بر فناوری اینترنت اشیا را توسعه دهید. از آنجاییکه این ماژول علاوه بر قابلیت وای فای خود، بدون نیاز به هیچ میکروکنترلر اضافی قادر به اجرای برنامه های کاربر است، لذا در این سلسله آموزش به صورت قسمت به قسمت به بررسی امکانات این ماژول و نحوه برنامه نویسی آن با دستورات آردوینو می پردازیم.
چنانچه مطالب این آموزش را گنک یافتید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در مطالب درج شده وجود دارد میتوانید از همین طریق اطلاع رسانی کنید.
بسیار عالی بود ، ممنون
ممنونم از لطف و همراهی شما
درود بر شما و درود بر فناوری!۱
من چطور میتونم سفارش کار بدم و از کجا باید اقدام کنم؟
سلام
برای این مورد به پرتال پشتیبانی و سپس ثبت تیکت در وب سایت دانشجوکیت اقدام نمایید:
https://daneshjookit.com/
بسیار عالی
تشکر
متشکرم از لطف و همراهی شما
اقا لذت بردم و کاملا فهمیدم از گنگی در اومدم خیلی ممنونم و ادامه مطالب موجود دارد ؟
متشکرم از لطف شما
بله ادامه رو می توانید روی این لینک کلیک و مطالعه کنید. آموزش به صورت مرحله به مرحله است.
سلام. بسیار عالی واضح توضیح دادید. ممنون
سلام
متشکرم از شما
سلام وقتتون بخیر
آیا با استفاده از ماژول esp8266 میتوان سنسور تشخیص دود بی سیم رو طراحی کرد؟
و اینکه من چطور میتونم از مشاوره تیمتون کمک بگیرم
ممنون میشم پاسخگو باشید.
سلام و متشکرم
بله امکان پذیر هست. لطفا سایت را بررسی کنید تا پروژه مد نطر را پیاده سازی کنید.
سلام خسته نباشید واقعا مطالب آموزنده و کامل هست فقط یه چند تا مشکل تو متن هست که اولیش اینه که قسمت مشخصات فنی مربوط به esp32 هستش و دومیش هم تو جدول تفاوت برد های esp اشتباها به جای esp-05 نوشتید eps-05
موفق باشید
سلام و متشکرم از لطف شما
از تدکر شما ممنونم
و مشکل بعدی هم نوشتن wemode d1 mini به جای wemos d1 mini هستش
سلام وخسته نباشید. من از طریق پادکست اینترنت اشیا درآمد فردا باهاتون آشنا شدم . ممنون بابت تولید محتوا در این زمینه. امیدوارم همین طور ادامه بدید . سایت و پادکست شما خیلی مفیده.
با سلام
جناب انصاری از همراهی شما سپاسگزاریم. به امید خدا در حال ادامه دادن هستیم.