آردوینو آموزش آردوینو اینترنت اشیا IOT اینترنت اشیاء تئوریک اینترنت اشیاء عملی پروژه های آردوینو

آموزش راه اندازی NodeMCU به وسیله‌‌ی آردوینو

node-mcu-arduino-nodemcu
نوشته شده توسط علیرضا قربانی

NodeMCU  یک پلت فرم اوپن سورس در زمینه‌ی  IoT ( اینترنت اشیا یا به عبارت درست‌تر اینترنت چیزها)  می‌باشد. هسته‌ی NodeMCU ، چیپ ESP8266 ورژن ESP12 می‌باشد که از  WiFi پشتیبانی می‌کند و به وسیله‌ی آن می‌توان به شبکه‌ی وای فای متصل شد و اطلاعات را میان اینترنت یا سایر دستگاه‌ها جابه‌جا نمود. زبان برنامه‌نویسی این ماژول ، Lua می‌باشد. ولی از امکانات بسیار عالی این ماژول این است که می‌توان یا استفاده از IDE آردوینو  و با استفاده از دستوارات آردوینو بر روی آن به سادگی برنامه نویسی کرد .در این آموزش هم صد داریم این ویژگی فوق العاده را به شما آموزش دهیم پس در ادامه‌ی این آموزش با مرجع تخصصی آردوینو ، دیجی اسپارک همراه باشید.

 

 

تجهیزات مورد نیاز

 

در این آموزش به تنها چیزی که نیاز داریم یک عدد NodeMCU می‌باشد که برای خرید آن می‌توانید به این لینک مراجعه کنید. البته به یک عدد کابل  USB به میکرو USB ( یه به اصطلاح کابل اندروید) هم برای اتصال NodeMCU  به کامپیوتر  و پروگرم کردن آن نیاز داریم.

 

 

اتصال NodeMCU به کامپیوتر

اولین کاری که باید انجام دهیم اتصال ماژول NodeMCU به کامپیوتر توسط کابل USB می‌باشد.

اتصال NodeMCU به کامپیوتر

اتصال NodeMCU به کامپیوتر

 

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

برای آن که بتوانید بر روی این ماژول توسط IDE آردوینو برنامه نویسی کنید باید درایورها و بورد آن را بر روی نرم افزار آردوینو نصب کنید.برای این منظور وارد  نرم افزار آردوینو شوید. سپس از قسمت File وارد Preferences  شوید.

 

نصب Node MCU بر روی IDE Arduino

نصب Node MCU بر روی IDE Arduino

 

سپس لینک زیر را کپی کنید و در پنجره Preferences در قسمت Additional Boards Manager URLs   ، لینک را paste کنید و OK را بزنید.

 

نصب Node MCU بر روی IDE Arduino

نصب Node MCU بر روی IDE Arduino

 

سپس از قسمت Tools  وارد Boards Manager… شوید.

 

node-mcu-setup-arduino-ide-3

 

سپس در لیست نمایش داده شده به دنبال esp8266 by ESP8266 Community بگردید و آن را نصب کنید.

insatll-node-mcu-board-on-arduino-ide

 

 

 

 

یک مثال ساده

اکنون نصب بورد و درایور‌ها به پایان رسیده . حال می‌خواهیم برنامه‌ی یک LED چشمک زن را بر روی NODEMCU خود آپلود کنیم. در مرحله اول باید بورد NODEMCU را از قسمت تنظیمات انتخاب کنیم. برای کار وارد  tools>Board option  می‌شویم و  NodeMCU1.0(ESP-12E) را انتخاب می‌کنیم.

nodemcu-arduino

 

 

حال فرکانش ۸۰MHz را انتخاب کنید. قابل ذکر است شما می‌توانید از اورکلاک این چیپ نیز استفاده کنید و فرکانس را بر روی ۱۶۰ مگاهرنز تنظیم کنید.

nodemcu-arduino-%db%b2

 

 

حال باودریت را بر روی ۱۱۵۲۰۰ تنظیم کنید. البته می‌توانید از مقادیر بالاتر استفاده کنید ولی ۱۱۵۲۰۰ سرعت مناسبی است.

nodemcu-arduino-%db%b3

 

و در آخر هم قسمت port ٰا تنظیم کنید:

nodemcu-arduino-4

 

 

برنامه LED چشمک زن

حالا وقته اینه که برنامه LED چشمک زن را بر روی NodeMCU آپلود کنید. کد‌های زیر را کپی کرده و درون نرم افزار آردوینو paste کنید سپس بر روی دکمه آپلود کلیک کنید.

 

 

nodemcu-arduino-5

nodemcu-arduino

 

بعد از آپلود LED موجود بر روی ماژول به مدت ۱ ثانیه خاموش و روشن می‌شود.

official-nodemcu-development-board

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

علیرضا قربانی

علیرضا قربانی هستم دانشجوی مهندسی پزشکی. چیزهای خیلی زیادی رو در دنیا دوست دارم. یک گیک هستم و یشه گفت یک هکر. نه به معنی دزدی پسورد و ایمیل مردم. به معنی عشق به دونستن و عشق به تحقیق درباره خیلی از چیزهایی که می بینم و می‌شنوم. اگر بخوام علاقه‌مندی‌ درجه یکم رو نام ببرم میتونم بگم برنامه نویسی و بعد از اون امبدد سیستم ها.

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

۲۷ دیدگاه

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

    بنده پروژه ای دارم که باید از طریق دوربین، آردینو و ماژول وایفای، تصویر ویدیو را بصورت زنده و مستقیم به موبایل انتقال بده.
    آیا این ماژول قابلیت انتقال ویدیو (فیلم برداری زنده و ارسال هم زمان به موبایل) را داره؟

    ممنونم از پاسخگوی شما

  • باسلام ,من شیلدwemosD1,شیلدwifiهست رو خریداری کردم,یک نمونه کد رو اپلود کردم که چراغsckچشمک میزدشیلدرو ریست کردم,حالا اتی کامندها جواب نمیدن,من به شماره پرت که به صورت دیفالت تعریف شده براش برای ازتباط سوکت نیاز دارم,اما اتی کامند جواب نمیده تو یه سایت خوندم که ممکنه زمانی که کدهارو اپلود کرد روی برد اتیکامندها کتابخونش درست کار نکنه,الان میشه به من راهنمایی کنید من چطور مود کاری وپرت رو مشخص کنم,اگر با برنامه flash…حافظه شیلد رو پاک کنم مشکلی پیش نمیاد؟منظورم اینه,اطلاعاتی مثل ای پی که توسط کارخانه سازنده قرار داده شده پاک نمیشه؟ممنون از راهنمایی تون

    • با سلام
      قبل از هر چیز باید برد Wemos را به IDE اروینو معرفی کنید. لطفا از آموزش نصب و راه اندازی برد کنترل IOT اینترنت اشیاء Wemos D1 Mini مراحل را پیش بروید. سپس سوالتان را مطرح کنید.

  • داشتن یک GUI با امکانات خوب ( widget های مثل رسم نمودار / … ) برای پروژه های اینترنت اشیا و هر پروژه ای که نیاز به رابط گرافیکی داشته باشد یکی از الزامات پروژه باشد . خوب حالا در نظر بگیرید هزینه پروژه هم مهم هست و امکان استفاده از embedded نیست .
    دنیای esp8266 این مشکل را حل کرده . میتوان رابط گرافیکی خوب با تمامی امکانات HTML/CSS/JS ساخته و با پروتکل هایی مثل websocket / http/mqtt (مخصوصا websocket) از طریق esp با این وب پیج ها ارتباط برقرار کنید . هر انچه ای که میخواهید میتوان درست کنید . میخواستم بدونم تجربه این پروژه ها را دارید .

  • سلام استاد ببخشید بنده مشکلی در پروگرم کردن این برد دارم طبق اموزش پیش میرم ولی بردم دو مشکل داره یک اینه که اصلا چراغ ابیش روشن نمیشه و فقط چراغ ماژول وایفایش روشن میشه دوم این که از طرف نرم افزار آردوینو ارور زیر رو میده :
    Arduino: 1.6.12 (Windows 7), Board: “NodeMCU 1.0 (ESP-12E Module), 80 MHz, 115200, 4M (3M SPIFFS)”

    Sketch uses 232,585 bytes (22%) of program storage space. Maximum is 1,044,464 bytes.
    Global variables use 34,056 bytes (41%) of dynamic memory, leaving 47,864 bytes for local variables. Maximum is 81,920 bytes.
    warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08
    warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08
    warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08
    warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08
    warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08
    warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08
    warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08
    warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08
    warning: espcomm_send_command: wrong direction/command: 0x00 0x08, expected 0x01 0x08
    warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed
    error: espcomm_upload_mem failed

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    ممنون میشم کمک کنید

    • با سلام
      برد توسط نرم افزار شناسایی نشده است. با یک پورت USB دیگر استفاده کنید و کابل را هم تعویض کنید. البته اگر برد شما از نوع CH340 است باید درایور آن را نصب کرده باشید.

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

  • سلام من وقتی میخوام کد آپلودش کنم این ارور رو میده

    Arduino: 1.8.1 (Windows 10), Board: “NodeMCU 0.9 (ESP-12 Module), 80 MHz, 9600, 4M (3M SPIFFS)”

    Build options changed, rebuilding all
    Sketch uses 298193 bytes (28%) of program storage space. Maximum is 1044464 bytes.
    Global variables use 40904 bytes (49%) of dynamic memory, leaving 41016 bytes for local variables. Maximum is 81920 bytes.
    Uploading 302336 bytes from C:\Users\Ar\AppData\Local\Temp\arduino_build_936965/sketch_jul19a.ino.bin to flash at 0x00000000
    error: failed sending 1072 bytes
    .error: failed sending 1044 bytes
    .error: failed sending 1040 bytes
    .error: failed sending 1040 bytes
    .error: failed sending 1070 bytes
    .error: failed sending 1081 bytes
    .error: failed sending 1088 bytes
    .error: failed sending 1055 bytes
    .error: failed sending 1051 bytes
    .error: failed sending 1046 bytes
    .error: failed sending 1060 bytes
    .error: failed sending 1062 bytes
    .error: failed sending 1059 bytes
    .error: failed sending 1058 bytes
    .error: failed sending 1055 bytes
    .error: failed sending 1054 bytes
    .error: failed sending 1047 bytes
    .error: failed sending 1050 bytes
    .error: failed sending 1062 bytes
    warning: espcomm_send_command: didn’t receive command response
    warning: espcomm_send_command(FLASH_DOWNLOAD_DATA) failed
    warning: espcomm_send_command: wrong direction/command: 0x01 0x03, expected 0x01 0x04
    error: espcomm_upload_mem failed
    error: espcomm_upload_mem failed

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    البته مال من ورژن ۰٫۹ هست با ch340 که تنظیماتشم دقیق اعمال کردم

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

  • سلام
    من برد node mcu ام رو به نام esp12e خریداری کردم اما الان با تنظیم ESP12و ESP12E با baudrate115200 برنامه روش ریخته میشه و موقع ریختن برنامه led ابی رنگ بالا چشمک میزنه ولی بعدش که تموم میشه دیگه هیچ led روشن نمیشه . البته پشت آی سی نوشته که install 340G driver ولی بدون نصبش ویندوز ماژول رو شناخته بود (در device manager اسمش رو میاره)
    ۱٫ چرا با هر دوتا تنظیم ESP12و ESP12E برنامه پروگرم میشه ؟ یعنی فرقی نداره ؟
    ۲٫ مشکل led برای چی هست؟
    ۳٫ این مساله به درایور ربطی داره ؟
    اینم نتیجه پروگرم کردن با آردویینو :
    esptool v0.4.9 – (c) 2014 Ch. Klippel
    setting board to nodemcu
    setting baudrate from 115200 to 115200
    setting port from COM1 to COM3
    setting address from 0x00000000 to 0x00000000
    espcomm_upload_file
    espcomm_upload_mem
    setting serial port timeouts to 1000 ms
    opening bootloader
    resetting board
    trying to connect
    flush start
    setting serial port timeouts to 1 ms
    setting serial port timeouts to 1000 ms
    flush complete
    espcomm_send_command: sending command header
    espcomm_send_command: sending command payload
    read 0, requested 1
    trying to connect
    flush start
    setting serial port timeouts to 1 ms
    setting serial port timeouts to 1000 ms
    flush complete
    espcomm_send_command: sending command header
    espcomm_send_command: sending command payload
    espcomm_send_command: receiving 2 bytes of data
    espcomm_send_command: receiving 2 bytes of data
    espcomm_send_command: receiving 2 bytes of data
    espcomm_send_command: receiving 2 bytes of data
    espcomm_send_command: receiving 2 bytes of data
    espcomm_send_command: receiving 2 bytes of data
    espcomm_send_command: receiving 2 bytes of data
    espcomm_send_command: receiving 2 bytes of data
    Uploading 226352 bytes from C:\Users\MAZ\AppData\Local\Temp\arduino_build_116151/lednodemcu.ino.bin to flash at 0x00000000
    erasing flash
    size: 037430 address: 000000
    first_sector_index: 0
    total_sector_count: 56
    head_sector_count: 16
    adjusted_sector_count: 40
    erase_size: 028000
    espcomm_send_command: sending command header
    espcomm_send_command: sending command payload
    setting serial port timeouts to 15000 ms
    setting serial port timeouts to 1000 ms
    espcomm_send_command: receiving 2 bytes of data
    writing flash
    …………………………………………………………………….. [ ۳۶% ]
    …………………………………………………………………….. [ ۷۲% ]
    …………………………………………………….. [ ۱۰۰% ]
    starting app without reboot
    espcomm_send_command: sending command header
    espcomm_send_command: sending command payload
    espcomm_send_command: receiving 2 bytes of data
    closing bootloader
    flush start
    setting serial port timeouts to 1 ms
    setting serial port timeouts to 1000 ms
    flush complete

    • با سلام
      ضمن تشکر از توجه شما، اگر برد شما NodeMCU است؛ باید در قسمت انتخاب برد، مدل NodeMCU را انتخاب کنید. در مورد درایور احتمالا قبلا این درایور در سیستم شما نصب بوده است.

  • سلام مهندس خسته نباشید
    باید به عرضتون برسونم من ضمن اینکه از روش آموزش پیش رفتم، امّا نتیجه نگرفتم و نرم افزار error complition termianted رو به من بر می گردونه.
    راه حل چیست؟
    ممنون می شم راهنمایی کنید

    • با سلام
      ضمن تشکر از توجه شما، این موضوع مربوط به اتصالات است. اول از همه آیا در لیست بردهای نرم افزار، برد Node MCU اضافه شده است؟ اگر اضافه شده است، اتصالات را چک کنید از پورت USB دیگری استفاده کنید. اگر رفع نشد از همین طریق اطلاع رسانی کنید.

      • سلام
        ضمن تشکر بابت راهنماییتون، باید بگم مشکل پا برجاست.
        ویندوز من xp است، وقتی که برد رو برای اولین بار وصل کردم شناسایی نشد و گفت باید درایورشونصب کنید به همین علت از طریق ویندوز اتوماتیک درایور رو نصب کردم چیپ ارتباطیش cp2102 است.
        خلاصه درایور نصب شد و بعد از اون دیگه ارور نمی داد. مراحل نصب تو آردوینو رو هم مطابق آموزش انجام دادم کامل
        اما وقتی خواستم یه برنامه توش بریزم اروری که قبلا گفتم رو می ده
        اما دو نکته
        من با استفاده از نرم افزار flasher با برد ارتباط دارم و اونو فلاش کردم و از لحاظ ارتباطی مشکل نداره
        دوم اینکه در حالت عادی وقتی برد رو وصل می کنم به سیستم ، فقط ال ای دی وای فای چشمک می زنه و بعد خاموش می شه اما وقتی پین ۰ رو منفی می کنم یه ال ای دی آبی روشن می شه و حتی وقتی ربستش هم می کنم بازم روشن می مونه
        حالا واقعا دیگه نمی دونم چیکار کنم

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

    • با سلام
      ضمن تشکر از توجه شما، اینجا مکانی برای ارایه کدهای آماده نمی‌باشد. شما در این مورد اگر سوال فنی دارید، میتوانید مطرح کنید.

      • ببخشید موقع کار با ای نشیلد این ارور برای من نمایش داده میشه
        error: espcomm-upload-mem faild
        دلیلش چی می تونه باشه همه راه ها رو امتحان کردم تغییر پورت usb و سرعت آپلود و ….