آردوینو آموزش آردوینو اینترنت اشیا IOT برد Nodemcu خانه هوشمند

آموزش راه اندازی برد اینترنت اشیاء NodeMCU تراشه ESP32 در آردوینو

ESP32-Nodemcu-arduino-ide-Digispark
نوشته شده توسط اروند طباطبایی

برد NodeMCU یکی از پرمصرف ترین بردهای امبدد در زمینه اینترنت اشیاء IOT می‌باشد. خصوصا اینکه در ساختار اصلی این برد از تراشه ESP32 استفاده شده است. نسل جدید تراشه ESP در ابعاد ۴۸ نانو متری با راندمان و مصرف انرژی بهینه‌تر معرفی شده است. نام این تراشه ESP32 می‌باشد. تراشه ESP32 علاوه بر وای فای از بلوتوث نسل ۴ هم پشتیبانی می‌کند. ابعاد این برد با برد NodeMCU دقیقا یکسان است. دانستن یک نکته حائز اهمیت است. این نوع برد در دو مدل ارایه میشود یکی دارای ۳۰ پایه GPIO و دیگری دارای ۳۴ پایه GPIO می‌باشد. مدل Node MCU ESP32 که من در این آموزش از آن استفاده می‌کنم، ۳۰ پایه دارد. در ادامه مجموعه آموزش‌های برد ESP32 با مرجع تخصصی اینترنت اشیاء دیجی اسپارک همراه باشید.

 

شروع نصب برد NodeMCU نرم افزار آردوینو

همانطور که میدانید در نرم افزار آردوینو یا همان Arduino IDE امکان انتخاب انواع بردهای مختلف وجود دارد. از آنجایی که این جامعه اوپن سورس می‌باشد؛ معمولا اکثر بردهای پر مصرف قابلیت ارتباط با این نرم افزار سبک و ساده را دارند. برای شروع اگر نرم افزار آردوینو را ندارید، از منبع اصلی یعنی وب سایت آردوینو Arduino دانلود کنید. سپس نیاز به نرم افزار گیت Git دارید. برای دانلود گیت Git از سایت اصلی استفاده می‌کنیم. مراحل دانلود گیت ساده است، کافیست فایل Auto Run را باز کنید و مراحل را به صورت Next Next تا انتها پیش بروید. سپس نرم افزار گیت Git نصب می‌شود. حالا می‌توانید نرم افزار را راه اندازی کنید. پس از راه اندازی نرم افزار Git GUI محیط زیر را مشاهده می‌کنید.

نصب GIT در ویندوز جهت راه اندازی ماژول ESP32 -دیجی اسپارک

 

سپس گزینه دوم Clone Existing Repository را انتخاب می‌کنیم. پنجره زیر باز می‌شود.

نصب GIT در ویندوز جهت راه اندازی ماژول ESP32 -دیجی اسپارک

 

در این مرحله کافیست در پنجره اول Source Location آدرس سورس ESP32 در گیت هاب را وارد کنیم. دقت داشته باشید که مراجع زیاد است ولی این سورس مورد تایید دیجی اسپارک می‌باشد.

https://github.com/espressif/arduino-esp32.git

 

سپس در قسمت تارگت Target Directory آدرس مرجع در سیستم خودتان را باید وارد کنید. معمولا در پوشه داکیومنت می‌باشد. که به این صورت باید وارد کنید.

C:/Users/[YOUR_USER_NAME]/Documents/Arduino/hardware/espressif/esp32

 

نکته: آدرس قسمت تارگت باید همان آدرسی باشد که نرم افزار آردوینو در سیستم شما نصب شده است. در سیستم من در درایو C نصب شده است. اگر این مسیر را درست انتخاب نکنید، نوع برد در قسمت بردهای نرم افزار آردوینو Arduino اضافه نخواهد شد.

نصب-GIT-در-ویندوز-جهت--راه-اندازی-ماژول-ESP32--دیجی-اسپارک

 

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

C:/Users/[YOUR_USER_NAME]/Documents/Arduino/hardware/espressif/esp32/tools

نصب-GIT-در-ویندوز-جهت-راه-اندازی-ماژول--ESP32---دیجی-اسپارک

 

پس از انجام این مراحل، چنانچه نرم افزار آردوینو Aruino IDE را باز کنید، در منو Tools > Board گزینه‌هایی اضافه خواهد شد. که یکی از این گزینه‌ها NodeMCU 32ُ می‌باشد. با انتخاب این گزینه می‌توانید کدهای مربوطه را آپلود کنید. یک نمونه کد سبک جهت بدست آوردن ID تراشه ESP32 در ادامه قرار داده‌ام. با کپی و آپلود آن روی برد می‌توانید از طریق سریال مانیتور نرم افزار آردوینو آی دی تراشه را بدست آورید.

 

نمونه کد ESP32 ChipID

 

uint64_t chipid;  

void setup() {
  Serial.begin(115200);
}

void loop() {
  chipid=ESP.getEfuseMac();//The chip ID is essentially its MAC address(length: 6 bytes).
  Serial.printf("ESP32 Chip ID = %04X",(uint16_t)(chipid>>32));//print High 2 bytes
  Serial.printf("%08X\n",(uint32_t)chipid);//print Low 4bytes.

  delay(3000);

}

 

نصب-GIT-در-ویندوز-جهت-راه-اندازی-ماژول--ESP32دیجی-اسپارک

 

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

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

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

اروند طباطبایی

بنیانگذار دیجی اسپارک: اولین مرجع تخصصی امبدد سیستم به زبان فارسی / کارشناس سئو و تولید محتوا

هرچه می آموزم میبینم که خیلی کم آموختم. علاقه به رباتیک و تکنولوژی دارم. امیدوارم بتونم دانشی را که آموخته‌ام، به روش‌های مختلفی به کاربران علاقمند منتقل کنم.

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

۷۱ دیدگاه

    • با سلام
      ضمن تشکر از توجه شما، توضیحات در این مورد زیاد است. سوال شما خیلی کلی است و نمیتوان پاسخ مناسبی برای آن ارایه کرد. ولی در حالت کلی تراشه ESP32 علاوه بر وای فای از بلوتوث هم پشتیبانی میکند. خصوصا اینکه دارای مصرف انرژی بهینه و اصلاح شده می‌باشد. بردهای مختلفی با این تراشه توسعه و تولید شده است. که در این آموزش از مدل Node MCU با تراشه ESP32 استفاده شده است.

  • باسلام و خسته نباشید.

    میخواستم بدونم وقتی برد ولتاژ ۳٫۳v میده و من یک رله دارم که ۵ ولت VCC لازم داره، چطوری باید ولتاژ این رله رو از همین برد بگیرم ؟ از ESP-12 هم استفاده میکنم.

    • با سلام
      ضمن تشکر از توجه شما، اگر از برد NodeMCU استفاده می‌کنید، دارای خروجی ۵ ولت می‌باشد.

        • سلام مجدد
          برای چنین بردی پیشنهاد میشود از ماژول رله ۳٫۳ ولت استفاده شود ویا اینکه از مبدل افزاینده استفاده کنید. البته بنده هیچ کدام از این روش‌ها را تست نکرده‌ام و اگر دوستان دیگری پاسخ بهتری دارند، لطفا ارسال کنند.

          • استفاده از یک ترانزیستو pnp که باید در این صورت خوروجی رو صفر تعریف کنیم تا بیس که منفی است عمل کند

            • یعنی منظورم این که خارج از برد یک ولتاژ ۵ ولت بگیریم بجای این که یک افزاینده به کار بگیریم و این ولتاژ رو به پایه ترانزیستور متصل کنیم و اون یکی پایه رو به رله

              • این موضوع به صورت تئوریک درست به نظر میرسد، بنده به صورت عملی تست نکرده‌ام، باید منتظر پاسخ دوستانی که عملی کارکرده اند باشیم.

        • سلام داداش
          یه ترانزیستور بزار به بیس ترانزیستور ۳٫۳ رو بده ازامیتر و کلکتور هم میشن مثل یه کلید به بیس که ۳٫۳ وصل شد امیتر به کلکتور راه میده تا هر ولتاژ هم که بخوای جواب میده البته ۵ ولت رو قطعان جواب میده راستی یه مقاومتم بزار که جریان یهو ترانزیستورتو نترکونه

  • با سلام . آیا با این برد و برد wemos mini 1 می توان بصورت مستقیم به گوشی اندرویدی متصل شد؟
    چون دیدم با این دو برد تمام آموزشایی گذاشتید اینترنت وصل میشن.
    با تشکر.

  • با سلام
    من این مراحل رو روی نسخه ۱٫۸٫۵ اجرا کردم ولی node mcu 32 اضافه نشد.
    مشخصات mcu:
    Esp-32s
    V1.1 1 1010
    NodeMCU ESP-32S specifications:

    Wireless Module – ESP-WROOM-32 with Espressig ESP32 dual core processor with 802.11 b/g/n WiFi and Bluetooth 4.0 LE
    Expansion – ۲x 19 pin headers with GPIOs, Analog inputs (ADC), UART, I2C, VP/VN, etc…; breadboard compatible
    USB – ۱x micro USB port for power and programming
    Misc – BOOT and EN buttons, red (power) and blue (GPIO2) LEDs
    Power Supply – ۵V via USB or Vin pin
    Dimensions – ۵۱٫۴ x 28.3 mm

    • با سلام
      ضمن تشکر از توجه شما و عذرخواهی بابت تاخیر در پاسخ گویی، به دنبال راه مناسبی برای این موضوع بودم، تا پاسخ درستی ارسال کرده باشم. در این خصوص پس از اتصال برد Nodemcu به وای فای یک آی پی در شبکه لوکال دریافت می‌کند. در این خصوص میتوانید با چند خط کد زیر، آی پی اختصاص یافته به برد را تغییر دهید و همیشه به صورت استاتیک در شبکه لوکال تبدیل کنید. البته در این خصوص تنظیمات DHCP مودم هم باید انجام دهید.
      IPAddress ip(192, 168, 1, xx); // where xx is the desired IP Address
      IPAddress gateway(192, 168, 1, 1); // set gateway to match your network
      Serial.print(F(“Setting static ip to : “));
      Serial.println(ip);
      IPAddress subnet(255, 255, 255, 0); // set subnet mask to match your
      network
      WiFi.config(ip, gateway, subnet);

      اگر رنج آی پی شما با این متفاوت است، میتوانید تغییر دهید.

      • بسیار عالی بود IP رو عوض کردم الان فقط نمیدونم چطور شماره Port به nodemcu اختصاص بدم. چونکه من میخوام با دستور socket.connect در بیسیک فور اندروید به nodemcu وصل شم و در این دستور باید شماره پورت nodemcu رو وارد کنم

        • با سلام
          خواهش میکنم، متاسفانه بنده با بیسیک کار نمی‌کنم که اطلاعات کاملی بدهم. در این خصوص از دیگر کاربران که تخصص کافی دارند، تقاضا دارم تا در این بحث مشارکت کنند.

  • با سلام
    تو لیست من NodeMCU_32S موجود میباشد و با انتخاب همون و ۸۰Mhz , 115200 , or 921600 با خطای
    A fatal error occurred: Timed out waiting for packet header مواجه میشم
    پورت رو از COM5 به COM9 تفییر دادم اما مشکل حل نشد

  • سلام ممنون بابت آموزش های خوبتون و زحمتی که میکشید.
    اگر امکانش هست میشه آموزش اتصال به ربات تلگرام با این برد رو بذارید؟‌
    سعی کردم از کد هایی که در آموزش های دیگه قرار دادید استفاده کنم اما نشد. دلیلش هم اونجا گفتم که کتابخونه esp8266wifi برای این برد کار نمیکنه.

  • سلام، تمام مراحل رو انجام دادم ولی الان وقتی برد رو به سیستم وصل میکنم اصلا نمیشناسه
    البته در نرم افزار نصب شده ولی به سیستم وصل میشه اصلا تشخیص داده نمیشه
    چه باید کرد؟

    • با سلام
      ضمن تشکر از توجه شما، در این خصوص لطفا از فایل منجر سیستم عامل چک کنید که بعد از اتصال به پورت USB برد را شناسایی میکند یا نه، درضمن بفرمایید که از چه کابلی استفاده کرده‌اید.

  • سلام
    وقتی nodemcu esp32 به لپ‌تاپ وصل میکنم led پاور روشن نمیشه و پورتش تشخیص داده نمیشه ولی وقتی کلید EN میگیرم روشن میشه ولی همچنان در device manager پورت مشخص نمیشه
    علت چی میتونه باشه؟

  • با تشکر از آموزش های عالی شما
    وقتی برنامه رو کامپایل میکنم این خطایی رو میده
    exit status 1
    Error compiling for board NodeMCU 1.0 (ESP-12E Module).
    ممکنه راهنمایی بفرمایید. سپاس فراوان

    • با سلام و تشکر ازشما
      این ارور مربوط به برد Nodemcu با تراشه ESP-12E می‌باشد. این آموزش در مورد برد Nodemcu با تراشه ESP32 است. لطفا بفرمایید شما از کدام برد استفاده می‌کنید.

  • سلام
    ۱- نمیشه نرمافزار Git رادانلود کرد – نه با فیلتر شکن و نه بدون فیلترشکن و نه …. لطفا یک راهی بدهین
    ۲- برا مشاهده نتایج و وضعیه Node Mcu به مانیتور همین راه را باید رفت…

    • با سلام و تشکر از توجه شما
      ۱- برای بنده نرم افزار Git دانلود و نصب شد. در خصوص سوال شما مجددا اقدام کردم و مشکلی نداشت.
      ۲- لطفا دقیق‌تر توضیح دهید که چه کاری می‌خواهید انجام دهید. تا بتوانم راهنمایی کاملتری ارایه دهم.

  • سلام ممنون از آموزش خوبتون.خواستم ببینم در این سری بردها (esp32) میتوان از چند پورت سریال استفاده کرد مانند همان software serial در سری بردهای uno ??? (در صورتیکه بله لطفا کتابخانه ای یا مرجعی معرفی کنید)

    تشکر.

  • سلام مهندس جان
    من برای اولین تجربه میکروکنترلر و بدون معلومات برنامه نویسی یک عدد برد nodemcu v3 خریدم تا شروع کنم ولی نمیدونم چطوری پایه هارو متصل کنم منبع ۳٫۳ ولت هم ندارم. وقتی خریدم گفتن از همون درگاه usb وصل کن به شارژر موبایل ولی انگار نیست اینطوری
    کلا نمیدونم پایه ها مال چیه میشه راهنمایی کنین لطفا؟
    ممنون از لطفتون

    • با سلام
      کاربر گرامی در این صورت مشکل خاصی وجود ندارد. همانند همین آموزش از طریق کامپایلر آردوینو پیش بروید. کابل USB هم به کامپیوتر متصل کنید. در خصوص اتصالات و پایه‌ها هم در هر آموزش دیجی اسپارک کاملا توضیح داده شده است.

  • نرم افزار GIT و دیگر وارد مورد نیاز رو آپلود کنید ما که از بدبختا هم بدتریم اینترنت نداریم
    گیرم بخدا

  • با سلام توضیح کدهای کتابخانه ای espressif رو از کجا میتونیم مطالعه کنیم.
    مثل کد ESP.getEfuseMac(); که برای دریافت چیپ آی دی استفاده میشود.
    پیگیر کدهای بلوتوث و ایبیکن هستم.
    با تشکر

  • ضمن عرض سلام.
    امروز این برد به دست من رسیده است و کارهای گفته شده را انجام دادم و فایل ها نصب گردید. دو مورد هست که میخاهم مطمئن شوم
    ۱٫ موقع اجرای فایل get.exe صفحه مشکی باز میشود و چیزی نشان نمیدهد و سریع بسته میشود نمیدانم که ایا ان فایل مورد نظرش را دانلود و نصب کرده است یا خیر. ( احتمالا نکرده ، چطور میتوانم مطمئن شود؟ )
    ۲٫ در لیست برد ها در آردوینو نام NodeMCU 32ُ را پیدا نکردم اما NodeMCU 32ُS را دارد. این دو با هم فرق میکنند؟
    لطفا راهنمایی بفرمایید
    متشکرم

    • با سلام
      ۱- وضعیت کانکشن را حتما بررسی کنید. همچنین آدرس Target در بخش قبل را مطمئن شوید که با مسیر نصب نرم افزار آردوینو یکسان باشد.
      ۲- این مورد را هم تست کنید آیا با برد ارتباط برقرار میکند یا خیر؟
      سپس نتیجه را از همین طریق اطلاع رسانی کنید.

  • من در استفاده از دستور Serial.printf به خطا می خورم : class hardware serial has no member named printf

    ممنون میشم راهنمایی بفرمایید.

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

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

  • سلام من میخوام اطلاعات از برد nodemcu که ازدو تاسنسور میگیررو به آردیونو بفرستم وتغییراتی روش انجام بدم و به یک nodemcu دیگه ارسال کنم تمام کارهارو بلدم فقط ارتباط سریالی که میخوام بین nodemcu وآردیونو بدم راه نمیوفته این کد رو میخوام اگر هزینه ای هم هست مقبول میشم ممنونم .

  • ممنون از آموزش مفیدتون. کاربرد chip id در آردوینو چیه؟ من دنبال روشی هستم که بتونم esp32 رو قفل کنم تا کسی نتونه فایل منو ازش کپی کنه

    • با سلام
      بستگی به کتابخانه مورد استفاده، میتواند کاربردهای متفاوتی داشته باشد. در خصوص قفل کردن، بنده روشی را ندیده ام که بتوانم کدها را بعد از کامپایل شدن، از میکرو استخراج کرد.