برد Esp32

راه اندازی و کار با برد ESP32 بخش اول: شناخت برد و انواع آن

esp32-tutorial-step-one-introduce-digispark
نوشته شده توسط معین صابری

اینترنت اشیا، فناوری نوینی که قادر به اتصال اشیا محیط به اینترنت است، می تواند موضوع بسیاری از پروژه ها باشد. به کمک این فناوری بدون هیچ محدودیت فاصله ای، داده ها در اینترنت به گردش در خواهند آمد. این داده ها می توانند از ساده ترین موارد ممکن، مانند اطلاعات یک گلدان تا موارد پیچیده و حساس، نظیر اطلاعات اتاق سرور در شبکه اینرتنت اشیا قرار گیرند. در این شبکه داده ها از طریق اینترنت، به سرورها ارسال می شوند. سپس کاربران از راه دور دور و بدون هیچ محدودیتی، می توانند به این داده ها دسترسی داشته باشند. در این شبکه تبادل داده تنها بین انسان و ماشین نیست! بلکه این داده ها می توانند بین دستگاه های مختلف نیز رد و بدل شوند.

جهت تبادل داده در این شبکه عظیم، نیاز به پردازنده امری ضروری است. پیشتر در سلسله آموزشی که با کلیک بر روی این لینک قابل دسترسی است، به معرفی و کار با ماژول ESP8266 پرداختیم. ماژول ESP8266 یک ماژول فوق العاده کاربردی جهت اتصال به اینترنت است. این ماژول علاوه بر قابلیت اتصال به اینترنت داریا پردازنده قدرتمند بوده که می تواند برنامه های آردوینو را اجرا نماید. نسل جدید این سری از پردازنده ها، ماژول های ESP32 با توان پردازشی بسیار بالاتری نسبت به ESP8266 هستند. در این سلسله آموزش به کار با برد ESP32، امکانات، نحوه تعامل و برنامه نویسی با آن می پردازیم. در ادامه آموزش راه اندازی esp32 با مرجع تخصصی ESP32 به زبان فارسی، دیجی اسپارک همراه باشید.

 


مشخصات سخت افزاری پردازنده ESP32


 اولین قدم در راه اندازی esp32 شناخت آن است. همانطور که پیشتر گفته شد، ماژول ESP32 در حقیقت نسخه ارتقا یافته ماژول ESP8266 است. این پردازنده از دو هسته تشکیل شده که می تواند تا ۲۴۰ مگاهرتز سرعت پردازشی داشته باشد. در کنار این، این ماژول از پردازنده ۳۲ بیتی XTENSA برای اجرای برنامه ها بهره می برد. در مدل‌های مختلفی هم تولید میشود. در تصویر زیر برد ESP32 مدل Nodemcu را مشاهده می‌کنید. برای راه اندازی esp32 بایستی نسبت به اینکه تراشه است یا برد توسعه دقت داشته باشید. همچنین نسخه‌های مختلفی از آن از جمله ESP32D و ESP32U و… طراحی و تولید شده است.

برد esp32 مدل Nodemcu - دیجی اسپارک

 

 به طور کلی مشخصات فنی پردازنده ESP32 دو هسته ای را می توان به صورت زیر، لیست بندی نمود.

  • دارای دو هسته پردازنده
  • دارای فرکانس کلاک بین ۱۶۰ و ۲۴۰ مگاهرتز
  • دارای ۳۴ پایه ورودی/خروجی GPIO
  • دارای ۱۸ کانال ADC 12 بیتی
  • دارای ۲ کانال ۸ بیتی DAC
  • دارای ۱۰ تاچ سنسور جهت دریافت ورودی در GPIO
  • دارای ۴ کانال SPI سخت افزاری
  • دارای ۲ کانال I2C
  • دارای ۲ کانال I2S
  • دارای ۳ UART
  • دارای سنسور اثر هال
  • دارای رابط داخلی جهت ارتباط با SD،ATA،MMC و…
  • دارای پورت CAN ورژن ۲٫۰

علاوه بر این، این پردازنده قادر به اجرای برنامه های آردوینو است. به عبارت دیگر شما با دستورات آردوینو می توانید برای این برد برنامه نویسی کنید. برای برنامه نویسی با آردوینو، آموزش های کاملی طی چندین مرحله منتشر شده که با کلیک بر روی این لینک قابل دسترسی است. علاوه بر این، پردازنده ESP32 دارای قابلیت های ارتباطی بی سیم بوده که در قسمت بعد به این موضوع می پردازیم.

 


قابلیت های ارتباطی ماژول ESP32


همانطور که در ابتدای مطلب گفته شد، ماژول ESP32 قادر به اتصال به اینترنت است. در این ماژول امکانات وای فای بسیاری تعبیه شده است. این ماژول می تواند در دو مد نقطه دسترسی(AP) و ایستگاهی(STA) فعالیت کند. در حالت نقطه دسترسی، این ماژول همانند یک مودم فعالیت می کند. در این حالت با تعیین نام SSID و رمز عبور، دستگاه های مختلف نظیر رایانه، تلفن همراه و سایر ماژول های ESP می توانند متصل شوند. در حالتی دیگر، این ماژول می تواند در مد STA  به مودم های اینترنتی و یا تلفن های همراه در حالت هات اسپات متصل شود. در این حالت ماژول قادر به تبادل داده در بستر اینترنت خواهد بود.

برد Nodemcu با تراشه ESP32 - دیجی اسپارک

 

علاوه بر این، ماژول ESP32 از فناوری BLE بهره می برد. فناوری BLE که همان بلوتوث با توان مصرفی پایین است، سبب می شود تا داد هها علاوه بر وای فای، از طریق بلوتوث نیز منتقل شوند.

 


بردهای مختلف ماژول ESP32


 ماژول ESP32 دارای بردهای توسعه مختلف با امکانات متفاوتی است. البته نکته مشترک بین این بردها پردازنده ESP32 بوده که در همه آن ها این پردازنده یکسان است. یکی از بردهای پرکاربرد، برد ESP32 با سوکت شارژ باتری های لیتیمی است. به کمک این برد شما به پایه های GPIO دسترسی دارید. علاوه بر این روی این برد آنتن جهت تقویت سیگنال های واحد مخابراتی ماژول تعبیه شده است. همچنین این ماژول دارای پورت USB جهت تسریع و تسهیل کار با ماژول است.

قابلیت های ارتباطی ماژول ESP32 - دیجی اسپارک

 

 مدل دیگری از برد ESP32، توسعه یافته با طرح برد NODEMCU است. این برد راه اندازی و کار با برد ESP32 را راحت می کند. همانند برد NODEMCU روی این برد پورت USB تعبیه شده است.

برد ESP32 وای فای بلوتوث - دیجی اسپارک

در کنار این، یکی از پرکاربردترین برد توسعه یافته، برد ESP32-CAM است. این برد دارای امکانات بیشمار زیادی است. بر روی این برد یک دوربین جهت عکس برداری و تهییه فیلم تعبیه شده است. از آنجاییکه این ماژول قادر به اتصال به اینترنت است، شما می توانید به سادگی و از راه دور استریم آنلاین داشته باشید. علاوه بر این، روی این برد یک سوکت کارت SD جهت ذخیره داده های مختلف مانند عکس و فیلم تعبیه شده که از آن می توان در پروژه های مختلف استفاده نمود.

برد ESP32-Cam دارای دوربین - دیجی اسپارک

پس از معرفی و شناخت برد ESP32، در قسمت بعدی به بررسی پروژه های اجرا شده با این ماژول می پردازیم.

 


پروژهای اجرا شده با برد ESP32


 در وب سایت دیجی اسپارک پروژه های بسیاری با ماژول ESP32، به خصوص ESP32CAM طراحی و توسعه یافته است. به عنوان مثال در آموزشی که در این لینک شرح یافته، به کمک ماژول ESP32CAM و ماژول SIM800L یک دوربین آنلاین سیم کارتی طراحی و پیاده سازی شده است.

ساخت دوربین سیم کارتی با ماژول ESP32-Cam - دیجی اسپارک

 

 در ادامه نیز، در پروژه دیگری با همین برد، اقدام به طراحی و پیاده سازی یک دوربین دنده عقب خودرو با قابلیت نمایش تصاویر روی نمایشگر TFT پرداختیم. با کلیک بر روی این لینک، این آموزش در دسترس است.

نمایش تصویر دوربین دنده عقب آردوینو - دیجی اسپارک

 


جمع بندی


در سلسله آموزش های ماژول ESP32، قسمت خست به معرفی امکانات و ویژگی های این پردازنده قدرتمند پرداختیم. ماژول ESP32 با بهره گیری از دو هسته پردازشی، اتصال به اینترنت و بلوتوث کم مصرف، تاچ پد و…. به یک انتخاب بی نظیر در پروژه های اینترنت اشیا تبدیل شده است. علاوه بر این، امکان برنامه نویسی این ماژول به کمک دستورات آردوینو، این برد را به بردی بی رقیب در حوزه اینترنت اشیا بدل ساخته است. پیشتر در سلسله آموزش های ماژول ESP8266، به معرفی این برد جادویی پرداخته ایم. در سلسله آموزش های ماژول ESP32 به صورت صفر تا صد به راه اندازی، کار و برنامه نویسی این ماژول می پردازیم.

 

چنانچه مطالب این آموزش را گنک یافتید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در مطالب درج شده وجود دارد می‌توانید از همین طریق اطلاع رسانی کنید.

 

ادامه مطالب این آموزش

راه اندازی و کار با برد ESP32 بخش دوم: نصب هسته و راه اندازی اولیه

راه اندازی و کار با برد ESP32 بخش سوم: معرفی پایه ها و بررسی سخت افزاری

راه اندازی و کار برد ESP32 قسمت چهارم: مد ایستگاهی STATION دریافت IP

راه اندازی و کار با برد ESP32 بخش پنجم: مد نقطه دسترسی AP

راه اندازی و کار با برد ESP32 بخش ششم: مد سرور Server

راه اندازی و کار با ESP32 بخش هفتم: لایه انتقال و ارتباط با موبایل توسط مودم

راه اندازی و کار با برد ESP32 بخش هشتم: اجرای متد GET

راه اندازی و کار با برد ESP32 قسمت نهم: اجرای متد POST

راه اندازی و کاری با ماژول ESP32 قسمت دهم: شناخت و راه اندازی MDNS

راه اندازی و کار با ماژول ESP32 قسمت یازدهم: ESP-Cam دوربین و کارت SD

راه اندازی و کار با برد ESP32 قسمت دوازدهم: راه اندازی بلوتوث Bluetooth

درباره نویسنده

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۸ دیدگاه

  • سلام
    جناب مهندس من یک نمونه کد وب سرور روی DOIT ESP32 DEV KIT v1 آپلود میکنم، وقتی کامل و با موفقیت آپلود میشه، سریال مانیتور رو باز میکنم و یکبار دکمه EN رو از روی ماژول فشار میدم. سریال مانیتور برام دیتاهای زیر رو چاپ میکنه:
    https://s4.uupload.ir/files/1_lg51.jpg
    اما همونطور که ملاحظه میفرمایین، دائما در حالت کانکت به شبکه وای فای که قراره ساخته بشه میمونه و همینجا گیر میکنه. به نظر شما علتش چی میتونه باشه؟ قسمت اولیه کدی که نوشته ام، به صورت زیر است:
    ………………………………………………………………………………….
    #include

    // Replace with your network credentials
    const char* ssid = “Smart_Remote”;
    const char* password = “123456789”;

    // Set web server port number to 80
    WiFiServer server(80);

    // Variable to store the HTTP request
    String header;

    // Auxiliar variables to store the current output state
    String output26State = “off”;
    String output27State = “off”;

    // Assign output variables to GPIO pins
    const int output26 = 26;
    const int output27 = 27;

    // Set your Static IP address
    IPAddress local_IP(192, 168, 1, 184);
    // Set your Gateway IP address
    IPAddress gateway(192, 168, 1, 1);

    IPAddress subnet(255, 255, 0, 0);
    IPAddress primaryDNS(8, 8, 8, 8); //optional
    IPAddress secondaryDNS(8, 8, 4, 4); //optional

    void setup() {
    Serial.begin(115200);
    // Initialize the output variables as outputs
    pinMode(output26, OUTPUT);
    pinMode(output27, OUTPUT);
    // Set outputs to LOW
    digitalWrite(output26, LOW);
    digitalWrite(output27, LOW);

    // Configures static IP address
    if (!WiFi.config(local_IP, gateway, subnet, primaryDNS, secondaryDNS)) {
    Serial.println(“STA Failed to configure”);
    }

    // Connect to Wi-Fi network with SSID and password
    Serial.print(“Connecting to “);
    Serial.println(ssid);
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(“.”);
    }
    // Print local IP address and start web server
    Serial.println(“”);
    Serial.println(“WiFi connected.”);
    Serial.println(“IP address: “);
    Serial.println(WiFi.localIP());
    server.begin();
    }
    ………………………………………………………………………………….
    و بعدشم void loop() شروع میشه و ادامه داستان…
    به خط Serial.print(“.”); که رسید، گیر میکنه و توی سریال مانیتور دائما نقطه چاپ میکنه و به خطوط بعدی نمیره که پیغام WiFi connected. رو نشون بده.

    • سلام
      بررسی کنید ببینید که ایا نام SSID و یا پسورد را به درستی وارد کرده اید؟ کاراکترها را حتما چک کنید. دستور زیر را هم محص اطمینان در ابتدای تابع SETUP قرار دهید:
      WiFi.setmode(WIFI_STA)

  • با سلام و وقت بخیر
    من یک ماژول esp32-wroom-32 دارم
    و با برنامه IDE برنامه نویسیش می کنم
    مشکلی که دارم اینه که این ماژول من هنگام اپلود برنامه حتما باید دکمه boot نگه داشته بشه
    درصورتی که ماژول های قبلم هرگز این چنین نبودند
    و نیازی به نگه داشتن boot نبود

    میخواستم بپرسم آیا دلیل خاصی داره که این ارور موقع اپلود روی esp32 نمایان میشه
    و این که آیا راه حلی براش وجود داره که این باگ حل بشود یا نه
    ممنونم از شما

  • سلام
    درصورتی که ماژولی که میخواهیم به esp32 ( توسعه یافته با طرح برد NODEMCU ) وصل کنیم، به تغذیه ی ۵v نیاز داشته باشد، از کدام پایه باید استفاده کرد؟ چون esp32 مثل اردوینوuno پایه ی ۵v نداره.

  • سلام من کد رو گرفتم و اپلود کردم ولی ارور زیر را دریافت کردم
    In file included from C:\Users\VahidCF\AppData\Local\Temp\.arduinoIDE-unsaved20221023-5772-92aq56.40y8o\sketch_nov23a\sketch_nov23a.ino:5:0:
    c:\Users\VahidCF\Documents\Arduino\libraries\TJpg_Decoder\src/TJpg_Decoder.h:23:26: fatal error: LittleFS.h: No such file or directory
    compilation terminated.

    exit status 1

    Compilation error: exit status 1
    لطفا راهنمایی کنید

  • سلام اگ بخوام کیبرد کامپیوتر با اردوینو و hc05بلوتوثی کنم و خورجی کار رو گوشی که به بلوتوث وصل میشه روی نرم افزار های ترمینال hc05 تایپ ها نشون داده بشه کسی بلده راه نمایی کنه ؟؟؟

    پیشاپیش ممنون

  • با سلام و وقت بخیر
    من یک ماژول esp32-wroom-32 دارم
    و با برنامه IDE برنامه نویسیش می کنم
    مشکلی که دارم اینه که این ماژول من هنگام اپلود برنامه حتما باید دکمه boot نگه داشته بشه
    درصورتی که ماژول های قبلم هرگز این چنین نبودند
    و نیازی به نگه داشتن boot نبود

    میخواستم بپرسم آیا دلیل خاصی داره که این ارور موقع اپلود روی esp32 نمایان میشه
    و این که آیا راه حلی براش وجود داره که این باگ حل بشود یا نه
    ممنونم از شما

    • در این زمینه متاسفانه اطلاعی ندارم چون کلا من همه ماژول ها را با همین روش پروگرام میکنم!