پس از ساخت اولین برد های منبع باز امبدد ، مدل های مختلفی از برد های اپن سورس توسط شرکت های مختلف به بازار عرضه شد . این برد ها به اندازه ای تنوع پیدا کردن که میشه گفت تقریبا برای هر کاربردی یک برد طراحی شده است . در این بین آردوینو UNO یکی از محبوب ترین برد های اپن سورس به عمل می آید . بردی ساده که تقریبا هر مثال و برنامه آردونیو را می توان با آن اجرا کرد . عدم پشتیبانی آردوینو از اینترنت اشیا نقطه ضعفی برای این برد ها به حساب می آمد . در این بین برد های NodeMCU برای جبران این مشکل و همچنین جایگزینی ارزان قیمت و قوی برای آردوینو طراحی شدند . هرچند که در ابتدا برد های NodeMCU با اهداف دیگری ساخته شد بود و در نهایت با عرضه SDK های آردوینو IDE از طرف Espressif رقابت این برد با برد های آردوینو شروع شد . اما NodeMCU چیست ؟

NodeMCU یک برد کوچک بر پایه ماژول های ESP8266 MOD است . در این برد تمامی پین های مورد نیاز ماژول ESP8266 در اختیار کاربر قرار دارند . اصلی ترین مشخصه برد های NodeMCU ماژول ESP8266 MOD آن ها است . ماژول ESP8266 MOD که در مدل های 12E و 12F ساخته می شود یک ماژول نصب سزحی بر پای SoC قوی ESP8266EX می باشد . ماژول ESP8266 از پروتکل های IEEE802.11 و همچنین پرتکل های TCP\IP پشتیبانی میکند . توانایی های زیاد ESP8266 و قابلیت ارتباط WiFi آن ، این برد را به یک پلتفرم در جهت ساخت پروژه های مبتنی بر IoT تبدیل کرده است .

در تصویر زیر پین های برد NodeMCU نشان داده شده اند :

هر برد NodeMCU دو قسمت اصلی دارد که شامل ماژول ESP8266  MOD و بخش دیگر شامل یک مبدل USB-TTL است . در داخل ماژول های ESP8266 MOD یک چیپ ESP8266EX در کنار یک چیپ حافظه Flash وجود دارد . ESP8266EX فاقد حافظه داخلی برای برنامه کاربر است و برنامه کاربر را از طریق حافظه Flash  خرجی اجرا خواهد کرد . در ماژول های ES8266 MOD از یک چیپ 4 مگابایتی استفاده شده است که می با  پروگزام کردن برد برنامه در این قسمت ذخیره می شود . به طور معمول کلیه ماژول های ESP8266 دارای بوت لودر اختصاصیESPressif هستند . این بوت لودر بخش های ابتدایی فضای Flash را اشغال میکند . بوت لودر ESPressif کمی فراتر از یک بوت لودر معمولی است و توانایی کنترل عملکرد قسمت های مختلف SoC را دارد . می توانید بوت لودر های دیگر را نیز بر روی این برد پروگرام کنید . پس از روشن شدن برد ، واحد UART0 در بادریت 7802 پیغام های بوت لودر راجب به تغذیه ، حجم حافظه و… را چاپ کرده و سپس بادریت آن به 115200 تغییر می یابد . برای پروگرام کردن برد های مبتنی بر ESP8266 از ارتباط UART استفاده می شود که در این حالت ESP8266 دیتا را از واحد UART0 گرفته و آن را در حافظه Flash خارجی می نویسد . البته می توانید از پروگرام های J Tag معماری ARM ، مانند پروگرامر J LINK نیز برای پروگرام مردن این برد استفاده کنید که در این حالت پروگرم کردن پروسه بسیار پیچیده ای خواهد داشد .

 

مشخصات برد NodeMCU :

این برد به دلیل وجود ESP8266 قابلیت های زیادی که مشخصات کلی آن به صورت زیر است :

  • 128 کیلوبایت RAM
  • 4 مگابایت حافظه برنامه
  • پورت میکرو USB جهت اتصال به کامپیوتر و عیب یابی و برنامه ریزی
  • فرکانس کاری 160MHz
  • پشتیبانی از IEEE802.11 ، TCP/IP و ارتباط های P2P
  • دارای واحد های I2C ، UART ، SPI ، ADC و…
  • دارای آنتن PCB و عدم نیاز به آنتن خارجی
  • نصب راحت برد بر روی برد بورد
  • دارای LED نشانگر تغذیه  و User LED
  • انتخاب مد های پروگرام و اجرا از طریق یک کلید

 

 

راه اندازی برد NodeMCU در آردوینو IDE :

خوشبختانه با ارائه SDK های ESP8266 برای آردوینو IDE شما به راحتی می توانید این برد را در محیط آردوینو IDE پروگرام کنید . ابتدا باید درایور این برد را بر اساس ورژن برد و همچنین نوع مبدل USB-TTL برد نصب کنید . می توانید از این لینک درایور های لازم را دانلود و نصب کنید .

پس از نصب درایور مبدل برد باید SDK های لازم برای آردوینو IDE را نصب کنید . برای این کار در برنامه آردوینو IDE ابتدا از منوی فایل گزینه Preferences را انتخاب کنید :

سپس در قسمت نشان داده شده در تصویر پایین ، متن زیر را کپی کنید :

http://arduino.esp8266.com/stable/package_esp8266com_index.json

 

 

سپس از منوی Tools  قسمت Board گزینه Board manager را انتخاب کرده و برد Esp را نصب کنید :

پس از نصب بورد های ESP یک بار آردوینو IDE را ببندید و سپس باز کنید .

برای برنامه نویسی برد های NodeMCU کافیست از همان منوی Bord گزینه NodeMCU را انتخاب کنید ( به ورژن انتخابی دقت کنید باید مطابق با ورژن برد باشد ).

کد های زیر را برای تست درستی بالا بر روی برد خود پروگرام کنید . برای اینکار با نگه داشتن دکمه Boot (یا Flash ) را نگه داشته و همزمان دکمه ریست را یبار بزنید . پس از این کار می توانید برد را پروگرام کرده و در آخر یک بار دکمه ریست را فشار دهید .

/*
 ESP8266 Blink by Idayu Sabri
 Blink LED Using ESP8266 NodeMCU Lua WiFi

 Note that this sketch uses BUILTIN_LED to find the pin with the internal LED
*/

#define BUILTIN_LED 5

void setup() {
  pinMode(BUILTIN_LED, OUTPUT);     // Initialize the BUILTIN_LED pin as an output
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(BUILTIN_LED, LOW);   // Turn the LED on (Note that LOW is the voltage level
                                    // but actually the LED is on; this is because 
                                    // it is acive low on the ESP-01)
  delay(1000);                      // Wait for a second
  digitalWrite(BUILTIN_LED, HIGH);  // Turn the LED off by making the voltage HIGH
  delay(1000);                      // Wait for two seconds (to demonstrate the active low LED)
}

 

Tags:
About Author: USER_4